Пытаюсь найти время, от начала События - Атакован, до вылета снаряда. Eсли скорость снаряда 0, то и начало События - Юнит получает урон
Функция принимает текущую скорость атаки БЕ и Анимацию точки повреждений из РО.
У меня находит только если скорость атаки выше 0.
Код
function AniSpeed takes integer AtSpeed,real AnSpeed returns real
local integer l = 0
local real data = AnSpeed
local real temp = AnSpeed
local real exit = AnSpeed
local boolean b = AtSpeed < 0
//call BJDebugMsg(I2S(R2I(AtSpeed)) + " " + R2S(temp))
if b then
set AtSpeed = AtSpeed - AtSpeed * 2
endif
if AtSpeed != 0 then
loop
set l = l + 1
if not b then
set temp = data - temp * (0.01 * l)
if exit > temp then
set exit = temp
else
set temp = exit
endif
else
//Если скорость нижe 0
//set temp = S2R(R2SW(data,0,2)) + S2R(R2SW(temp,0,2)) * (0.01 * l)
endif
exitwhen l >= AtSpeed
endloop
endif
//call BJDebugMsg(I2S(R2I(AtSpeed)) + " " + R2S(temp))
return temp
endfunction