Name | Type | is_array | initial_value |
ItemRandomizer | integer | No | |
SelecterP1 | unit | No | |
SelecterP10 | unit | No | |
SelecterP2 | unit | No | |
SelecterP3 | unit | No | |
SelecterP4 | unit | No | |
SelecterP5 | unit | No | |
SelecterP6 | unit | No | |
SelecterP7 | unit | No | |
SelecterP8 | unit | No | |
SelecterP9 | unit | No | |
UnitP1 | unit | No | |
UnitP10 | unit | No | |
UnitP2 | unit | No | |
UnitP3 | unit | No | |
UnitP4 | unit | No | |
UnitP5 | unit | No | |
UnitP6 | unit | No | |
UnitP7 | unit | No | |
UnitP8 | unit | No | |
UnitP9 | unit | No |
//##Start##
constant function HeroGlow_SpellId takes nothing returns integer
return 'A01M'
endfunction
//============================================================================================================
function HeroGlow_Do takes nothing returns nothing
call DestroyTimer(GetExpiredTimer())
call SetUnitColor( bj_ghoul[100], GetPlayerColor(GetOwningPlayer(bj_ghoul[100])))
endfunction
function HeroGlow_Control takes nothing returns nothing
local unit u=GetTriggerUnit()
local integer t
local integer i
local eventid e
if GetWidgetLife(u)<1 then
loop
exitwhen GetWidgetLife(u)>=1
if GetUnitState(u,UNIT_STATE_MAX_LIFE)==0 then
call ResetTrigger(GetTriggeringTrigger())
call DestroyTrigger(GetTriggeringTrigger())
set u=null
return
endif
call TriggerSleepAction(0)
endloop
return
endif
set e=GetTriggerEventId()
if e==EVENT_UNIT_SPELL_ENDCAST then
set i=GetUnitTypeId(u)
call SetUnitColor( u, GetPlayerColor(GetOwningPlayer(u)))
elseif e==EVENT_UNIT_SPELL_EFFECT then
set t=GetUnitTypeId(u)
set i=GetTriggerExecCount(GetTriggeringTrigger() )
loop
exitwhen GetTriggerExecCount( GetTriggeringTrigger() ) > i
call TriggerSleepAction(0)
endloop
if t!=GetUnitTypeId(u) and GetUnitState(u,UNIT_STATE_MAX_LIFE)!=0 then
set t=GetUnitTypeId(u)
loop
exitwhen GetUnitTypeId(u)!=t
call TriggerSleepAction(0)
endloop
call SetUnitColor( u, GetPlayerColor(GetOwningPlayer(u)))
endif
else
set bj_ghoul[100]=u
call TimerStart( CreateTimer(),0,false, function HeroGlow_Do)
endif
set u=null
set e=null
endfunction
function StartHeroGlow takes unit u returns nothing
local trigger t=CreateTrigger()
call SetUnitColor( u, GetPlayerColor(GetOwningPlayer(u)))
call TriggerRegisterUnitStateEvent(t,u,UNIT_STATE_LIFE,LESS_THAN,1)
call TriggerRegisterUnitStateEvent(t,u,UNIT_STATE_LIFE,GREATER_THAN_OR_EQUAL,1)
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_ENDCAST)
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_EFFECT)
call TriggerAddAction(t,function HeroGlow_Control)
set t=null
endfunction
function HeroGlowEnter_Actions takes nothing returns nothing
local unit u=GetTriggerUnit()
if GetUnitAbilityLevel(u,HeroGlow_SpellId())>0 then
call StartHeroGlow(u)
endif
set u=null
endfunction
//===========================================================================
function InitTrig_Hero_Glow takes nothing returns nothing
local group g=CreateGroup()
local unit u
call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,null)
loop
set u=FirstOfGroup(g)
exitwhen u==null
if GetUnitAbilityLevel(u,HeroGlow_SpellId())>0 then
call StartHeroGlow(u)
endif
call GroupRemoveUnit(g,u)
endloop
set gg_trg_Hero_Glow = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Hero_Glow, bj_mapInitialPlayableArea )
call TriggerAddAction( gg_trg_Hero_Glow, function HeroGlowEnter_Actions )
call DestroyGroup(g)
set g=null
set u=null
endfunction
//##End