Мне надо что бы когда воин умирал, появлялся таймер внизу таблицы рекордов сколько осталось до воскрешения,и что бы он показывался только для умирающего воина.
Добавлено (29-01-2011, 18:20) --------------------------------------------- Ей,есть кто живой?
function Trig_Hero_Die_Sen_Actions takes nothing returns nothing local unit u = GetTriggerUnit() local player p = GetOwningPlayer(u) local integer time = GetUnitLevel(u) * 3 local timer t = CreateTimer() local timerdialog td call StartTimerBJ(t, false, time) [color=orange]call CreateTimerDialogBJ(t, "Revive in:")[/color] если сделаю так то не работает CreateTimerDialog() set td = GetLastCreatedTimerDialogBJ() call TriggerSleepAction(time) if GetPlayerRace(p) == RACE_NIGHTELF then call ReviveHeroLoc(u, GetRectCenter(gg_rct_BaseCenterSen), true) else call ReviveHeroLoc(u, GetRectCenter(gg_rct_BaseCenterScor), true) endif call DestroyTimerDialog(td) endfunction
Добавлено (30-01-2011, 11:01) --------------------------------------------- Эх,ладно,я думаю ты не сможешь пока что разобраться в том коде,я сделал для тебя. Воскрешает умершего героя через 5 секунд,в стартовой позиции игрока
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) 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) call TimerStart(t,5.,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 exitwhen i==11 call TriggerRegisterPlayerUnitEvent(trig,Player(i),EVENT_PLAYER_UNIT_DEATH,null) set i=i+1 endloop call TriggerAddAction(trig,function Trig_Revive_Hero_Actions) set trig=null endfunction