function Trig_Hero_Respawning_Copy_Func027C takes nothing returns boolean
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(0) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(1) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(2) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(3) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(4) ) ) then
return true
endif
return false
endfunction
function Trig_Hero_Respawning_Copy_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
if ( not Trig_Hero_Respawning_Copy_Func027C() ) then
return false
endif
return true
endfunction
function Trig_Hero_Respawning_Copy_Actions takes nothing returns nothing
local player owner = GetOwningPlayer(GetTriggerUnit())
local unit hero = GetTriggerUnit()
local location loc = GetRectCenter(gg_rct_Hero_Respawn_Region)
local integer time
if GetHeroLevel(GetTriggerUnit()) == 1 then
set time = 20
elseif GetHeroLevel(GetTriggerUnit()) == 2 then
set time = 25
elseif GetHeroLevel(GetTriggerUnit()) == 3 then
set time = 30
elseif GetHeroLevel(GetTriggerUnit()) == 4 then
set time = 35
elseif GetHeroLevel(GetTriggerUnit()) == 5 then
set time = 40
elseif GetHeroLevel(GetTriggerUnit()) == 6 then
set time = 45
elseif GetHeroLevel(GetTriggerUnit()) == 7 then
set time = 50
elseif GetHeroLevel(GetTriggerUnit()) == 8 then
set time = 55
else
set time = 60
endif
call DisplayTimedTextToForce( udg_All_Players, 10.00, " " )
call DisplayTimedTextToForce( udg_All_Players, 10.00, ( "|cff32cd32" + ( GetPlayerName(owner) + "039;s Hero has been killed!|r" ) ) )
call DisplayTimedTextToForce( udg_All_Players, 10.00, ( "|cff32cd32" + ( GetPlayerName(owner) + ( "039;s Hero will respawn in " + ( I2S( time) + " seconds!|r" ) ) ) ) )
call StartTimerBJ( udg_Respawn_Timer[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], false, I2R( time) )
call CreateTimerDialogBJ( udg_Respawn_Timer[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], ( "|cff32cd32" + "Hero respawn in:|r" ) )
set udg_Timer_Window[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetLastCreatedTimerDialogBJ()
call TimerDialogDisplayBJ( false, GetLastCreatedTimerDialogBJ() )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), GetOwningPlayer(GetTriggerUnit()))
call TriggerSleepAction( I2R( time) )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), owner)
call DestroyTimerDialogBJ( udg_Timer_Window[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), loc, 0 )
call ReviveHeroLoc( hero, loc, true )
set loc = null
set hero = null
set owner = null
endfunction
//===========================================================================
function InitTrig_Hero_Respawning takes nothing returns nothing
set gg_trg_Hero_Respawning = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Respawning, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_Hero_Respawning, Condition( function Trig_Hero_Respawning_Copy_Conditions ) )
call TriggerAddAction( gg_trg_Hero_Respawning, function Trig_Hero_Respawning_Copy_Actions )
endfunction
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(0) ) ) then
return true
endif
return GetOwningPlayer(GetTriggerUnit()) == Player(0)
function Trig_Hero_Respawning_Copy_Func027C takes nothing returns boolean
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(0) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(1) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(2) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(3) ) ) then
return true
endif
if ( ( GetOwningPlayer(GetTriggerUnit()) == Player(4) ) ) then
return true
endif
return false
endfunction
function Trig_Hero_Respawning_Copy_Func027C takes nothing returns boolean
return IsPlayerInForce(GetTriggerPlayer(), Team1)
endfunction
function Trig_Hero_Respawning_Copy_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
if ( not Trig_Hero_Respawning_Copy_Func027C() ) then
return false
endif
return true
endfunction
function Trig_Hero_Respawning_Copy_Conditions takes nothing returns boolean
return IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) and IsPlayerInForce(GetTriggerPlayer(), Team1)
endfunction
if GetHeroLevel(GetTriggerUnit()) == 1 then
set time = 20
elseif GetHeroLevel(GetTriggerUnit()) == 2 then
set time = 25
elseif GetHeroLevel(GetTriggerUnit()) == 3 then
set time = 30
elseif GetHeroLevel(GetTriggerUnit()) == 4 then
set time = 35
elseif GetHeroLevel(GetTriggerUnit()) == 5 then
set time = 40
elseif GetHeroLevel(GetTriggerUnit()) == 6 then
set time = 45
elseif GetHeroLevel(GetTriggerUnit()) == 7 then
set time = 50
elseif GetHeroLevel(GetTriggerUnit()) == 8 then
set time = 55
else
set time = 60
endif
set time = 15 + 5 * GetHeroLevel(GetTriggerUnit())
function Trig_Hero_Respawning_Copy_Conditions takes nothing returns boolean
return IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) and IsPlayerInForce(GetTriggerPlayer(), Team1)
endfunction
function Trig_Hero_Respawning_Copy_Actions takes nothing returns nothing
local player owner = GetOwningPlayer(GetTriggerUnit())
local unit hero = GetTriggerUnit()
local location loc = GetRectCenter(gg_rct_Hero_Respawn_Region)
local integer time = 15 + 5 * GetHeroLevel(hero)
call DisplayTimedTextToForce( udg_All_Players, 10.00, " " )
call DisplayTimedTextToForce( udg_All_Players, 10.00, ( "|cff32cd32" + ( GetPlayerName(owner) + "039;s Hero has been killed!|r" ) ) )
call DisplayTimedTextToForce( udg_All_Players, 10.00, ( "|cff32cd32" + ( GetPlayerName(owner) + ( "039;s Hero will respawn in " + ( I2S( time) + " seconds!|r" ) ) ) ) )
call StartTimerBJ( udg_Respawn_Timer[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], false, I2R( time) )
call CreateTimerDialogBJ( udg_Respawn_Timer[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], ( "|cff32cd32" + "Hero respawn in:|r" ) )
set udg_Timer_Window[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetLastCreatedTimerDialogBJ()
call TimerDialogDisplayBJ( false, GetLastCreatedTimerDialogBJ() )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), GetOwningPlayer(GetTriggerUnit()))
call TriggerSleepAction( I2R( time) )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), owner)
call DestroyTimerDialogBJ( udg_Timer_Window[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), loc, 0 )
call ReviveHeroLoc( hero, loc, true )
set loc = null
set hero = null
set owner = null
endfunction
//===========================================================================
function InitTrig_Hero_Respawning takes nothing returns nothing
set gg_trg_Hero_Respawning = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Respawning, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_Hero_Respawning, Condition( function Trig_Hero_Respawning_Copy_Conditions ) )
call TriggerAddAction( gg_trg_Hero_Respawning, function Trig_Hero_Respawning_Copy_Actions )
endfunction
set time = 15 + 5 * GetHeroLevel(GetTriggerUnit())
return GetOwningPlayer(GetTriggerUnit()) == Player(0)
return GetOwningPlayer(GetTriggerUnit()) == Player(1)
return GetOwningPlayer(GetTriggerUnit()) == Player(2)
That one doesn't work at all. If it did work, it wouldn't work with my map. If the hero that dies is level 56 or something, he'd be waiting forever to respawn.
function ...
local unit u = GetTriggerUnit()
local integer a = GetHeroLevel(u)
local real time
if a <= 8 then
set time = 15+(5*a)
else
set time = 60
endif
...
endfunction
Or - Any (Conditions) are true
Conditions
(Owner of (Attacking unit)) Equal to Player 1 (Red)
(Owner of (Attacking unit)) Equal to Player 2 (Blue)
(Owner of (Attacking unit)) Equal to Player 3 (Teal)
(Owner of (Attacking unit)) Equal to Player 4 (Purple)
(Owner of (Attacking unit)) Equal to Player 5 (Yellow)
local location l = "somelocation"
local group g = CreateGroup()
call RemoveLocation(l)
call DestroyGroup(g)
set l = null
set g = null
function yourcondition takes nothing returns boolean
local player p = GetOwningPlayer(GetAttacker())
return p==Player(0) or p==Player(1) or p==Player(2) or p==Player(3) or p==Player(4)
endfunction
You null everything except strings, players, integers and reals.
That includes units, forces, locations, groups, items etc.
function yourcondition takes nothing returns boolean
local player p = GetOwningPlayer(GetAttacker())
return p==Player(0) or p==Player(1) or p==Player(2) or p==Player(3) or p==Player(4)
endfunction
function yourcondition takes nothing returns boolean
local integer id = GetPlayerId(GetOwningPlayer(GetAttacker()))
return id<5
endfunction
function yourcondition takes nothing returns boolean
local integer id = GetPlayerId(GetOwningPlayer(GetAttacker()))
return id<5
endfunction
How does
return id<5
work?
DestroyEffect
DestroyForce
DestroyGroup
DestroyLeaderboard
DestroyLightning
DestroyTextTag
DestroyTimer
DestroyTrigger
function Trig_Hero_Respawning_Func027C takes nothing returns boolean
local integer id = GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
return id<5
endfunction
function Trig_Hero_Respawning_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
if ( not Trig_Hero_Respawning_Func027C() ) then
return false
endif
return true
endfunction
function Trig_Hero_Respawning_Actions takes nothing returns nothing
local location loc = GetRectCenter(gg_rct_Hero_Respawn_Region)
local player owner = GetOwningPlayer(GetTriggerUnit())
local unit hero = GetTriggerUnit()
local integer a = GetHeroLevel(hero)
local integer time
if a <= 9 then
set time = 15+(5*a)
else
set time = 60
endif
call DisplayTimedTextToForce( udg_All_Players, 10.00, " " )
call DisplayTimedTextToForce( udg_All_Players, 10.00, ( "|cff32cd32" + ( GetPlayerName(owner) + "039;s Hero has been killed!|r" ) ) )
call DisplayTimedTextToForce( udg_All_Players, 10.00, ( "|cff32cd32" + ( GetPlayerName(owner) + ( "039;s Hero will respawn in " + ( I2S( time) + " seconds!|r" ) ) ) ) )
call StartTimerBJ( udg_Respawn_Timer[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], false, I2R( time) )
call CreateTimerDialogBJ( udg_Respawn_Timer[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], ( "|cff32cd32" + "Hero respawn in:|r" ) )
set udg_Timer_Window[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetLastCreatedTimerDialogBJ()
call TimerDialogDisplayBJ( false, GetLastCreatedTimerDialogBJ() )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), GetOwningPlayer(GetTriggerUnit()))
call TriggerSleepAction( I2R( time) )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), owner)
call DestroyTimerDialogBJ( udg_Timer_Window[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), loc, 0 )
call ReviveHeroLoc( hero, loc, true )
call RemoveLocation( loc)
set loc = null
set hero = null
set owner = null
endfunction
//===========================================================================
function InitTrig_Hero_Respawning takes nothing returns nothing
set gg_trg_Hero_Respawning = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Respawning, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_Hero_Respawning, Condition( function Trig_Hero_Respawning_Conditions ) )
call TriggerAddAction( gg_trg_Hero_Respawning, function Trig_Hero_Respawning_Actions )
endfunction