На ГУИ
Установить переменные
Caster(боевая единица) = тот,кого ты хочешь заморозить
Health(Реальная) - кол-во здоровья на данный момент
Effect (Спецэффект) = Льдина на юнита
=======1 триггер=================
1.Боевая единица - пауза ,true
Обратный отсчет - завести таймер в( 0.01-0.03)
Анимация - установить скорость анимации юнита = 0
Ждать ( x секунд)
Обратный отчет - пауза таймеру
Установить скорость анимации юнита = 100%
7.Боевая единица - пауза , false
Удалить спецэффект - Effect
==========2 триггер ========================
Событие - таймер истекает
Действие : Установить здоровье юнита - Caster = Health
На Джасс
function HP takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer d = GetHandleId(t)
local unit u = LoadUnitHandle(udg_hash,d,0)
local real hp = LoadReal(udg_hash,d,1)
if GetUnitState(u,UNIT_STATE_LIFE) > 0.46 then
call SetUnitState(u,UNIT_STATE_LIFE,hp)
endif
set t = null
set u = null
endfunction
function Zamorozka takes nothing returns nothing
local unit u = //ТВОЙ ЮНИТ
local real hp = GetUnitState(u,UNIT_STATE_LIFE)
local effect ef = AddSpecialEffectTarget("Лёд",u,"origin")
local timer t = CreateTimer()
local integer d = GetHandleId(t)
call PauseUnit(u,true)
call SetUnitTimeScale(u,0)
call SaveUnitHandle(udg_hash,d,0,u)
call SaveReal(udg_hash,d,1,hp)
call TimerStart(t,0.01,true,function HP)
call TriggerSleepAction(Твое время)
call DestroyTimer(t)
call DestroyEffect(ef)
cset u = null
set t = null
set ef = null
endfunction
Ред. Lehanru2
» WarCraft 3 / Как заморозить юнита?
Установить переменные
Caster(боевая единица) = тот,кого ты хочешь заморозить
Health(Реальная) - кол-во здоровья на данный момент
Effect (Спецэффект) = Льдина на юнита
=======1 триггер=================
1.Боевая единица - пауза ,true
Событие - таймер истекает
Действие : Установить здоровье юнита - Caster = Health
На Джасс