Показать сообщение отдельно
Непрочитано 04.03.2010, 16:32   #2
Аватар для [DUОS]
Пользователь

По умолчанию Re: Воскрешение героев как в DotA

Если воскрешать героев, то требуется MUI-воскрешение, т.е. сразу нескольких героев. Для этого требуется использовать локальные переменные и язык программирования JASS. Например, триггер называется HeroResp. Тогда воскрешалка будет такой:

function Trig_HeroResp_Conditions takes nothing returns boolean
return IsUnitType(GetDyingUnit(),UNIT_TYPE_HERO) == true
endfunction

function Trig_HeroResp_Actions takes nothing returns nothing
local unit u = GetDyingUnit()
local timer t = CreateTimer()
local timerdialog td = CreateTimerDialog(t)
local real wait = 60
call TimerStart(t,wait,false,null)
call TimerDialogSetTitle(td,"Respawn in:")
if GetLocalPlayer() == GetOwningPlayer(u) then
call TimerDialogDisplay(td,true)
endif
call TriggerSleepAction(wait)
call TimerDialogDisplay(td,false)
if IsUnitAlly(GetOwningPlayer(u),Player(0)) == true then
call ReviveHero(u,x1,y1,true)
else
call ReviveHero(u,x2,y2,true)
endif
call DestroyTimerDialog(td)
call DestroyTimer(t)
set td = null
set t = null
set u = null
endfunction

//================================================== ===========
function InitTrig_HeroResp takes nothing returns nothing
set gg_trg_HeroResp = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_HeroResp,EVEN T_PLAYER_UNIT_DEATH)
call TriggerAddCondition(gg_trg_HeroResp,Condition(func tion Trig_HeroResp_Conditions))
call TriggerAddAction(gg_trg_HeroResp,function Trig_HeroResp_Actions)
endfunction


Вместо x1,y1,x2,y2 поставь координаты одной и второй враждующих баз, где должени воскреситься герой.
[DUОS] вне форума Ответить с цитированием
Сказали спасибо: