function Trig_CreepInterval_Conditions takes nothing returns boolean return udg_GameEnd == 0 endfunction function Se_Top takes nothing returns nothing call UnitAddAbilityBJ( 'A09Q', GetEnumUnit() ) call IssuePointOrderLoc( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_e00V_0080) ) endfunction function Se_Center takes nothing returns nothing call UnitAddAbilityBJ( 'A09R', GetEnumUnit() ) call IssuePointOrderLoc( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_unpl_0073) ) endfunction function Se_Bottom takes nothing returns nothing call UnitAddAbilityBJ( 'A09S', GetEnumUnit() ) call IssuePointOrderLoc( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_e00V_0081) ) endfunction function Sc_Top takes nothing returns nothing call UnitAddAbilityBJ( 'A09Q', GetEnumUnit() ) call IssuePointOrderLoc( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_e00V_0080) ) endfunction function Sc_Center takes nothing returns nothing call UnitAddAbilityBJ( 'A09R', GetEnumUnit() ) call IssuePointOrderLoc( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_etol_0006) ) endfunction function Sc_Bottom takes nothing returns nothing call UnitAddAbilityBJ( 'A09S', GetEnumUnit() ) call IssuePointOrderLoc( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_e00V_0080) ) endfunction function Trig_CreepInterval_Actions takes nothing returns nothing local integer sgc=udg_Creep_Siege_Counter local integer mec=udg_Creep_Count_Melee local integer rac=udg_Creep_Count_Range local integer sic=udg_Creep_Count_Siege // Top call CreateNUnitsAtLoc( mec, udg_SE_melee[udg_Creep_Status[0]], Player(0), GetRandomLocInRect(gg_rct_SE_Top_Melee), bj_UNIT_FACING ) call CreateNUnitsAtLoc( rac, udg_SE_range[udg_Creep_Status[6]], Player(0), GetRandomLocInRect(gg_rct_SE_Top_Range), bj_UNIT_FACING ) if ( sgc > 3 ) then call CreateNUnitsAtLoc( sic, udg_SE_Siege, Player(0), GetRandomLocInRect(gg_rct_SE_Top_Range), bj_UNIT_FACING ) endif call ForGroupBJ( GetUnitsInRectOfPlayer(gg_rct_SE_TopStartPoint, Player(0)), function Se_Top ) // Center call CreateNUnitsAtLoc( mec, udg_SE_melee[udg_Creep_Status[1]], Player(0), GetRandomLocInRect(gg_rct_SE_Center_Melee), bj_UNIT_FACING ) call CreateNUnitsAtLoc( rac, udg_SE_range[udg_Creep_Status[7]], Player(0), GetRandomLocInRect(gg_rct_SE_Center_Range), bj_UNIT_FACING ) if ( sgc > 3 ) then call CreateNUnitsAtLoc( sic, udg_SE_Siege, Player(0), GetRandomLocInRect(gg_rct_SE_Center_Range), bj_UNIT_FACING ) endif call ForGroupBJ( GetUnitsInRectOfPlayer(gg_rct_SE_CenterStartPoint, Player(0)), function Se_Center ) // Bottom call CreateNUnitsAtLoc( mec, udg_SE_melee[udg_Creep_Status[2]], Player(0), GetRandomLocInRect(gg_rct_SE_Bottom_Melee), bj_UNIT_FACING ) call CreateNUnitsAtLoc( rac, udg_SE_range[udg_Creep_Status[8]], Player(0), GetRandomLocInRect(gg_rct_SE_Bottom_Range), bj_UNIT_FACING ) if ( sgc > 3 ) then call CreateNUnitsAtLoc( sic, udg_SE_Siege, Player(0), GetRandomLocInRect(gg_rct_SE_Bottom_Range), bj_UNIT_FACING ) endif call ForGroupBJ( GetUnitsInRectOfPlayer(gg_rct_SE_BottomStartPoint, Player(0)), function Se_Bottom ) // Top call CreateNUnitsAtLoc( mec, udg_SC_melee[udg_Creep_Status[3]], Player(6), GetRandomLocInRect(gg_rct_SC_Top_Melee), bj_UNIT_FACING ) call CreateNUnitsAtLoc( rac, udg_SC_range[udg_Creep_Status[9]], Player(6), GetRandomLocInRect(gg_rct_SC_Top_Range), bj_UNIT_FACING ) if ( sgc > 3 ) then call CreateNUnitsAtLoc( sic, udg_SC_Siege, Player(6), GetRandomLocInRect(gg_rct_SC_Top_Range), bj_UNIT_FACING ) endif call ForGroupBJ( GetUnitsInRectOfPlayer(gg_rct_SC_TopStartPoint, Player(6)), function Sc_Top ) // Center call CreateNUnitsAtLoc( mec, udg_SC_melee[udg_Creep_Status[4]], Player(6), GetRandomLocInRect(gg_rct_SC_Center_Melee), bj_UNIT_FACING ) call CreateNUnitsAtLoc( rac, udg_SC_range[udg_Creep_Status[10]], Player(6), GetRandomLocInRect(gg_rct_SC_Center_Range), bj_UNIT_FACING ) if ( sgc > 3 ) then call CreateNUnitsAtLoc( sic, udg_SC_Siege, Player(6), GetRandomLocInRect(gg_rct_SC_Center_Range), bj_UNIT_FACING ) endif call ForGroupBJ( GetUnitsInRectOfPlayer(gg_rct_SC_CenterStartPoint, Player(6)), function Sc_Center ) // Bottom call CreateNUnitsAtLoc( mec, udg_SC_melee[udg_Creep_Status[5]], Player(6), GetRandomLocInRect(gg_rct_SC_Bottom_Melee), bj_UNIT_FACING ) call CreateNUnitsAtLoc( rac, udg_SC_range[udg_Creep_Status[11]], Player(6), GetRandomLocInRect(gg_rct_SC_Bottom_Range), bj_UNIT_FACING ) if ( sgc > 3 ) then call CreateNUnitsAtLoc( sic, udg_SC_Siege, Player(6), GetRandomLocInRect(gg_rct_SC_Bottom_Range), bj_UNIT_FACING ) endif call ForGroupBJ( GetUnitsInRectOfPlayer(gg_rct_SC_BottomStartPoint, Player(6)), function Sc_Bottom ) if ( sgc <= 3 ) then set udg_Creep_Siege_Counter = ( udg_Creep_Siege_Counter + 1 ) else set udg_Creep_Siege_Counter = 0 endif endfunction function Start_CreepInterval takes nothing returns nothing set gg_trg_CreepInterval = CreateTrigger( ) call TriggerRegisterTimerEventPeriodic( gg_trg_CreepInterval, 30.00 ) call TriggerAddCondition( gg_trg_CreepInterval, Condition( function Trig_CreepInterval_Conditions ) ) call TriggerAddAction( gg_trg_CreepInterval, function Trig_CreepInterval_Actions ) endfunction function InitTrig_CreepInterval takes nothing returns nothing endfunction