Есть следующий код.
Code
function KillCurUnit takes unit CurUnit returns nothing
local unit NeedKillUnit = CurUnit
call PolledWait( 0.5 )
call DisplayTextToForce( GetPlayersAll(), " Выстрел " + GetUnitName(GetTriggerUnit()) + " в " + GetUnitName(NeedKillUnit) )
call UnitDamageTargetBJ( GetTriggerUnit(), NeedKillUnit, ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true)) * ( I2R(GetUnitAbilityLevelSwapped('A051', GetTriggerUnit())) * 10.00 ) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
call DisplayTextToForce( GetPlayersAll(), ( I2S(( GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true) * ( ( GetUnitAbilityLevelSwapped('A051', GetTriggerUnit()) * 10 ) * 1 ) )) + " " ) )
endfunction
function Trig_Drago4a_Func003Func001A takes nothing returns nothing
if ( Trig_Drago4a_Func003Func001Func001C() ) then
local unit Dummy
local unit NeedKillUnit
call CreateNUnitsAtLoc( 1, 'u007', GetTriggerPlayer(), GetUnitLoc(GetTriggerUnit()), bj_UNIT_FACING )
set Dummy = GetLastCreatedUnit()
set NeedKillUnit = GetEnumUnit()
call UnitAddAbilityBJ( 'A052', Dummy)
call IssueTargetOrderBJ( Dummy, "fingerofdeath", NeedKillUnit )
call KillCurUnit(NeedKillUnit)
call RemoveUnit( Dummy )
set Dummy = null
else
endif
endfunction
Есть спелл на основе Заклинания крови который ежесекундно рандомно поражает ближайшего юнита и наносит урон в зависимости от разума героя и прокачки спелла. Собственно это всё видно в коде.
Проблема в 1ой функции KillCurUnit, которая отвечает за задержку перед кастом пустышки заклинания для анимации урона и непосредственное поражения. Если из неё убрать call PolledWait( 0.5 ) Функция сработает до конца, но не будет видно анимации урона если этот урон добьет юнита. Если её оставить то функция не отработает до конца и не будет нанесен урон (даже информационного сообщения перед уроном). То есть будет фактически проигрываться чисто анимация атаки.
Целые числа тоже не катят, хотя та же функция задержки спокойно работает в цикле.
Неохота делать другую процедуру проигрывания анимации. Может кто то знает в чем проблема.