Сразу к делу, в функции Eating_TimeEnd локальная переменная u_c не получает значение юнита из функции Trig_Ramen_Actions, в чем проблема?
function Eating_TimeEnd takes nothing returns nothing
timer t = GetExpiredTimer()
integer id = GetHandleId(t)
unit u_c = LoadUnitHandle(h,id,0)
real tick = LoadReal(h,id,2)
call DisplayTextToForce( GetPlayersAll(), "По немногу подъезжает")
tick = tick - 0.02
//x_c--0.02
SetWidgetLife(u_c,GetWidgetLife(u_c)+20.00)
if tick <= 0.00 or GetUnitX(u_c) != LoadReal(h,id,0) or GetUnitY(u_c) != LoadReal(h,id,1) or GetWidgetLife(u_c) <= 0.405 or GetWidgetLife(u_c) >= GetUnitState(u_c, UNIT_STATE_MAX_LIFE) then
call DisplayTextToForce( GetPlayersAll(), I2S(id))
call DisplayTextToForce( GetPlayersAll(), R2S(tick))
call DisplayTextToForce( GetPlayersAll(), GetUnitName(LoadUnitHandle(h, id, 0)))
call DisplayTextToForce( GetPlayersAll(), R2S(LoadReal(h,id,0)))
call DisplayTextToForce( GetPlayersAll(), R2S(GetUnitX(u_c)))
call DisplayTextToForce( GetPlayersAll(), R2S(LoadReal(h,id,1)))
call DisplayTextToForce( GetPlayersAll(), R2S(GetUnitY(u_c)))
GroupRemoveUnit(Ramen_G, u_c)
endif
if not IsUnitInGroup(u_c,Ramen_G) then
DestroyEffect(LoadEffectHandle(h,id,0))
PauseTimer(t)
DestroyTimer(t)
FlushChildHashtable(h, id)
endif
u_c = null
endfunction
function Trig_Ramen_Actions takes nothing returns nothing
timer t = CreateTimer()
integer id = GetHandleId(t)
unit u_c = GetTriggerUnit()
real x_c = GetUnitX(u_c)
real y_c = GetUnitY(u_c)
effect e
if GetSpellAbilityId() == 'AI04' then
SaveReal(h, id, 0, x_c)
SaveReal(h, id, 1, y_c)
SaveReal(h, id, 2, 10.00)
SaveUnitHandle(h, id, 0, u_c)
e = AddSpecialEffectTarget("Abilities\\Spells\\Items\\ScrollOfRegeneration\\Scroll_Regen_Target.mdl", u_c, "chest")
SaveEffectHandle(h, id, 0, e)
GroupAddUnit(Ramen_G, u_c)
TriggerRegisterUnitEvent(Ramen_Trig, u_c, EVENT_UNIT_DAMAGED)
TimerStart(t, 0.02, true, function Eating_TimeEnd)
endif
u_c = null
e = null
endfunction
Отредактирован Diaboliko
Отредактирован Пушистый
P.S. Да и вопрос лучше под кат.
Отредактирован Hodor
Ты просто SaveReal(h, id, 0, x_c) перезаписываешь этим - SaveUnitHandle(h, id, 0, u_c) и этим - SaveEffectHandle(h, id, 0, e)
Отредактирован Hate
SaveUnitHandle(h, id, 0, u_c)
...
SaveEffectHandle(h, id, 0, e)
затирает хендл предыдущий
Hate:
Отредактирован PT153
Отредактирован Hodor
Был бы полноценный материал - не было бы таких ошибок.
Постоянно называете "отсталым/и", вместо того чтобы поправить