SirNikolas, так тоже работать не будет, я просто случаянно перепутал названия функций и прочее(сегодня можно)
Во!
Code
function GetClearTimer takes handle h returns boolean
local integer i=0
local boolean b=false
loop
exitwhen (i>8192)or(b)
set b=(udg_rTimer[i]!=null)
set i=i+1
endloop
set h=null
return b
endfunction
function GetTimerId takes nothing returns integer
local integer i=0
loop
exitwhen i>8192
if(h==udg_rTimer[i])then
return i
endif
set i=i+1
endloop
return -1
endfunction
function Revive1Conditions takes nothing returns boolean
local unit u=GetTriggerUnit()
if(GetPlayerSlotState(GetOwningPlayer(u))==PLAYER_SLOT_STATE_PLAYING)
set u=null
return true
endif
return false
endfunction
function Revive1Revive takes nothing returns nothing
local integer c=GetTimerId(GetExpiredTimer())
local integer i=GetPlayerId(GetOwningPlayer(udg_rHero[c]))
call ReviveHeroLoc(udg_rHero[c],GetStartLocationX(i),GetStartLocationY(i),true)
call DestroyTimer(udg_rTimer[c])
set rHero[c]=null
set rTimer[c]=null
endfunction
function Revive1Actions takes nothing returns nothing
local integer c=GetClearTimer()
set udg_rTimer[c]=CreateTimer()
set udg_rHero[c]=GetTriggerUnit()
call TimerStart(udg_rTimer[c],GetHeroLevel(udg_rHero[c])*50,false,function Revive1Revive)
endfunction
function InitTrig_Revive1 takes nothing returns nothing
local integer i=0
set gg_trg_Revive1=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterPlayerUnitEvent(gg_trg_Revive1,Player(i),EVENT_PLAYER_UNIT_DEATH,null)
set i=i+1
endloop
call TriggerAddCondition(gg_trg_Revive1,Condition(function Revive1Conditions))
call TriggerAddAction(gg_trg_Revive1,function Revive1Actions )
endfunction
Местами здесь.