function Trig_EOT_Save_EOT takes timer t returns nothing
local integer i
local integer max
local integer unitid
if udg_EOT_Param_Ability > 0 and udg_EOT_Param_Ability_Level > 0 then
set i = 0
set max = udg_EOT_Effect_Search_Limit * 2
set unitid = GetHandleId(udg_EOT_Param_Target)
loop
if i > max then
set udg_EOT_Effect_Search_Limit = udg_EOT_Effect_Search_Limit + 1
set max = max + 2
endif
if LoadInteger(udg_EOT_Hashtable, unitid, i) == 0 then
exitwhen true
endif
set i = i + 2
endloop
call SaveInteger(udg_EOT_Hashtable, unitid, i, udg_EOT_Param_Ability)
call SaveTimerHandle(udg_EOT_Hashtable, unitid, i + 1, t)
endif
endfunction
function Trig_EOT_Destroy_EOT takes timer t returns nothing
local integer i = 0
local integer max = udg_EOT_Effect_Search_Limit*2
local integer timerid = GetHandleId(t)
local integer unitid = GetHandleId(udg_EOT_Param_Target)
loop
if i > max then
exitwhen true
endif
if LoadTimerHandle(udg_EOT_Hashtable, unitid, i + 1) == t then
exitwhen true
endif
set i = i + 2
endloop
loop
if i > max then
exitwhen true
endif
call SaveInteger(udg_EOT_Hashtable, unitid, i, LoadInteger(udg_EOT_Hashtable, unitid, i + 2))
call SaveTimerHandle(udg_EOT_Hashtable, unitid, i + 1, LoadTimerHandle(udg_EOT_Hashtable, unitid, i + 3))
if LoadInteger(udg_EOT_Hashtable, unitid, i + 2) == 0 then
exitwhen true
endif
set i = i + 2
endloop
endfunction
function Trig_EOT_Interval_Short takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer id = GetHandleId(t)
set udg_EOT_Param_Source = LoadUnitHandle( udg_EOT_Hashtable, id, 0)
set udg_EOT_Param_Target = LoadUnitHandle( udg_EOT_Hashtable, id, 1)
set udg_EOT_Param_Duration = LoadReal( udg_EOT_Hashtable, id, 2)
set udg_EOT_Param_Interval = LoadReal( udg_EOT_Hashtable, id, 3)
set udg_EOT_Param_Hidden = LoadBoolean( udg_EOT_Hashtable, id, 4)
set udg_EOT_Param_Buff = LoadInteger( udg_EOT_Hashtable, id, 5)
set udg_EOT_Param_Buff_Holder = LoadInteger( udg_EOT_Hashtable, id, 6)
set udg_EOT_Param_Damage = LoadReal( udg_EOT_Hashtable, id, 7)
set udg_EOT_Param_Attack_Type = ConvertAttackType(LoadInteger(udg_EOT_Hashtable, id, 8))
set udg_EOT_Param_Damage_Type = ConvertDamageType(LoadInteger(udg_EOT_Hashtable, id, 9))
set udg_EOT_Param_Ability = LoadInteger( udg_EOT_Hashtable, id, 10)
set udg_EOT_Param_Ability_Level = LoadInteger( udg_EOT_Hashtable, id, 11)
set udg_EOT_Param_Special_Effect = LoadEffectHandle( udg_EOT_Hashtable, id, 12)
set udg_EOT_Param_Type = LoadInteger( udg_EOT_Hashtable, id, 13)
set udg_EOT_Param_Positive = LoadBoolean( udg_EOT_Hashtable, id, 14)
set udg_EOT_Event_An_EOT_Has_Expired = 1
set udg_EOT_Event_An_EOT_Has_Expired = 0
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff)
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Ability)
call DestroyEffect(udg_EOT_Param_Special_Effect)
call Trig_EOT_Destroy_EOT(t)
call DestroyTimer(t)
set t = null
endfunction
function Trig_EOT_Interval takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer id = GetHandleId(t)
local unit oldtarget
local unit newtarget
set udg_EOT_Param_Source = LoadUnitHandle( udg_EOT_Hashtable, id, 0)
set udg_EOT_Param_Target = LoadUnitHandle( udg_EOT_Hashtable, id, 1)
set udg_EOT_Param_Duration = LoadReal( udg_EOT_Hashtable, id, 2)
set udg_EOT_Param_Interval = LoadReal( udg_EOT_Hashtable, id, 3)
set udg_EOT_Param_Hidden = LoadBoolean( udg_EOT_Hashtable, id, 4)
set udg_EOT_Param_Buff = LoadInteger( udg_EOT_Hashtable, id, 5)
set udg_EOT_Param_Buff_Holder = LoadInteger( udg_EOT_Hashtable, id, 6)
set udg_EOT_Param_Damage = LoadReal( udg_EOT_Hashtable, id, 7)
set udg_EOT_Param_Attack_Type = ConvertAttackType(LoadInteger(udg_EOT_Hashtable, id, 8))
set udg_EOT_Param_Damage_Type = ConvertDamageType(LoadInteger(udg_EOT_Hashtable, id, 9))
set udg_EOT_Param_Ability = LoadInteger( udg_EOT_Hashtable, id, 10)
set udg_EOT_Param_Ability_Level = LoadInteger( udg_EOT_Hashtable, id, 11)
set udg_EOT_Param_Special_Effect = LoadEffectHandle( udg_EOT_Hashtable, id, 12)
set udg_EOT_Param_Type = LoadInteger( udg_EOT_Hashtable, id, 13)
set udg_EOT_Param_Positive = LoadBoolean( udg_EOT_Hashtable, id, 14)
if (GetUnitAbilityLevel(udg_EOT_Param_Target, udg_EOT_Param_Buff) == 0 and udg_EOT_Param_Hidden == false) or udg_EOT_Param_Duration < 0. or udg_EOT_Param_Target == null then
if udg_EOT_Param_Duration < 0. then
set udg_EOT_Event_An_EOT_Has_Expired = 1
set udg_EOT_Event_An_EOT_Has_Expired = 0
elseif GetUnitAbilityLevel(udg_EOT_Param_Target, udg_EOT_Param_Buff) == 0 and udg_EOT_Param_Hidden == false then
set udg_EOT_Event_An_EOT_Is_Dispelled = 1
set udg_EOT_Event_An_EOT_Is_Dispelled = 0
endif
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff)
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Ability)
call DestroyEffect(udg_EOT_Param_Special_Effect)
call Trig_EOT_Destroy_EOT(t)
call DestroyTimer(t)
set t = null
return
endif
set udg_EOT_Param_Duration = udg_EOT_Param_Duration - udg_EOT_Param_Interval
set oldtarget = udg_EOT_Param_Target
call TriggerExecute(udg_EOT_Type_Triggers[udg_EOT_Param_Type])
if udg_EOT_Param_Duration <= 0. or udg_EOT_Param_Duration <= 0. then
set udg_EOT_Event_An_EOT_Has_Expired = 1
set udg_EOT_Event_An_EOT_Has_Expired = 0
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff)
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Ability)
call DestroyEffect(udg_EOT_Param_Special_Effect)
call Trig_EOT_Destroy_EOT(t)
call DestroyTimer(t)
set t = null
return
endif
if udg_EOT_Param_Target != oldtarget then
set newtarget = udg_EOT_Param_Target
set udg_EOT_Param_Target = oldtarget
call TriggerExecute(udg_EOT_Trigger_Destroy_EOT)
set udg_EOT_Param_Target = newtarget
call TriggerExecute(udg_EOT_Trigger_Create_EOT)
set newtarget = null
set t = null
return
endif
if udg_EOT_Param_Duration < udg_EOT_Param_Interval then
call TimerStart(t, udg_EOT_Param_Duration, false, function Trig_EOT_Interval_Short)
else
call TimerStart(t, udg_EOT_Param_Interval, false, function Trig_EOT_Interval)
endif
if udg_EOT_Param_Hidden == false then
call UnitAddAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff_Holder)
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff_Holder)
endif
if udg_EOT_Param_Ability > 0 then
call SetUnitAbilityLevel(udg_EOT_Param_Target, udg_EOT_Param_Ability, udg_EOT_Param_Ability_Level)
endif
call SaveUnitHandle( udg_EOT_Hashtable, id, 0, udg_EOT_Param_Source)
call SaveUnitHandle( udg_EOT_Hashtable, id, 1, udg_EOT_Param_Target)
call SaveReal( udg_EOT_Hashtable, id, 2, udg_EOT_Param_Duration)
call SaveReal( udg_EOT_Hashtable, id, 3, udg_EOT_Param_Interval)
call SaveBoolean( udg_EOT_Hashtable, id, 4, udg_EOT_Param_Hidden)
call SaveInteger( udg_EOT_Hashtable, id, 5, udg_EOT_Param_Buff)
call SaveInteger( udg_EOT_Hashtable, id, 6, udg_EOT_Param_Buff_Holder)
call SaveReal( udg_EOT_Hashtable, id, 7, udg_EOT_Param_Damage)
call SaveInteger( udg_EOT_Hashtable, id, 8, ConvertAttackTypeReverse(udg_EOT_Param_Attack_Type))
call SaveInteger( udg_EOT_Hashtable, id, 9, ConvertDamageTypeReverse(udg_EOT_Param_Damage_Type))
call SaveInteger( udg_EOT_Hashtable, id, 10, udg_EOT_Param_Ability)
call SaveInteger( udg_EOT_Hashtable, id, 11, udg_EOT_Param_Ability_Level)
call SaveEffectHandle( udg_EOT_Hashtable, id, 12, udg_EOT_Param_Special_Effect)
call SaveInteger( udg_EOT_Hashtable, id, 13, udg_EOT_Param_Type)
call SaveBoolean( udg_EOT_Hashtable, id, 14, udg_EOT_Param_Positive)
set oldtarget = null
set t = null
endfunction
function Trig_EOT_Create_EOT_Actions takes nothing returns boolean
local timer t
local integer id
local unit osource = udg_EOT_Param_Source
local unit otarget = udg_EOT_Param_Target
local real oduration = udg_EOT_Param_Duration
local real ointerval = udg_EOT_Param_Interval
local boolean ohidden = udg_EOT_Param_Hidden
local integer obuff = udg_EOT_Param_Buff
local integer obuffHolder = udg_EOT_Param_Buff_Holder
local real odamage = udg_EOT_Param_Damage
local attacktype oattackType = udg_EOT_Param_Attack_Type
local damagetype odamageType = udg_EOT_Param_Damage_Type
local integer oability = udg_EOT_Param_Ability
local integer oabilityLevel = udg_EOT_Param_Ability_Level
local effect oeffect = udg_EOT_Param_Special_Effect
local integer otype = udg_EOT_Param_Type
local integer oEOTHandler = udg_EOT_Param_Existing_EOT_Handler
local boolean opositive = udg_EOT_Param_Positive
if TriggerEvaluate(udg_EOT_Trigger_Get_Data) then
if udg_EOT_Param_Existing_EOT_Handler == udg_EOT_EEH_Override then
call TriggerExecute(udg_EOT_Trigger_Destroy_EOT)
elseif udg_EOT_Param_Existing_EOT_Handler == udg_EOT_EEH_Stack then
set oduration = oduration + TimerGetRemaining(udg_EOT_Timer) + udg_EOT_Param_Duration - udg_EOT_Param_Interval
call TriggerExecute(udg_EOT_Trigger_Destroy_EOT)
endif
set udg_EOT_Param_Source = osource
set udg_EOT_Param_Target = otarget
set udg_EOT_Param_Duration = oduration
set udg_EOT_Param_Interval = ointerval
set udg_EOT_Param_Hidden = ohidden
set udg_EOT_Param_Buff = obuff
set udg_EOT_Param_Buff_Holder = obuffHolder
set udg_EOT_Param_Damage = odamage
set udg_EOT_Param_Attack_Type = oattackType
set udg_EOT_Param_Damage_Type = odamageType
set udg_EOT_Param_Ability = oability
set udg_EOT_Param_Ability_Level = oabilityLevel
set udg_EOT_Param_Special_Effect = oeffect
set udg_EOT_Param_Type = otype
set udg_EOT_Param_Existing_EOT_Handler = oEOTHandler
set udg_EOT_Param_Positive = opositive
endif
if udg_EOT_Param_Duration <= 0. or udg_EOT_Param_Interval <= 0. then
set osource = null
set otarget = null
set oattackType = null
set odamageType = null
set oeffect = null
return false
endif
set t = CreateTimer()
set id = GetHandleId(t)
if udg_EOT_Param_Hidden == false then
call UnitAddAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff_Holder)
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff_Holder)
endif
if udg_EOT_Param_Ability > 0 and udg_EOT_Param_Ability_Level > 0 then
call UnitAddAbility(udg_EOT_Param_Target, udg_EOT_Param_Ability)
call SetUnitAbilityLevel(udg_EOT_Param_Target, udg_EOT_Param_Ability, udg_EOT_Param_Ability_Level)
endif
if udg_EOT_Param_Duration < udg_EOT_Param_Interval then
call TimerStart(t, udg_EOT_Param_Duration, false, function Trig_EOT_Interval_Short)
else
call TimerStart(t, udg_EOT_Param_Interval, false, function Trig_EOT_Interval)
endif
call SaveUnitHandle( udg_EOT_Hashtable, id, 0, udg_EOT_Param_Source)
call SaveUnitHandle( udg_EOT_Hashtable, id, 1, udg_EOT_Param_Target)
call SaveReal( udg_EOT_Hashtable, id, 2, udg_EOT_Param_Duration)
call SaveReal( udg_EOT_Hashtable, id, 3, udg_EOT_Param_Interval)
call SaveBoolean( udg_EOT_Hashtable, id, 4, udg_EOT_Param_Hidden)
call SaveInteger( udg_EOT_Hashtable, id, 5, udg_EOT_Param_Buff)
call SaveInteger( udg_EOT_Hashtable, id, 6, udg_EOT_Param_Buff_Holder)
call SaveReal( udg_EOT_Hashtable, id, 7, udg_EOT_Param_Damage)
call SaveInteger( udg_EOT_Hashtable, id, 8, ConvertAttackTypeReverse(udg_EOT_Param_Attack_Type))
call SaveInteger( udg_EOT_Hashtable, id, 9, ConvertDamageTypeReverse(udg_EOT_Param_Damage_Type))
call SaveInteger( udg_EOT_Hashtable, id, 10, udg_EOT_Param_Ability)
call SaveInteger( udg_EOT_Hashtable, id, 11, udg_EOT_Param_Ability_Level)
call SaveEffectHandle( udg_EOT_Hashtable, id, 12, udg_EOT_Param_Special_Effect)
call SaveInteger( udg_EOT_Hashtable, id, 13, udg_EOT_Param_Type)
call SaveBoolean( udg_EOT_Hashtable, id, 14, udg_EOT_Param_Positive)
call Trig_EOT_Save_EOT(t)
set udg_EOT_Event_An_EOT_Is_Created = 1
set udg_EOT_Event_An_EOT_Is_Created = 0
set udg_EOT_Param_Source = null
set udg_EOT_Param_Target = null
set udg_EOT_Param_Duration = 0
set udg_EOT_Param_Interval = 0
set udg_EOT_Param_Hidden = false
set udg_EOT_Param_Buff = 0
set udg_EOT_Param_Buff_Holder = 0
set udg_EOT_Param_Damage = 0
set udg_EOT_Param_Attack_Type = ConvertAttackType(0)
set udg_EOT_Param_Damage_Type = ConvertDamageType(0)
set udg_EOT_Param_Ability = 0
set udg_EOT_Param_Ability_Level = 0
set udg_EOT_Param_Special_Effect = null
set udg_EOT_Param_Type = 0
set udg_EOT_Param_Positive = false
set osource = null
set otarget = null
set oattackType = null
set odamageType = null
set oeffect = null
set t = null
return true
endfunction
function Trig_EOT_Destroy_EOT_Actions takes nothing returns boolean
if TriggerEvaluate(udg_EOT_Trigger_Get_Data) then
set udg_EOT_Event_An_EOT_Is_Destroyed = 1
set udg_EOT_Event_An_EOT_Is_Destroyed = 0
call Trig_EOT_Destroy_EOT(udg_EOT_Timer)
call DestroyEffect(udg_EOT_Param_Special_Effect)
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Buff)
call UnitRemoveAbility(udg_EOT_Param_Target, udg_EOT_Param_Ability)
call PauseTimer(udg_EOT_Timer)
call DestroyTimer(udg_EOT_Timer)
return true
endif
return false
endfunction
function Trig_EOT_Get_Data_Actions takes nothing returns boolean
local integer i
local integer max
local integer unitid
if GetUnitAbilityLevel(udg_EOT_Param_Target, udg_EOT_Param_Ability) <= 0 then
return false
endif
set i = 0
set max = udg_EOT_Effect_Search_Limit * 2
set unitid = GetHandleId(udg_EOT_Param_Target)
loop
if i > max then
exitwhen true
endif
if LoadInteger(udg_EOT_Hashtable, unitid, i) == 0 then
exitwhen true
endif
if LoadInteger(udg_EOT_Hashtable, unitid, i) == udg_EOT_Param_Ability then
set udg_EOT_Timer = LoadTimerHandle(udg_EOT_Hashtable, unitid, i + 1)
set i = GetHandleId(udg_EOT_Timer)
set udg_EOT_Param_Source = LoadUnitHandle( udg_EOT_Hashtable, i, 0)
set udg_EOT_Param_Target = LoadUnitHandle( udg_EOT_Hashtable, i, 1)
set udg_EOT_Param_Duration = LoadReal( udg_EOT_Hashtable, i, 2)
set udg_EOT_Param_Interval = LoadReal( udg_EOT_Hashtable, i, 3)
set udg_EOT_Param_Hidden = LoadBoolean( udg_EOT_Hashtable, i, 4)
set udg_EOT_Param_Buff = LoadInteger( udg_EOT_Hashtable, i, 5)
set udg_EOT_Param_Buff_Holder = LoadInteger( udg_EOT_Hashtable, i, 6)
set udg_EOT_Param_Damage = LoadReal( udg_EOT_Hashtable, i, 7)
set udg_EOT_Param_Attack_Type = ConvertAttackType(LoadInteger(udg_EOT_Hashtable, i, 8))
set udg_EOT_Param_Damage_Type = ConvertDamageType(LoadInteger(udg_EOT_Hashtable, i, 9))
set udg_EOT_Param_Ability = LoadInteger( udg_EOT_Hashtable, i, 10)
set udg_EOT_Param_Ability_Level = LoadInteger( udg_EOT_Hashtable, i, 11)
set udg_EOT_Param_Special_Effect = LoadEffectHandle( udg_EOT_Hashtable, i, 12)
set udg_EOT_Param_Type = LoadInteger( udg_EOT_Hashtable, i, 13)
set udg_EOT_Param_Positive = LoadBoolean( udg_EOT_Hashtable, i, 14)
return true
endif
set i = i + 2
endloop
return false
endfunction
function Trig_EOT_Save_Data_Actions takes nothing returns boolean
local integer i
local real r
local integer max
local integer unitid
if GetUnitAbilityLevel(udg_EOT_Param_Target, udg_EOT_Param_Ability) <= 0 then
return false
endif
set i = 0
set max = udg_EOT_Effect_Search_Limit * 2
set unitid = GetHandleId(udg_EOT_Param_Target)
loop
if i > max then
exitwhen true
endif
if LoadInteger(udg_EOT_Hashtable, unitid, i) == 0 then
exitwhen true
endif
if LoadInteger(udg_EOT_Hashtable, unitid, i) == udg_EOT_Param_Ability then
set udg_EOT_Timer = LoadTimerHandle(udg_EOT_Hashtable, unitid, i + 1)
set i = GetHandleId(udg_EOT_Timer)
call SaveUnitHandle( udg_EOT_Hashtable, i, 0, udg_EOT_Param_Source)
call SaveUnitHandle( udg_EOT_Hashtable, i, 1, udg_EOT_Param_Target)
call SaveReal( udg_EOT_Hashtable, i, 2, udg_EOT_Param_Duration)
call SaveReal( udg_EOT_Hashtable, i, 3, udg_EOT_Param_Interval)
call SaveBoolean( udg_EOT_Hashtable, i, 4, udg_EOT_Param_Hidden)
call SaveInteger( udg_EOT_Hashtable, i, 5, udg_EOT_Param_Buff)
call SaveInteger( udg_EOT_Hashtable, i, 6, udg_EOT_Param_Buff_Holder)
call SaveReal( udg_EOT_Hashtable, i, 7, udg_EOT_Param_Damage)
call SaveInteger( udg_EOT_Hashtable, i, 8, ConvertAttackTypeReverse(udg_EOT_Param_Attack_Type))
call SaveInteger( udg_EOT_Hashtable, i, 9, ConvertDamageTypeReverse(udg_EOT_Param_Damage_Type))
call SaveInteger( udg_EOT_Hashtable, i, 10, udg_EOT_Param_Ability)
call SaveInteger( udg_EOT_Hashtable, i, 11, udg_EOT_Param_Ability_Level)
call SaveEffectHandle( udg_EOT_Hashtable, i, 12, udg_EOT_Param_Special_Effect)
call SaveInteger( udg_EOT_Hashtable, i, 13, udg_EOT_Param_Type)
call SaveBoolean( udg_EOT_Hashtable, i, 14, udg_EOT_Param_Positive)
set r = udg_EOT_Param_Duration + TimerGetRemaining(udg_EOT_Timer) - udg_EOT_Param_Interval
if r < udg_EOT_Param_Duration and r < udg_EOT_Param_Interval then
call TimerStart(udg_EOT_Timer, r, false, function Trig_EOT_Interval_Short)
endif
return true
endif
set i = i + 2
endloop
return false
endfunction
function Trig_EOT_Remove_EOTs_Actions takes nothing returns nothing
local integer i = 0
local integer abilityid
local integer id = GetHandleId(udg_EOT_Param_Target)
local boolean hidden = udg_EOT_Param_Hidden
local boolean positive = udg_EOT_Param_Positive
local boolean negative = udg_EOT_Param_Negative
loop
set abilityid = LoadInteger(udg_EOT_Hashtable, id, i)
if abilityid == 0 then
exitwhen true
endif
if TriggerEvaluate(udg_EOT_Trigger_Get_Data) then
if (not hidden) or udg_EOT_Param_Hidden then
if (positive and udg_EOT_Param_Positive) or (negative and udg_EOT_Param_Negative) then
set udg_EOT_Event_An_EOT_Is_Dispelled = 1
set udg_EOT_Event_An_EOT_Is_Dispelled = 0
call TriggerExecute(udg_EOT_Trigger_Destroy_EOT)
endif
endif
else
set i = i + 2
endif
endloop
endfunction
function Trig_EOT_System_Initialization takes nothing returns boolean
set udg_EOT_Hashtable = InitHashtable()
set udg_EOT_EEH_Override = 0
set udg_EOT_EEH_Stack = 1
call TriggerExecute(gg_trg_EOT_Configuration)
set udg_EOT_Trigger_Create_EOT = CreateTrigger()
call TriggerAddCondition(udg_EOT_Trigger_Create_EOT, Filter(function Trig_EOT_Create_EOT_Actions))
call TriggerAddAction(udg_EOT_Trigger_Create_EOT, function Trig_EOT_Create_EOT_Actions)
set udg_EOT_Trigger_Destroy_EOT = CreateTrigger()
call TriggerAddCondition(udg_EOT_Trigger_Destroy_EOT, Filter(function Trig_EOT_Destroy_EOT_Actions))
call TriggerAddAction(udg_EOT_Trigger_Destroy_EOT, function Trig_EOT_Destroy_EOT_Actions)
set udg_EOT_Trigger_Get_Data = CreateTrigger()
call TriggerAddCondition(udg_EOT_Trigger_Get_Data, Filter(function Trig_EOT_Get_Data_Actions))
call TriggerAddAction(udg_EOT_Trigger_Get_Data, function Trig_EOT_Get_Data_Actions)
set udg_EOT_Trigger_Save_Data = CreateTrigger()
call TriggerAddCondition(udg_EOT_Trigger_Save_Data, Filter(function Trig_EOT_Save_Data_Actions))
call TriggerAddAction(udg_EOT_Trigger_Save_Data, function Trig_EOT_Save_Data_Actions)
set udg_EOT_Trigger_Remove_EOTs = CreateTrigger()
call TriggerAddAction(udg_EOT_Trigger_Remove_EOTs, function Trig_EOT_Remove_EOTs_Actions)
call DestroyTrigger(gg_trg_EOT_System)
return false
endfunction
function InitTrig_EOT_System takes nothing returns nothing
set gg_trg_EOT_System = CreateTrigger()
call TriggerAddCondition(gg_trg_EOT_System, Filter(function Trig_EOT_System_Initialization))
endfunction