Добавлен
Говорят, что TriggerSleepAction плохая вещь и лучше использовать таймеры. Я не настаиваю на обратном, но хотелось бы узнать, чем же плоха эта функция и как именно использовать таймер?
Например:
call UnitAddAbility(unit, abilcode)
local timer t = CreateTimer()
call StartTimer(t, 4, false, null)
loop
call TriggerSleepAction(0.1)
exitwhen TimerGetRemaining == 0
endloop
call UnitRemoveAbility(unit, abilcode)

Да, работает отлично, но в чем, собственно, разница? Мы все равно используем Вейт.
Если же убрать строку "call TriggerSleepAction(0.1)", то unit получает abilcode, а потом жди не жди, ничего больше не происходит.

call UnitAddAbility(unit, abilcode)
local timer t = CreateTimer()
call StartTimer(t, 4, false, null)
loop
call TriggerSleepAction(0.1)
exitwhen TimerGetRemaining == 0
endloop
call UnitRemoveAbility(unit, abilcode)
за подобное положена смертная казнь
вейт плох тем что он не точен (погрешность в 0,1 секунды и работает во время паузы игры)
и тем что всякие вырезано используют его там где надо использовать таймеры
почитай про то как правильно использовать таймеры
чтобы понимать где нужен вейт а где таймер
вот две статьи
можешь посмотреть ещё статьи про связку таймер+хэш/рб но её юзать не советую т.к. стэк намного удобнее и быстрее
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
call UnitAddAbility(unit, abilcode)
local timer t = CreateTimer()
call StartTimer(t, 4, false, null)
loop
call TriggerSleepAction(0.1)
exitwhen TimerGetRemaining == 0
endloop
call UnitRemoveAbility(unit, abilcode)
за подобное положена смертная казнь
вейт плох тем что он не точен (погрешность в 0,1 секунды и работает во время паузы игры)
и тем что всякие вырезано используют его там где надо использовать таймеры
почитай про то как правильно использовать таймеры
чтобы понимать где нужен вейт а где таймер
вот две статьи
можешь посмотреть ещё статьи про связку таймер+хэш/рб но её юзать не советую т.к. стэк намного удобнее и быстрее
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.