Может ли один таймер перебить другой?
Ивент может начать работу до того как функция таймера не завершиться, а вот что насчет тика другого таймера?

Принятый ответ

нет. там однопоточное и последовательное. этот как призыв юнитов, пример с событием призыва юнитов. когда вы одновременно двух призываете абилкой, но на самом деле тут последовательно обрабатывает триггер. Сначала триггер обрабатывает действием с первым призванным, а потом и со вторым. Короче, триггер два раза сработал.
Или возьмем пример урона:
вы ловите каст, и в триггере наносите триггерный урон и вешаете эффект. А еще у вас есть система урона. Когда вы наносите урон, поток паузится и начинает обрабатывает триггер урона. А потом возвращаемся к триггеру каста, и вещаем эффект, короче доделываем действия триггера до конца. В триггерах урона нельзя делать урон, тк мб зацикливания само на себя, поэтому триггер отключают, чтобы не сработало.
Или возьмем, обработку группы юнитов. Здесь тоже самое как и с уроном. Когда вы выделяете несколько юнитов в группу и что-то делаете. Там ForGroup то там создается на каждого юнита отдельный поток, и обрабатываем каждого EnumUnit. Сначала одного обработали, потом запустили слде поток и обработали след юнита, и так до конца со всеми. Внутри обычно нельзя юзать вэйты, тк вэйты паузят Action триггера - будет обрыв потока
событие триггера запускает триггер, поток создает. многие константы вроде TriggerUnit и др наследуют данные триггера
таймер вроде создает отдельный поток
создать еще можно ExecuteFunc
если у вас каким то образом еще и указано на триггер событие завершения таймера. Это все равно разные участки кода. Таймер вызывает функцию, событие вызывает триггер. Если у вас несколько таймеров, они все равно никак не могут помешать друг другу.
проверить можно дебагом, что за чем следует. нам нужно знать начало и завершения.
для чего такие вопросы?
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
27
3 года назад
Отредактирован MpW
2
нет. там однопоточное и последовательное. этот как призыв юнитов, пример с событием призыва юнитов. когда вы одновременно двух призываете абилкой, но на самом деле тут последовательно обрабатывает триггер. Сначала триггер обрабатывает действием с первым призванным, а потом и со вторым. Короче, триггер два раза сработал.
Или возьмем пример урона:
вы ловите каст, и в триггере наносите триггерный урон и вешаете эффект. А еще у вас есть система урона. Когда вы наносите урон, поток паузится и начинает обрабатывает триггер урона. А потом возвращаемся к триггеру каста, и вещаем эффект, короче доделываем действия триггера до конца. В триггерах урона нельзя делать урон, тк мб зацикливания само на себя, поэтому триггер отключают, чтобы не сработало.
Или возьмем, обработку группы юнитов. Здесь тоже самое как и с уроном. Когда вы выделяете несколько юнитов в группу и что-то делаете. Там ForGroup то там создается на каждого юнита отдельный поток, и обрабатываем каждого EnumUnit. Сначала одного обработали, потом запустили слде поток и обработали след юнита, и так до конца со всеми. Внутри обычно нельзя юзать вэйты, тк вэйты паузят Action триггера - будет обрыв потока
событие триггера запускает триггер, поток создает. многие константы вроде TriggerUnit и др наследуют данные триггера
таймер вроде создает отдельный поток
создать еще можно ExecuteFunc
если у вас каким то образом еще и указано на триггер событие завершения таймера. Это все равно разные участки кода. Таймер вызывает функцию, событие вызывает триггер. Если у вас несколько таймеров, они все равно никак не могут помешать друг другу.
проверить можно дебагом, что за чем следует. нам нужно знать начало и завершения.
для чего такие вопросы?
Принятый ответ
0
14
3 года назад
0
МрачныйВорон:
Вопрос был задан, т.к. абужу глобалки, чтобы знать где поле действия значения для переменной будет неизменным
Чтобы оставить комментарий, пожалуйста, войдите на сайт.