Такой вопрос. Я знаю, что если в функции есть время

- delay, таймер - то при повторном обращении к ней, она начинает сначала. Т.е. если поставить delay на 2 секунды, и обращаться к функции каждую секунду, то логика после delay никогда не сработает.
Это работает так же для прочих функций, не использующих время? Например, у меня есть функция без какого либо использования времени. Без таймеров, делеев и прочего.
Если в игре так совпадет, что ее вызовут 2 раза, почти одновременно, то она НЕ будет сбрасываться? Оба раза посчитает (т.к. компилятор анрила их в очереди расположит) или все же сбросит?
Речь идет прям о миллисекундном совпадении, хочу понять, возможен ли с этим баг или нет.

5 ответов

20 просмотров

Предлагаю провести експеримент: 1. Запихиваете в тик delay на условно 5 секунд и после него принт на экран. По тому как написано, на экране ничего не будет, тик ведь точно чаще чем раз в 5 секунд. А на самом деле как? 2. Разместить в тик подряд выполнение двух функций. Сколько их выполниться за один тик? Выполниться ли их тик*2 раз или тик раз? Или сколько раз?

Андрей-Соболев Автор вопроса
Богдан Karabinskyi
Предлагаю провести експеримент: 1. Запихиваете в т...

Я раньше целый кусок БП переделывал по той причине, что повторный вызов функции до ее окончательного исполнения сбрасывал результат. Надо будет вновь гайды поискать по времени, кажется, я там многое не понимаю.

С самого начала ошибка в описании, вышесказанное относится только к retriggerable delay. По-поводу остального прям улыбнулся )) "почти одновременно" - это как? )) но нет, при нормальном написании логики с этим не может быть проблем в твоём случае

Андрей-Соболев Автор вопроса
Aleksei Gagarin
С самого начала ошибка в описании, вышесказанное о...

Спасибо. Я опасался случая когда, допустим в главном здании игрока функция "заспавнить юнит". И к ней, так выйдет, в одну миллисекунду 2+ БП обратятся одновременно.

Андрей Соболев
Спасибо. Я опасался случая когда, допустим в главн...

Здесь вообще некорректно оперировать понятием времени, второй вызов произойдет только тогда, когда закончится первый, т.е. произойдет выход из функции. Это в случае, если ты не используешь латентные/асинхронные функции. Если используешь, тогда ты уже просто заранее должен понимать, что повторный вызов функции может произойти, когда операция ещё выполняется и принять меры. Здесь уже от реализации функции все зависит. Delay и Ret... Delay неплохой пример того как разные функции могут себя вести при повторном вызове

Похожие вопросы

Обсуждают сегодня

Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Как думаете через какой сервис они верифицируют?
inc.
5
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Добрый день! Подскажите, каким сборщиком фронта для OctoberCMS кто пользуется? Я имею ввиду сборщики, с которыми можно работать по стандартной схеме директорий октября. Я испо...
Николай Афанасенко
2
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
Карта сайта