04.03.2010, 16:32
|
#2
|
Пользователь
Регистрация: 04.03.2010
Возраст: 29
Сообщений: 11
Отблагодарили 3 раз(а)
Рейтинг мнений:
|
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 поставь координаты одной и второй враждующих баз, где должени воскреситься герой.
|
|
|