function InitTrig_Spell takes nothing returns nothing
set Mx[0] = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(Mx[0], EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddAction(Mx[0], function Spell_Act)
call TriggerAddCondition(Mx[0], Condition(function Spell_Cond))
endfunction
Будет ли создан новый поток для функции Spell_Act, или будет использоваться поток который создан игрой изначально?
Принятый ответ
Почитай эту ветку комментариев
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Соответственно каким то образом 2 раза подряд игроки используют способность, и если для этой способностей каждый раз создаётся поток, оно ведь поломается.
Ред. LastUchiha
Та же ExecuteFunc создаёт поток, тогда почему вар однопоточен?
Ред. konvan5
Если не ошибаюсь, еще триггер может быть приостановлен а потом продолжен после выполнения других триггеров если в нем выполняется оооооочень много действий (большие циклы, большие вложенные функции-триггеры и тд).
(опять же, на короткие действия типа засейвил в одну и ту-же глобалку для всех триггеров данные и через 5-50 действий без длинных циклов используешь для всех абилок в целом ничего страшного не будет)
Ред. konvan5
(еще возможно какое-то действие давало задержку во времени)
В любом случае такие связи сложно отслеживать, особенно если карта большая.
(или всегда держать в голове что происходит в карте и что используешь и как, то есть думОть :D)
Ред. konvan5
(в циклах можно если думать где куда откуда)
Ред. LastUchiha
А если таймер не будет переодичен, можно ведь юзать? (т.е. уже после его истечения)
И в ForGroup та же самая ситуация что и с циклом?
Ред. konvan5
Главное в циклы вейты и таймеры не запихать XD