//TESH.scrollpos=0
//TESH.alwaysfold=0
Name | Type | is_array | initial_value |
boolean01 | boolean | No | |
camerasetup01 | camerasetup | No | |
destructable01 | destructable | No | |
destructable02 | destructable | No | |
fogmodifier01 | fogmodifier | No | |
force01 | force | No | |
force02 | force | No | |
group01 | group | No | |
integer01 | integer | No | |
integer02 | integer | No | |
integer03 | integer | No | |
integer04 | integer | No | |
integer05 | integer | No | |
integer06 | integer | No | |
integer07 | integer | No | |
integer08 | integer | No | |
integer09 | integer | No | |
integer10 | integer | No | |
integer11 | integer | No | |
integer12 | integer | No | |
integer13 | integer | No | |
integer14 | integer | No | |
integer15 | integer | No | |
integer16 | integer | No | |
location01 | location | No | |
quest01 | quest | No | |
real01 | real | No | |
real02 | real | No | |
real03 | real | No | |
real04 | real | No | |
real05 | real | No | |
real06 | real | No | |
rect01 | rect | No | |
rect02 | rect | No | |
rect03 | rect | No | |
rect04 | rect | No | |
rect05 | rect | No | |
rect06 | rect | No | |
rect07 | rect | No | |
rect08 | rect | No | |
rect09 | rect | No | |
rect10 | rect | No | |
rect100 | rect | No | |
rect101 | rect | No | |
rect102 | rect | No | |
rect103 | rect | No | |
rect104 | rect | No | |
rect105 | rect | No | |
rect106 | rect | No | |
rect107 | rect | No | |
rect108 | rect | No | |
rect109 | rect | No | |
rect11 | rect | No | |
rect110 | rect | No | |
rect111 | rect | No | |
rect112 | rect | No | |
rect113 | rect | No | |
rect114 | rect | No | |
rect115 | rect | No | |
rect116 | rect | No | |
rect117 | rect | No | |
rect118 | rect | No | |
rect119 | rect | No | |
rect12 | rect | No | |
rect13 | rect | No | |
rect14 | rect | No | |
rect15 | rect | No | |
rect16 | rect | No | |
rect17 | rect | No | |
rect18 | rect | No | |
rect19 | rect | No | |
rect20 | rect | No | |
rect21 | rect | No | |
rect22 | rect | No | |
rect23 | rect | No | |
rect24 | rect | No | |
rect25 | rect | No | |
rect26 | rect | No | |
rect27 | rect | No | |
rect28 | rect | No | |
rect29 | rect | No | |
rect30 | rect | No | |
rect31 | rect | No | |
rect32 | rect | No | |
rect33 | rect | No | |
rect34 | rect | No | |
rect35 | rect | No | |
rect36 | rect | No | |
rect37 | rect | No | |
rect38 | rect | No | |
rect39 | rect | No | |
rect40 | rect | No | |
rect41 | rect | No | |
rect42 | rect | No | |
rect43 | rect | No | |
rect44 | rect | No | |
rect45 | rect | No | |
rect46 | rect | No | |
rect47 | rect | No | |
rect48 | rect | No | |
rect49 | rect | No | |
rect50 | rect | No | |
rect51 | rect | No | |
rect52 | rect | No | |
rect53 | rect | No | |
rect54 | rect | No | |
rect55 | rect | No | |
rect56 | rect | No | |
rect57 | rect | No | |
rect58 | rect | No | |
rect59 | rect | No | |
rect60 | rect | No | |
rect61 | rect | No | |
rect62 | rect | No | |
rect63 | rect | No | |
rect64 | rect | No | |
rect65 | rect | No | |
rect66 | rect | No | |
rect67 | rect | No | |
rect68 | rect | No | |
rect69 | rect | No | |
rect70 | rect | No | |
rect71 | rect | No | |
rect72 | rect | No | |
rect73 | rect | No | |
rect74 | rect | No | |
rect75 | rect | No | |
rect76 | rect | No | |
rect77 | rect | No | |
rect78 | rect | No | |
rect79 | rect | No | |
rect80 | rect | No | |
rect81 | rect | No | |
rect82 | rect | No | |
rect83 | rect | No | |
rect84 | rect | No | |
rect85 | rect | No | |
rect86 | rect | No | |
rect87 | rect | No | |
rect88 | rect | No | |
rect89 | rect | No | |
rect90 | rect | No | |
rect91 | rect | No | |
rect92 | rect | No | |
rect93 | rect | No | |
rect94 | rect | No | |
rect95 | rect | No | |
rect96 | rect | No | |
rect97 | rect | No | |
rect98 | rect | No | |
rect99 | rect | No | |
rects01 | rect | Yes | |
rects02 | rect | Yes | |
rects03 | rect | Yes | |
sound01 | sound | No | |
sound02 | sound | No | |
sound03 | sound | No | |
sound04 | sound | No | |
sound05 | sound | No | |
sound06 | sound | No | |
sound07 | sound | No | |
sound08 | sound | No | |
sound09 | sound | No | |
sound10 | sound | No | |
terraindeformation01 | terraindeformation | No | |
trigger01 | trigger | No | |
trigger02 | trigger | No | |
trigger03 | trigger | No | |
trigger04 | trigger | No | |
trigger05 | trigger | No | |
trigger06 | trigger | No | |
trigger07 | trigger | No | |
trigger08 | trigger | No | |
trigger09 | trigger | No | |
trigger10 | trigger | No | |
trigger11 | trigger | No | |
trigger12 | trigger | No | |
trigger13 | trigger | No | |
trigger14 | trigger | No | |
trigger15 | trigger | No | |
trigger16 | trigger | No | |
trigger17 | trigger | No | |
trigger18 | trigger | No | |
trigger19 | trigger | No | |
trigger20 | trigger | No | |
trigger21 | trigger | No | |
trigger22 | trigger | No | |
trigger23 | trigger | No | |
trigger24 | trigger | No | |
trigger25 | trigger | No | |
trigger26 | trigger | No | |
trigger27 | trigger | No | |
trigger28 | trigger | No | |
trigger29 | trigger | No | |
trigger30 | trigger | No | |
trigger31 | trigger | No | |
trigger32 | trigger | No | |
trigger33 | trigger | No | |
trigger34 | trigger | No | |
trigger35 | trigger | No | |
trigger36 | trigger | No | |
trigger37 | trigger | No | |
trigger38 | trigger | No | |
trigger39 | trigger | No | |
trigger40 | trigger | No | |
trigger41 | trigger | No | |
trigger42 | trigger | No | |
trigger43 | trigger | No | |
trigger44 | trigger | No | |
trigger45 | trigger | No | |
trigger46 | trigger | No | |
trigger47 | trigger | No | |
trigger48 | trigger | No | |
trigger49 | trigger | No | |
trigger50 | trigger | No | |
trigger51 | trigger | No | |
trigger52 | trigger | No | |
trigger53 | trigger | No | |
trigger54 | trigger | No | |
trigger55 | trigger | No | |
trigger56 | trigger | No | |
trigger57 | trigger | No | |
trigger58 | trigger | No | |
trigger59 | trigger | No | |
trigger60 | trigger | No | |
trigger61 | trigger | No | |
trigger62 | trigger | No | |
trigger63 | trigger | No | |
trigger64 | trigger | No | |
trigger65 | trigger | No | |
trigger66 | trigger | No | |
trigger67 | trigger | No | |
trigger68 | trigger | No | |
trigger69 | trigger | No | |
trigger70 | trigger | No | |
trigger71 | trigger | No | |
trigger72 | trigger | No | |
trigger73 | trigger | No | |
trigger74 | trigger | No | |
trigger75 | trigger | No | |
trigger76 | trigger | No | |
trigger77 | trigger | No | |
trigger78 | trigger | No | |
trigger79 | trigger | No | |
trigger80 | trigger | No | |
trigger81 | trigger | No | |
trigger82 | trigger | No | |
trigger83 | trigger | No | |
trigger84 | trigger | No | |
trigger85 | trigger | No | |
unit01 | unit | No | |
unit02 | unit | No | |
unit03 | unit | No | |
unit04 | unit | No | |
unit05 | unit | No | |
unit06 | unit | No | |
unit07 | unit | No | |
unit08 | unit | No | |
unit09 | unit | No | |
unit10 | unit | No | |
unit11 | unit | No | |
unit12 | unit | No | |
unit13 | unit | No | |
unit14 | unit | No | |
unit15 | unit | No | |
unit16 | unit | No | |
unit17 | unit | No | |
unit18 | unit | No | |
unit19 | unit | No | |
unit20 | unit | No | |
unit21 | unit | No | |
unit22 | unit | No | |
unit23 | unit | No | |
unit24 | unit | No | |
unit25 | unit | No | |
unit26 | unit | No | |
unit27 | unit | No | |
weathereffect01 | weathereffect | No | |
weathereffect02 | weathereffect | No |
//TESH.scrollpos=0
//TESH.alwaysfold=0
//==============================================================================
// ABC -- STRUCT ATTACHMENT SYSTEM BY COHADAR -- v6.1
//==============================================================================
//==============================================================================
// Quick function index:
//==============================================================================
//
// ----------------------------------------------------------------------
// Set Functions - these functions attach struct to a handle
// ----------------------------------------------------------------------
// SetTimerStructA(timer, struct)
// SetTimerStructB(timer, struct)
// SetTimerStructC(timer, struct)
//
// SetTriggerStructA(trigger, struct)
// SetTriggerStructB(trigger, struct)
// SetTriggerStructC(trigger, struct)
//
// SetDialogStructA(dialog, struct)
// SetDialogStructB(dialog, struct)
// SetDialogStructC(dialog, struct)
//
// SetRegionStructA(region, struct)
// SetRegionStructB(region, struct)
// SetRegionStructC(region, struct)
//
// ----------------------------------------------------------------------
// Get Functions - these functions retrieve attached structs
// ----------------------------------------------------------------------
// GetTimerStructA(timer) -> struct
// GetTimerStructB(timer) -> struct
// GetTimerStructC(timer) -> struct
//
// GetTriggerStructA(trigger) -> struct
// GetTriggerStructB(trigger) -> struct
// GetTriggerStructC(trigger) -> struct
//
// GetDialogStructA(dialog) -> struct
// GetDialogStructB(dialog) -> struct
// GetDialogStructC(dialog) -> struct
//
// GetRegionStructA(region) -> struct
// GetRegionStructB(region) -> struct
// GetRegionStructC(region) -> struct
//
// ----------------------------------------------------------------------
// Clear Functions - these functions clear and return attached value
// ----------------------------------------------------------------------
// ClearTimerStructA(timer) -> struct
// ClearTimerStructB(timer) -> struct
// ClearTimerStructC(timer) -> struct
//
// ClearTriggerStructA(trigger) -> struct
// ClearTriggerStructB(trigger) -> struct
// ClearTriggerStructC(trigger) -> struct
//
// ClearDialogStructA(dialog) -> struct
// ClearDialogStructB(dialog) -> struct
// ClearDialogStructC(dialog) -> struct
//
// ClearRegionStructA(region) -> struct
// ClearRegionStructB(region) -> struct
// ClearRegionStructC(region) -> struct
//
//==============================================================================
//==============================================================================
// DOCUMENTATION:
//==============================================================================
//
// PURPOUSE OF ABC:
// * Type safe handle attaching.
//
// * Currently supported handle types are timer, trigger, dialog and region
//
// PROS:
// * ABC is faster than gamecache based systems.
//
// * You can attach up to 3 structs on the same handle
//
// * System reports collision, and clearing of non-existent value.
//
// * This system will work even if your map leaks
// and will NOT slow down because of it.
//
// CONS:
// * you must manually clear the stored value - REMEMBER THIS RULE!!!
// Don't forget to use Clear functions
//
// DETAILS:
// * You can use Get to check if struct is attached to handle
// It will return 0 if it is not.
//
// * ABC will not interfere with other attachment systems
// You can freely use any other system alongside ABC
//
// * For unit attaching I recommend using PUI
//
// SPECIAL THANKS TO:
// * NagelBagel - for finding errors in versions 4.3 and 4.4
// * Here-b-Trollz - for testing ABC and for making cool spells with it.
// * Toadcop - for being pain in the ass and for pushing me to improve ABC.
// * emjlr3 - for pointing out the need for non-generic trigger attachments
// * PandaMine - I found a bug in ABC by examining his HSAS vs ABC test
// * All those people out there who use and support my systems
// Thank you guys.
//
// HOW TO IMPORT:
// * Just create a trigger named ABC
// * convert it to text and replace the whole trigger text with this one
//
//==============================================================================
//==============================================================================
// Macro function cores
//==============================================================================
//------------------------------------------------------------------------------
//! textmacro ABC_Set takes X, NAME, TYPE
local integer i = GetHandleId(key)
set i = i - (i / HASH) * HASH
if $NAME$Key$X$[i] == null then
set $NAME$Key$X$[i] = key
set $NAME$Value$X$[i] = value
else
debug set $NAME$Collision$X$[i] = $NAME$Collision$X$[i] + 1
debug if $NAME$MaxCollision$X$ < $NAME$Collision$X$[i] then
debug set $NAME$MaxCollision$X$ = $NAME$Collision$X$[i]
debug call BJDebugMsg("|cFFFF00FFWarning: Set$NAME$Struct$X$("+I2S(GetHandleId(key))+", "+I2S(value)+") - index: "+I2S(i)+", collision: "+I2S($NAME$MaxCollision$X$))
debug endif
call SaveInteger($NAME$Hash, '$X$', GetHandleId(key), value)
endif
//! endtextmacro
//------------------------------------------------------------------------------
//! textmacro ABC_Get takes X, NAME, TYPE
local integer i = GetHandleId(key)
set i = i - (i / HASH) * HASH
if $NAME$Key$X$[i] == key then
return $NAME$Value$X$[i]
else
return LoadInteger($NAME$Hash, '$X$', GetHandleId(key))
endif
//! endtextmacro
//------------------------------------------------------------------------------
//! textmacro ABC_Clear takes X, NAME, TYPE
local integer ret
local integer i = GetHandleId(key)
set i = i - (i / HASH) * HASH
if $NAME$Key$X$[i] == key then
set ret = $NAME$Value$X$[i]
set $NAME$Key$X$[i] = null
set $NAME$Value$X$[i] = 0
else
if HaveSavedInteger($NAME$Hash, '$X$', GetHandleId(key)) then
debug set $NAME$Collision$X$[i] = $NAME$Collision$X$[i] - 1
set ret = LoadInteger($NAME$Hash, '$X$', GetHandleId(key))
call RemoveSavedInteger($NAME$Hash, '$X$', GetHandleId(key))
else
call BJDebugMsg("|cFFFF0000ERROR: Clear$NAME$Struct$X$("+I2S(GetHandleId(key))+") - clear attempt on bad key")
set ret = 0
endif
endif
return ret
//! endtextmacro
//==============================================================================
library ABC initializer Init
globals
private constant integer HASH = 8191
private timer array TimerKeyA
private timer array TimerKeyB
private timer array TimerKeyC
private trigger array TriggerKeyA
private trigger array TriggerKeyB
private trigger array TriggerKeyC
private dialog array DialogKeyA
private dialog array DialogKeyB
private dialog array DialogKeyC
private region array RegionKeyA
private region array RegionKeyB
private region array RegionKeyC
private integer array TimerValueA
private integer array TimerValueB
private integer array TimerValueC
private integer array TriggerValueA
private integer array TriggerValueB
private integer array TriggerValueC
private integer array DialogValueA
private integer array DialogValueB
private integer array DialogValueC
private integer array RegionValueA
private integer array RegionValueB
private integer array RegionValueC
private integer array TimerCollisionA
private integer array TimerCollisionB
private integer array TimerCollisionC
private integer array TriggerCollisionA
private integer array TriggerCollisionB
private integer array TriggerCollisionC
private integer array DialogCollisionA
private integer array DialogCollisionB
private integer array DialogCollisionC
private integer array RegionCollisionA
private integer array RegionCollisionB
private integer array RegionCollisionC
private integer TimerMaxCollisionA = 0
private integer TimerMaxCollisionB = 0
private integer TimerMaxCollisionC = 0
private integer TriggerMaxCollisionA = 0
private integer TriggerMaxCollisionB = 0
private integer TriggerMaxCollisionC = 0
private integer DialogMaxCollisionA = 0
private integer DialogMaxCollisionB = 0
private integer DialogMaxCollisionC = 0
private integer RegionMaxCollisionA = 0
private integer RegionMaxCollisionB = 0
private integer RegionMaxCollisionC = 0
private hashtable TimerHash
private hashtable TriggerHash
private hashtable DialogHash
private hashtable RegionHash
endglobals
//==============================================================================
// Collision check functions
//==============================================================================
//------------------------------------------------------------------------------
function GetTimerCollisionA takes nothing returns integer
return TimerMaxCollisionA
endfunction
//------------------------------------------------------------------------------
function GetTimerCollisionB takes nothing returns integer
return TimerMaxCollisionB
endfunction
//------------------------------------------------------------------------------
function GetTimerCollisionC takes nothing returns integer
return TimerMaxCollisionC
endfunction
//------------------------------------------------------------------------------
function GetTriggerCollisionA takes nothing returns integer
return TriggerMaxCollisionA
endfunction
//------------------------------------------------------------------------------
function GetTriggerCollisionB takes nothing returns integer
return TriggerMaxCollisionB
endfunction
//------------------------------------------------------------------------------
function GetTriggerCollisionC takes nothing returns integer
return TriggerMaxCollisionC
endfunction
//------------------------------------------------------------------------------
function GetDialogCollisionA takes nothing returns integer
return DialogMaxCollisionA
endfunction
//------------------------------------------------------------------------------
function GetDialogCollisionB takes nothing returns integer
return DialogMaxCollisionB
endfunction
//------------------------------------------------------------------------------
function GetDialogCollisionC takes nothing returns integer
return DialogMaxCollisionC
endfunction
//------------------------------------------------------------------------------
function GetRegionCollisionA takes nothing returns integer
return RegionMaxCollisionA
endfunction
//------------------------------------------------------------------------------
function GetRegionCollisionB takes nothing returns integer
return RegionMaxCollisionB
endfunction
//------------------------------------------------------------------------------
function GetRegionCollisionC takes nothing returns integer
return RegionMaxCollisionC
endfunction
//==============================================================================
// Set functions
//==============================================================================
//------------------------------------------------------------------------------
function SetTimerStructA takes timer key, integer value returns nothing
//! runtextmacro ABC_Set("A", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function SetTimerStructB takes timer key, integer value returns nothing
//! runtextmacro ABC_Set("B", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function SetTimerStructC takes timer key, integer value returns nothing
//! runtextmacro ABC_Set("C", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function SetTriggerStructA takes trigger key, integer value returns nothing
//! runtextmacro ABC_Set("A", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function SetTriggerStructB takes trigger key, integer value returns nothing
//! runtextmacro ABC_Set("B", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function SetTriggerStructC takes trigger key, integer value returns nothing
//! runtextmacro ABC_Set("C", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function SetDialogStructA takes dialog key, integer value returns nothing
//! runtextmacro ABC_Set("A", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function SetDialogStructB takes dialog key, integer value returns nothing
//! runtextmacro ABC_Set("B", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function SetDialogStructC takes dialog key, integer value returns nothing
//! runtextmacro ABC_Set("C", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function SetRegionStructA takes region key, integer value returns nothing
//! runtextmacro ABC_Set("A", "Region", "region")
endfunction
//------------------------------------------------------------------------------
function SetRegionStructB takes region key, integer value returns nothing
//! runtextmacro ABC_Set("B", "Region", "region")
endfunction
//------------------------------------------------------------------------------
function SetRegionStructC takes region key, integer value returns nothing
//! runtextmacro ABC_Set("C", "Region", "region")
endfunction
//==============================================================================
// Get functions
//==============================================================================
//------------------------------------------------------------------------------
function GetTimerStructA takes timer key returns integer
//! runtextmacro ABC_Get("A", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function GetTimerStructB takes timer key returns integer
//! runtextmacro ABC_Get("B", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function GetTimerStructC takes timer key returns integer
//! runtextmacro ABC_Get("C", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function GetTriggerStructA takes trigger key returns integer
//! runtextmacro ABC_Get("A", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function GetTriggerStructB takes trigger key returns integer
//! runtextmacro ABC_Get("B", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function GetTriggerStructC takes trigger key returns integer
//! runtextmacro ABC_Get("C", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function GetDialogStructA takes dialog key returns integer
//! runtextmacro ABC_Get("A", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function GetDialogStructB takes dialog key returns integer
//! runtextmacro ABC_Get("B", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function GetDialogStructC takes dialog key returns integer
//! runtextmacro ABC_Get("C", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function GetRegionStructA takes region key returns integer
//! runtextmacro ABC_Get("A", "Region", "region")
endfunction
//------------------------------------------------------------------------------
function GetRegionStructB takes region key returns integer
//! runtextmacro ABC_Get("B", "Region", "region")
endfunction
//------------------------------------------------------------------------------
function GetRegionStructC takes region key returns integer
//! runtextmacro ABC_Get("C", "Region", "region")
endfunction
//==============================================================================
// Clear functions
//==============================================================================
//------------------------------------------------------------------------------
function ClearTimerStructA takes timer key returns integer
//! runtextmacro ABC_Clear("A", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function ClearTimerStructB takes timer key returns integer
//! runtextmacro ABC_Clear("B", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function ClearTimerStructC takes timer key returns integer
//! runtextmacro ABC_Clear("C", "Timer", "timer")
endfunction
//------------------------------------------------------------------------------
function ClearTriggerStructA takes trigger key returns integer
//! runtextmacro ABC_Clear("A", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function ClearTriggerStructB takes trigger key returns integer
//! runtextmacro ABC_Clear("B", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function ClearTriggerStructC takes trigger key returns integer
//! runtextmacro ABC_Clear("C", "Trigger", "trigger")
endfunction
//------------------------------------------------------------------------------
function ClearDialogStructA takes dialog key returns integer
//! runtextmacro ABC_Clear("A", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function ClearDialogStructB takes dialog key returns integer
//! runtextmacro ABC_Clear("B", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function ClearDialogStructC takes dialog key returns integer
//! runtextmacro ABC_Clear("C", "Dialog", "dialog")
endfunction
//------------------------------------------------------------------------------
function ClearRegionStructA takes region key returns integer
//! runtextmacro ABC_Clear("A", "Region", "region")
endfunction
//------------------------------------------------------------------------------
function ClearRegionStructB takes region key returns integer
//! runtextmacro ABC_Clear("B", "Region", "region")
endfunction
//------------------------------------------------------------------------------
function ClearRegionStructC takes region key returns integer
//! runtextmacro ABC_Clear("C", "Region", "region")
endfunction
//==============================================================================
// Initialization
//==============================================================================
private function Init takes nothing returns nothing
set TimerKeyA[HASH-1] = null
set TimerKeyB[HASH-1] = null
set TimerKeyC[HASH-1] = null
set TriggerKeyA[HASH-1] = null
set TriggerKeyB[HASH-1] = null
set TriggerKeyC[HASH-1] = null
set DialogKeyA[HASH-1] = null
set DialogKeyB[HASH-1] = null
set DialogKeyC[HASH-1] = null
set RegionKeyA[HASH-1] = null
set RegionKeyB[HASH-1] = null
set RegionKeyC[HASH-1] = null
set TimerValueA[HASH-1] = 0
set TimerValueB[HASH-1] = 0
set TimerValueC[HASH-1] = 0
set TriggerValueA[HASH-1] = 0
set TriggerValueB[HASH-1] = 0
set TriggerValueC[HASH-1] = 0
set DialogValueA[HASH-1] = 0
set DialogValueB[HASH-1] = 0
set DialogValueC[HASH-1] = 0
set RegionValueA[HASH-1] = 0
set RegionValueB[HASH-1] = 0
set RegionValueC[HASH-1] = 0
set TimerCollisionA[HASH-1] = 0
set TimerCollisionB[HASH-1] = 0
set TimerCollisionC[HASH-1] = 0
set TriggerCollisionA[HASH-1] = 0
set TriggerCollisionB[HASH-1] = 0
set TriggerCollisionC[HASH-1] = 0
set DialogCollisionA[HASH-1] = 0
set DialogCollisionB[HASH-1] = 0
set DialogCollisionC[HASH-1] = 0
set RegionCollisionA[HASH-1] = 0
set RegionCollisionB[HASH-1] = 0
set RegionCollisionC[HASH-1] = 0
set TimerHash = InitHashtable()
set TriggerHash = InitHashtable()
set DialogHash = InitHashtable()
set RegionHash = InitHashtable()
endfunction
endlibrary
//==============================================================================
// END OF ABC STRUCT ATTACHMENT SYSTEM
//==============================================================================
//TESH.scrollpos=0
//TESH.alwaysfold=0
// Map deprotected by X-deprotect (version 2006-10-02) by zibada
// http://dimon.xgm.ru/xdep/
// Visit our modmaking community at http://xgm.ru/
function Trig_Init_Player_Names_Func001A takes nothing returns nothing
call SetPlayerName(GetEnumPlayer(),("Human: "+GetPlayerName(GetEnumPlayer())))
endfunction
function Trig_Init_Player_Names_Func002A takes nothing returns nothing
call SetPlayerName(GetEnumPlayer(),("Undead: "+GetPlayerName(GetEnumPlayer())))
endfunction
function Trig_Init_Player_Names_Actions takes nothing returns nothing
call ForForce(GetPlayersAllies(Player(0)),function Trig_Init_Player_Names_Func001A)
call ForForce(GetPlayersAllies(Player(6)),function Trig_Init_Player_Names_Func002A)
endfunction
function Trig_Init_Corpses_Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_Init_Corpses_Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_Init_Corpses_Func003C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_Init_Corpses_Actions takes nothing returns nothing
if(Trig_Init_Corpses_Func001C())then
call CreatePermanentCorpseLocBJ(0,'hfoo',Player(15),GetRectCenter(udg_rect64),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(1,'nvil',Player(15),GetRectCenter(udg_rect65),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(0,'nvlw',Player(15),GetRectCenter(udg_rect66),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(1,'hkni',Player(15),GetRectCenter(udg_rect67),GetRandomDirectionDeg())
else
call CreatePermanentCorpseLocBJ(1,'hfoo',Player(15),GetRectCenter(udg_rect64),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(0,'nvil',Player(15),GetRectCenter(udg_rect65),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(1,'nvlw',Player(15),GetRectCenter(udg_rect66),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(0,'hkni',Player(15),GetRectCenter(udg_rect67),GetRandomDirectionDeg())
endif
if(Trig_Init_Corpses_Func002C())then
call CreatePermanentCorpseLocBJ(0,'hpea',Player(15),GetRectCenter(udg_rect68),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(1,'nvl2',Player(15),GetRectCenter(udg_rect69),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(0,'nvlk',Player(15),GetRectCenter(udg_rect70),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(1,'hmpr',Player(15),GetRectCenter(udg_rect71),GetRandomDirectionDeg())
else
call CreatePermanentCorpseLocBJ(1,'hpea',Player(15),GetRectCenter(udg_rect68),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(0,'nvl2',Player(15),GetRectCenter(udg_rect69),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(1,'nvlk',Player(15),GetRectCenter(udg_rect70),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(0,'hmpr',Player(15),GetRectCenter(udg_rect71),GetRandomDirectionDeg())
endif
if(Trig_Init_Corpses_Func003C())then
call CreatePermanentCorpseLocBJ(0,'hpea',Player(15),GetRectCenter(udg_rect72),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(1,'hpea',Player(15),GetRectCenter(udg_rect73),GetRandomDirectionDeg())
else
call CreatePermanentCorpseLocBJ(1,'hpea',Player(15),GetRectCenter(udg_rect72),GetRandomDirectionDeg())
call CreatePermanentCorpseLocBJ(0,'hpea',Player(15),GetRectCenter(udg_rect73),GetRandomDirectionDeg())
endif
endfunction
function Trig_Init_Bounty_And_Starting_Money_Func001A takes nothing returns nothing
call SetPlayerFlagBJ(PLAYER_STATE_GIVES_BOUNTY,true,GetEnumPlayer())
call SetPlayerStateBJ(GetEnumPlayer(),PLAYER_STATE_RESOURCE_GOLD,5)
call SetPlayerStateBJ(GetEnumPlayer(),PLAYER_STATE_RESOURCE_LUMBER,10)
endfunction
function Trig_Init_Bounty_And_Starting_Money_Actions takes nothing returns nothing
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Init_Bounty_And_Starting_Money_Func001A)
endfunction
function Trig_Init_Text_And_Alliances_Etc_Func001A takes nothing returns nothing
call SetPlayerAllianceStateBJ(GetEnumPlayer(),Player(12),bj_ALLIANCE_ALLIED)
call SetPlayerAllianceStateBJ(Player(12),GetEnumPlayer(),bj_ALLIANCE_ALLIED)
endfunction
function Trig_Init_Text_And_Alliances_Etc_Func002A takes nothing returns nothing
call SetPlayerTechMaxAllowedSwap('h001',2,GetEnumPlayer())
call SetPlayerTechMaxAllowedSwap('u00K',2,GetEnumPlayer())
call SetPlayerAllianceStateBJ(GetEnumPlayer(),Player(14),bj_ALLIANCE_ALLIED)
call SetPlayerAllianceStateBJ(Player(14),GetEnumPlayer(),bj_ALLIANCE_ALLIED)
endfunction
function Trig_Init_Text_And_Alliances_Etc_Actions takes nothing returns nothing
call ForForce(GetPlayersAllies(Player(0)),function Trig_Init_Text_And_Alliances_Etc_Func001A)
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Init_Text_And_Alliances_Etc_Func002A)
call CreateQuestBJ(2,"TRIGSTR_153","TRIGSTR_154","ReplaceableTextures\\CommandButtons\\BTNManual2.blp")
call CreateQuestBJ(2,"TRIGSTR_1140","TRIGSTR_1141","ReplaceableTextures\\CommandButtons\\BTNSelectHeroOn.blp")
call CreateQuestBJ(2,"TRIGSTR_1142","TRIGSTR_1143","ReplaceableTextures\\CommandButtons\\BTNBrilliance.blp")
call TriggerSleepAction(3.00)
call PlaySoundBJ(udg_sound07)
call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,bj_QUESTMESSAGE_ALWAYSHINT,"TRIGSTR_644")
call TriggerSleepAction(8.00)
call PlaySoundBJ(udg_sound07)
call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,bj_QUESTMESSAGE_ALWAYSHINT,"TRIGSTR_643")
call TriggerSleepAction(8.00)
call PlaySoundBJ(udg_sound07)
call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,bj_QUESTMESSAGE_ALWAYSHINT,"TRIGSTR_645")
call TriggerSleepAction(8.00)
call PlaySoundBJ(udg_sound07)
call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,bj_QUESTMESSAGE_ALWAYSHINT,"TRIGSTR_745")
endfunction
function Trig_Unit_Animations_Actions takes nothing returns nothing
call IssuePointOrderLoc(udg_unit16,"patrol",GetRectCenter(udg_rect108))
endfunction
function Trig_Player_Leaves_Game_Actions takes nothing returns nothing
call ForceAddPlayerSimple(GetTriggerPlayer(),udg_force02)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.00,(GetPlayerName(GetTriggerPlayer())+" has left the game!"))
endfunction
function Trig_Unused_Player_Slots_Func001Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func001C takes nothing returns boolean
return((GetPlayerSlotState(Player(0))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func002Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func002C takes nothing returns boolean
return((GetPlayerSlotState(Player(1))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func003Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func003C takes nothing returns boolean
return((GetPlayerSlotState(Player(2))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func004Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func004C takes nothing returns boolean
return((GetPlayerSlotState(Player(3))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func005Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func005C takes nothing returns boolean
return((GetPlayerSlotState(Player(4))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func006Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func006C takes nothing returns boolean
return((GetPlayerSlotState(Player(5))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func007Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func007C takes nothing returns boolean
return((GetPlayerSlotState(Player(6))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func008Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func008C takes nothing returns boolean
return((GetPlayerSlotState(Player(7))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func009Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func009C takes nothing returns boolean
return((GetPlayerSlotState(Player(8))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func010Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func010C takes nothing returns boolean
return((GetPlayerSlotState(Player(9))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func011Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func011C takes nothing returns boolean
return((GetPlayerSlotState(Player(10))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Func012Func003A takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function Trig_Unused_Player_Slots_Func012C takes nothing returns boolean
return((GetPlayerSlotState(Player(11))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_Unused_Player_Slots_Actions takes nothing returns nothing
if(Trig_Unused_Player_Slots_Func001C())then
call ForceAddPlayerSimple(Player(0),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(0)),function Trig_Unused_Player_Slots_Func001Func003A)
endif
if(Trig_Unused_Player_Slots_Func002C())then
call ForceAddPlayerSimple(Player(1),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(1)),function Trig_Unused_Player_Slots_Func002Func003A)
endif
if(Trig_Unused_Player_Slots_Func003C())then
call ForceAddPlayerSimple(Player(2),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(2)),function Trig_Unused_Player_Slots_Func003Func003A)
endif
if(Trig_Unused_Player_Slots_Func004C())then
call ForceAddPlayerSimple(Player(3),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(3)),function Trig_Unused_Player_Slots_Func004Func003A)
endif
if(Trig_Unused_Player_Slots_Func005C())then
call ForceAddPlayerSimple(Player(4),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(4)),function Trig_Unused_Player_Slots_Func005Func003A)
endif
if(Trig_Unused_Player_Slots_Func006C())then
call ForceAddPlayerSimple(Player(5),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(5)),function Trig_Unused_Player_Slots_Func006Func003A)
endif
if(Trig_Unused_Player_Slots_Func007C())then
call ForceAddPlayerSimple(Player(6),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(6)),function Trig_Unused_Player_Slots_Func007Func003A)
endif
if(Trig_Unused_Player_Slots_Func008C())then
call ForceAddPlayerSimple(Player(7),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(7)),function Trig_Unused_Player_Slots_Func008Func003A)
endif
if(Trig_Unused_Player_Slots_Func009C())then
call ForceAddPlayerSimple(Player(8),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(8)),function Trig_Unused_Player_Slots_Func009Func003A)
endif
if(Trig_Unused_Player_Slots_Func010C())then
call ForceAddPlayerSimple(Player(9),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(9)),function Trig_Unused_Player_Slots_Func010Func003A)
endif
if(Trig_Unused_Player_Slots_Func011C())then
call ForceAddPlayerSimple(Player(10),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(10)),function Trig_Unused_Player_Slots_Func011Func003A)
endif
if(Trig_Unused_Player_Slots_Func012C())then
call ForceAddPlayerSimple(Player(11),udg_force01)
call ForGroupBJ(GetUnitsOfPlayerAll(Player(11)),function Trig_Unused_Player_Slots_Func012Func003A)
endif
endfunction
function Trig_Taxing_Func001A takes nothing returns nothing
call AdjustPlayerStateBJ(2,GetEnumPlayer(),PLAYER_STATE_RESOURCE_LUMBER)
call AdjustPlayerStateBJ(5,GetEnumPlayer(),PLAYER_STATE_RESOURCE_GOLD)
endfunction
function Trig_Taxing_Actions takes nothing returns nothing
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Taxing_Func001A)
endfunction
function Trig_Shop_Visibility_Func001A takes nothing returns nothing
call UnitShareVisionBJ(true,udg_unit17,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit19,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit20,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit23,GetEnumPlayer())
endfunction
function Trig_Shop_Visibility_Func002A takes nothing returns nothing
call UnitShareVisionBJ(true,udg_unit21,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit18,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit22,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit24,GetEnumPlayer())
endfunction
function Trig_Shop_Visibility_Actions takes nothing returns nothing
call ForForce(GetPlayersAllies(Player(0)),function Trig_Shop_Visibility_Func001A)
call ForForce(GetPlayersAllies(Player(6)),function Trig_Shop_Visibility_Func002A)
endfunction
function Trig_Opening_Cinematic_Func005A takes nothing returns nothing
call CameraSetupApplyForPlayer(true,udg_camerasetup01,GetEnumPlayer(),0.00)
endfunction
function Trig_Opening_Cinematic_Func017A takes nothing returns nothing
call ResetToGameCameraForPlayer(GetEnumPlayer(),1.00)
endfunction
function Trig_Opening_Cinematic_Actions takes nothing returns nothing
call PlaySoundBJ(udg_sound10)
set udg_sound01=bj_lastPlayedSound
call CinematicModeBJ(true,bj_FORCE_ALL_PLAYERS)
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Opening_Cinematic_Func005A)
call TransmissionFromUnitTypeWithNameBJ(bj_FORCE_ALL_PLAYERS,Player(0),'nmed',"TRIGSTR_1305",GetRectCenter(bj_mapInitialPlayableArea),null,"TRIGSTR_1306",1,6.00,true)
call TransmissionFromUnitTypeWithNameBJ(bj_FORCE_ALL_PLAYERS,Player(0),'nmed',"TRIGSTR_1307",GetRectCenter(bj_mapInitialPlayableArea),null,"TRIGSTR_1308",1,6.00,true)
call TransmissionFromUnitTypeWithNameBJ(GetPlayersAllies(Player(0)),Player(0),'nmed',"TRIGSTR_1309",GetRectCenter(bj_mapInitialPlayableArea),null,"TRIGSTR_1310",1,6.00,false)
call TransmissionFromUnitTypeWithNameBJ(GetPlayersAllies(Player(6)),Player(0),'nmed',"TRIGSTR_1311",GetRectCenter(bj_mapInitialPlayableArea),null,"TRIGSTR_1312",1,6.00,false)
call CinematicFadeBJ(1,2,"ReplaceableTextures\\CameraMasks\\Black_mask.blp",0,0,0,0)
call TriggerExecute(udg_trigger11)
call TriggerSleepAction(3.00)
call RemoveUnit(udg_unit27)
call CinematicModeBJ(false,bj_FORCE_ALL_PLAYERS)
call CinematicFadeBJ(0,2,"ReplaceableTextures\\CameraMasks\\Black_mask.blp",0,0,0,0)
call StopSoundBJ(udg_sound01,true)
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Opening_Cinematic_Func017A)
endfunction
function Trig_After_Opening_Cin_Setup_Actions takes nothing returns nothing
call TriggerExecute(udg_trigger12)
call TriggerExecute(udg_trigger13)
call TriggerExecute(udg_trigger64)
call EnableTrigger(udg_trigger26)
call EnableTrigger(udg_trigger24)
endfunction
function Trig_Init_Starting_Spawns_Actions takes nothing returns nothing
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(2),GetRandomLocInRect(udg_rect02),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(8),GetRandomLocInRect(udg_rect02),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(1),GetRandomLocInRect(udg_rect03),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(7),GetRandomLocInRect(udg_rect03),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(0),GetRandomLocInRect(udg_rect04),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(1),GetRandomLocInRect(udg_rect04),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,6),'u000',Player(6),GetRandomLocInRect(udg_rect04),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,6),'u000',Player(7),GetRandomLocInRect(udg_rect04),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(0),GetRandomLocInRect(udg_rect05),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(1),GetRandomLocInRect(udg_rect05),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(6),GetRandomLocInRect(udg_rect05),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(7),GetRandomLocInRect(udg_rect05),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(0),GetRandomLocInRect(udg_rect06),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(6),GetRandomLocInRect(udg_rect06),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(1),GetRandomLocInRect(udg_rect07),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,6),'u000',Player(7),GetRandomLocInRect(udg_rect07),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(2),GetRandomLocInRect(udg_rect08),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,6),'u000',Player(8),GetRandomLocInRect(udg_rect08),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,5),'h003',Player(2),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,5),'h003',Player(3),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,5),'h003',Player(4),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,5),'h003',Player(5),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,6),'u000',Player(8),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,6),'u000',Player(9),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,6),'u000',Player(10),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(3,6),'u000',Player(11),GetRandomLocInRect(udg_rect09),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(3),GetRandomLocInRect(udg_rect10),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(9),GetRandomLocInRect(udg_rect10),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(4),GetRandomLocInRect(udg_rect11),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(10),GetRandomLocInRect(udg_rect11),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(4),GetRandomLocInRect(udg_rect12),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(10),GetRandomLocInRect(udg_rect12),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(5),GetRandomLocInRect(udg_rect13),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,6),'u000',Player(11),GetRandomLocInRect(udg_rect13),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,4),'h003',Player(5),GetRandomLocInRect(udg_rect14),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,6),'u000',Player(11),GetRandomLocInRect(udg_rect14),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(1,4),'h003',Player(4),GetRandomLocInRect(udg_rect111),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(1,4),'h003',Player(5),GetRandomLocInRect(udg_rect111),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,5),'u000',Player(10),GetRandomLocInRect(udg_rect111),GetRandomDirectionDeg())
call CreateNUnitsAtLoc(GetRandomInt(2,6),'u000',Player(11),GetRandomLocInRect(udg_rect111),GetRandomDirectionDeg())
endfunction
function Trig_Init_Item_Spawn_Actions takes nothing returns nothing
set udg_rects03[1]=udg_rect74
set udg_rects03[2]=udg_rect115
set udg_rects03[3]=udg_rect116
set udg_rects03[4]=udg_rect117
set udg_rects03[5]=udg_rect118
set udg_rects03[6]=udg_rect119
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=10
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call CreateItemLoc('I002',GetRandomLocInRect(udg_rects03[GetRandomInt(1,6)]))
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=3
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call CreateItemLoc('I007',GetRandomLocInRect(udg_rects03[GetRandomInt(1,6)]))
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
endfunction
function Trig_Human_Melee_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Melee_Func001A takes nothing returns nothing
if(Trig_Human_Melee_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'h003',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Melee_Func002Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Melee_Func002A takes nothing returns nothing
if(Trig_Human_Melee_Func002Func001C())then
else
call CreateNUnitsAtLoc(1,'h006',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Melee_Func003Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Melee_Func003A takes nothing returns nothing
if(Trig_Human_Melee_Func003Func001C())then
else
call CreateNUnitsAtLoc(1,'h007',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Melee_Func004Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Melee_Func004A takes nothing returns nothing
if(Trig_Human_Melee_Func004Func001C())then
else
call CreateNUnitsAtLoc(1,'h008',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Melee_Func005Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Melee_Func005A takes nothing returns nothing
if(Trig_Human_Melee_Func005Func001C())then
else
call CreateNUnitsAtLoc(1,'h009',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Melee_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('h002'),function Trig_Human_Melee_Func001A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h005'),function Trig_Human_Melee_Func002A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00A'),function Trig_Human_Melee_Func003A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00B'),function Trig_Human_Melee_Func004A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00C'),function Trig_Human_Melee_Func005A)
endfunction
function Trig_Human_Ranged_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Ranged_Func001A takes nothing returns nothing
if(Trig_Human_Ranged_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'h004',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Ranged_Func002Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Ranged_Func002A takes nothing returns nothing
if(Trig_Human_Ranged_Func002Func001C())then
else
call CreateNUnitsAtLoc(1,'h00D',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Ranged_Func003Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Ranged_Func003A takes nothing returns nothing
if(Trig_Human_Ranged_Func003Func001C())then
else
call CreateNUnitsAtLoc(1,'h00F',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Ranged_Func004Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Ranged_Func004A takes nothing returns nothing
if(Trig_Human_Ranged_Func004Func001C())then
else
call CreateNUnitsAtLoc(1,'h00I',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Ranged_Func005Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Ranged_Func005A takes nothing returns nothing
if(Trig_Human_Ranged_Func005Func001C())then
else
call CreateNUnitsAtLoc(1,'h00J',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Ranged_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('h00E'),function Trig_Human_Ranged_Func001A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00G'),function Trig_Human_Ranged_Func002A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00H'),function Trig_Human_Ranged_Func003A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00K'),function Trig_Human_Ranged_Func004A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00L'),function Trig_Human_Ranged_Func005A)
endfunction
function Trig_Human_Casters_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Casters_Func001A takes nothing returns nothing
if(Trig_Human_Casters_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'h00M',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Casters_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('h00N'),function Trig_Human_Casters_Func001A)
endfunction
function Trig_Human_Flyers_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Flyers_Func001A takes nothing returns nothing
if(Trig_Human_Flyers_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'h00T',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Flyers_Func002Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Flyers_Func002A takes nothing returns nothing
if(Trig_Human_Flyers_Func002Func001C())then
else
call CreateNUnitsAtLoc(1,'h00V',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Flyers_Func003Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Human_Flyers_Func003A takes nothing returns nothing
if(Trig_Human_Flyers_Func003Func001C())then
else
call CreateNUnitsAtLoc(1,'h00W',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Human_Flyers_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('h00U'),function Trig_Human_Flyers_Func001A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00X'),function Trig_Human_Flyers_Func002A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00Y'),function Trig_Human_Flyers_Func003A)
endfunction
function Trig_Undead_Melee_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Melee_Func001A takes nothing returns nothing
if(Trig_Undead_Melee_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'u000',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Melee_Func002Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Melee_Func002A takes nothing returns nothing
if(Trig_Undead_Melee_Func002Func001C())then
else
call CreateNUnitsAtLoc(1,'u001',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Melee_Func003Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Melee_Func003A takes nothing returns nothing
if(Trig_Undead_Melee_Func003Func001C())then
else
call CreateNUnitsAtLoc(1,'u002',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Melee_Func004Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Melee_Func004A takes nothing returns nothing
if(Trig_Undead_Melee_Func004Func001C())then
else
call CreateNUnitsAtLoc(1,'u003',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Melee_Func005Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Melee_Func005A takes nothing returns nothing
if(Trig_Undead_Melee_Func005Func001C())then
else
call CreateNUnitsAtLoc(1,'u004',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Melee_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('u005'),function Trig_Undead_Melee_Func001A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u006'),function Trig_Undead_Melee_Func002A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u007'),function Trig_Undead_Melee_Func003A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u008'),function Trig_Undead_Melee_Func004A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u009'),function Trig_Undead_Melee_Func005A)
endfunction
function Trig_Undead_Casters_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Casters_Func001A takes nothing returns nothing
if(Trig_Undead_Casters_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'u00C',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Casters_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('u00A'),function Trig_Undead_Casters_Func001A)
endfunction
function Trig_Undead_Flyers_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Flyers_Func001A takes nothing returns nothing
if(Trig_Undead_Flyers_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'u00F',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Flyers_Func002Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Flyers_Func002A takes nothing returns nothing
if(Trig_Undead_Flyers_Func002Func001C())then
else
call CreateNUnitsAtLoc(1,'u00G',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Flyers_Func003Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Flyers_Func003A takes nothing returns nothing
if(Trig_Undead_Flyers_Func003Func001C())then
else
call CreateNUnitsAtLoc(1,'u00H',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Flyers_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('u00B'),function Trig_Undead_Flyers_Func001A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00I'),function Trig_Undead_Flyers_Func002A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00J'),function Trig_Undead_Flyers_Func003A)
endfunction
function Trig_Undead_Ranged_Func001Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Ranged_Func001A takes nothing returns nothing
if(Trig_Undead_Ranged_Func001Func001C())then
else
call CreateNUnitsAtLoc(1,'u00L',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Ranged_Func002Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Ranged_Func002A takes nothing returns nothing
if(Trig_Undead_Ranged_Func002Func001C())then
else
call CreateNUnitsAtLoc(1,'u00M',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Ranged_Func003Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Ranged_Func003A takes nothing returns nothing
if(Trig_Undead_Ranged_Func003Func001C())then
else
call CreateNUnitsAtLoc(1,'u00N',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Ranged_Func004Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Ranged_Func004A takes nothing returns nothing
if(Trig_Undead_Ranged_Func004Func001C())then
else
call CreateNUnitsAtLoc(1,'u00O',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Ranged_Func005Func001C takes nothing returns boolean
return((GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_USED)>=GetPlayerState(GetOwningPlayer(GetEnumUnit()),PLAYER_STATE_RESOURCE_FOOD_CAP)))
endfunction
function Trig_Undead_Ranged_Func005A takes nothing returns nothing
if(Trig_Undead_Ranged_Func005Func001C())then
else
call CreateNUnitsAtLoc(1,'u00P',GetOwningPlayer(GetEnumUnit()),GetUnitLoc(GetEnumUnit()),bj_UNIT_FACING)
call IssuePointOrderLoc(bj_lastCreatedUnit,"smart",GetUnitRallyPoint(GetEnumUnit()))
endif
endfunction
function Trig_Undead_Ranged_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('u00Q'),function Trig_Undead_Ranged_Func001A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00R'),function Trig_Undead_Ranged_Func002A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00S'),function Trig_Undead_Ranged_Func003A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00T'),function Trig_Undead_Ranged_Func004A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00U'),function Trig_Undead_Ranged_Func005A)
endfunction
function Trig_Undead_Victory_Func020001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Undead_Victory_Func021001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Undead_Victory_Func022001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Undead_Victory_Func023001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Undead_Victory_Func024001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Undead_Victory_Func025001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Undead_Victory_Conditions takes nothing returns boolean
return((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(0),Condition(function Trig_Undead_Victory_Func020001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(1),Condition(function Trig_Undead_Victory_Func021001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(2),Condition(function Trig_Undead_Victory_Func022001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(3),Condition(function Trig_Undead_Victory_Func023001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(4),Condition(function Trig_Undead_Victory_Func024001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(5),Condition(function Trig_Undead_Victory_Func025001001002)))))
endfunction
function Trig_Undead_Victory_Func018A takes nothing returns nothing
call CustomVictoryBJ(GetEnumPlayer(),true,false)
endfunction
function Trig_Undead_Victory_Func019A takes nothing returns nothing
call CustomDefeatBJ(GetEnumPlayer(),"TRIGSTR_292")
endfunction
function Trig_Undead_Victory_Actions takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call FogEnableOff()
call FogMaskEnableOff()
call PlaySoundBJ(udg_sound02)
call DisplayTimedTextToForce(GetPlayersAllies(Player(0)),8.00,"TRIGSTR_289")
call DisplayTimedTextToForce(GetPlayersAllies(Player(6)),8.00,"TRIGSTR_290")
call DisableTrigger(udg_trigger16)
call DisableTrigger(udg_trigger14)
call DisableTrigger(udg_trigger15)
call DisableTrigger(udg_trigger19)
call DisableTrigger(udg_trigger20)
call DisableTrigger(udg_trigger18)
call DisableTrigger(udg_trigger30)
call PauseAllUnitsBJ(true)
call TriggerSleepAction(5.00)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.00,"TRIGSTR_291")
call TriggerSleepAction(3.00)
call ForForce(GetPlayersAllies(Player(6)),function Trig_Undead_Victory_Func018A)
call ForForce(GetPlayersAllies(Player(0)),function Trig_Undead_Victory_Func019A)
endfunction
function Trig_Human_Victory_Func001001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Human_Victory_Func002001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Human_Victory_Func003001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Human_Victory_Func004001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Human_Victory_Func005001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Human_Victory_Func006001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Human_Victory_Conditions takes nothing returns boolean
return((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(6),Condition(function Trig_Human_Victory_Func001001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(7),Condition(function Trig_Human_Victory_Func002001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(8),Condition(function Trig_Human_Victory_Func003001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(9),Condition(function Trig_Human_Victory_Func004001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(10),Condition(function Trig_Human_Victory_Func005001001002)))))and((IsUnitGroupDeadBJ(GetUnitsOfPlayerMatching(Player(11),Condition(function Trig_Human_Victory_Func006001001002)))))
endfunction
function Trig_Human_Victory_Func024A takes nothing returns nothing
call CustomDefeatBJ(GetEnumPlayer(),"TRIGSTR_296")
endfunction
function Trig_Human_Victory_Func025A takes nothing returns nothing
call CustomVictoryBJ(GetEnumPlayer(),true,false)
endfunction
function Trig_Human_Victory_Actions takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call FogEnableOff()
call FogMaskEnableOff()
call PlaySoundBJ(udg_sound03)
call DisplayTimedTextToForce(GetPlayersAllies(Player(0)),8.00,"TRIGSTR_293")
call DisplayTimedTextToForce(GetPlayersAllies(Player(6)),8.00,"TRIGSTR_294")
call DisableTrigger(udg_trigger16)
call DisableTrigger(udg_trigger14)
call DisableTrigger(udg_trigger15)
call DisableTrigger(udg_trigger19)
call DisableTrigger(udg_trigger20)
call DisableTrigger(udg_trigger18)
call DisableTrigger(udg_trigger30)
call PauseAllUnitsBJ(true)
call TriggerSleepAction(5.00)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.00,"TRIGSTR_295")
call TriggerSleepAction(3.00)
call ForForce(GetPlayersAllies(Player(6)),function Trig_Human_Victory_Func024A)
call ForForce(GetPlayersAllies(Player(0)),function Trig_Human_Victory_Func025A)
endfunction
function Trig_AI_Massing_Conditions takes nothing returns boolean
return((GetRandomInt(1,3)==1))
endfunction
function Trig_AI_Massing_Actions takes nothing returns nothing
call DisableTrigger(udg_trigger26)
call EnableTrigger(udg_trigger27)
call TriggerSleepAction(120.00)
call EnableTrigger(udg_trigger26)
call DisableTrigger(udg_trigger27)
endfunction
function Trig_AI_Setup_Func001A takes nothing returns nothing
call ForceAddPlayerSimple(GetEnumPlayer(),udg_force02)
endfunction
function Trig_AI_Setup_Func002Func003C takes nothing returns boolean
return((GetPlayerSlotState(Player(0))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func004C takes nothing returns boolean
return((GetPlayerSlotState(Player(1))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func005C takes nothing returns boolean
return((GetPlayerSlotState(Player(2))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func006C takes nothing returns boolean
return((GetPlayerSlotState(Player(3))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func007C takes nothing returns boolean
return((GetPlayerSlotState(Player(4))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func008C takes nothing returns boolean
return((GetPlayerSlotState(Player(5))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func009C takes nothing returns boolean
return((GetPlayerSlotState(Player(6))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func010C takes nothing returns boolean
return((GetPlayerSlotState(Player(7))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func011C takes nothing returns boolean
return((GetPlayerSlotState(Player(8))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func012C takes nothing returns boolean
return((GetPlayerSlotState(Player(9))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func013C takes nothing returns boolean
return((GetPlayerSlotState(Player(10))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002Func014C takes nothing returns boolean
return((GetPlayerSlotState(Player(11))==PLAYER_SLOT_STATE_EMPTY))
endfunction
function Trig_AI_Setup_Func002C takes nothing returns boolean
return((bj_isSinglePlayer))
endfunction
function Trig_AI_Setup_Actions takes nothing returns nothing
call ForForce(GetPlayersByMapControl(MAP_CONTROL_COMPUTER),function Trig_AI_Setup_Func001A)
if(Trig_AI_Setup_Func002C())then
if(Trig_AI_Setup_Func002Func003C())then
call ForceAddPlayerSimple(Player(0),udg_force01)
endif
if(Trig_AI_Setup_Func002Func004C())then
call ForceAddPlayerSimple(Player(1),udg_force01)
endif
if(Trig_AI_Setup_Func002Func005C())then
call ForceAddPlayerSimple(Player(2),udg_force01)
endif
if(Trig_AI_Setup_Func002Func006C())then
call ForceAddPlayerSimple(Player(3),udg_force01)
endif
if(Trig_AI_Setup_Func002Func007C())then
call ForceAddPlayerSimple(Player(4),udg_force01)
endif
if(Trig_AI_Setup_Func002Func008C())then
call ForceAddPlayerSimple(Player(5),udg_force01)
endif
if(Trig_AI_Setup_Func002Func009C())then
call ForceAddPlayerSimple(Player(6),udg_force01)
endif
if(Trig_AI_Setup_Func002Func010C())then
call ForceAddPlayerSimple(Player(7),udg_force01)
endif
if(Trig_AI_Setup_Func002Func011C())then
call ForceAddPlayerSimple(Player(8),udg_force01)
endif
if(Trig_AI_Setup_Func002Func012C())then
call ForceAddPlayerSimple(Player(9),udg_force01)
endif
if(Trig_AI_Setup_Func002Func013C())then
call ForceAddPlayerSimple(Player(10),udg_force01)
endif
if(Trig_AI_Setup_Func002Func014C())then
call ForceAddPlayerSimple(Player(11),udg_force01)
endif
endif
endfunction
function Trig_AI_Orders_Func001Func001A takes nothing returns nothing
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=CountUnitsInGroup(GetUnitsOfPlayerAll(GetEnumPlayer()))
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call IssuePointOrderLoc(GetEnumUnit(),"attack",GetUnitLoc(GroupPickRandomUnit(GetUnitsOfPlayerAll(ForcePickRandomPlayer(GetPlayersEnemies(GetOwningPlayer(GetEnumUnit())))))))
call TriggerSleepAction(0.05)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
endfunction
function Trig_AI_Orders_Func001A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAll(GetEnumPlayer()),function Trig_AI_Orders_Func001Func001A)
endfunction
function Trig_AI_Orders_Actions takes nothing returns nothing
call ForForce(udg_force02,function Trig_AI_Orders_Func001A)
endfunction
function Trig_AI_Orders_Massing_Func001A takes nothing returns nothing
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=(CountUnitsInGroup(GetUnitsOfPlayerAll(GetEnumPlayer()))-(CountUnitsInGroup(GetUnitsOfPlayerAll(GetEnumPlayer()))/GetRandomInt(2,4)))
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call IssuePointOrderLoc(GetEnumUnit(),"attack",GetUnitLoc(GroupPickRandomUnit(GetUnitsOfPlayerAll(ForcePickRandomPlayer(GetPlayersEnemies(GetOwningPlayer(GetEnumUnit())))))))
call TriggerSleepAction(0.05)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
endfunction
function Trig_AI_Orders_Massing_Actions takes nothing returns nothing
call ForForce(udg_force02,function Trig_AI_Orders_Massing_Func001A)
endfunction
function Trig_AI_Upgrading_Func002Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func002Func001Func002Func002Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func002Func001Func002Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func002Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func002Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func002A takes nothing returns nothing
if(Trig_AI_Upgrading_Func002Func001C())then
if(Trig_AI_Upgrading_Func002Func001Func002C())then
if(Trig_AI_Upgrading_Func002Func001Func002Func002C())then
if(Trig_AI_Upgrading_Func002Func001Func002Func002Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'h005')
else
call IssueImmediateOrderById(GetEnumUnit(),'h00U')
endif
else
call IssueImmediateOrderById(GetEnumUnit(),'h00E')
endif
else
if(Trig_AI_Upgrading_Func002Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R000')
else
call IssueImmediateOrderById(GetEnumUnit(),'R001')
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func003Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func003Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func003Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func003A takes nothing returns nothing
if(Trig_AI_Upgrading_Func003Func001C())then
if(Trig_AI_Upgrading_Func003Func001Func002C())then
if(Trig_AI_Upgrading_Func003Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'h005')
else
call IssueImmediateOrderById(GetEnumUnit(),'h00U')
endif
call IssueImmediateOrderById(GetEnumUnit(),'h00A')
else
call IssueImmediateOrderById(GetEnumUnit(),'R000')
endif
endif
endfunction
function Trig_AI_Upgrading_Func004Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func004Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func004A takes nothing returns nothing
if(Trig_AI_Upgrading_Func004Func001C())then
if(Trig_AI_Upgrading_Func004Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'h00B')
else
call IssueImmediateOrderById(GetEnumUnit(),'R000')
endif
endif
endfunction
function Trig_AI_Upgrading_Func005Func001Func002Func001Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func005Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func005Func001Func002Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func005Func001Func002Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func005Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func005Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func005A takes nothing returns nothing
if(Trig_AI_Upgrading_Func005Func001C())then
if(Trig_AI_Upgrading_Func005Func001Func002C())then
if(Trig_AI_Upgrading_Func005Func001Func002Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'u006')
else
if(Trig_AI_Upgrading_Func005Func001Func002Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'u00Q')
else
call IssueImmediateOrderById(GetEnumUnit(),'u00B')
endif
endif
else
if(Trig_AI_Upgrading_Func005Func001Func002Func001C())then
if(Trig_AI_Upgrading_Func005Func001Func002Func001Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func006Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func006Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func006Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func006A takes nothing returns nothing
if(Trig_AI_Upgrading_Func006Func001C())then
if(Trig_AI_Upgrading_Func006Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'u007')
else
if(Trig_AI_Upgrading_Func006Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func007Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func007Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func007Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func007A takes nothing returns nothing
if(Trig_AI_Upgrading_Func007Func001C())then
if(Trig_AI_Upgrading_Func007Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'u008')
else
if(Trig_AI_Upgrading_Func007Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func009Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func009Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func009A takes nothing returns nothing
if(Trig_AI_Upgrading_Func009Func001C())then
if(Trig_AI_Upgrading_Func009Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'h00G')
else
call IssueImmediateOrderById(GetEnumUnit(),'R001')
endif
endif
endfunction
function Trig_AI_Upgrading_Func010Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func010Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func010A takes nothing returns nothing
if(Trig_AI_Upgrading_Func010Func001C())then
if(Trig_AI_Upgrading_Func010Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'h00H')
else
call IssueImmediateOrderById(GetEnumUnit(),'R001')
endif
endif
endfunction
function Trig_AI_Upgrading_Func011Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func011Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func011A takes nothing returns nothing
if(Trig_AI_Upgrading_Func011Func001C())then
if(Trig_AI_Upgrading_Func011Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'h00K')
else
call IssueImmediateOrderById(GetEnumUnit(),'R001')
endif
endif
endfunction
function Trig_AI_Upgrading_Func012Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func012Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func012Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func012A takes nothing returns nothing
if(Trig_AI_Upgrading_Func012Func001C())then
if(Trig_AI_Upgrading_Func012Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'u00R')
else
if(Trig_AI_Upgrading_Func012Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func013Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func013Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func013Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func013A takes nothing returns nothing
if(Trig_AI_Upgrading_Func013Func001C())then
if(Trig_AI_Upgrading_Func013Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'u00S')
else
if(Trig_AI_Upgrading_Func013Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func014Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func014Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func014Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func014A takes nothing returns nothing
if(Trig_AI_Upgrading_Func014Func001C())then
if(Trig_AI_Upgrading_Func014Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'u00T')
else
if(Trig_AI_Upgrading_Func014Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func016Func001Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func016Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func016Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func016A takes nothing returns nothing
if(Trig_AI_Upgrading_Func016Func001C())then
if(Trig_AI_Upgrading_Func016Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'u00I')
else
if(Trig_AI_Upgrading_Func016Func001Func002Func001C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endif
endfunction
function Trig_AI_Upgrading_Func017Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func017Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func017A takes nothing returns nothing
if(Trig_AI_Upgrading_Func017Func001C())then
if(Trig_AI_Upgrading_Func017Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'R004')
else
call IssueImmediateOrderById(GetEnumUnit(),'R006')
endif
endif
endfunction
function Trig_AI_Upgrading_Func018Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func018Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func018A takes nothing returns nothing
if(Trig_AI_Upgrading_Func018Func001C())then
if(Trig_AI_Upgrading_Func018Func001Func002C())then
call IssueImmediateOrderById(GetEnumUnit(),'h00X')
else
call IssueImmediateOrderById(GetEnumUnit(),'R005')
endif
endif
endfunction
function Trig_AI_Upgrading_Func019Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Upgrading_Func019Func001C takes nothing returns boolean
return((IsPlayerInForce(GetOwningPlayer(GetEnumUnit()),udg_force02)))
endfunction
function Trig_AI_Upgrading_Func019A takes nothing returns nothing
if(Trig_AI_Upgrading_Func019Func001C())then
if(Trig_AI_Upgrading_Func019Func001Func002C())then
else
call IssueImmediateOrderById(GetEnumUnit(),'R005')
endif
endif
endfunction
function Trig_AI_Upgrading_Actions takes nothing returns nothing
call ForGroupBJ(GetUnitsOfTypeIdAll('h002'),function Trig_AI_Upgrading_Func002A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h005'),function Trig_AI_Upgrading_Func003A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00A'),function Trig_AI_Upgrading_Func004A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u005'),function Trig_AI_Upgrading_Func005A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u006'),function Trig_AI_Upgrading_Func006A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u007'),function Trig_AI_Upgrading_Func007A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00E'),function Trig_AI_Upgrading_Func009A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00G'),function Trig_AI_Upgrading_Func010A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00H'),function Trig_AI_Upgrading_Func011A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00Q'),function Trig_AI_Upgrading_Func012A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00R'),function Trig_AI_Upgrading_Func013A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00S'),function Trig_AI_Upgrading_Func014A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00B'),function Trig_AI_Upgrading_Func016A)
call ForGroupBJ(GetUnitsOfTypeIdAll('u00I'),function Trig_AI_Upgrading_Func017A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00U'),function Trig_AI_Upgrading_Func018A)
call ForGroupBJ(GetUnitsOfTypeIdAll('h00X'),function Trig_AI_Upgrading_Func019A)
endfunction
function Trig_AI_Items_Func001Func001Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I007')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I006')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00A')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I005')==false))
endfunction
function Trig_AI_Items_Func001Func001Func001A takes nothing returns nothing
if(Trig_AI_Items_Func001Func001Func001Func001C())then
call UnitAddItemByIdSwapped('I007',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func001Func001Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I007')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I006')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00A')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I005')==false))
endfunction
function Trig_AI_Items_Func001Func001Func002A takes nothing returns nothing
if(Trig_AI_Items_Func001Func001Func002Func001C())then
call UnitAddItemByIdSwapped('I007',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func001Func001A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func001Func001Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func001Func001Func002A)
endfunction
function Trig_AI_Items_Func001Func002Func001Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I007')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I006')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00A')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I005')==false))
endfunction
function Trig_AI_Items_Func001Func002Func001Func001A takes nothing returns nothing
if(Trig_AI_Items_Func001Func002Func001Func001Func001C())then
call UnitAddItemByIdSwapped('I006',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func001Func002Func001Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I007')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I006')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00A')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I005')==false))
endfunction
function Trig_AI_Items_Func001Func002Func001Func002A takes nothing returns nothing
if(Trig_AI_Items_Func001Func002Func001Func002Func001C())then
call UnitAddItemByIdSwapped('I006',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func001Func002Func001A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func001Func002Func001Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func001Func002Func001Func002A)
endfunction
function Trig_AI_Items_Func001Func002Func002Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I007')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I006')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00A')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I005')==false))
endfunction
function Trig_AI_Items_Func001Func002Func002Func001A takes nothing returns nothing
if(Trig_AI_Items_Func001Func002Func002Func001Func001C())then
call UnitAddItemByIdSwapped('I005',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func001Func002Func002Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I007')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I006')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00A')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I005')==false))
endfunction
function Trig_AI_Items_Func001Func002Func002Func002A takes nothing returns nothing
if(Trig_AI_Items_Func001Func002Func002Func002Func001C())then
call UnitAddItemByIdSwapped('I005',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func001Func002Func002A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func001Func002Func002Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func001Func002Func002Func002A)
endfunction
function Trig_AI_Items_Func001Func002C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Items_Func001C takes nothing returns boolean
return((GetRandomInt(1,3)==1))
endfunction
function Trig_AI_Items_Func002Func001Func001Func001Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))
endfunction
function Trig_AI_Items_Func002Func001Func001Func001Func001A takes nothing returns nothing
if(Trig_AI_Items_Func002Func001Func001Func001Func001Func001C())then
call UnitAddItemByIdSwapped('I00I',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func001Func001Func001Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))
endfunction
function Trig_AI_Items_Func002Func001Func001Func001Func002A takes nothing returns nothing
if(Trig_AI_Items_Func002Func001Func001Func001Func002Func001C())then
call UnitAddItemByIdSwapped('I00I',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func001Func001Func001A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func002Func001Func001Func001Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func002Func001Func001Func001Func002A)
endfunction
function Trig_AI_Items_Func002Func001Func001Func002Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))
endfunction
function Trig_AI_Items_Func002Func001Func001Func002Func001A takes nothing returns nothing
if(Trig_AI_Items_Func002Func001Func001Func002Func001Func001C())then
call UnitAddItemByIdSwapped('I008',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func001Func001Func002Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))
endfunction
function Trig_AI_Items_Func002Func001Func001Func002Func002A takes nothing returns nothing
if(Trig_AI_Items_Func002Func001Func001Func002Func002Func001C())then
call UnitAddItemByIdSwapped('I008',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func001Func001Func002A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func002Func001Func001Func002Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func002Func001Func001Func002Func002A)
endfunction
function Trig_AI_Items_Func002Func001Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_AI_Items_Func002Func001Func002Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))
endfunction
function Trig_AI_Items_Func002Func001Func002Func001A takes nothing returns nothing
if(Trig_AI_Items_Func002Func001Func002Func001Func001C())then
call UnitAddItemByIdSwapped('I009',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func001Func002Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))
endfunction
function Trig_AI_Items_Func002Func001Func002Func002A takes nothing returns nothing
if(Trig_AI_Items_Func002Func001Func002Func002Func001C())then
call UnitAddItemByIdSwapped('I009',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func001Func002A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func002Func001Func002Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func002Func001Func002Func002A)
endfunction
function Trig_AI_Items_Func002Func001C takes nothing returns boolean
return((GetRandomInt(1,3)==1))
endfunction
function Trig_AI_Items_Func002Func002Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))
endfunction
function Trig_AI_Items_Func002Func002Func001A takes nothing returns nothing
if(Trig_AI_Items_Func002Func002Func001Func001C())then
call UnitAddItemByIdSwapped('I00B',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func002Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00C')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00B')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I008')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00I')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I009')==false))and((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00D')==false))
endfunction
function Trig_AI_Items_Func002Func002Func002A takes nothing returns nothing
if(Trig_AI_Items_Func002Func002Func002Func001C())then
call UnitAddItemByIdSwapped('I00B',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func002Func002A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func002Func002Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func002Func002Func002A)
endfunction
function Trig_AI_Items_Func002C takes nothing returns boolean
return((GetRandomInt(1,4)==1))
endfunction
function Trig_AI_Items_Func003Func002Func001Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00E')==false))
endfunction
function Trig_AI_Items_Func003Func002Func001A takes nothing returns nothing
if(Trig_AI_Items_Func003Func002Func001Func001C())then
call UnitAddItemByIdSwapped('I00E',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func003Func002Func002Func001C takes nothing returns boolean
return((UnitHasItemOfTypeBJ(GetEnumUnit(),'I00E')==false))
endfunction
function Trig_AI_Items_Func003Func002Func002A takes nothing returns nothing
if(Trig_AI_Items_Func003Func002Func002Func001C())then
call UnitAddItemByIdSwapped('I00E',GetEnumUnit())
endif
endfunction
function Trig_AI_Items_Func003Func002A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00O'),function Trig_AI_Items_Func003Func002Func001A)
call ForGroupBJ(GetUnitsOfPlayerAndTypeId(GetEnumPlayer(),'H00P'),function Trig_AI_Items_Func003Func002Func002A)
endfunction
function Trig_AI_Items_Func003C takes nothing returns boolean
return((GetRandomInt(1,5)==1))
endfunction
function Trig_AI_Items_Actions takes nothing returns nothing
if(Trig_AI_Items_Func001C())then
call ForForce(udg_force02,function Trig_AI_Items_Func001Func001A)
else
if(Trig_AI_Items_Func001Func002C())then
call ForForce(udg_force02,function Trig_AI_Items_Func001Func002Func002A)
else
call ForForce(udg_force02,function Trig_AI_Items_Func001Func002Func001A)
endif
endif
if(Trig_AI_Items_Func002C())then
call ForForce(udg_force02,function Trig_AI_Items_Func002Func002A)
else
if(Trig_AI_Items_Func002Func001C())then
call ForForce(udg_force02,function Trig_AI_Items_Func002Func001Func002A)
else
if(Trig_AI_Items_Func002Func001Func001C())then
call ForForce(udg_force02,function Trig_AI_Items_Func002Func001Func001Func002A)
else
call ForForce(udg_force02,function Trig_AI_Items_Func002Func001Func001Func001A)
endif
endif
endif
if(Trig_AI_Items_Func003C())then
call ForForce(udg_force02,function Trig_AI_Items_Func003Func002A)
endif
endfunction
function Trig_Hero_Reviving_Func001001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))
endfunction
function Trig_Hero_Reviving_Func007C takes nothing returns boolean
return((GetUnitTypeId(GetDyingUnit())=='H00O'))or((GetUnitTypeId(GetDyingUnit())=='H00P'))
endfunction
function Trig_Hero_Reviving_Conditions takes nothing returns boolean
return((CountUnitsInGroup(GetUnitsOfPlayerMatching(GetOwningPlayer(GetDyingUnit()),Condition(function Trig_Hero_Reviving_Func001001001002)))>=1))and((IsPlayerInForce(GetOwningPlayer(GetDyingUnit()),udg_force01)==false))and(Trig_Hero_Reviving_Func007C())
endfunction
function Trig_Hero_Reviving_Func005C takes nothing returns boolean
return((GetUnitTypeId(GetDyingUnit())=='H00O'))
endfunction
function Trig_Hero_Reviving_Actions takes nothing returns nothing
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.00,(GetPlayerName(GetOwningPlayer(GetKillingUnit()))+(" has killed "+(GetPlayerName(GetOwningPlayer(GetDyingUnit()))+"'s hero. He will be revived in |cffffcc0015|r seconds."))))
call TriggerSleepAction(15.00)
call ReviveHeroLoc(GetDyingUnit(),GetPlayerStartLocationLoc(GetOwningPlayer(GetDyingUnit())),false)
if(Trig_Hero_Reviving_Func005C())then
call AddSpecialEffectTargetUnitBJ("origin",GetDyingUnit(),"Abilities\\Spells\\NightElf\\ReviveNightElf\\ReviveNightElf.mdl")
else
call AddSpecialEffectTargetUnitBJ("origin",GetDyingUnit(),"Abilities\\Spells\\Undead\\ReviveUndead\\ReviveUndead.mdl")
endif
endfunction
function Trig_Leaping_Strike_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00J'))
endfunction
function Trig_Leaping_Strike_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01H',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01H',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01H',GetManipulatingUnit())
endfunction
function Trig_Hero_Point_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00K'))
endfunction
function Trig_Hero_Point_Ability_Add_Actions takes nothing returns nothing
call ModifyHeroSkillPoints(GetManipulatingUnit(),bj_MODIFYMETHOD_ADD,1)
endfunction
function Trig_Brill_Aura_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00L'))
endfunction
function Trig_Brill_Aura_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01I',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01I',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01I',GetManipulatingUnit())
endfunction
function Trig_Crushing_Blow_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00M'))
endfunction
function Trig_Crushing_Blow_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01J',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01J',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01J',GetManipulatingUnit())
endfunction
function Trig_Battle_Smash_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00N'))
endfunction
function Trig_Battle_Smash_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01K',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01K',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01K',GetManipulatingUnit())
endfunction
function Trig_Slamwave_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00O'))
endfunction
function Trig_Slamwave_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01L',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01L',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01L',GetManipulatingUnit())
endfunction
function Trig_Forked_Flame_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00P'))
endfunction
function Trig_Forked_Flame_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01M',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01M',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01M',GetManipulatingUnit())
endfunction
function Trig_Teleport_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00Q'))
endfunction
function Trig_Teleport_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01N',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01N',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01N',GetManipulatingUnit())
endfunction
function Trig_Storm_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00R'))
endfunction
function Trig_Storm_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01O',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01O',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01O',GetManipulatingUnit())
endfunction
function Trig_Orcish_Fighting_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00S'))
endfunction
function Trig_Orcish_Fighting_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01P',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01P',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01P',GetManipulatingUnit())
endfunction
function Trig_Unholy_Strike_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00T'))
endfunction
function Trig_Unholy_Strike_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01Q',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01Q',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01Q',GetManipulatingUnit())
endfunction
function Trig_Meteor_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00U'))
endfunction
function Trig_Meteor_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01R',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01R',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01R',GetManipulatingUnit())
endfunction
function Trig_Wrath_Of_The_Sea_Ability_Add_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00V'))
endfunction
function Trig_Wrath_Of_The_Sea_Ability_Add_Actions takes nothing returns nothing
call SetUnitAbilityLevelSwapped('A01S',GetManipulatingUnit(),(GetUnitAbilityLevelSwapped('A01S',GetManipulatingUnit())+1))
call UnitAddAbilityBJ('A01S',GetManipulatingUnit())
endfunction
function Trig_Wizard_Staff_Abilities_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I004'))and((IsUnitType(GetManipulatingUnit(),UNIT_TYPE_HERO)))
endfunction
function Trig_Wizard_Staff_Abilities_Actions takes nothing returns nothing
call UnitAddAbilityBJ('A019',GetManipulatingUnit())
endfunction
function Trig_Wizard_Staff_Abilities_Remove_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I004'))and((IsUnitType(GetManipulatingUnit(),UNIT_TYPE_HERO)))
endfunction
function Trig_Wizard_Staff_Abilities_Remove_Actions takes nothing returns nothing
call UnitRemoveAbilityBJ('A019',GetManipulatingUnit())
endfunction
function Trig_Warlock_Shield_Abilities_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00X'))and((IsUnitType(GetManipulatingUnit(),UNIT_TYPE_HERO)))
endfunction
function Trig_Warlock_Shield_Abilities_Actions takes nothing returns nothing
call UnitAddAbilityBJ('A01W',GetManipulatingUnit())
endfunction
function Trig_Warlock_Shield_Abilities_Remove_Conditions takes nothing returns boolean
return((GetItemTypeId(GetManipulatedItem())=='I00X'))and((IsUnitType(GetManipulatingUnit(),UNIT_TYPE_HERO)))
endfunction
function Trig_Warlock_Shield_Abilities_Remove_Actions takes nothing returns nothing
call UnitRemoveAbilityBJ('A01W',GetManipulatingUnit())
endfunction
function Trig_Item_Spawns1_Func002C takes nothing returns boolean
return((GetRandomInt(1,10)==1))
endfunction
function Trig_Item_Spawns1_Actions takes nothing returns nothing
call CreateItemLoc('I002',GetRandomLocInRect(udg_rects03[GetRandomInt(1,6)]))
if(Trig_Item_Spawns1_Func002C())then
call CreateItemLoc('I001',GetRandomLocInRect(udg_rects03[GetRandomInt(1,6)]))
else
call CreateItemLoc('I000',GetRandomLocInRect(udg_rects03[GetRandomInt(1,6)]))
endif
endfunction
function Trig_Item_Spawns2_Func001C takes nothing returns boolean
return((GetRandomInt(1,10)==1))
endfunction
function Trig_Item_Spawns2_Actions takes nothing returns nothing
if(Trig_Item_Spawns2_Func001C())then
call CreateItemLoc('I00H',GetRandomLocInRect(udg_rects03[GetRandomInt(1,6)]))
else
call CreateItemLoc('I003',GetRandomLocInRect(udg_rects03[GetRandomInt(1,6)]))
endif
endfunction
function Trig_Item_Class_Pickup_Func001Func001C takes nothing returns boolean
return((GetItemType(UnitItemInSlotBJ(GetManipulatingUnit(),GetForLoopIndexA()))==GetItemType(GetManipulatedItem())))and((UnitItemInSlotBJ(GetManipulatingUnit(),GetForLoopIndexA())!=GetManipulatedItem()))and((GetItemType(GetManipulatedItem())!=ITEM_TYPE_PURCHASABLE))and((GetItemType(GetManipulatedItem())!=ITEM_TYPE_POWERUP))
endfunction
function Trig_Item_Class_Pickup_Actions takes nothing returns nothing
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=6
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
if(Trig_Item_Class_Pickup_Func001Func001C())then
call UnitRemoveItemSwapped(GetManipulatedItem(),GetManipulatingUnit())
endif
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
endfunction
function Trig_Battle_Roar_Conditions takes nothing returns boolean
return((GetSpellAbilityId()=='A01B'))
endfunction
function Trig_Battle_Roar_Func002A takes nothing returns nothing
call CameraSetEQNoiseForPlayer(GetEnumPlayer(),5.00)
endfunction
function Trig_Battle_Roar_Func004A takes nothing returns nothing
call CameraClearNoiseForPlayer(GetEnumPlayer())
endfunction
function Trig_Battle_Roar_Actions takes nothing returns nothing
call PlaySoundBJ(udg_sound06)
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Battle_Roar_Func002A)
call TriggerSleepAction(2)
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Battle_Roar_Func004A)
endfunction
function Trig_Caravan_Setup_Func012C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_Caravan_Setup_Actions takes nothing returns nothing
call CreateQuestBJ(0,"TRIGSTR_635","TRIGSTR_636","ReplaceableTextures\\CommandButtons\\BTNBloodElfSupplyWagon.blp")
set udg_quest01=bj_lastCreatedQuest
call DisplayTimedTextToForce(GetPlayersAllies(Player(0)),10.00,"TRIGSTR_633")
call DisplayTimedTextToForce(GetPlayersAllies(Player(6)),10.00,"TRIGSTR_634")
set udg_real01=1500.00
set udg_real02=2.00
set udg_real03=1.00
set udg_real04=1280.00
set udg_real05=185.00
set udg_real06=150.00
if(Trig_Caravan_Setup_Func012C())then
call TriggerSleepAction(15.00)
call TriggerExecute(udg_trigger60)
call PingMinimapLocForForceEx(GetPlayersAllies(Player(0)),GetRectCenter(udg_rect75),5.00,2,0.00,0.00,100)
call PingMinimapLocForForceEx(GetPlayersAllies(Player(6)),GetRectCenter(udg_rect75),5.00,2,0.00,100.00,0.00)
set udg_rects01[1]=udg_rect15
set udg_rects01[2]=udg_rect16
set udg_rects01[3]=udg_rect17
set udg_rects01[4]=udg_rect18
set udg_rects01[5]=udg_rect19
set udg_rects01[6]=udg_rect20
set udg_rects01[7]=udg_rect21
set udg_rects01[8]=udg_rect22
set udg_rects01[9]=udg_rect23
set udg_rects01[10]=udg_rect24
set udg_rects01[11]=udg_rect25
set udg_rects01[12]=udg_rect26
set udg_rects01[13]=udg_rect27
set udg_rects01[14]=udg_rect28
set udg_rects01[15]=udg_rect29
set udg_rects01[16]=udg_rect30
set udg_rects01[17]=udg_rect31
set udg_rects01[18]=udg_rect32
set udg_rects01[19]=udg_rect33
set udg_rects01[20]=udg_rect34
set udg_rects01[21]=udg_rect35
set udg_rects01[22]=udg_rect36
set udg_rects01[23]=udg_rect37
set udg_rects01[24]=udg_rect38
set udg_rects01[25]=udg_rect39
set udg_rects01[26]=udg_rect114
else
call TriggerSleepAction(15.00)
call TriggerExecute(udg_trigger62)
call PingMinimapLocForForceEx(GetPlayersAllies(Player(0)),GetRectCenter(udg_rect76),5.00,2,0.00,0.00,100)
call PingMinimapLocForForceEx(GetPlayersAllies(Player(6)),GetRectCenter(udg_rect76),5.00,2,0.00,100.00,0.00)
set udg_rects02[1]=udg_rect40
set udg_rects02[2]=udg_rect41
set udg_rects02[3]=udg_rect42
set udg_rects02[4]=udg_rect43
set udg_rects02[5]=udg_rect44
set udg_rects02[6]=udg_rect45
set udg_rects02[7]=udg_rect46
set udg_rects02[8]=udg_rect47
set udg_rects02[9]=udg_rect48
set udg_rects02[10]=udg_rect49
set udg_rects02[11]=udg_rect50
set udg_rects02[12]=udg_rect51
set udg_rects02[13]=udg_rect52
set udg_rects02[14]=udg_rect53
set udg_rects02[15]=udg_rect54
set udg_rects02[16]=udg_rect55
set udg_rects02[17]=udg_rect56
set udg_rects02[18]=udg_rect57
set udg_rects02[19]=udg_rect58
set udg_rects02[20]=udg_rect59
set udg_rects02[21]=udg_rect60
set udg_rects02[22]=udg_rect61
set udg_rects02[23]=udg_rect113
endif
endfunction
function Trig_Caravan_Victory_Conditions takes nothing returns boolean
return((udg_integer02>=2))
endfunction
function Trig_Caravan_Victory_Func005Func002A takes nothing returns nothing
call AdjustPlayerStateBJ(1,GetEnumPlayer(),PLAYER_STATE_RESOURCE_GOLD)
endfunction
function Trig_Caravan_Victory_Func006Func002A takes nothing returns nothing
call AdjustPlayerStateBJ(1,GetEnumPlayer(),PLAYER_STATE_RESOURCE_LUMBER)
endfunction
function Trig_Caravan_Victory_Func007A takes nothing returns nothing
call IssuePointOrderLoc(GetEnumUnit(),"move",GetRectCenter(udg_rect01))
endfunction
function Trig_Caravan_Victory_Actions takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call QuestMessageBJ(GetPlayersAllies(Player(0)),2,"TRIGSTR_639")
call QuestMessageBJ(GetPlayersAllies(Player(6)),3,"TRIGSTR_640")
call QuestSetCompleted(udg_quest01,true)
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=25
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call TriggerSleepAction(0.10)
call ForForce(GetPlayersAllies(Player(0)),function Trig_Caravan_Victory_Func005Func002A)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=15
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call TriggerSleepAction(0.10)
call ForForce(GetPlayersAllies(Player(0)),function Trig_Caravan_Victory_Func006Func002A)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
call ForGroupBJ(udg_group01,function Trig_Caravan_Victory_Func007A)
endfunction
function Trig_Caravan_Leave_Func001C takes nothing returns boolean
return((IsUnitInGroup(GetEnteringUnit(),udg_group01)))
endfunction
function Trig_Caravan_Leave_Func002C takes nothing returns boolean
return((GetEnteringUnit()==udg_unit01))
endfunction
function Trig_Caravan_Leave_Func003C takes nothing returns boolean
return((GetEnteringUnit()==udg_unit02))
endfunction
function Trig_Caravan_Leave_Func004C takes nothing returns boolean
return((GetEnteringUnit()==udg_unit03))
endfunction
function Trig_Caravan_Leave_Actions takes nothing returns nothing
if(Trig_Caravan_Leave_Func001C())then
call RemoveUnit(GetEnteringUnit())
endif
if(Trig_Caravan_Leave_Func002C())then
set udg_unit01=null
call RemoveUnit(GetEnteringUnit())
set udg_integer02=(udg_integer02+1)
call IssuePointOrderLoc(udg_unit02,"move",GetRectCenter(udg_rect01))
call IssuePointOrderLoc(udg_unit03,"move",GetRectCenter(udg_rect01))
endif
if(Trig_Caravan_Leave_Func003C())then
set udg_unit02=null
call RemoveUnit(GetEnteringUnit())
set udg_integer02=(udg_integer02+1)
endif
if(Trig_Caravan_Leave_Func004C())then
set udg_unit03=null
call RemoveUnit(GetEnteringUnit())
set udg_integer02=(udg_integer02+1)
endif
endfunction
function Trig_Caravan_Defeat_Conditions takes nothing returns boolean
return((udg_integer03>=2))
endfunction
function Trig_Caravan_Defeat_Func005Func002A takes nothing returns nothing
call AdjustPlayerStateBJ(1,GetEnumPlayer(),PLAYER_STATE_RESOURCE_GOLD)
endfunction
function Trig_Caravan_Defeat_Func006Func002A takes nothing returns nothing
call AdjustPlayerStateBJ(1,GetEnumPlayer(),PLAYER_STATE_RESOURCE_LUMBER)
endfunction
function Trig_Caravan_Defeat_Actions takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call QuestMessageBJ(GetPlayersAllies(Player(0)),3,"TRIGSTR_637")
call QuestMessageBJ(GetPlayersAllies(Player(6)),2,"TRIGSTR_638")
call QuestSetFailed(udg_quest01,true)
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=25
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call TriggerSleepAction(0.10)
call ForForce(GetPlayersAllies(Player(6)),function Trig_Caravan_Defeat_Func005Func002A)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=15
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call TriggerSleepAction(0.10)
call ForForce(GetPlayersAllies(Player(6)),function Trig_Caravan_Defeat_Func006Func002A)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
endfunction
function Trig_Guard_Orders_Actions takes nothing returns nothing
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=CountUnitsInGroup(udg_group01)
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call IssuePointOrderLoc(GroupPickRandomUnit(udg_group01),"attack",OffsetLocation(GetUnitLoc(udg_unit01),GetRandomReal(-125.00,125.00),GetRandomReal(-125.00,125.00)))
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
endfunction
function Trig_Caravan_Orders_Actions takes nothing returns nothing
call IssuePointOrderLoc(udg_unit01,"move",GetRectCenter(udg_rect01))
endfunction
function Trig_Guards_Catching_Up_Func001Func001A takes nothing returns nothing
call SetUnitMoveSpeed(GetEnumUnit(),udg_real05)
endfunction
function Trig_Guards_Catching_Up_Func001Func004A takes nothing returns nothing
call SetUnitMoveSpeed(GetEnumUnit(),GetUnitDefaultMoveSpeed(GetEnumUnit()))
call IssuePointOrderLoc(GetEnumUnit(),"move",GetRectCenter(udg_rect01))
endfunction
function Trig_Guards_Catching_Up_Func001C takes nothing returns boolean
return((DistanceBetweenPoints(GetRectCenter(udg_rect01),GetUnitLoc(GroupPickRandomUnit(udg_group01)))>=udg_real04))
endfunction
function Trig_Guards_Catching_Up_Actions takes nothing returns nothing
if(Trig_Guards_Catching_Up_Func001C())then
set udg_boolean01=true
call ForGroupBJ(udg_group01,function Trig_Guards_Catching_Up_Func001Func004A)
else
call ForGroupBJ(udg_group01,function Trig_Guards_Catching_Up_Func001Func001A)
set udg_boolean01=false
endif
endfunction
function Trig_Caravan_Death_Conditions takes nothing returns boolean
return((GetDyingUnit()==udg_unit01))
endfunction
function Trig_Caravan_Death_Func003C takes nothing returns boolean
return((GetUnitStateSwap(UNIT_STATE_LIFE,udg_unit02)>=1.00))
endfunction
function Trig_Caravan_Death_Actions takes nothing returns nothing
set udg_integer03=(udg_integer03+1)
if(Trig_Caravan_Death_Func003C())then
set udg_unit02=udg_unit01
call IssueTargetOrder(udg_unit03,"smart",udg_unit01)
else
set udg_unit03=udg_unit01
call IssuePointOrderLoc(udg_unit03,"move",GetRectCenter(udg_rect01))
endif
endfunction
function Trig_Caravan_Path_1_Setup_Func017Func004A takes nothing returns nothing
call UnitShareVisionBJ(true,GetEnumUnit(),GetEnumPlayer())
endfunction
function Trig_Caravan_Path_1_Setup_Func017A takes nothing returns nothing
call UnitShareVisionBJ(true,udg_unit01,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit02,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit03,GetEnumPlayer())
call ForGroupBJ(udg_group01,function Trig_Caravan_Path_1_Setup_Func017Func004A)
endfunction
function Trig_Caravan_Path_1_Setup_Actions takes nothing returns nothing
set udg_integer01=1
set udg_rect01=udg_rects01[udg_integer01]
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=5
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call CreateNUnitsAtLoc(1,'h00Q',Player(12),GetRectCenter(udg_rect75),bj_UNIT_FACING)
call GroupAddUnitSimple(bj_lastCreatedUnit,udg_group01)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
call CreateNUnitsAtLoc(1,'h00R',Player(12),GetRectCenter(udg_rect75),bj_UNIT_FACING)
set udg_unit01=bj_lastCreatedUnit
call EnableTrigger(udg_trigger57)
call EnableTrigger(udg_trigger61)
call EnableTrigger(udg_trigger56)
call EnableTrigger(udg_trigger58)
call TriggerSleepAction(3.00)
call CreateNUnitsAtLoc(1,'h00R',Player(12),GetRectCenter(udg_rect75),bj_UNIT_FACING)
set udg_unit02=bj_lastCreatedUnit
call IssueTargetOrder(udg_unit02,"smart",udg_unit01)
call CreateNUnitsAtLoc(1,'h00R',Player(12),GetRectCenter(udg_rect75),bj_UNIT_FACING)
set udg_unit03=bj_lastCreatedUnit
call IssueTargetOrder(udg_unit03,"smart",udg_unit02)
call ForForce(GetPlayersAllies(Player(0)),function Trig_Caravan_Path_1_Setup_Func017A)
call EnableTrigger(udg_trigger55)
endfunction
function Trig_Breadcrumb_Next1_Conditions takes nothing returns boolean
return((DistanceBetweenPoints(GetRectCenter(udg_rect01),GetUnitLoc(udg_unit01))<=100.00))
endfunction
function Trig_Breadcrumb_Next1_Actions takes nothing returns nothing
set udg_integer01=(udg_integer01+1)
set udg_rect01=udg_rects01[udg_integer01]
endfunction
function Trig_Caravan_Path_2_Setup_Func017Func004A takes nothing returns nothing
call UnitShareVisionBJ(true,GetEnumUnit(),GetEnumPlayer())
endfunction
function Trig_Caravan_Path_2_Setup_Func017A takes nothing returns nothing
call UnitShareVisionBJ(true,udg_unit01,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit02,GetEnumPlayer())
call UnitShareVisionBJ(true,udg_unit03,GetEnumPlayer())
call ForGroupBJ(udg_group01,function Trig_Caravan_Path_2_Setup_Func017Func004A)
endfunction
function Trig_Caravan_Path_2_Setup_Actions takes nothing returns nothing
set udg_integer01=1
set udg_rect01=udg_rects02[udg_integer01]
set bj_forLoopAIndex=1
set bj_forLoopAIndexEnd=5
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
call CreateNUnitsAtLoc(1,'h00Q',Player(12),GetRectCenter(udg_rect76),bj_UNIT_FACING)
call GroupAddUnitSimple(bj_lastCreatedUnit,udg_group01)
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
call CreateNUnitsAtLoc(1,'h00R',Player(12),GetRectCenter(udg_rect76),bj_UNIT_FACING)
set udg_unit01=bj_lastCreatedUnit
call EnableTrigger(udg_trigger57)
call EnableTrigger(udg_trigger63)
call EnableTrigger(udg_trigger56)
call EnableTrigger(udg_trigger58)
call TriggerSleepAction(3.00)
call CreateNUnitsAtLoc(1,'h00R',Player(12),GetRectCenter(udg_rect76),bj_UNIT_FACING)
set udg_unit02=bj_lastCreatedUnit
call IssueTargetOrder(udg_unit02,"smart",udg_unit01)
call CreateNUnitsAtLoc(1,'h00R',Player(12),GetRectCenter(udg_rect76),bj_UNIT_FACING)
set udg_unit03=bj_lastCreatedUnit
call IssueTargetOrder(udg_unit03,"smart",udg_unit02)
call ForForce(GetPlayersAllies(Player(0)),function Trig_Caravan_Path_2_Setup_Func017A)
call EnableTrigger(udg_trigger55)
endfunction
function Trig_Breadcrumb_Next2_Conditions takes nothing returns boolean
return((DistanceBetweenPoints(GetRectCenter(udg_rect01),GetUnitLoc(udg_unit01))<=100.00))
endfunction
function Trig_Breadcrumb_Next2_Actions takes nothing returns nothing
set udg_integer01=(udg_integer01+1)
set udg_rect01=udg_rects02[udg_integer01]
endfunction
function Trig_World_Events_Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_World_Events_Func002C takes nothing returns boolean
return((GetRandomInt(1,6)==1))
endfunction
function Trig_World_Events_Actions takes nothing returns nothing
if(Trig_World_Events_Func001C())then
call TriggerExecute(udg_trigger66)
endif
if(Trig_World_Events_Func002C())then
call TriggerExecute(udg_trigger71)
else
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.00,"TRIGSTR_1183")
call PingMinimapLocForForceEx(bj_FORCE_ALL_PLAYERS,GetRectCenter(udg_rect109),3.00,2,50.00,100,50.00)
call TriggerSleepAction(0.20)
call PingMinimapLocForForceEx(bj_FORCE_ALL_PLAYERS,GetRectCenter(udg_rect110),3.00,2,50.00,100,50.00)
endif
endfunction
function Trig_World_Events2_Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_World_Events2_Actions takes nothing returns nothing
if(Trig_World_Events2_Func001C())then
call TriggerExecute(udg_trigger67)
else
call TriggerExecute(udg_trigger69)
endif
endfunction
function Trig_Bridges_Func001Func002A takes nothing returns nothing
call CreateFogModifierRadiusLocBJ(true,GetEnumPlayer(),FOG_OF_WAR_VISIBLE,GetRectCenter(udg_rect62),800.00)
set udg_fogmodifier01=bj_lastCreatedFogModifier
endfunction
function Trig_Bridges_Func001Func006A takes nothing returns nothing
call CreateFogModifierRadiusLocBJ(true,GetEnumPlayer(),FOG_OF_WAR_VISIBLE,GetRectCenter(udg_rect63),800.00)
set udg_fogmodifier01=bj_lastCreatedFogModifier
endfunction
function Trig_Bridges_Func001C takes nothing returns boolean
return((GetRandomInt(1,2)==1))
endfunction
function Trig_Bridges_Actions takes nothing returns nothing
if(Trig_Bridges_Func001C())then
call TriggerSleepAction(30.00)
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Bridges_Func001Func006A)
call PlaySoundAtPointBJ(udg_sound08,100,GetRectCenter(udg_rect63),0)
call PlaySoundAtPointBJ(udg_sound04,100,GetRectCenter(udg_rect63),0)
call AddSpecialEffectLocBJ(GetDestructableLoc(udg_destructable01),"Objects\\Spawnmodels\\Other\\NeutralBuildingExplosion\\NeutralBuildingExplosion.mdl")
call KillDestructable(udg_destructable01)
call DisplayTimedTextToForce(GetPlayersAllies(Player(0)),10.00,"TRIGSTR_155")
call DisplayTimedTextToForce(GetPlayersAllies(Player(6)),10.00,"TRIGSTR_157")
call TriggerSleepAction(8.00)
call FogModifierStop(udg_fogmodifier01)
else
call TriggerSleepAction(5.00)
call ForForce(bj_FORCE_ALL_PLAYERS,function Trig_Bridges_Func001Func002A)
call PlaySoundAtPointBJ(udg_sound08,100,GetRectCenter(udg_rect62),0)
call PlaySoundAtPointBJ(udg_sound04,100,GetRectCenter(udg_rect62),0)
call AddSpecialEffectLocBJ(GetDestructableLoc(udg_destructable02),"Objects\\Spawnmodels\\Other\\NeutralBuildingExplosion\\NeutralBuildingExplosion.mdl")
call KillDestructable(udg_destructable02)
call DisplayTimedTextToForce(GetPlayersAllies(Player(0)),10.00,"TRIGSTR_156")
call DisplayTimedTextToForce(GetPlayersAllies(Player(6)),10.00,"TRIGSTR_158")
call TriggerSleepAction(8.00)
call DestroyFogModifier(udg_fogmodifier01)
endif
endfunction
function Trig_Rain_Func009Func001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)==false)
endfunction
function Trig_Rain_Func009Func001A takes nothing returns nothing
call SetUnitMoveSpeed(GetEnumUnit(),GetUnitDefaultMoveSpeed(GetEnumUnit()))
endfunction
function Trig_Rain_Func009A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerMatching(GetEnumPlayer(),Condition(function Trig_Rain_Func009Func001001002)),function Trig_Rain_Func009Func001A)
endfunction
function Trig_Rain_Actions takes nothing returns nothing
call AddWeatherEffectSaveLast(bj_mapInitialPlayableArea,'RLhr')
set udg_weathereffect01=bj_lastCreatedWeatherEffect
call EnableWeatherEffect(udg_weathereffect01,true)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.00,"TRIGSTR_646")
call EnableTrigger(udg_trigger68)
call TriggerSleepAction(240.00)
call DisableTrigger(udg_trigger68)
call EnableWeatherEffect(udg_weathereffect01,false)
call ForForce(GetPlayersAllies(Player(6)),function Trig_Rain_Func009A)
endfunction
function Trig_Rain_Effect_Func001Func001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)==false)
endfunction
function Trig_Rain_Effect_Func001Func001A takes nothing returns nothing
call SetUnitMoveSpeed(GetEnumUnit(),(GetUnitDefaultMoveSpeed(GetEnumUnit())/1.20))
endfunction
function Trig_Rain_Effect_Func001A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerMatching(GetEnumPlayer(),Condition(function Trig_Rain_Effect_Func001Func001001002)),function Trig_Rain_Effect_Func001Func001A)
endfunction
function Trig_Rain_Effect_Actions takes nothing returns nothing
call ForForce(GetPlayersAllies(Player(6)),function Trig_Rain_Effect_Func001A)
endfunction
function Trig_Snow_Func009Func001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)==false)
endfunction
function Trig_Snow_Func009Func001A takes nothing returns nothing
call SetUnitMoveSpeed(GetEnumUnit(),GetUnitDefaultMoveSpeed(GetEnumUnit()))
endfunction
function Trig_Snow_Func009A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerMatching(GetEnumPlayer(),Condition(function Trig_Snow_Func009Func001001002)),function Trig_Snow_Func009Func001A)
endfunction
function Trig_Snow_Actions takes nothing returns nothing
call AddWeatherEffectSaveLast(bj_mapInitialPlayableArea,'SNhs')
set udg_weathereffect02=bj_lastCreatedWeatherEffect
call EnableWeatherEffect(udg_weathereffect02,true)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.00,"TRIGSTR_647")
call EnableTrigger(udg_trigger70)
call TriggerSleepAction(240.00)
call DisableTrigger(udg_trigger70)
call EnableWeatherEffect(udg_weathereffect02,false)
call ForForce(GetPlayersAllies(Player(0)),function Trig_Snow_Func009A)
endfunction
function Trig_Snow_Effect_Func001Func001001002 takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)==false)
endfunction
function Trig_Snow_Effect_Func001Func001A takes nothing returns nothing
call SetUnitMoveSpeed(GetEnumUnit(),(GetUnitDefaultMoveSpeed(GetEnumUnit())/1.20))
endfunction
function Trig_Snow_Effect_Func001A takes nothing returns nothing
call ForGroupBJ(GetUnitsOfPlayerMatching(GetEnumPlayer(),Condition(function Trig_Snow_Effect_Func001Func001001002)),function Trig_Snow_Effect_Func001Func001A)
endfunction
function Trig_Snow_Effect_Actions takes nothing returns nothing
call ForForce(GetPlayersAllies(Player(0)),function Trig_Snow_Effect_Func001A)
endfunction
function Trig_Waygates_Actions takes nothing returns nothing
call RemoveUnit(udg_unit25)
call RemoveUnit(udg_unit26)
endfunction
function main2 takes nothing returns nothing
local weathereffect we
local destructable d
local trigger t
local real life
local player p=Player(15)
local unit u
local integer unitID
local integer i=0
call SetCameraBounds(-8704.0+GetCameraMargin(CAMERA_MARGIN_LEFT),-8960.0+GetCameraMargin(CAMERA_MARGIN_BOTTOM),8704.0-GetCameraMargin(CAMERA_MARGIN_RIGHT),4352.0-GetCameraMargin(CAMERA_MARGIN_TOP),-8704.0+GetCameraMargin(CAMERA_MARGIN_LEFT),4352.0-GetCameraMargin(CAMERA_MARGIN_TOP),8704.0-GetCameraMargin(CAMERA_MARGIN_RIGHT),-8960.0+GetCameraMargin(CAMERA_MARGIN_BOTTOM))
call SetDayNightModels("Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl","Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl")
call SetTerrainFogEx(0,900.0,6500.0,0.500,1.000,1.000,1.000)
call NewSoundEnvironment("Default")
call SetAmbientDaySound("VillageFallDay")
call SetAmbientNightSound("VillageFallNight")
call SetMapMusic("Music",true,0)
call SetSoundDuration(udg_sound02,39794)
call SetSoundChannel(udg_sound02,0)
call SetSoundVolume(udg_sound02,127)
call SetSoundPitch(udg_sound02,1.0)
call SetSoundDuration(udg_sound03,30233)
call SetSoundChannel(udg_sound03,0)
call SetSoundVolume(udg_sound03,127)
call SetSoundPitch(udg_sound03,1.0)
call SetSoundParamsFromLabel(udg_sound04,"BridgeDeath")
call SetSoundDuration(udg_sound04,9081)
call SetSoundDistances(udg_sound04,3000.0,5000.0)
call SetSoundDistanceCutoff(udg_sound04,100000.0)
call SetSoundParamsFromLabel(udg_sound05,"StreamLoop")
call SetSoundDuration(udg_sound05,2009)
call SetSoundVolume(udg_sound05,127)
call SetSoundDistances(udg_sound05,850.0,10000.0)
call SetSoundDistanceCutoff(udg_sound05,1500.0)
call SetSoundParamsFromLabel(udg_sound06,"SargerasRoar")
call SetSoundDuration(udg_sound06,4481)
call SetSoundParamsFromLabel(udg_sound07,"Hint")
call SetSoundDuration(udg_sound07,2006)
call SetSoundVolume(udg_sound07,100)
call SetSoundParamsFromLabel(udg_sound08,"RockWallDeath")
call SetSoundDuration(udg_sound08,2368)
call SetSoundDistances(udg_sound08,3000.0,10000.0)
call SetSoundDistanceCutoff(udg_sound08,100000.0)
call SetSoundParamsFromLabel(udg_sound09,"EnchantedCellLoop")
call SetSoundDuration(udg_sound09,4999)
call SetSoundDistances(udg_sound09,250.0,5000.0)
call SetSoundDuration(udg_sound10,108006)
call SetSoundChannel(udg_sound10,0)
call SetSoundVolume(udg_sound10,127)
call SetSoundPitch(udg_sound10,1.0)
set udg_rect02=Rect(-1408.0,-1856.0,-800.0,-1216.0)
set udg_rect03=Rect(-2240.0,-384.0,-1632.0,256.0)
set udg_rect04=Rect(-5120.0,-1120.0,-4512.0,-480.0)
set udg_rect05=Rect(-6624.0,-768.0,-6016.0,-128.0)
set udg_rect06=Rect(-5920.0,-3360.0,-5312.0,-2720.0)
set udg_rect07=Rect(-7264.0,-4512.0,-6656.0,-3872.0)
set udg_rect08=Rect(-5952.0,-4864.0,-5504.0,-4448.0)
set udg_rect09=Rect(-2464.0,-6240.0,-640.0,-4800.0)
set udg_rect10=Rect(-2464.0,-3584.0,-2016.0,-3168.0)
set udg_rect11=Rect(2144.0,-1792.0,2592.0,-1376.0)
set udg_rect12=Rect(5120.0,-864.0,5632.0,-288.0)
set udg_rect13=Rect(6816.0,-5376.0,7328.0,-4800.0)
set udg_rect14=Rect(5824.0,-6560.0,6336.0,-5984.0)
set udg_rect15=Rect(-8352.0,-7872.0,-8288.0,-7808.0)
set udg_rect16=Rect(-7872.0,-8096.0,-7808.0,-8032.0)
set udg_rect17=Rect(-6880.0,-8288.0,-6816.0,-8224.0)
set udg_rect18=Rect(-5888.0,-8288.0,-5824.0,-8224.0)
set udg_rect19=Rect(-5376.0,-8032.0,-5312.0,-7968.0)
set udg_rect20=Rect(-4736.0,-6944.0,-4672.0,-6880.0)
set udg_rect21=Rect(-3424.0,-6240.0,-3360.0,-6176.0)
set udg_rect22=Rect(-2528.0,-6304.0,-2464.0,-6240.0)
set udg_rect23=Rect(-1824.0,-6720.0,-1760.0,-6656.0)
set udg_rect24=Rect(-1280.0,-6528.0,-1216.0,-6464.0)
set udg_rect25=Rect(-320.0,-7168.0,-256.0,-7104.0)
set udg_rect26=Rect(-160.0,-7616.0,-96.0,-7552.0)
set udg_rect27=Rect(1280.0,-7616.0,1344.0,-7552.0)
set udg_rect28=Rect(2912.0,-7584.0,2976.0,-7520.0)
set udg_rect29=Rect(3424.0,-7136.0,3488.0,-7072.0)
set udg_rect30=Rect(3968.0,-7136.0,4032.0,-7072.0)
set udg_rect31=Rect(4448.0,-7424.0,4512.0,-7360.0)
set udg_rect32=Rect(6080.0,-6176.0,6144.0,-6112.0)
set udg_rect33=Rect(6048.0,-4608.0,6112.0,-4544.0)
set udg_rect34=Rect(5664.0,-4096.0,5728.0,-4032.0)
set udg_rect35=Rect(5056.0,-3808.0,5120.0,-3744.0)
set udg_rect36=Rect(6208.0,-2400.0,6272.0,-2336.0)
set udg_rect37=Rect(6080.0,-928.0,6144.0,-864.0)
set udg_rect38=Rect(6720.0,832.0,6784.0,896.0)
set udg_rect39=Rect(7744.0,1280.0,7808.0,1344.0)
set udg_rect40=Rect(-6592.0,-8416.0,-6528.0,-8352.0)
set udg_rect41=Rect(-7136.0,-8128.0,-7072.0,-8064.0)
set udg_rect42=Rect(-7328.0,-7264.0,-7264.0,-7200.0)
set udg_rect43=Rect(-7328.0,-5920.0,-7264.0,-5856.0)
set udg_rect44=Rect(-6848.0,-4032.0,-6784.0,-3968.0)
set udg_rect45=Rect(-5856.0,-3072.0,-5792.0,-3008.0)
set udg_rect46=Rect(-5280.0,-3040.0,-5216.0,-2976.0)
set udg_rect47=Rect(-5024.0,-2688.0,-4960.0,-2624.0)
set udg_rect48=Rect(-4896.0,-2016.0,-4832.0,-1952.0)
set udg_rect49=Rect(-4352.0,-1408.0,-4288.0,-1344.0)
set udg_rect50=Rect(-2848.0,-1056.0,-2784.0,-992.0)
set udg_rect51=Rect(-1472.0,-1088.0,-1408.0,-1024.0)
set udg_rect52=Rect(-192.0,-1696.0,-128.0,-1632.0)
set udg_rect53=Rect(416.0,-1856.0,480.0,-1792.0)
set udg_rect54=Rect(1120.0,-1280.0,1184.0,-1216.0)
set udg_rect55=Rect(2976.0,-1600.0,3040.0,-1536.0)
set udg_rect56=Rect(3488.0,-1184.0,3552.0,-1120.0)
set udg_rect57=Rect(6208.0,-2272.0,6272.0,-2208.0)
set udg_rect58=Rect(5120.0,-3808.0,5184.0,-3744.0)
set udg_rect59=Rect(6144.0,-4704.0,6208.0,-4640.0)
set udg_rect60=Rect(6080.0,-6080.0,6144.0,-6016.0)
set udg_rect61=Rect(7200.0,-7584.0,7264.0,-7520.0)
set udg_rect62=Rect(-7008.0,-4192.0,-5824.0,-3008.0)
set udg_rect63=Rect(-2848.0,-3232.0,-1664.0,-2048.0)
set udg_rect64=Rect(6560.0,-4864.0,6656.0,-4768.0)
set udg_rect65=Rect(5088.0,-4352.0,5184.0,-4256.0)
set udg_rect66=Rect(5248.0,-4352.0,5344.0,-4256.0)
set udg_rect67=Rect(5280.0,-4576.0,5376.0,-4480.0)
set udg_rect68=Rect(-6208.0,-2304.0,-6112.0,-2208.0)
set udg_rect69=Rect(-5408.0,-1824.0,-5312.0,-1728.0)
set udg_rect70=Rect(-6496.0,-1536.0,-6400.0,-1440.0)
set udg_rect71=Rect(-7040.0,-2080.0,-6944.0,-1984.0)
set udg_rect72=Rect(8032.0,-5888.0,8128.0,-5792.0)
set udg_rect73=Rect(8192.0,-6144.0,8288.0,-6048.0)
set udg_rect74=Rect(-1376.0,-2592.0,6464.0,-736.0)
set udg_rect75=Rect(-8704.0,-7904.0,-8544.0,-7584.0)
set udg_rect76=Rect(-7072.0,-8928.0,-6720.0,-8768.0)
set udg_rect77=Rect(-8672.0,-2624.0,-7680.0,-1952.0)
call SetSoundPosition(udg_sound05,-8176.0,-2288.0,-166.5)
call RegisterStackedSound(udg_sound05,true,992.0,672.0)
set udg_rect78=Rect(-7936.0,-3296.0,-6848.0,-2496.0)
call SetSoundPosition(udg_sound05,-7392.0,-2896.0,-150.8)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect79=Rect(-6912.0,-4096.0,-4640.0,-3296.0)
call SetSoundPosition(udg_sound05,-5776.0,-3696.0,-180.2)
call RegisterStackedSound(udg_sound05,true,2272.0,800.0)
set udg_rect80=Rect(-4736.0,-3456.0,-3648.0,-2656.0)
call SetSoundPosition(udg_sound05,-4192.0,-3056.0,-162.4)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect81=Rect(-3968.0,-2688.0,-2880.0,-1888.0)
call SetSoundPosition(udg_sound05,-3424.0,-2288.0,-163.0)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect82=Rect(-2912.0,-2880.0,-1824.0,-2080.0)
call SetSoundPosition(udg_sound05,-2368.0,-2480.0,-141.2)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect83=Rect(-1856.0,-3552.0,-768.0,-2752.0)
call SetSoundPosition(udg_sound05,-1312.0,-3152.0,-158.9)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect84=Rect(-864.0,-3872.0,224.0,-3072.0)
call SetSoundPosition(udg_sound05,-320.0,-3472.0,-191.9)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect85=Rect(192.0,-4448.0,1280.0,-3648.0)
call SetSoundPosition(udg_sound05,736.0,-4048.0,-183.7)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect86=Rect(-32.0,-10240.0,1184.0,-4448.0)
call SetSoundPosition(udg_sound05,576.0,-7344.0,-190.1)
call RegisterStackedSound(udg_sound05,true,1216.0,5792.0)
set udg_rect87=Rect(1216.0,-4736.0,2304.0,-3936.0)
call SetSoundPosition(udg_sound05,1760.0,-4336.0,-189.9)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect88=Rect(2176.0,-5664.0,5984.0,-4608.0)
call SetSoundPosition(udg_sound05,4080.0,-5136.0,-103.4)
call RegisterStackedSound(udg_sound05,true,3808.0,1056.0)
set udg_rect89=Rect(5888.0,-6016.0,6976.0,-5216.0)
call SetSoundPosition(udg_sound05,6432.0,-5616.0,-188.6)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect90=Rect(6944.0,-6464.0,8032.0,-5664.0)
call SetSoundPosition(udg_sound05,7488.0,-6064.0,-176.8)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect91=Rect(8000.0,-7104.0,9088.0,-6304.0)
call SetSoundPosition(udg_sound05,8544.0,-6704.0,-187.2)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect92=Rect(-9120.0,1312.0,-6304.0,2112.0)
call SetSoundPosition(udg_sound05,-7712.0,1712.0,-192.0)
call RegisterStackedSound(udg_sound05,true,2816.0,800.0)
set udg_rect93=Rect(-6688.0,2048.0,-5792.0,6144.0)
call SetSoundPosition(udg_sound05,-6240.0,4096.0,-256.0)
call RegisterStackedSound(udg_sound05,true,896.0,4096.0)
set udg_rect94=Rect(-6272.0,768.0,-5184.0,1568.0)
call SetSoundPosition(udg_sound05,-5728.0,1168.0,-179.1)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect95=Rect(-5120.0,768.0,-3968.0,1856.0)
call SetSoundPosition(udg_sound05,-4544.0,1312.0,-268.2)
call RegisterStackedSound(udg_sound05,true,1152.0,1088.0)
set udg_rect96=Rect(-3360.0,480.0,-2144.0,1792.0)
call SetSoundPosition(udg_sound05,-2752.0,1136.0,-160.1)
call RegisterStackedSound(udg_sound05,true,1216.0,1312.0)
set udg_rect97=Rect(-1632.0,864.0,-544.0,1664.0)
call SetSoundPosition(udg_sound05,-1088.0,1264.0,-152.4)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect98=Rect(-384.0,1376.0,512.0,6144.0)
call SetSoundPosition(udg_sound05,64.0,3760.0,-213.3)
call RegisterStackedSound(udg_sound05,true,896.0,4768.0)
set udg_rect99=Rect(-544.0,288.0,544.0,1088.0)
call SetSoundPosition(udg_sound05,0.0,688.0,-145.0)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect100=Rect(512.0,-160.0,1600.0,640.0)
call SetSoundPosition(udg_sound05,1056.0,240.0,-161.9)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect101=Rect(1600.0,-544.0,4032.0,672.0)
set udg_rect102=Rect(2624.0,672.0,4000.0,1632.0)
call SetSoundPosition(udg_sound05,3312.0,1152.0,-256.0)
call RegisterStackedSound(udg_sound05,true,1376.0,960.0)
set udg_rect103=Rect(2400.0,1632.0,3392.0,6144.0)
call SetSoundPosition(udg_sound05,2896.0,3888.0,-256.0)
call RegisterStackedSound(udg_sound05,true,992.0,4512.0)
set udg_rect104=Rect(4032.0,192.0,5728.0,992.0)
call SetSoundPosition(udg_sound05,4880.0,592.0,-167.1)
call RegisterStackedSound(udg_sound05,true,1696.0,800.0)
set udg_rect105=Rect(5152.0,960.0,6240.0,1760.0)
call SetSoundPosition(udg_sound05,5696.0,1360.0,-187.4)
call RegisterStackedSound(udg_sound05,true,1088.0,800.0)
set udg_rect106=Rect(6240.0,1344.0,7392.0,2208.0)
call SetSoundPosition(udg_sound05,6816.0,1776.0,-192.0)
call RegisterStackedSound(udg_sound05,true,1152.0,864.0)
set udg_rect107=Rect(7392.0,1760.0,10240.0,2624.0)
call SetSoundPosition(udg_sound05,8816.0,2192.0,-192.0)
call RegisterStackedSound(udg_sound05,true,2848.0,864.0)
set udg_rect108=Rect(-5632.0,-8256.0,-5536.0,-8160.0)
set udg_rect109=Rect(3104.0,-6400.0,3424.0,-6144.0)
call SetSoundPosition(udg_sound09,3264.0,-6272.0,-0.1)
call RegisterStackedSound(udg_sound09,true,320.0,256.0)
set udg_rect110=Rect(-1248.0,-2496.0,-928.0,-2240.0)
call SetSoundPosition(udg_sound09,-1088.0,-2368.0,5.4)
call RegisterStackedSound(udg_sound09,true,320.0,256.0)
set udg_rect111=Rect(7936.0,-5632.0,8448.0,-5056.0)
set udg_rect112=Rect(9056.0,-7200.0,10240.0,-6272.0)
call SetSoundPosition(udg_sound05,9648.0,-6736.0,-170.9)
call RegisterStackedSound(udg_sound05,true,1184.0,928.0)
set udg_rect113=Rect(8544.0,-7744.0,8704.0,-7328.0)
set udg_rect114=Rect(8544.0,1312.0,8704.0,1728.0)
set udg_rect115=Rect(-6656.0,-1568.0,-1408.0,288.0)
set udg_rect116=Rect(-6432.0,-2976.0,-4832.0,-1632.0)
set udg_rect117=Rect(-7520.0,-5760.0,64.0,-4320.0)
set udg_rect118=Rect(5248.0,-4768.0,7104.0,-2656.0)
set udg_rect119=Rect(-3776.0,-4320.0,-1920.0,-3296.0)
call CameraSetupSetField(udg_camerasetup01,CAMERA_FIELD_ZOFFSET,0.0,0.0)
call CameraSetupSetField(udg_camerasetup01,CAMERA_FIELD_ROTATION,46.3,0.0)
call CameraSetupSetField(udg_camerasetup01,CAMERA_FIELD_ANGLE_OF_ATTACK,340.0,0.0)
call CameraSetupSetField(udg_camerasetup01,CAMERA_FIELD_TARGET_DISTANCE,1500.0,0.0)
call CameraSetupSetField(udg_camerasetup01,CAMERA_FIELD_ROLL,0.0,0.0)
call CameraSetupSetField(udg_camerasetup01,CAMERA_FIELD_FIELD_OF_VIEW,70.0,0.0)
call CameraSetupSetField(udg_camerasetup01,CAMERA_FIELD_FARZ,5000.0,0.0)
call CameraSetupSetDestPosition(udg_camerasetup01,7397.2,-1248.7,0.0)
set udg_destructable01=CreateDestructableZ('LT04',-2208.0,-2624.0,-190.2,0.000,1.000,0)
set udg_destructable02=CreateDestructableZ('LT05',-6336.0,-3584.0,-178.2,0.000,1.000,0)
set udg_unit19=CreateUnit(p,'n008',3776.0,-6720.0,270.000)
set udg_unit20=CreateUnit(p,'n007',-640.0,-6464.0,270.000)
set u=CreateUnit(p,'n006',3776.0,-4288.0,270.000)
set u=CreateUnit(p,'n007',128.0,-2240.0,270.000)
set udg_unit21=CreateUnit(p,'n008',-5312.0,192.0,270.000)
set udg_unit22=CreateUnit(p,'n006',4160.0,1600.0,270.000)
set udg_unit17=CreateUnit(p,'n006',3328.0,-8000.0,270.000)
set udg_unit18=CreateUnit(p,'n007',-704.0,1984.0,270.000)
set udg_unit23=CreateUnit(p,'n00A',-4544.0,-4096.0,270.000)
set u=CreateUnit(p,'n00A',7872.0,-4416.0,270.000)
set u=CreateUnit(p,'n009',1344.0,-5056.0,270.000)
set u=CreateUnit(p,'n009',1280.0,-1856.0,270.000)
set u=CreateUnit(p,'n00A',1856.0,-3392.0,270.000)
set u=CreateUnit(p,'n009',-7552.0,-1984.0,270.000)
set udg_unit24=CreateUnit(p,'n007',6144.0,192.0,270.000)
set u=CreateUnit(p,'n008',5312.0,-2432.0,270.000)
set u=CreateUnit(p,'n006',-512.0,-640.0,270.000)
set udg_unit26=CreateUnit(p,'nwgt',-1088.0,-2368.0,270.000)
call WaygateSetDestination(udg_unit26,GetRectCenterX(udg_rect109),GetRectCenterY(udg_rect109))
call WaygateActivate(udg_unit26,true)
set udg_unit25=CreateUnit(p,'nwgt',3264.0,-6272.0,270.000)
call WaygateSetDestination(udg_unit25,GetRectCenterX(udg_rect110),GetRectCenterY(udg_rect110))
call WaygateActivate(udg_unit25,true)
set p=Player(0)
set u=CreateUnit(p,'h000',-7936.0,-7552.0,270.000)
set u=CreateUnit(p,'h000',-7552.0,-8512.0,270.000)
set u=CreateUnit(p,'h000',-7552.0,-7936.0,270.000)
set u=CreateUnit(p,'h002',-8128.0,-8448.0,270.000)
set p=Player(1)
set u=CreateUnit(p,'h002',-3456.0,-8320.0,270.000)
set u=CreateUnit(p,'h000',-3392.0,-7552.0,270.000)
set u=CreateUnit(p,'h000',-3904.0,-7616.0,270.000)
set u=CreateUnit(p,'h000',-4096.0,-8192.0,270.000)
set p=Player(2)
set u=CreateUnit(p,'h000',-2176.0,-7296.0,270.000)
set u=CreateUnit(p,'h000',-2688.0,-7232.0,270.000)
set u=CreateUnit(p,'h000',-1664.0,-7872.0,270.000)
set u=CreateUnit(p,'h002',-2560.0,-8000.0,270.000)
set p=Player(3)
set u=CreateUnit(p,'h002',-640.0,-7936.0,270.000)
set u=CreateUnit(p,'h000',-384.0,-7424.0,270.000)
set u=CreateUnit(p,'h000',-960.0,-7296.0,270.000)
set u=CreateUnit(p,'h000',-1216.0,-8000.0,270.000)
set p=Player(4)
set u=CreateUnit(p,'h002',1664.0,-8128.0,270.000)
set u=CreateUnit(p,'h000',2112.0,-7808.0,270.000)
set u=CreateUnit(p,'h000',1344.0,-8576.0,270.000)
set u=CreateUnit(p,'h000',1344.0,-7872.0,270.000)
set p=Player(5)
set u=CreateUnit(p,'h002',5696.0,-8384.0,270.000)
set u=CreateUnit(p,'h000',6016.0,-7872.0,270.000)
set u=CreateUnit(p,'h000',5632.0,-7808.0,270.000)
set u=CreateUnit(p,'h000',5248.0,-8192.0,270.000)
set p=Player(6)
set u=CreateUnit(p,'u005',-6912.0,3392.0,270.000)
set u=CreateUnit(p,'u00E',-6816.0,2720.0,270.000)
set u=CreateUnit(p,'u00E',-8416.0,2592.0,270.000)
set u=CreateUnit(p,'u00E',-7456.0,3232.0,270.000)
set p=Player(7)
set u=CreateUnit(p,'u005',-4416.0,3776.0,270.000)
set u=CreateUnit(p,'u00E',-5024.0,3424.0,270.000)
set u=CreateUnit(p,'u00E',-4384.0,2784.0,270.000)
set u=CreateUnit(p,'u00E',-3808.0,3552.0,270.000)
set p=Player(8)
set u=CreateUnit(p,'u005',-2112.0,3072.0,270.000)
set u=CreateUnit(p,'u00E',-2848.0,3040.0,270.000)
set u=CreateUnit(p,'u00E',-2400.0,2272.0,270.000)
set u=CreateUnit(p,'u00E',-1440.0,3040.0,270.000)
set p=Player(9)
set u=CreateUnit(p,'u005',1856.0,3008.0,270.000)
set u=CreateUnit(p,'u00E',992.0,2720.0,270.000)
set u=CreateUnit(p,'u00E',1760.0,2272.0,270.000)
set u=CreateUnit(p,'u00E',1632.0,3808.0,270.000)
set p=Player(10)
set u=CreateUnit(p,'u005',4608.0,3456.0,270.000)
set u=CreateUnit(p,'u00E',4960.0,2784.0,270.000)
set u=CreateUnit(p,'u00E',4384.0,2784.0,270.000)
set u=CreateUnit(p,'u00E',4128.0,3680.0,270.000)
set p=Player(11)
set u=CreateUnit(p,'u005',7168.0,3968.0,270.000)
set u=CreateUnit(p,'u00E',7776.0,3808.0,270.000)
set u=CreateUnit(p,'u00E',7328.0,3232.0,270.000)
set u=CreateUnit(p,'u00E',6688.0,3872.0,270.000)
set p=Player(12)
set u=CreateUnit(p,'nech',5291.2,-6607.4,125.885)
set u=CreateUnit(p,'nech',6322.1,-7355.9,56.790)
set u=CreateUnit(p,'ndog',5916.3,-6211.5,80.082)
set u=CreateUnit(p,'ndog',6867.6,-6831.5,67.063)
set u=CreateUnit(p,'nshe',4689.5,-7251.0,72.051)
set u=CreateUnit(p,'nshe',6048.1,-7202.5,237.982)
set u=CreateUnit(p,'nshe',1648.7,-6890.3,165.789)
set u=CreateUnit(p,'nshe',1499.8,-6245.9,291.245)
set u=CreateUnit(p,'nshe',2702.2,-7465.6,110.669)
set u=CreateUnit(p,'nshe',2480.5,-6417.1,157.922)
set u=CreateUnit(p,'nshe',3020.8,-6411.9,106.593)
set u=CreateUnit(p,'ndog',2553.1,-6976.4,335.060)
set u=CreateUnit(p,'nech',2037.0,-6922.3,145.716)
set u=CreateUnit(p,'nech',2628.6,-7162.6,203.605)
set u=CreateUnit(p,'nech',-1934.6,-5210.9,148.221)
set u=CreateUnit(p,'nech',-2289.6,-4140.2,349.233)
set u=CreateUnit(p,'nech',-1070.1,-4704.1,35.860)
set u=CreateUnit(p,'ndog',-1531.8,-4834.0,121.403)
set u=CreateUnit(p,'ndog',-663.1,-5543.3,109.636)
set u=CreateUnit(p,'ndog',-7008.9,-4802.6,339.455)
set u=CreateUnit(p,'nech',-6485.1,-5009.7,231.830)
set u=CreateUnit(p,'nech',-7205.4,-5556.0,156.933)
set u=CreateUnit(p,'nshe',-6570.8,-5809.4,306.627)
set u=CreateUnit(p,'nshe',-7072.6,-5387.4,334.082)
set u=CreateUnit(p,'nshe',-2283.5,-5471.7,187.564)
set u=CreateUnit(p,'nshe',-2786.4,-4724.2,344.904)
set u=CreateUnit(p,'nrac',-4064.8,-4429.0,217.844)
set u=CreateUnit(p,'nech',-6773.3,-7880.1,44.320)
set u=CreateUnit(p,'nech',-4278.0,-7436.6,79.390)
set u=CreateUnit(p,'necr',-4009.7,-4956.6,284.511)
set u=CreateUnit(p,'nder',-4016.4,-5145.4,237.532)
set u=CreateUnit(p,'ndog',-5040.0,-7091.6,116.832)
set u=CreateUnit(p,'n001',6577.4,-7279.2,168.689)
set u=CreateUnit(p,'n002',4740.2,-7291.1,149.528)
set u=CreateUnit(p,'n004',5374.9,-6383.4,15.832)
set u=CreateUnit(p,'n005',6011.7,-6364.1,219.755)
set u=CreateUnit(p,'n005',5137.0,-7063.5,152.726)
set u=CreateUnit(p,'n003',6522.1,-7259.2,336.027)
set u=CreateUnit(p,'n003',2501.1,-6548.1,309.615)
set u=CreateUnit(p,'n004',2326.0,-6855.8,115.964)
set u=CreateUnit(p,'n005',2734.2,-6810.4,295.223)
set u=CreateUnit(p,'n001',2332.0,-6496.2,230.445)
set u=CreateUnit(p,'n001',-2338.1,-6153.0,331.116)
set u=CreateUnit(p,'n002',-1624.0,-6329.3,183.104)
set u=CreateUnit(p,'n005',-954.9,-5515.5,257.912)
set u=CreateUnit(p,'n004',-988.6,-5290.7,198.540)
set u=CreateUnit(p,'n003',-1803.1,-5350.8,317.954)
set u=CreateUnit(p,'n003',-2312.3,-6228.3,95.595)
set u=CreateUnit(p,'n004',-1567.0,-4913.8,26.412)
set u=CreateUnit(p,'n005',-2626.6,-4150.8,127.706)
set u=CreateUnit(p,'n003',-2974.3,-3890.3,111.409)
set u=CreateUnit(p,'n001',-3071.2,-3982.5,258.439)
set u=CreateUnit(p,'n002',-3084.7,-4037.2,76.689)
set u=CreateUnit(p,'n004',-2832.4,-4877.2,33.689)
set u=CreateUnit(p,'n004',-2687.3,-3477.0,319.684)
set u=CreateUnit(p,'n004',-6947.1,-4956.2,354.529)
set u=CreateUnit(p,'n005',-7062.0,-5820.3,210.735)
set u=CreateUnit(p,'n003',-6994.4,-6722.2,191.454)
set udg_unit16=CreateUnit(p,'n004',-4556.2,-6774.1,92.398)
set p=Player(15)
set udg_unit27=CreateUnit(p,'hpea',7670.2,-234.9,240.380)
set p=Player(0)
set u=CreateUnit(p,'H00O',-7732.8,-8286.3,352.892)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'h003',-7552.4,-8197.8,1.857)
set u=CreateUnit(p,'h003',-7666.9,-8108.0,108.098)
set u=CreateUnit(p,'h003',-7808.2,-7957.2,42.101)
set p=Player(1)
set u=CreateUnit(p,'H00O',-4303.0,-7720.2,356.363)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'h003',-3488.2,-7776.2,79.763)
set u=CreateUnit(p,'h003',-4093.1,-7427.1,297.892)
set u=CreateUnit(p,'h003',-4306.9,-8093.1,307.000)
set p=Player(2)
set u=CreateUnit(p,'H00O',-2182.8,-8212.5,50.835)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'h003',-2199.8,-7907.3,235.027)
set u=CreateUnit(p,'h003',-2485.8,-7549.0,20.479)
set u=CreateUnit(p,'h003',-2878.8,-7393.7,349.859)
set p=Player(3)
set u=CreateUnit(p,'H00O',-1144.0,-7706.8,196.617)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'h003',-581.7,-7508.8,147.452)
set u=CreateUnit(p,'h003',-885.1,-7552.5,267.899)
set u=CreateUnit(p,'h003',-971.4,-7747.8,196.771)
set p=Player(4)
set u=CreateUnit(p,'H00O',2183.0,-8098.6,83.740)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'h003',2076.2,-8104.5,10.218)
set u=CreateUnit(p,'h003',1843.2,-7729.7,127.665)
set u=CreateUnit(p,'h003',1462.8,-7664.0,3.549)
set p=Player(5)
set u=CreateUnit(p,'H00O',5100.2,-7895.0,252.133)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'h003',5852.8,-8042.0,259.527)
set u=CreateUnit(p,'h003',5567.7,-7993.0,322.239)
set u=CreateUnit(p,'h003',5464.8,-8108.0,23.402)
set p=Player(6)
set u=CreateUnit(p,'H00P',-7164.6,2974.6,19.666)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'u000',-7122.6,3163.2,352.947)
set u=CreateUnit(p,'u000',-7219.4,3373.0,38.728)
set u=CreateUnit(p,'u000',-6991.0,3182.3,30.444)
set p=Player(7)
set u=CreateUnit(p,'H00P',-4091.3,3094.8,233.137)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'u000',-4595.1,3375.7,124.951)
set u=CreateUnit(p,'u000',-4336.5,3322.2,73.171)
set u=CreateUnit(p,'u000',-4060.5,3583.3,2.933)
set p=Player(8)
set u=CreateUnit(p,'H00P',-2248.6,2715.5,84.828)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'u000',-2381.3,2884.1,3.032)
set u=CreateUnit(p,'u000',-2097.8,2844.0,269.986)
set u=CreateUnit(p,'u000',-1784.8,2897.7,41.453)
set p=Player(9)
set u=CreateUnit(p,'H00P',1401.8,2739.5,96.342)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'u000',1603.7,3194.6,307.967)
set u=CreateUnit(p,'u000',1907.0,2652.7,343.509)
set u=CreateUnit(p,'u000',1624.6,2861.9,164.657)
set p=Player(10)
set u=CreateUnit(p,'H00P',4442.9,3297.3,321.503)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'u000',4805.2,3160.6,340.685)
set u=CreateUnit(p,'u000',4651.1,3110.6,339.169)
set u=CreateUnit(p,'u000',4353.8,3219.4,129.785)
set p=Player(11)
set u=CreateUnit(p,'H00P',7191.3,3498.9,69.282)
call SetUnitState(u,UNIT_STATE_MANA,70)
call UnitAddItemToSlotById(u,'I00W',0)
set u=CreateUnit(p,'u000',7403.0,3755.8,239.114)
set u=CreateUnit(p,'u000',7237.8,3652.5,6.845)
set u=CreateUnit(p,'u000',6966.2,3737.5,315.262)
set udg_trigger01=CreateTrigger()
call TriggerAddAction(udg_trigger01,function Trig_Init_Player_Names_Actions)
set udg_trigger02=CreateTrigger()
call TriggerAddAction(udg_trigger02,function Trig_Init_Corpses_Actions)
set udg_trigger03=CreateTrigger()
call TriggerAddAction(udg_trigger03,function Trig_Init_Bounty_And_Starting_Money_Actions)
set udg_trigger04=CreateTrigger()
call TriggerAddAction(udg_trigger04,function Trig_Init_Text_And_Alliances_Etc_Actions)
set udg_trigger05=CreateTrigger()
call TriggerRegisterTimerEventSingle(udg_trigger05,0.01)
call TriggerAddAction(udg_trigger05,function Trig_Unit_Animations_Actions)
set udg_trigger06=CreateTrigger()
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(0))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(1))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(2))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(3))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(4))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(5))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(6))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(7))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(8))
call TriggerRegisterPlayerEventLeave(udg_trigger06,Player(9))
call TriggerAddAction(udg_trigger06,function Trig_Player_Leaves_Game_Actions)
set udg_trigger07=CreateTrigger()
call TriggerRegisterTimerEventSingle(udg_trigger07,0.10)
call TriggerAddAction(udg_trigger07,function Trig_Unused_Player_Slots_Actions)
set udg_trigger08=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger08,60.00)
call TriggerAddAction(udg_trigger08,function Trig_Taxing_Actions)
set udg_trigger09=CreateTrigger()
call TriggerAddAction(udg_trigger09,function Trig_Shop_Visibility_Actions)
set udg_trigger10=CreateTrigger()
call TriggerAddAction(udg_trigger10,function Trig_Opening_Cinematic_Actions)
set udg_trigger11=CreateTrigger()
call TriggerAddAction(udg_trigger11,function Trig_After_Opening_Cin_Setup_Actions)
set udg_trigger12=CreateTrigger()
call TriggerAddAction(udg_trigger12,function Trig_Init_Starting_Spawns_Actions)
set udg_trigger13=CreateTrigger()
call TriggerAddAction(udg_trigger13,function Trig_Init_Item_Spawn_Actions)
set udg_trigger14=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger14,20.00)
call TriggerAddAction(udg_trigger14,function Trig_Human_Melee_Actions)
set udg_trigger15=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger15,20.00)
call TriggerAddAction(udg_trigger15,function Trig_Human_Ranged_Actions)
set udg_trigger16=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger16,30.00)
call TriggerAddAction(udg_trigger16,function Trig_Human_Casters_Actions)
set udg_trigger17=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger17,20.00)
call TriggerAddAction(udg_trigger17,function Trig_Human_Flyers_Actions)
set udg_trigger18=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger18,15.00)
call TriggerAddAction(udg_trigger18,function Trig_Undead_Melee_Actions)
set udg_trigger19=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger19,30.00)
call TriggerAddAction(udg_trigger19,function Trig_Undead_Casters_Actions)
set udg_trigger20=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger20,20.00)
call TriggerAddAction(udg_trigger20,function Trig_Undead_Flyers_Actions)
set udg_trigger21=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger21,20.00)
call TriggerAddAction(udg_trigger21,function Trig_Undead_Ranged_Actions)
set udg_trigger22=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger22,0.50)
call TriggerAddCondition(udg_trigger22,Condition(function Trig_Undead_Victory_Conditions))
call TriggerAddAction(udg_trigger22,function Trig_Undead_Victory_Actions)
set udg_trigger23=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger23,0.50)
call TriggerAddCondition(udg_trigger23,Condition(function Trig_Human_Victory_Conditions))
call TriggerAddAction(udg_trigger23,function Trig_Human_Victory_Actions)
set udg_trigger24=CreateTrigger()
call DisableTrigger(udg_trigger24)
call TriggerRegisterTimerEventPeriodic(udg_trigger24,60.00)
call TriggerAddCondition(udg_trigger24,Condition(function Trig_AI_Massing_Conditions))
call TriggerAddAction(udg_trigger24,function Trig_AI_Massing_Actions)
set udg_trigger25=CreateTrigger()
call TriggerRegisterTimerEventSingle(udg_trigger25,0.01)
call TriggerAddAction(udg_trigger25,function Trig_AI_Setup_Actions)
set udg_trigger26=CreateTrigger()
call DisableTrigger(udg_trigger26)
call TriggerRegisterTimerEventPeriodic(udg_trigger26,30.00)
call TriggerAddAction(udg_trigger26,function Trig_AI_Orders_Actions)
set udg_trigger27=CreateTrigger()
call DisableTrigger(udg_trigger27)
call TriggerRegisterTimerEventPeriodic(udg_trigger27,30.00)
call TriggerAddAction(udg_trigger27,function Trig_AI_Orders_Massing_Actions)
set udg_trigger28=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger28,GetRandomReal(360.00,480.00))
call TriggerAddAction(udg_trigger28,function Trig_AI_Upgrading_Actions)
set udg_trigger29=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger29,600.00)
call TriggerAddAction(udg_trigger29,function Trig_AI_Items_Actions)
set udg_trigger30=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger30,EVENT_PLAYER_UNIT_DEATH)
call TriggerAddCondition(udg_trigger30,Condition(function Trig_Hero_Reviving_Conditions))
call TriggerAddAction(udg_trigger30,function Trig_Hero_Reviving_Actions)
set udg_trigger31=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger31,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger31,Condition(function Trig_Leaping_Strike_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger31,function Trig_Leaping_Strike_Ability_Add_Actions)
set udg_trigger32=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger32,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger32,Condition(function Trig_Hero_Point_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger32,function Trig_Hero_Point_Ability_Add_Actions)
set udg_trigger33=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger33,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger33,Condition(function Trig_Brill_Aura_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger33,function Trig_Brill_Aura_Ability_Add_Actions)
set udg_trigger34=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger34,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger34,Condition(function Trig_Crushing_Blow_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger34,function Trig_Crushing_Blow_Ability_Add_Actions)
set udg_trigger35=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger35,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger35,Condition(function Trig_Battle_Smash_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger35,function Trig_Battle_Smash_Ability_Add_Actions)
set udg_trigger36=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger36,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger36,Condition(function Trig_Slamwave_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger36,function Trig_Slamwave_Ability_Add_Actions)
set udg_trigger37=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger37,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger37,Condition(function Trig_Forked_Flame_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger37,function Trig_Forked_Flame_Ability_Add_Actions)
set udg_trigger38=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger38,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger38,Condition(function Trig_Teleport_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger38,function Trig_Teleport_Ability_Add_Actions)
set udg_trigger39=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger39,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger39,Condition(function Trig_Storm_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger39,function Trig_Storm_Ability_Add_Actions)
set udg_trigger40=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger40,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger40,Condition(function Trig_Orcish_Fighting_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger40,function Trig_Orcish_Fighting_Ability_Add_Actions)
set udg_trigger41=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger41,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger41,Condition(function Trig_Unholy_Strike_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger41,function Trig_Unholy_Strike_Ability_Add_Actions)
set udg_trigger42=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger42,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger42,Condition(function Trig_Meteor_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger42,function Trig_Meteor_Ability_Add_Actions)
set udg_trigger43=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger43,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger43,Condition(function Trig_Wrath_Of_The_Sea_Ability_Add_Conditions))
call TriggerAddAction(udg_trigger43,function Trig_Wrath_Of_The_Sea_Ability_Add_Actions)
set udg_trigger44=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger44,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger44,Condition(function Trig_Wizard_Staff_Abilities_Conditions))
call TriggerAddAction(udg_trigger44,function Trig_Wizard_Staff_Abilities_Actions)
set udg_trigger45=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger45,EVENT_PLAYER_UNIT_DROP_ITEM)
call TriggerAddCondition(udg_trigger45,Condition(function Trig_Wizard_Staff_Abilities_Remove_Conditions))
call TriggerAddAction(udg_trigger45,function Trig_Wizard_Staff_Abilities_Remove_Actions)
set udg_trigger46=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger46,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddCondition(udg_trigger46,Condition(function Trig_Warlock_Shield_Abilities_Conditions))
call TriggerAddAction(udg_trigger46,function Trig_Warlock_Shield_Abilities_Actions)
set udg_trigger47=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger47,EVENT_PLAYER_UNIT_DROP_ITEM)
call TriggerAddCondition(udg_trigger47,Condition(function Trig_Warlock_Shield_Abilities_Remove_Conditions))
call TriggerAddAction(udg_trigger47,function Trig_Warlock_Shield_Abilities_Remove_Actions)
set udg_trigger48=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger48,GetRandomReal(50.00,90.00))
call TriggerAddAction(udg_trigger48,function Trig_Item_Spawns1_Actions)
set udg_trigger49=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger49,GetRandomReal(50.00,70.00))
call TriggerAddAction(udg_trigger49,function Trig_Item_Spawns2_Actions)
set udg_trigger50=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger50,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddAction(udg_trigger50,function Trig_Item_Class_Pickup_Actions)
set udg_trigger51=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger51,EVENT_PLAYER_UNIT_SPELL_CAST)
call TriggerAddCondition(udg_trigger51,Condition(function Trig_Battle_Roar_Conditions))
call TriggerAddAction(udg_trigger51,function Trig_Battle_Roar_Actions)
set udg_trigger52=CreateTrigger()
call DisableTrigger(udg_trigger52)
call TriggerRegisterTimerEventSingle(udg_trigger52,GetRandomReal(300.00,420.00))
call TriggerAddAction(udg_trigger52,function Trig_Caravan_Setup_Actions)
set udg_trigger53=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger53,0.20)
call TriggerAddCondition(udg_trigger53,Condition(function Trig_Caravan_Victory_Conditions))
call TriggerAddAction(udg_trigger53,function Trig_Caravan_Victory_Actions)
set udg_trigger54=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger54,udg_rect113)
call TriggerRegisterEnterRectSimple(udg_trigger54,udg_rect114)
call TriggerAddAction(udg_trigger54,function Trig_Caravan_Leave_Actions)
set udg_trigger55=CreateTrigger()
call DisableTrigger(udg_trigger55)
call TriggerRegisterTimerEventPeriodic(udg_trigger55,0.20)
call TriggerAddCondition(udg_trigger55,Condition(function Trig_Caravan_Defeat_Conditions))
call TriggerAddAction(udg_trigger55,function Trig_Caravan_Defeat_Actions)
set udg_trigger56=CreateTrigger()
call DisableTrigger(udg_trigger56)
call TriggerRegisterTimerEventPeriodic(udg_trigger56,3.00)
call TriggerAddAction(udg_trigger56,function Trig_Guard_Orders_Actions)
set udg_trigger57=CreateTrigger()
call DisableTrigger(udg_trigger57)
call TriggerRegisterTimerEventPeriodic(udg_trigger57,3.00)
call TriggerAddAction(udg_trigger57,function Trig_Caravan_Orders_Actions)
set udg_trigger58=CreateTrigger()
call DisableTrigger(udg_trigger58)
call TriggerRegisterTimerEventPeriodic(udg_trigger58,0.20)
call TriggerAddAction(udg_trigger58,function Trig_Guards_Catching_Up_Actions)
set udg_trigger59=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger59,EVENT_PLAYER_UNIT_DEATH)
call TriggerAddCondition(udg_trigger59,Condition(function Trig_Caravan_Death_Conditions))
call TriggerAddAction(udg_trigger59,function Trig_Caravan_Death_Actions)
set udg_trigger60=CreateTrigger()
call TriggerAddAction(udg_trigger60,function Trig_Caravan_Path_1_Setup_Actions)
set udg_trigger61=CreateTrigger()
call DisableTrigger(udg_trigger61)
call TriggerRegisterTimerEventPeriodic(udg_trigger61,0.40)
call TriggerAddCondition(udg_trigger61,Condition(function Trig_Breadcrumb_Next1_Conditions))
call TriggerAddAction(udg_trigger61,function Trig_Breadcrumb_Next1_Actions)
set udg_trigger62=CreateTrigger()
call TriggerAddAction(udg_trigger62,function Trig_Caravan_Path_2_Setup_Actions)
set udg_trigger63=CreateTrigger()
call DisableTrigger(udg_trigger63)
call TriggerRegisterTimerEventPeriodic(udg_trigger63,0.40)
call TriggerAddCondition(udg_trigger63,Condition(function Trig_Breadcrumb_Next2_Conditions))
call TriggerAddAction(udg_trigger63,function Trig_Breadcrumb_Next2_Actions)
set udg_trigger64=CreateTrigger()
call TriggerAddAction(udg_trigger64,function Trig_World_Events_Actions)
set udg_trigger65=CreateTrigger()
call TriggerRegisterTimerEventPeriodic(udg_trigger65,600.00)
call TriggerAddAction(udg_trigger65,function Trig_World_Events2_Actions)
set udg_trigger66=CreateTrigger()
call TriggerAddAction(udg_trigger66,function Trig_Bridges_Actions)
set udg_trigger67=CreateTrigger()
call TriggerAddAction(udg_trigger67,function Trig_Rain_Actions)
set udg_trigger68=CreateTrigger()
call DisableTrigger(udg_trigger68)
call TriggerRegisterTimerEventPeriodic(udg_trigger68,3.00)
call TriggerAddAction(udg_trigger68,function Trig_Rain_Effect_Actions)
set udg_trigger69=CreateTrigger()
call TriggerAddAction(udg_trigger69,function Trig_Snow_Actions)
set udg_trigger70=CreateTrigger()
call DisableTrigger(udg_trigger70)
call TriggerRegisterTimerEventPeriodic(udg_trigger70,3.00)
call TriggerAddAction(udg_trigger70,function Trig_Snow_Effect_Actions)
set udg_trigger71=CreateTrigger()
call TriggerAddAction(udg_trigger71,function Trig_Waygates_Actions)
call ConditionalTriggerExecute(udg_trigger01)
call ConditionalTriggerExecute(udg_trigger02)
call ConditionalTriggerExecute(udg_trigger03)
call ConditionalTriggerExecute(udg_trigger04)
call ConditionalTriggerExecute(udg_trigger09)
call ConditionalTriggerExecute(udg_trigger10)
endfunction
function InitTrig_init takes nothing returns nothing
set udg_camerasetup01 = CreateCameraSetup()
set udg_sound02 = CreateSound("Sound\\Music\\mp3Music\\UndeadVictory.mp3",false,false,false,10,10,"DefaultEAXON")
set udg_sound03 = CreateSound("Sound\\Music\\mp3Music\\HumanVictory.mp3",false,false,false,10,10,"")
set udg_sound04 = CreateSound("Sound\\Ambient\\DoodadEffects\\BridgeDeath.wav",false,true,true,10,10,"DefaultEAXON")
set udg_sound05 = CreateSound("Sound\\Ambient\\DoodadEffects\\WaterStreamLoop1.wav",false,true,true,10,10,"DoodadsEAX")
set udg_sound06 = CreateSound("Sound\\Ambient\\DoodadEffects\\SargerasRoar.wav",false,false,false,10,10,"DefaultEAXON")
set udg_sound07 = CreateSound("Sound\\Interface\\Hint.wav",false,false,false,10,10,"DefaultEAXON")
set udg_sound08 = CreateSound("Sound\\Buildings\\Death\\BuildingDeathSmallHuman.wav",false,true,true,10,10,"DefaultEAXON")
set udg_sound09 = CreateSound("Sound\\Ambient\\DoodadEffects\\EnchantedCellLoop.wav",false,true,false,10,10,"DefaultEAXON")
set udg_sound10 = CreateSound("Sound\\Music\\mp3Music\\IllidansTheme.mp3",false,false,false,10,10,"DefaultEAXON")
call ExecuteFunc("main2")
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
library LeapingStrike initializer Init
// When using a library, you can use "nicer" initializer names
// This gives a greater sence of uniformity since every library
// can name his initializer "Init" thanks to public/private
private struct Leap
unit leaper
location targ
integer level = 1
integer count = 0
integer maxcount
integer interval = 10
method Period takes nothing returns nothing
local location ul = GetUnitLoc(.leaper)
// When using stuff from a struct instance,
// just use "." to refer to the current instance
call SetUnitPositionLoc(.leaper, PolarProjectionBJ(ul, .interval, AngleBetweenPoints(ul, .targ)))
set .count = .count + 1
if .count <= .maxcount / 2 then
call SetUnitFlyHeight(.leaper, .count*5, 999)
else
call SetUnitFlyHeight(.leaper, .maxcount*5 - .count*5, 999)
endif
call RemoveLocation(ul)
set ul = null
endmethod
endstruct
private function Conditions takes nothing returns boolean
local location target = GetSpellTargetLoc()
local location ul = GetUnitLoc(GetTriggerUnit())
if GetSpellAbilityId() == 'A01H' and DistanceBetweenPoints(target, ul) > 250 then
call RemoveLocation(target)
set target = null
call RemoveLocation(ul)
set ul = null
return true
elseif GetSpellAbilityId() == 'A01H' then
call IssueImmediateOrder(GetTriggerUnit(), "stop")
call DisplayTextToPlayer(GetOwningPlayer(GetTriggerUnit()), 0, 0, "Cannot leap that close.")
call RemoveLocation(target)
set target = null
call RemoveLocation(ul)
set ul = null
return false
endif
call RemoveLocation(target)
set target = null
call RemoveLocation(ul)
set ul = null
return false
endfunction
private function Callback takes nothing returns nothing
local timer t = GetExpiredTimer()
local Leap l = GetTimerStructA(t)
local unit u
local location ul = GetUnitLoc(l.leaper)
call l.Period()
// When you're done with the struct,
// don't forget to destroy it and the timer.
if l.count >= l.maxcount then
call PauseUnit(l.leaper,false)
call SetUnitFlyHeight(l.leaper, 0, 999)
call SetUnitTimeScale(l.leaper, 100*.01)
call SetUnitAnimation(l.leaper, "stand")
call SetUnitPathing(l.leaper, true)
set u = CreateUnit(GetOwningPlayer(l.leaper), 'h00S', GetLocationX(l.targ), GetLocationY(l.targ), 0)
call SetUnitAbilityLevel(u, 'A01G', l.level)
call IssueImmediateOrder(u, "stomp")
call UnitApplyTimedLife(u, 'BTLF', 3.)
call DestroyEffect(AddSpecialEffectLoc("Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl", ul))
call PauseTimer(t)
call ClearTimerStructA(t)
call DestroyTimer(t)
call l.destroy()
endif
set t = null
set u = null
call RemoveLocation(ul)
set ul = null
endfunction
private function Actions takes nothing returns nothing
local Leap l = Leap.create()
// Don't use a global timer, it isn't MUI
local timer t = CreateTimer()
local location ul = GetUnitLoc(GetTriggerUnit())
set l.leaper = GetTriggerUnit()
set l.targ = GetSpellTargetLoc()
set l.level = GetUnitAbilityLevel(l.leaper, 'A01H')
set l.maxcount = R2I(DistanceBetweenPoints(ul, l.targ)) / l.interval
call PauseUnit(l.leaper, true)
call SetUnitTimeScale(l.leaper, 25*.01)
call SetUnitAnimation(l.leaper, "attack slam")
call UnitAddAbility(l.leaper, 'Amrf')
call UnitRemoveAbility(l.leaper, 'Amrf')
call SetUnitPathing(l.leaper, false)
// Using methods as a callback is tricky,
// better to attach the struct to the timer
// and call the method in the callback
call SetTimerStructA(t,l)
// No need to use PERIOD as a global, just write ".03" here
call TimerStart(t,.03,true,function Callback)
// Don't need to null l.leaper, it gets nulled once
// the instance "l" is destroyed with l.destroy()
set t = null
endfunction
//===========================================================================
private function Init takes nothing returns nothing
local trigger T = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(T,EVENT_PLAYER_UNIT_SPELL_EFFECT)
// Conditions and actions are always the same,
// regardless of which unit leaps.
// Just make them into functions then.
call TriggerAddCondition(T,Condition(function Conditions))
call TriggerAddAction(T,function Actions)
endfunction
endlibrary