Как сделать чтобы юнит замер, не двигался, не ресал хп, не бил, модель тоже замерла?

Принятый ответ

клоз
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
28
10 лет назад
2
PauseUnit(u,true)
4
5
10 лет назад
4
Только здоровье так не заморозится.
Но его можно заморозить триггерно.
Например, запомнить, сколько было до паузы, и сто раз в секунду делать столько, сколько было.
0
1
10 лет назад
Отредактирован Lehanru2
0
На ГУИ
Установить переменные
Caster(боевая единица) = тот,кого ты хочешь заморозить
Health(Реальная) - кол-во здоровья на данный момент
Effect (Спецэффект) = Льдина на юнита
=======1 триггер=================
1.Боевая единица - пауза ,true
  1. Обратный отсчет - завести таймер в( 0.01-0.03)
  2. Анимация - установить скорость анимации юнита = 0
  3. Ждать ( x секунд)
  4. Обратный отчет - пауза таймеру
  5. Установить скорость анимации юнита = 100%
7.Боевая единица - пауза , false
  1. Удалить спецэффект - 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 
4
21
10 лет назад
4
Lehanru2, -_- сделать нормальную функцию мама не позволила? зачем этот цирк с установкой переменных, раз уж взялся, так делай на совесть
6
28
10 лет назад
6
Pippetz, 100 раз в секунду?
вы нубы?
100 раз в секунду чекать юнита
при 10 юнитах игра зависнет
и по таймеру на юнита(
пичаль бида
2 комментария удалено
0
5
10 лет назад
0
Зачем по таймеру на юнита-то? Если их много должно быть, можно и всех в одном таймере чекать.
Но, бтв, ничего не зависнет, если компьютеры не доисторические, а код нормальный на JASS.
А с высоким периодом таймера красиво здоровье не заморозить.
0
28
10 лет назад
0
Pippetz, толку от 0,01 если экран обновляется каждые 0,025
0
28
10 лет назад
0
клоз
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.