Система воскрешает умершего героя на стартовой позиции игрока.Время воскрешения зависит от уровня героя * 3. Установка к себе в карту: 1.Скопировать триггер Revive Hero 2.Создать переменную Hash - тип Хеш-Таблица 3.Инициализировать переменную Hash, командой set udg_Hash=InitHashtavle() (Смотри триггер init) Скачать
Code
function Trig_Revive_Hero_Taimer takes nothing returns nothing local timer t=GetExpiredTimer() local integer ID=GetHandleId(t) local unit u=LoadUnitHandle(udg_Hash,ID,0) local player p=GetOwningPlayer(u) local timerdialog w=LoadTimerDialogHandle(udg_Hash,ID,2) //Воскрешает героя в стартовой локации,можно менять call ReviveHero(u,GetStartLocationX(GetPlayerStartLocation(p)),GetStartLocationY(GetPlayerStartLocation(p)),true ) if GetLocalPlayer()==GetOwningPlayer(u)then call PanCameraTo(GetUnitX(u),GetUnitY(u)) endif call PauseTimer(t) call DestroyTimer(t) call DestroyTimerDialog(w) call FlushChildHashtable(udg_Hash,ID) set t=null set u=null set p=null set w=null endfunction function Trig_Revive_Hero_Actions takes nothing returns nothing local timer t local integer ID local timerdialog w local unit u=GetTriggerUnit() if IsUnitType(u,UNIT_TYPE_HERO)==true then set t=CreateTimer() set ID=GetHandleId(t) set w=CreateTimerDialog(t) //Создает окно таймера в котором будет написанно имя игрока владельца умершего героя call TimerDialogSetTitle(w,GetPlayerName(GetOwningPlayer(u))) call TimerDialogDisplay(w,true) call SaveUnitHandle(udg_Hash,ID,0,u) call SaveTimerDialogHandle(udg_Hash,ID,2,w) //Запускает таймер,GetHeroLevel(u)*3. время через которое возродиться наш герой. call TimerStart(t,GetHeroLevel(u)*3.,true,function Trig_Revive_Hero_Taimer) set t=null set w=null endif set u=null endfunction function InitTrig_Revive_Hero takes nothing returns nothing local integer i=0 local trigger trig=CreateTrigger() loop call TriggerRegisterPlayerUnitEvent(trig,Player(i),EVENT_PLAYER_UNIT_DEATH,null) set i=i+1 exitwhen i==11 endloop call TriggerAddAction(trig,function Trig_Revive_Hero_Actions) set trig=null endfunction
Добавлено (13-01-2011, 18:56) --------------------------------------------- Dreii, Но для новичков пойдёт, думаю перенисти один триггер они дадумаються
в своей старой АоС я столкнулся с проблемой,что респаун который был у меня(ГУИ) багнутый. 100500 ифоф,да еще если погибне т 2 и более то 90% что окошечко останеться навсегда,поэтому изпробовав 10 систем,пришел к выводу что легче написать саммоу.