// Returns colored player name string
function GetPlayerNameColored takes player p returns string
local playercolor col=GetPlayerColor(p)
local string r=GetPlayerName(p)
if col == PLAYER_COLOR_RED then
set r = "|CFFFF0303" + r + "|r"
elseif col == PLAYER_COLOR_BLUE then
set r = "|CFF0042FF" + r + "|r"
elseif col == PLAYER_COLOR_CYAN then
set r = "|CFF1CE6B9" + r + "|r"
elseif col == PLAYER_COLOR_PURPLE then
set r = "|CFF540081" + r + "|r"
elseif col == PLAYER_COLOR_YELLOW then
set r = "|CFFFFFC00" + r + "|r"
elseif col == PLAYER_COLOR_ORANGE then
set r = "|CFFFE8A0E" + r + "|r"
elseif col == PLAYER_COLOR_GREEN then
set r = "|CFF20C000" + r + "|r"
elseif col == PLAYER_COLOR_PINK then
set r = "|cffff80c0" + r + "|r"
elseif col == PLAYER_COLOR_LIGHT_GRAY then
set r = "|CFF959697" + r + "|r"
elseif col == PLAYER_COLOR_LIGHT_BLUE then
set r = "|CFF7FBFF1" + r + "|r"
elseif col == PLAYER_COLOR_AQUA then
set r = "|CFF106246" + r + "|r"
elseif col == PLAYER_COLOR_BROWN then
set r = "|CFF492A04" + r + "|r"
else
set r = ""
endif
set col = null
return r
endfunction
// Revives a hero either in Light or Dark base
function ReviveHeroInBase takes unit u, player p returns nothing
// Light Hero
if ( IsUnitAlly(u, Player(5)) == true ) then
call CameraSetupApplyForPlayer( true, gg_cam_Camera_001, p, 1.00 )
call ReviveHeroLoc( u, GetRectCenter(gg_rct_Region_012), true )
// Dark Hero
else
call CameraSetupApplyForPlayer( true, gg_cam_Camera_002, p, 1.00 )
call ReviveHeroLoc( u, GetRectCenter(gg_rct_Region_013), true )
endif
endfunction
// If triggering unit is a hero
function Trig_PlayerDies_Conditions takes nothing returns boolean
if ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == false ) then
return false
endif
return true
endfunction
// Display message and make neccessary steps
function Trig_PlayerDies_Actions takes nothing returns nothing
// Hero has been teamkilled
if ( IsUnitAlly(GetKillingUnitBJ(), GetOwningPlayer(GetDyingUnit())) == true ) then
call DisplayTextToForce( GetPlayersAll(), ( GetPlayerNameColored(GetTriggerPlayer()) + ( " has been teamkilled by " + GetPlayerNameColored(GetOwningPlayer(GetKillingUnitBJ())) + "!" ) ) )
call ReviveHeroInBase(GetDyingUnit(), GetTriggerPlayer())
// Hero has been creepkilled
elseif ( GetOwningPlayer(GetKillingUnitBJ()) == Player(12) ) then
call DisplayTextToForce( GetPlayersAll(), ( GetPlayerNameColored(GetTriggerPlayer()) + ( " has been killed by " + GetUnitName(GetKillingUnitBJ())) + "!" ) )
call AdjustPlayerStateBJ( ( -100 - ( GetUnitLevel(GetDyingUnit()) * 50 ) ), GetOwningPlayer(GetDyingUnit()), PLAYER_STATE_RESOURCE_GOLD )
call DisplayTextToForce( GetPlayersAll(), ( GetPlayerNameColored(GetTriggerPlayer()) + ( " has been killed by " + GetPlayerNameColored(GetOwningPlayer(GetKillingUnitBJ())) + "!" ) ) )
call StartTimerBJ( udg_Timer1, false, I2R(( GetUnitLevel(GetDyingUnit()) * 10 )) )
call CreateTimerDialogBJ( GetLastCreatedTimerBJ(), GetPlayerNameColored(GetTriggerPlayer()) )
call TriggerSleepAction( ( I2R(GetUnitLevel(GetDyingUnit())) * 10.00 ) )
call DestroyTimerDialogBJ( GetLastCreatedTimerDialogBJ() )
call ReviveHeroInBase(GetDyingUnit(), GetTriggerPlayer())
// Hero has been killed by enemy forces
else
call AdjustPlayerStateBJ( ( 200 + ( GetUnitLevel(GetDyingUnit()) * 50 ) ), GetOwningPlayer(GetKillingUnitBJ()), PLAYER_STATE_RESOURCE_GOLD )
call AdjustPlayerStateBJ( ( -100 - ( GetUnitLevel(GetDyingUnit()) * 50 ) ), GetOwningPlayer(GetDyingUnit()), PLAYER_STATE_RESOURCE_GOLD )
call DisplayTextToForce( GetPlayersAll(), ( GetPlayerNameColored(GetTriggerPlayer()) + ( " has been killed by " + GetPlayerNameColored(GetOwningPlayer(GetKillingUnitBJ())) + "!" ) ) )
call StartTimerBJ( udg_Timer1, false, I2R(( GetUnitLevel(GetDyingUnit()) * 10 )) )
call CreateTimerDialogBJ( GetLastCreatedTimerBJ(), GetPlayerNameColored(GetTriggerPlayer()) )
call TriggerSleepAction( ( I2R(GetUnitLevel(GetDyingUnit())) * 10.00 ) )
call DestroyTimerDialogBJ( GetLastCreatedTimerDialogBJ() )
call ReviveHeroInBase(GetDyingUnit(), GetTriggerPlayer())
endif
endfunction
//===========================================================================
function InitTrig_PlayerDies takes nothing returns nothing
set gg_trg_PlayerDies = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_PlayerDies, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_PlayerDies, Condition( function Trig_PlayerDies_Conditions ) )
call TriggerAddAction( gg_trg_PlayerDies, function Trig_PlayerDies_Actions )
endfunction