1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. And she's bought a stairway to heaven. The 6th Special Effect Contest Results are here.
    Dismiss Notice
  3. Seek unity between the elements in the 22nd Terraining Contest Poll.
    Dismiss Notice
  4. Seize the moment! The 18th Mini Mapping Contest has commenced.
    Dismiss Notice
  5. The heavens smile on the old faithful. The 16th Techtree Contest has begun.
    Dismiss Notice
  6. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

2P Sentinel 06 v1.03.w3x
Variables
Spells
HERO
Blade Shield INIT
Blade Shield BEGIN
Blade Shield LOOP
Blade Shield EXPIRE
Blade Shield DEATH
Blade Shield LOADS INTO TRANSPORT
Shift
Shift WORK
Eclipse INIT
Eclipse LEARN
Eclipse BEGIN
Eclipse EXPIRE
Twilight Guardian BEGIN
Twilight Guardian DEATH
ITEM
Shadow Orb INIT
Shadow Orb CUMULATIVE
ILLIDAN SPECIAL
Burn INIT
Burn BEGIN
Burn LOOP
Burn BURN LOOP
Burn KNOCKBACK LOOP
Preface and Systems
AMBUSH
Ambush INIT
Ambush REGISTER
Ambush EXPIRE
SAVE & LOAD
SaveLoad Initialization
SaveLoad Load
SaveLoad Save A
SaveLoad Save B
TWO PLAYER INITIALIZATION
Two Player Initialization
START OF GAME TRIGGERS
Start SCREEN INIT
Start SCREEN TEXT
Start TOOGLE DIFFICULTY
Start FINISH
Start APPLY CHANGES
END OF GAME TRIGGERS
End Game SCREEN TEXT
End Game SCREEN INIT
POWERUPS
Powerups ACQUIRE
Powerups COMMON
SHARE
Share INIT
Share Research BEGIN
Share Research CANCEL
Share Research FINISH
Share COMMON
Share Techtree BEGIN CONSTRUCTION
Share Techtree CANCEL CONSTRUCTION
Share Techtree FINISH CONSTRUCTION
Share Techtree BEGIN AN UPGRADE
Share Techtree CANCEL AN UPGRADE
Share Techtree FINISH AN UPGRADE
Share DEATH
ITEM
ITEM Initialization
ITEM Unit Drops
ITEM Desc Drops
CINEMATIC
Enable or Disable Experience
Prepare for Cinematic
Restore after Cinematic
Skip Cinematic
MISC
Tribute
Player Leaves
Bounty INIT
Bounty WORK
Hero Stats INITIATE
Hero Stats SINGLE HERO
XX
Crates
CrateA01
CrateB01
CrateC01
SlaughterhouseC02
CrateC02
CrateC03
CrateVillage01
CrateVillage01Back
CrateE01
CrateE02
CrateE03
CrateTavern01
CrateTavern02
CrateLedge
CrateHideaway
CrateRiver
Initialization
Initialization
Init 01 Players
Init 02a Units
Init 02b Behavior Constants
Init 03 Music
Init 04 Environment
Init 05 Quests
Init 07a Breadcrumbs
Init 07b Breadcrumbs Single
Init 08a Formations
Init 08b Caravan
Init 08c Caravan Single Wagon
Init 08d Caravan Single Guard
Init 08e UnitArrayInit
Init 08f UnitArrayInit GuardsOnly
Init 09 Corpses
Init 10 Destructibles
Corpse Creation
Corpse Area City
Corpse Area A
Corpse Area B
Corpse Area C
Corpse Area Village01
Corpse Area G
Corpse Area Village03
xxxx CINEMATICS xxxx
Intro Cinematic
Intro Setup
Intro Cinematic Q
Intro Cleanup
Gameplay
Intro Peasant Movement
Begin Intro Peasant Movement
Peasant01 Reaches End
Peasant02 Reaches End
Peasant03 Reaches End
Peasant04 Reaches End
Peasant01 Reaches Start
Peasant02 Reaches Start
Peasant03 Reaches Start
Peasant04 Reaches Start
Remove Intro Peasants
Midgame Cinematic 01
Mid Setup
Mid Cinematic Q
Mid Cleanup
Bastion Safety
Midgame Cinematic 02
Mid2 Setup
Mid2 Cinematic Q
Mid2 Cleanup
Mid2 Cleanup Q
Victory Cinematic
Victory Cinematic Q
VictorySpawnUndead01
VictorySpawnUndead02
VictorySpawnGhoulRush
VictoryGhoulCripple
Victory Cleanup
Victory Setup
xxxx CARAVAN CONTROLS xxxx
Caravan Behavior
Caravan Go
Reorient Formation
Reorient Formation Single
Caravan Orders Pause
Caravan Orders Resume
Caravan Orders
Caravan Check Dist
Caravan Check Dist Single
Caravan Orders Single Wagon
Caravan Orders Single Guard
Caravan Unit Dies
Guard Attacked
Guard Attacked Single
Kael Casting Flamestrike
Kael Casting Siphon Mana
Casting Timer Expires
Guard Catches Up
Guard Catches Up Single
Wagons Reach Breadcrumb
Target Next Breadcrumb
Tyrande Says Go
Tyrande Says Go Single
Village01 Pause
Village01
Village01 KaelNear
Village01 Dialog Q
Village01TimerExpires
Village01 Humans
Village01 WagonRepair
Village01 Peasant01
Village01 Peasant02
Village01 Peasant03
Village01 Peasant04
Village01 Remove Peasants
Village02 Pause
Village02
Village02 Dialog Q
Village02 TimerExpires
Village02 Humans
Village02 WagonRepair
Village02 Peasant01
Village02 Peasant02
Village02 Peasant03
Village02 Peasant04
Village02 Remove Peasants
Caravan Fork
Caravan Reaches Fork
Fork Dialog
Fork PICKED
Fork WARNING
Fork EXPIRE
Dialog Clicked
Fork Setup Long
Fork Setup Short
Unhide Long
Unhide Short
Path Chosen Message Left Q
Path Chosen Message Right Q
Village03 Pause
Village03
Village03 Dialog Q
xxxx SET ENCOUNTERS xxxx
Area A - Ghouls
Ghouls Cannibilizing
Ghoul Dies
Area B - Meat Wagon
Start Meat Wagons Attack
Units Attacked A
Units Attacked B
Area C - Slaughterhouse
Fake Slaughterhouse
Abomination Dies
Area D - Ambush
Caravan Approaches
Area D Spawn Cave
Area D Spawn Road
Village01Attack
Village01 Spawn Rear
Village01 Spawn Front
Area E - Graveyards
Area F - Crypt Fiend Ambush
Burrow Crypt Fiends
Keep Crypt Fiends Burrowed
Caravan Approaches Fiends
Area G - Caves
Ghouls Attacked Tripwire
Area H - Inn
Area I - Mine
Keep Gold Low
Area J - Gargoyles
Caravan Approaches J
Area K - Spellcaster Tavern
Village03 Last Attack
Spawn Final Attack Controller
Final Spawn 1
Final Spawn 1A
Final Spawn 2
Final Spawn 2A
Final Spawn 3
Final Spawn 4
Final Spawn 4A
Final Spawn 5
Final Spawn 5A
Remove Dead Unit from Group
Limitless Message 1 Q
Limitless Message 2 Q
RANDOM SPAWNS
Initialize Random Spawn Timer
Random Spawn Timer Expires
UpdateRandomSpawnRegions
SpawnRandomGroupA
SpawnRandomGroupB
SpawnRandomGroupC
Dreadlord RESPAWN
Dreadlord GAIN LEVEL
xxxx MISC xxxx
River Reveal
Expose River
AI
Start AI
AI Resources Green Gold
AI Resources Green Lumber
Combat Check
Combat Detected
Combat Resolved
Kael Protection
Kael Uses Potion
Kael Attacked
xxxx MESSAGING xxxx
Quest Messages
Quest Escort Kael Create
Quest Escort Kael Discover
Quest Escort Kael Discover Q
Quest Escort Kael Completed
Quest Retrieve Supplies Create
Quest Retrieve Supplies Discover
Quest Retrieve Supplies Discover Q
Quest Retrieve Supplies Chest Found
Quest Retrieve Supplies 1 of 3
Quest Retrieve Supplies 1 of 3 Q
Quest Retrieve Supplies 2 of 3
Quest Retrieve Supplies 2 of 3 Q
Quest Retrieve Supplies 3 of 3
Quest Retrieve Supplies Completed
Quest Retrieve Supplies Completed Q
Mission Failed Wagons Lost
Mission Failed Kael Dead
Mission Failed Tyrande Dead
Mission Failed Maiev Dead
Hints
Notice about Scout Missing Q
MyHint Boxes
Hint Taunt Q
Hint War Club Q
Undead Building Attacked
Initial Exposition
Initial Exposition Q
Wagon Lost Messages
Wagon Lost
First Wagon Lost Q
Second Wagon Lost Q
Caravan Attacked Messages
Caravan Unit Attacked
TimerCaravanAttackedExpires
RandomAttackedMessage
AttackedMessageA Q
AttackedMessageB Q
AttackedMessageC Q
Area A Ghoul Encounter
Ghoul Attacks
Ghoul Attacks Q
Mercenary Camp -> Supplies Quest
Unit Nears Merc Camp
Unit Nears Merc Camp Q
Reveal Crates
Supply Crate01 Found
Supply Crate01 Found CoP
Supply Crate02 Found
Supply Crate02 Found CoP
Supply Crate03 Found
Supply Crate03 Found CoP
Supply Crate Message
Supply Crate01 Found Q
Supply Crate02 Found Q
Supply Crate03 Found Q
Area J Gargoyle Encounter
Gargoyle Attacks
Gargoyle Attacks Q
Undead Base Message
Kael Near Undead Base
Kael Near Undead Base Q
Ping Escort Quest Objective
Create River Ping Timer
Ping Timer Expires
xxxx GAME END xxxx
Victory Defeat
Defeat Wagons Dead
Defeat Tyrande Dead
Defeat Maiev Dead
Defeat Kael Dead
Victory Check for All Units Dead
xxxxxxxxxxxxxxxxxxxx
DEBUG
DEBUG A
DEBUG B
DEBUG C
DEBUG D
DEBUG E
DEBUG F
DEBUG KAEL OBJECT
DEBUG KAEL POINT
DEBUG KAEL NO TARGET
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

    loop
        set udg_SaveLoad_Compress[i + 48] = j
        set udg_SaveLoad_Uncompress[i] = i + 48
        set j = j + 1
        set i = i + 1
        exitwhen i >= 10
    endloop
    set i = 0
    loop
        set udg_SaveLoad_Compress[i + 97] = j
        set udg_SaveLoad_Compress[i + 65] = j + 26
        set udg_SaveLoad_Uncompress[i + 10] = i + 97
        set udg_SaveLoad_Uncompress[i + 26 + 10] = i + 65
        set j = j + 1
        set i = i + 1
        exitwhen i >= 26
    endloop
endfunction

function SaveLoad_Id2CId takes integer n returns integer
    local integer i = n / (256 * 256 * 256)
    local integer r
    set n = n - i * (256 * 256 * 256)
    set r = udg_SaveLoad_Compress[i]
    set i = n / (256 * 256)
    set n = n - i * (256 * 256)
    set r = r * 64 + udg_SaveLoad_Compress[i]
    set i = n / 256
    set r = r * 64 + udg_SaveLoad_Compress[i]
    return r * 64 + udg_SaveLoad_Compress[n - i * 256]
endfunction

function SaveLoad_CId2Id takes integer n returns integer
    local integer i = n / (64 * 64 * 64)
    local integer r
    set n = n - i * (64 * 64 * 64)
    set r = udg_SaveLoad_Uncompress[i]
    set i = n / (64 * 64)
    set n = n - i * (64 * 64)
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    set i = n / 64
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    return r * 256 + udg_SaveLoad_Uncompress[n - i * 64]
endfunction

function SaveLoad_Unit2Integer takes unit u returns integer
    local integer i = 0
    local integer n = GetUnitTypeId(u)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Heroes_LastIndex
        if udg_SaveLoad_Heroes[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Unit takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Heroes_LastIndex then
        return udg_SaveLoad_Heroes[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Item2Integer takes item t returns integer
    local integer i = 0
    local integer n = GetItemTypeId(t)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Items_LastIndex
        if udg_SaveLoad_Items[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Item takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Items_LastIndex then
        return udg_SaveLoad_Items[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Ability2Integer takes integer a returns integer
    local integer i = 0
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Abilities_LastIndex
        if udg_SaveLoad_Abilities[i] == a then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(a)
endfunction
function SaveLoad_Integer2Ability takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Abilities_LastIndex then
        return udg_SaveLoad_Abilities[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Color takes string s returns string
    local integer i = StringLength(s)
    local string c
    local string r = ""

    loop
        set i = i - 1
        set c = SubString(s,i,i + 1)
        if c == "0" or c == "1" or c == "2" or c == "3" or c == "4" or c == "5" or c == "6" or c == "7" or c == "8" or c == "9" then
            set r = "|cffffcc00" + c + "|r" + r
        elseif c == "a" or c == "b" or c == "c" or c == "d" or c == "e" or c == "f" or c == "g" or c == "h" or c == "i" or c == "j" or c == "k" or c == "l" or c == "m" or c == "n" or c == "o" or c == "p" or c == "q" or c == "r" or c == "s" or c == "t" or c == "u" or c == "v" or c == "w" or c == "x" or c == "y" or c == "z" then
            set r = "|cffff6060" + c + "|r" + r
        elseif c == "A" or c == "B" or c == "C" or c == "D" or c == "E" or c == "F" or c == "G" or c == "H" or c == "I" or c == "J" or c == "K" or c == "L" or c == "M" or c == "N" or c == "O" or c == "P" or c == "Q" or c == "R" or c == "S" or c == "T" or c == "U" or c == "V" or c == "W" or c == "X" or c == "Y" or c == "Z" then
            set r = "|cff6060ff" + c + "|r" + r
        elseif c == "-" then
            set r = "|cffdddddd-|r" + r
        else
            set r = c + r
        endif
        exitwhen i <= 0
    endloop
    return r
endfunction

function SaveLoad_EncodeChar takes string n returns integer
    local integer i = 0
    local string s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    local string s2 = "abcdefghijklmnopqrstuvwxyz"
    local string s3 = "0123456789"

    loop
        if SubString(s1,i,i + 1) == n then
            return i
        endif
        if SubString(s2,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 26
    endloop
    set i = 0
    loop
        if SubString(s3,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 10
    endloop
    return 0
endfunction

function SaveLoad_EncodeVerify takes string buffer returns integer
    local integer i = 0
    local integer j = 0
    local string name = GetPlayerName(GetTriggerPlayer())
    if udg_SaveLoad_UsePlayername == true then
        loop
            set j = j + SaveLoad_EncodeChar(SubString(name,i,i + 1))
            set i = i + 1
            exitwhen i >= StringLength(name)
        endloop
    endif
    set i = 0
    loop
        set j = j + SaveLoad_EncodeChar(SubString(buffer,i,i + 1))
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop
    return j
endfunction

function SaveLoad_EncodeValues takes nothing returns string
    local integer i
    local integer j
    local integer k
    local integer l
    local integer m
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer array a
    local string buffer = ""
    local string c = ""
    local integer skip = 0
    local integer CONST = 1000000
    local string abc = "0123456789"

    set i = 0
    loop
        set i = i + 1
        exitwhen i > udg_SaveCount
        set buffer = buffer + I2S(udg_Save[i]) + "-"
    endloop
    set buffer = buffer + I2S(SaveLoad_EncodeVerify(buffer))
    if udg_Save[1] == 0 then
        set buffer = "-" + buffer
    endif

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0
    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * 11
            set j = j + 1
            exitwhen j > m
        endloop

        set l = 0
        set c = SubString(buffer,i,i + 1)
        loop
            exitwhen SubString(abc,l,l + 1) == c
            set l = l + 1
            exitwhen l > 9
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set buffer = ""
    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / CodeLength
            set a[j - 1] = a[j - 1] + (a[j] - k * CodeLength) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / CodeLength
        set i = a[j] - k * CodeLength
        set buffer = buffer + SubString(udg_SaveLoad_Alphabet,i,i + 1)
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = StringLength(buffer)
    set skip = 0
    set c = ""
    loop
        set i = i - 1
        set c = c + SubString(buffer,i,i + 1)
        set skip = skip + 1
        if skip == 4 and i > 0 then
            set c = c + "-"
            set skip = 0
        endif
        exitwhen i <= 0
    endloop
    return c
endfunction

function SaveLoad_DecodeValues takes string s returns boolean
    local integer i
    local integer j
    local integer k
    local integer l
    local integer SaveCode = 0
    local integer m
    local integer array a
    local string buffer = ""
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer skip = -1
    local integer CONST = 1000000
    local string abc = "0123456789-"
    local string c

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0

    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * CodeLength
            set j = j + 1
            exitwhen j > m
        endloop

        set skip = skip + 1
        if skip == 4 then
            set skip = 0
            set i = i + 1
        endif

        set l = CodeLength
        set c = SubString(s,i,i + 1)
        loop
            set l = l - 1
            exitwhen l < 1
            exitwhen SubString(udg_SaveLoad_Alphabet,l,l + 1) == c
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(s)
    endloop

    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / 11
            set a[j - 1] = a[j - 1] + (a[j] - k * 11) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / 11
        set i = a[j] - k * 11
        set buffer = SubString(abc,i,i + 1) + buffer
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = 0
    set j = 0
    loop
        loop
            exitwhen i >= StringLength(buffer)
            exitwhen i > 0 and SubString(buffer,i,i + 1) == "-" and SubString(buffer,i - 1,i) != "-"
            set i = i + 1
        endloop
        if i < StringLength(buffer) then
            set k = i
        endif
        set SaveCode = SaveCode + 1
        set udg_Save[SaveCode] = S2I(SubString(buffer,j,i))
        set j = i + 1
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set j = SaveLoad_EncodeVerify(SubString(buffer,0,k))
    set udg_SaveCount = SaveCode - 1
    if j == udg_Save[SaveCode] then
        return true
    endif
    return false
endfunction

function SaveLoad_Encode takes nothing returns string
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
    endif
    return SaveLoad_Color(SaveLoad_EncodeValues())
endfunction

function SaveLoad_Decode takes string s returns boolean
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
        set s = StringCase(s,true)
    endif
    if SaveLoad_DecodeValues(s) then
        call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding sucessful")
        return true
    endif
    call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding failed")
    return false
endfunction
Name Type Is Array Initial Value
Ambush_VISIBILITY integer Yes
AmbushTimer timer Yes
AmbushUnit unit Yes
APG2_Player force No Force01
AreaAGhoulGroup group No
AreaCAbomGroup group No
AreaFCryptFiendGroup group No
BoatSkipped boolean No
Bonus_Agility integer No
Bonus_Intelligence integer No
Bonus_Strength integer No
Bounty_NEUTRAL_BASE integer Yes
Bounty_NEUTRAL_DICE integer Yes
Bounty_NEUTRAL_SIDES integer Yes
Bounty_RACE_BASE integer Yes
Bounty_RACE_DICE integer Yes
Bounty_RACE_SIDES integer Yes
BreadcrumbAllowed integer No
BreadcrumbAngleArray real Yes
BreadcrumbCurrent integer No
BreadcrumbFork integer No
BreadcrumbReached integer No
BreadcrumbStopVillage01 integer No
BreadcrumbStopVillage02 integer No
BreadcrumbStopVillage03 integer No
BreadcrumbTotal integer No
Burn_BURN_DAMAGE_SOUCE unit Yes
Burn_BURN_EFFECT effect Yes
Burn_BURN_EXPIRE_TIMER timer Yes
Burn_BURN_GROUP group No
Burn_BURN_LOOP_TIMER timer Yes
Burn_BURN_UNIT unit Yes
Burn_DISTANCE real Yes
Burn_GROUP group Yes
Burn_KNOCKBACK_ANGLE real Yes
Burn_KNOCKBACK_EXPIRE_TIMER timer Yes
Burn_KNOCKBACK_GROUP group No
Burn_KNOCKBACK_LOOP_TIMER timer Yes
Burn_KNOCKBACK_UNIT unit Yes
Burn_LOOP timer Yes
Burn_OWNER unit Yes
Burn_UNIT unit Yes
CameraReturnPoint location No
CaravanAggroTimer timer No
CaravanFootman01 unit No
CaravanFootman02 unit No
CaravanFootman03 unit No
CaravanGuardFirst integer No
CaravanGuardLast integer No
CaravanGuardsGroup group No
CaravanOrderPulse timer No
CaravanPriest01 unit No
CaravanPriest02 unit No
CaravanRifle01 unit No
CaravanRifle02 unit No
CaravanSorc01 unit No
CaravanSorc02 unit No
CaravanTestPulse timer No
CaravanUnitArray unit Yes
CaravanWagon01 unit No
CaravanWagon02 unit No
CaravanWagon03 unit No
CaravanWagon04 unit No
CaravanWagonFirst integer No
CaravanWagonLast integer No
CaravanWagonsGroup group No
CastingTimer timer No
Cinematic_NAME string No
Cinematic_Preparation_Finished boolean No
Code string No
Code_Is_Active boolean No
CombatCheckTimer timer No
CONSTANT_Burn_AREA_OF_EFFECT real No
CONSTANT_Burn_BURN_DAMAGE real No
CONSTANT_Burn_BURN_EFFECT string No
CONSTANT_Burn_BURN_LIMIT integer No
CONSTANT_Burn_BURN_LOOP real No
CONSTANT_Burn_BURN_TIME real No
CONSTANT_Burn_DAMAGE real No
CONSTANT_Burn_KNOCKBACK real No
CONSTANT_Burn_KNOCKBACK_LIMIT integer No
CONSTANT_Burn_KNOCKBACK_LOOP real No
CONSTANT_Burn_KNOCKBACK_TIME real No
CONSTANT_Burn_LIMIT integer No
CONSTANT_Burn_LOOP real No
CONSTANT_Burn_RANGE real No
CONSTANT_Burn_VELOCITY real No
CONSTANT_Glaive_COUNT_MAX integer Yes
CONSTANT_Glaive_COUNT_MIN integer Yes
CONSTANT_Glaive_DAMAGE real Yes
CONSTANT_Glaive_DAMAGE_RANGE real Yes
CONSTANT_Glaive_DURATION real Yes
CONSTANT_Glaive_EFFECT_01 string Yes
CONSTANT_Glaive_EFFECT_02 string Yes
CONSTANT_Glaive_EFFECT_03 modelfile Yes
CONSTANT_Glaive_EFFECT_04 modelfile Yes
CONSTANT_Glaive_EFFECT_05 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_01 string Yes
CONSTANT_Glaive_HIT_EFFECT_02 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_03 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_04 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_05 modelfile Yes
CONSTANT_Glaive_INTERVAL real Yes
CONSTANT_Glaive_LIMIT integer No
CONSTANT_Glaive_ORBITRANGE real Yes
CONSTANT_Glaive_SPEED_PER_SEC real Yes
CreateAmbush_Angle real No
CreateAmbush_GoToRegion rect No
CreateAmbush_Group group No
CreateAmbush_Region rect No
CreateAmbush_Type unitcode No
Difficulty string No
Dreadlord_RESPAWN timer No
Dreadlord_UNIT unit No
EMPTY itemcode No
ExpDisabledForFurion boolean No
ExpDisabledForMaiev boolean No false
ExpDisabledForTyrande boolean No false
FinalAttackSpawns group No
FinalGuardGroup group No
FlagCaravanAttacked boolean No
Fork_ENABLED boolean No
Fork_TIMER timer No
Fork_WARNING timer No
Fork_WINDOW timerdialog No
ForkChoiceLeft boolean No
ForkChoiceRight boolean No
ForkDialog dialog No
ForkDialogButtonLong button No
ForkDialogButtonSave button No
ForkDialogButtonShort button No
FormationAngleArray real Yes
FormationDistanceArray real Yes
FormationRegionArray rect Yes
FormationTotal integer No
Furion unit No UnitNull
FurionReturnSpot location No
GameHasStarted boolean No
GameOver boolean No false
Gives_Bounty force No
Glaive_ANGLE real Yes
Glaive_EFFECT_01 effect Yes
Glaive_EFFECT_02 effect Yes
Glaive_EFFECT_03 effect Yes
Glaive_EFFECT_04 effect Yes
Glaive_EFFECT_05 effect Yes
Glaive_EXPIRE timer Yes
Glaive_GROUP group Yes
Glaive_LEVEL integer Yes
Glaive_LOOP timer Yes
Glaive_OWNER unit Yes
Glaive_OWNER_HIDDEN unit Yes
Glaive_STATE string Yes
Glaive_TARGET unit Yes
Glaive_TARGET_HIDDEN unit Yes
Glaive_UNIT unit Yes
Gold1 item No
Gold2 item No
Gold3 item No
GoldCratesRecovered integer No
GolemGroupA group No
GuardCallForHelpDist real No 0.00
GuardCallForHelpDuration real No 0.00
GuardCallForHelpFrequency real No 0.00
GuardLeftBehindRange real No 0.00
GuardReplacedMax integer No
GuardsCatchingUp boolean No
GuardsReplaced integer No
HallsDead boolean No
HeroSaysGoDistance real No
HiddenUnits group No
InCinematic boolean No false
InCombat boolean No false
InFinalAttack boolean No
InFlashback boolean No
InterludeSkipped boolean No
IntroSkipped boolean No false
ITEM_DESC destructable Yes
ITEM_DESC_Item_Type itemcode Yes
ITEM_DESC_Item_Type_INSANE itemcode Yes
ITEM_DESC_Total integer No
ITEM_UNIT unit Yes
ITEM_UNIT_Item_Type itemcode Yes
ITEM_UNIT_Item_Type_INSANE itemcode Yes
ITEM_UNIT_Total integer No
Kael unit No
KaelCasting boolean No
KaelReturnSpot location No
LadySerpentra unit No
Lich unit No
Maiden_OWNER unit Yes
Maiden_TIMER timer Yes
Maiev unit No UnitNull
MaievReturnSpot location No
MaievSkipped boolean No
Mercenaries group No
Mid2Skipped boolean No
MidKaelOrientation real No
MidKaelPoint location No
MidMaievOrientation real No
MidMaievPoint location No
MidSkipped boolean No false
MidTyrandeOrientation real No
MidTyrandePoint location No
Multiboard_Current_Column integer No
Multiboard_Current_Row integer No
Multiboard_Hero_Icon string No
Multiboard_Item_Used boolean Yes
Multiboard_Name_Used boolean No
Multiboard_Skill abilcode Yes
Multiboard_Skill_Icon string Yes
Multiboard_Skill_Name string Yes
Multiboard_Skill_Used boolean Yes
Multiboard_Unit unit No
Mutliboard_Hero_Statistics multiboard No
NewWarden unit No
NewWardenReturnSpot location No
NextSupplySound trigger No
P11_Undead player No Player10
P12_NightElves player No Player11
P1_BloodElves player No Player00
P4_Undead player No Player03
P7_Undead player No Player06
Peasant01 unit No
Peasant02 unit No
Peasant03 unit No
Peasant04 unit No
Player_Color playercolor Yes
Player_Color_String string Yes
Player_One player No Player01
Player_One_Agreed boolean No
Player_One_Color integer No
Player_One_Skipped boolean No
Player_Two player No
Player_Two_Agreed boolean No
Player_Two_Color integer No
Player_Two_Skipped boolean No
PointBreadcrumb025 location No
PointExitHumanMoveTarget location No
PointKael location No
PointRandomSpawn01 location No
PointRandomSpawn02 location No
PointRandomSpawn03 location No
PointRandomSpawn04 location No
PointRandomSpawn05 location No
PointRandomSpawn06 location No
PointRandomSpawn07 location No
PointRandomSpawn08 location No
PointRandomSpawn09 location No
PointRandomSpawn10 location No
PointRandomSpawn11 location No
Powerups_Gold integer No
Powerups_Lumber integer No
QuestEscortKael quest No
QuestEscortKaelReqHeroSurvive questitem No
QuestEscortKaelReqProtect questitem No
QuestEscortKaelReqWagonSurvive questitem No
QuestRetrieve quest No
QuestRetrieveReq questitem No
QuestRetrieveReq2 questitem No
QuestRetrieveReq3 questitem No
RandomCaravanAttacked real No
RandomGroupDie real No
RandomSpawnGroup group No
RandomSpawnTimer timer No
RandomSpawnTimerInterval real No
ReorientAngle real No
RepairPeasant01 unit No
RepairPeasant02 unit No
RepairPeasant03 unit No
RepairPeasant04 unit No
Research_Name_1 string Yes
Research_Name_2 string Yes
Research_Name_3 string Yes
Research_Type techcode Yes
Resting boolean No
RevivalAltar unit No UnitNull
RevivalHero unit No UnitNull
RevivalReturnSpot location No
RevivalSpot location No
RiverPingTimer timer No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Integer integer No
SaveLoad_Item_String string Yes
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Security_Number integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
SelectedUnits group No
Shadow_Orb_TYPE itemcode Yes
Share_DISPLAY boolean Yes
Share_FAKE unitcode Yes
Share_REAL unitcode Yes
Shift_OWNER unit Yes
Shift_TARGET unit Yes
Shift_TIMER timer Yes
SpeedOfGuards real No
SpeedOfWagons real No 0.00
StartingNEUnits group No
Stash unit Yes
TempAngle real No
TempGroup group Yes
TempInteger integer Yes
TempItem item No
TempItemType itemcode No
TempLastAngle real No
TempLastIndex integer No
TempMaxAngle real No
TempMinAngle real No
TempNextAngle real No
TempNextIndex integer No
TempPingPoint location No
TempPoint location Yes
TempPointA location No
TempPointB location No
TempPointC location No
TempPointExitYourUnitArea location No
TempPointExitYourUnitsB location No
TempPointReorient location No
TempRandomAttackPoint location No
TempTyrandePoint location No
TempX real No
TempY real No
TimerCaravanAttacked timer No
Twilight_FOLK group Yes
Twilight_TIMER timer Yes
Twilight_UNIT unit Yes
Tyrande unit No
TyrandeReturnSpot location No
Under_Construction group No
Validate boolean No
VictorySkipped boolean No false
Village01RestTimer timer No
Village02RestTimer timer No
VoteForLeft integer No
VoteForRight integer No
Weather weathereffect No
zBreadcrumbArray location Yes
zReorientTarget location No
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield INIT
  Events
    Map initialization
  Conditions
  Actions
    -------- DECLEAR CONSTANTS --------
    Set VariableSet CONSTANT_Glaive_LIMIT = 10
    Set VariableSet CONSTANT_Glaive_COUNT_MIN[1] = 3
    Set VariableSet CONSTANT_Glaive_COUNT_MIN[2] = 4
    Set VariableSet CONSTANT_Glaive_COUNT_MIN[3] = 5
    Set VariableSet CONSTANT_Glaive_COUNT_MAX[1] = 3
    Set VariableSet CONSTANT_Glaive_COUNT_MAX[2] = 4
    Set VariableSet CONSTANT_Glaive_COUNT_MAX[3] = 5
    Set VariableSet CONSTANT_Glaive_SPEED_PER_SEC[1] = 500.00
    Set VariableSet CONSTANT_Glaive_SPEED_PER_SEC[2] = 600.00
    Set VariableSet CONSTANT_Glaive_SPEED_PER_SEC[3] = 700.00
    Set VariableSet CONSTANT_Glaive_ORBITRANGE[1] = 150.00
    Set VariableSet CONSTANT_Glaive_ORBITRANGE[2] = 150.00
    Set VariableSet CONSTANT_Glaive_ORBITRANGE[3] = 150.00
    Set VariableSet CONSTANT_Glaive_INTERVAL[1] = 0.04
    Set VariableSet CONSTANT_Glaive_INTERVAL[2] = 0.04
    Set VariableSet CONSTANT_Glaive_INTERVAL[3] = 0.04
    Set VariableSet CONSTANT_Glaive_DURATION[1] = 10.00
    Set VariableSet CONSTANT_Glaive_DURATION[2] = 10.00
    Set VariableSet CONSTANT_Glaive_DURATION[3] = 10.00
    Set VariableSet CONSTANT_Glaive_DAMAGE_RANGE[1] = 100.00
    Set VariableSet CONSTANT_Glaive_DAMAGE_RANGE[2] = 100.00
    Set VariableSet CONSTANT_Glaive_DAMAGE_RANGE[3] = 100.00
    Set VariableSet CONSTANT_Glaive_DAMAGE[1] = 15.00
    Set VariableSet CONSTANT_Glaive_DAMAGE[2] = 15.00
    Set VariableSet CONSTANT_Glaive_DAMAGE[3] = 15.00
    Set VariableSet CONSTANT_Glaive_EFFECT_01[1] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_01[2] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_01[3] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[2] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[3] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_HIT_EFFECT_01[1] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    Set VariableSet CONSTANT_Glaive_HIT_EFFECT_01[2] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    Set VariableSet CONSTANT_Glaive_HIT_EFFECT_01[3] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    -------- END --------
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Trigger - Add to Blade_Shield_LOOP <gen> the event (Glaive_LOOP[(Integer A)] expires)
        Trigger - Add to Blade_Shield_EXPIRE <gen> the event (Glaive_EXPIRE[(Integer A)] expires)
        Set VariableSet Glaive_GROUP[(Integer A)] = (Units of type Footman)
        Unit Group - Pick every unit in Glaive_GROUP[(Integer A)] and do (Actions)
          Loop - Actions
            Unit Group - Remove (Picked unit) from Glaive_GROUP[(Integer A)].
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield BEGIN
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Blade Shield
  Actions
    Set VariableSet TempInteger[1] = (Random integer number between CONSTANT_Glaive_COUNT_MIN[(Level of Blade Shield for (Casting unit))] and CONSTANT_Glaive_COUNT_MAX[(Level of Blade Shield for (Casting unit))])
    For each (Integer A) from 1 to TempInteger[1], do (Actions)
      Loop - Actions
        Set VariableSet TempPoint[1] = (Position of (Casting unit))
        Unit - Create 1.Dummy Caster for (Owner of (Casting unit)) at TempPoint[1] facing Default building facing degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempInteger[2] = 0
        For each (Integer B) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger[2] Equal to 0
                Glaive_UNIT[(Integer B)] Equal to No unit
              Then - Actions
                Set VariableSet TempInteger[2] = (Integer B)
              Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[2] Equal to 0
          Then - Actions
            Unit - Remove (Last created unit) from the game
            Skip remaining actions
          Else - Actions
        Set VariableSet Glaive_UNIT[TempInteger[2]] = (Last created unit)
        Set VariableSet Glaive_LEVEL[TempInteger[2]] = (Level of Blade Shield for (Casting unit))
        Set VariableSet Glaive_TARGET[TempInteger[2]] = (Target unit of ability being cast)
        Set VariableSet Glaive_OWNER[TempInteger[2]] = (Casting unit)
        Set VariableSet Glaive_ANGLE[TempInteger[2]] = ((Real((Integer A))) x (360.00 / (Real(TempInteger[1]))))
        Set VariableSet Glaive_STATE[TempInteger[2]] = AWAY
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_01[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_01[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet Glaive_EFFECT_01[TempInteger[2]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_02[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_02[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet Glaive_EFFECT_02[TempInteger[2]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_03[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_03[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet Glaive_EFFECT_03[Glaive_LEVEL[TempInteger[2]]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_04[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_04[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet Glaive_EFFECT_04[TempInteger[2]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_05[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_05[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet Glaive_EFFECT_05[TempInteger[2]] = (Last created special effect)
          Else - Actions
        Countdown Timer - Start Glaive_LOOP[TempInteger[2]] as a One-shot timer that will expire in CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[TempInteger[2]]] seconds
        Countdown Timer - Start Glaive_EXPIRE[TempInteger[2]] as a One-shot timer that will expire in CONSTANT_Glaive_DURATION[Glaive_LEVEL[TempInteger[2]]] seconds
    Set VariableSet TempInteger[1] = 0
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Glaive_UNIT[(Integer A)] Not equal to No unit
            (Remaining time for Glaive_LOOP[(Integer A)]) Equal to 0.00
          Then - Actions
            -------- COMMON --------
            Countdown Timer - Start Glaive_LOOP[(Integer A)] as a One-shot timer that will expire in CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]] seconds
            Set VariableSet Glaive_ANGLE[(Integer A)] = (Glaive_ANGLE[(Integer A)] + (360.00 x ((CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) / ((2.00 x 3.14) x CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]]))))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_TARGET_HIDDEN[(Integer A)] Not equal to No unit
                (Glaive_TARGET_HIDDEN[(Integer A)] is loaded into Glaive_TARGET[(Integer A)].) Equal to False
              Then - Actions
                Set VariableSet Glaive_TARGET[(Integer A)] = Glaive_TARGET_HIDDEN[(Integer A)]
                Set VariableSet Glaive_TARGET_HIDDEN[(Integer A)] = No unit
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_OWNER_HIDDEN[(Integer A)] Not equal to No unit
                (Glaive_OWNER_HIDDEN[(Integer A)] is loaded into Glaive_OWNER[(Integer A)].) Equal to False
              Then - Actions
                Set VariableSet Glaive_OWNER[(Integer A)] = Glaive_OWNER_HIDDEN[(Integer A)]
                Set VariableSet Glaive_OWNER_HIDDEN[(Integer A)] = No unit
              Else - Actions
            -------- COMMON: DAMAGE RECYCLE --------
            Unit Group - Pick every unit in Glaive_GROUP[(Integer A)] and do (Actions)
              Loop - Actions
                Set VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set VariableSet TempPoint[2] = (Position of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[1] and TempPoint[2]) Greater than CONSTANT_Glaive_DAMAGE_RANGE[Glaive_LEVEL[(Integer A)]]
                  Then - Actions
                    Unit Group - Remove (Picked unit) from Glaive_GROUP[(Integer A)].
                  Else - Actions
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
            -------- COMMON: DAMAGE --------
            Set VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
            Set VariableSet TempGroup[1] = (Units within CONSTANT_Glaive_DAMAGE_RANGE[Glaive_LEVEL[(Integer A)]] of TempPoint[1] matching (((((Matching unit) is alive) Equal to True) and (((Unit-type of (Matching unit)) is A flying unit) Equal to False)) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Glaive_UNIT[(Integer A)]).) Equal to True) and (((Matching unit) is in Glaive_GROUP[(Integer A)].) Equal to False)))).)
            Unit Group - Pick every unit in TempGroup[1] and do (Actions)
              Loop - Actions
                Unit Group - Add (Picked unit) to Glaive_GROUP[(Integer A)]
                Unit - Cause Glaive_OWNER[(Integer A)] to damage (Picked unit), dealing CONSTANT_Glaive_DAMAGE[Glaive_LEVEL[(Integer A)]] damage of attack type Spells and damage type Normal
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_01[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest (attachpoint) of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_01[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_01[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest (attachpoint) of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_02[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_03[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest (attachpoint) of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_03[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_04[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest (attachpoint) of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_04[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_05[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest (attachpoint) of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_05[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Custom script: call DestroyGroup(udg_TempGroup[1])
            -------- STATE: AWAY --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_STATE[(Integer A)] Equal to AWAY
              Then - Actions
                Set VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set VariableSet TempPoint[2] = (Position of Glaive_TARGET[(Integer A)])
                Set VariableSet TempPoint[3] = (TempPoint[2] offset by CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]] towards Glaive_ANGLE[(Integer A)] degrees.)
                Set VariableSet TempPoint[4] = (TempPoint[1] offset by (CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1.00 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) towards (Angle from TempPoint[1] to TempPoint[3]) degrees.)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[3] and TempPoint[4]) Less than or equal to ((CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1.00 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) x 2.00)
                  Then - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        Glaive_STATE[(Integer A)] Not equal to BACK
                      Then - Actions
                        Set VariableSet Glaive_STATE[(Integer A)] = ORBIT
                      Else - Actions
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[3]
                  Else - Actions
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[4]
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
                Custom script: call RemoveLocation(udg_TempPoint[3])
                Custom script: call RemoveLocation(udg_TempPoint[4])
              Else - Actions
            -------- STATE: ORBIT --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_STATE[(Integer A)] Equal to ORBIT
              Then - Actions
                Set VariableSet TempPoint[1] = (Position of Glaive_TARGET[(Integer A)])
                Set VariableSet TempPoint[2] = (Position of Glaive_UNIT[(Integer A)])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[1] and TempPoint[2]) Greater than (2.00 x CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]])
                  Then - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        Glaive_STATE[(Integer A)] Not equal to BACK
                      Then - Actions
                        Set VariableSet Glaive_STATE[(Integer A)] = AWAY
                      Else - Actions
                  Else - Actions
                    Set VariableSet TempPoint[3] = (TempPoint[1] offset by CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]] towards Glaive_ANGLE[(Integer A)] degrees.)
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[3]
                    Custom script: call RemoveLocation(udg_TempPoint[3])
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
              Else - Actions
            -------- STATE: BACK --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_STATE[(Integer A)] Equal to BACK
              Then - Actions
                Set VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set VariableSet TempPoint[2] = (Position of Glaive_OWNER[(Integer A)])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[1] and TempPoint[2]) Less than or equal to ((CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1.00 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) / 2.00)
                  Then - Actions
                    Special Effect - Destroy Glaive_EFFECT_01[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_02[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_03[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_04[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_05[(Integer A)]
                    Unit - Remove Glaive_UNIT[(Integer A)] from the game
                    Set VariableSet Glaive_UNIT[(Integer A)] = No unit
                    Set VariableSet Glaive_TARGET[(Integer A)] = No unit
                    Set VariableSet Glaive_OWNER[(Integer A)] = No unit
                    Set VariableSet Glaive_ANGLE[(Integer A)] = 0.00
                    Set VariableSet Glaive_STATE[(Integer A)] =
                    Set VariableSet Glaive_LEVEL[(Integer A)] = 0
                  Else - Actions
                    Set VariableSet TempPoint[3] = (TempPoint[1] offset by (CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) towards (Angle from TempPoint[1] to TempPoint[2]) degrees.)
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[3]
                    Custom script: call RemoveLocation(udg_TempPoint[3])
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
              Else - Actions
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Glaive_UNIT[(Integer A)] Not equal to No unit
            (Remaining time for Glaive_EXPIRE[(Integer A)]) Equal to 0.00
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Glaive_OWNER[(Integer A)] is alive) Equal to False
              Then - Actions
                Unit - Remove Glaive_UNIT[(Integer A)] from the game
                Set VariableSet Glaive_UNIT[(Integer A)] = No unit
                Set VariableSet Glaive_TARGET[(Integer A)] = No unit
                Set VariableSet Glaive_OWNER[(Integer A)] = No unit
                Set VariableSet Glaive_ANGLE[(Integer A)] = 0.00
                Set VariableSet Glaive_STATE[(Integer A)] =
                Set VariableSet Glaive_LEVEL[(Integer A)] = 0
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    Glaive_STATE[(Integer A)] Not equal to BACK
                  Then - Actions
                    Set VariableSet Glaive_STATE[(Integer A)] = BACK
                  Else - Actions
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield DEATH
  Events
    Unit - A unit Dies
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Glaive_TARGET[(Integer A)] Equal to (Dying unit)
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Glaive_OWNER[(Integer A)] is alive) Equal to False
              Then - Actions
                Special Effect - Destroy Glaive_EFFECT_01[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_02[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_03[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_04[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_05[(Integer A)]
                Unit - Remove Glaive_UNIT[(Integer A)] from the game
                Set VariableSet Glaive_UNIT[(Integer A)] = No unit
                Set VariableSet Glaive_TARGET[(Integer A)] = No unit
                Set VariableSet Glaive_OWNER[(Integer A)] = No unit
                Set VariableSet Glaive_ANGLE[(Integer A)] = 0.00
                Set VariableSet Glaive_STATE[(Integer A)] =
                Set VariableSet Glaive_LEVEL[(Integer A)] = 0
              Else - Actions
                Set VariableSet Glaive_STATE[(Integer A)] = BACK
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield LOADS INTO TRANSPORT
  Events
    Unit - A unit Is loaded into a transport
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Triggering unit) Equal to Glaive_TARGET[(Integer A)]
          Then - Actions
            Set VariableSet Glaive_TARGET[(Integer A)] = (Transporting unit)
            Set VariableSet Glaive_TARGET_HIDDEN[(Integer A)] = (Triggering unit)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Triggering unit) Equal to Glaive_OWNER[(Integer A)]
          Then - Actions
            Set VariableSet Glaive_OWNER[(Integer A)] = (Transporting unit)
            Set VariableSet Glaive_OWNER_HIDDEN[(Integer A)] = (Triggering unit)
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shift
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Shift
  Actions
    Set VariableSet TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            Shift_OWNER[(Integer A)] Equal to No unit
          Then - Actions
            Set VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger[1] Not equal to 0
      Then - Actions
        Set VariableSet Shift_OWNER[TempInteger[1]] = (Casting unit)
        Set VariableSet Shift_TARGET[TempInteger[1]] = (Target unit of ability being cast)
        Countdown Timer - Start Shift_TIMER[TempInteger[1]] as a One-shot timer that will expire in 0.00 seconds
      Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shift WORK
  Events
    Time - Shift_TIMER[1] expires
    Time - Shift_TIMER[2] expires
    Time - Shift_TIMER[3] expires
    Time - Shift_TIMER[4] expires
    Time - Shift_TIMER[5] expires
    Time - Shift_TIMER[6] expires
    Time - Shift_TIMER[7] expires
    Time - Shift_TIMER[8] expires
    Time - Shift_TIMER[9] expires
    Time - Shift_TIMER[10] expires
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Shift_TIMER[(Integer A)]) Equal to 0.00
            Shift_OWNER[(Integer A)] Not equal to No unit
            Shift_TARGET[(Integer A)] Not equal to No unit
          Then - Actions
            Set VariableSet TempPoint[1] = (Position of Shift_OWNER[(Integer A)])
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIil\AIilTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Set VariableSet TempPoint[1] = (Position of Shift_TARGET[(Integer A)])
            Unit - Move Shift_OWNER[(Integer A)] instantly to TempPoint[1], facing (Facing of Shift_OWNER[(Integer A)]) degrees
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Set VariableSet TempPoint[1] = (Position of Shift_OWNER[(Integer A)])
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIil\AIilTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Set VariableSet Shift_OWNER[(Integer A)] = No unit
            Set VariableSet Shift_TARGET[(Integer A)] = No unit
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse INIT
  Events
    Map initialization
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Trigger - Add to Eclipse_EXPIRE <gen> the event (Maiden_TIMER[(Integer A)] expires)
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse LEARN
  Events
    Unit - A unit Learns a skill
  Conditions
    (Learned Hero Skill) Equal to Eclipse
  Actions
    Unit - Add Eclipse (Passive) to (Learning Hero)
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse BEGIN
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Level of Eclipse for (Casting unit)) Equal to 1
    Or - Any (Conditions) are true
      Conditions
        (Ability being cast) Equal to Blade Shield
        And - All (Conditions) are true
          Conditions
            (Ability being cast) Equal to Shift
            (Level of Shift for (Casting unit)) Not equal to 3
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Maiden_OWNER[(Integer A)] Equal to (Casting unit)
          Then - Actions
            Skip remaining actions
          Else - Actions
    Set VariableSet TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            Maiden_OWNER[(Integer A)] Equal to No unit
          Then - Actions
            Set VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    Set VariableSet Maiden_OWNER[TempInteger[1]] = (Casting unit)
    Special Effect - Create a special effect attached to the origin (attachpoint) of Maiden_OWNER[TempInteger[1]] using Abilities\Spells\Other\Charm\CharmTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Remove Eclipse (Passive) from Maiden_OWNER[TempInteger[1]]
    Unit - Add Eclipse (Cooldown) to Maiden_OWNER[TempInteger[1]]
    Unit - Order Maiden_OWNER[TempInteger[1]] to Orc Troll Berserker - Berserk.
    Countdown Timer - Start Maiden_TIMER[TempInteger[1]] as a One-shot timer that will expire in 24.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Shift
      Then - Actions
        Set VariableSet TempInteger[2] = (Level of Shift for Maiden_OWNER[TempInteger[1]])
        Unit - Remove Shift from Maiden_OWNER[TempInteger[1]]
        For each (Integer A) from 1 to TempInteger[2], do (Actions)
          Loop - Actions
            Hero - Modify unspent skill points of Maiden_OWNER[TempInteger[1]]: Add 1 points
            Hero - Learn skill for Maiden_OWNER[TempInteger[1]]: Shift
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Blade Shield
      Then - Actions
        Set VariableSet TempInteger[2] = (Level of Blade Shield for Maiden_OWNER[TempInteger[1]])
        Unit - Remove Blade Shield from Maiden_OWNER[TempInteger[1]]
        For each (Integer A) from 1 to TempInteger[2], do (Actions)
          Loop - Actions
            Hero - Modify unspent skill points of Maiden_OWNER[TempInteger[1]]: Add 1 points
            Hero - Learn skill for Maiden_OWNER[TempInteger[1]]: Blade Shield
      Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Maiden_OWNER[(Integer A)] Not equal to No unit
            (Remaining time for Maiden_TIMER[(Integer A)]) Equal to 0.00
          Then - Actions
            Unit - Remove Eclipse (Cooldown) from Maiden_OWNER[(Integer A)]
            Unit - Add Eclipse (Passive) to Maiden_OWNER[(Integer A)]
            Set VariableSet Maiden_OWNER[(Integer A)] = No unit
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Twilight Guardian BEGIN
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Summoned unit)) Equal to Twilight Guardian (Level 1)
        (Unit-type of (Summoned unit)) Equal to Twilight Guardian (Level 2)
        (Unit-type of (Summoned unit)) Equal to Twilight Guardian (Level 3)
  Actions
    Animation - Change (Summoned unit)'s vertex coloring to ((15.00 / 255.00)%, (15.00 / 255.00)%, (15.00 / 255.00)%) with 15.00% transparency
    Special Effect - Create a special effect attached to the chest (attachpoint) of (Summoned unit) using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Add Twilight Guardian (Effect) to (Summoned unit)
    Unit - Add Kiss of Death to (Summoned unit)
    Set VariableSet TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Twilight_UNIT[(Integer A)] Equal to No unit
            TempInteger[1] Equal to 0
          Then - Actions
            Set VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    Set VariableSet Twilight_UNIT[TempInteger[1]] = (Summoned unit)
    Countdown Timer - Start Twilight_TIMER[TempInteger[1]] as a One-shot timer that will expire in 60.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of Eclipse for (Summoning unit)) Equal to 1
      Then - Actions
        For each (Integer A) from 1 to 10, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Maiden_OWNER[(Integer A)] Equal to (Summoning unit)
              Then - Actions
                Skip remaining actions
              Else - Actions
        For each (Integer A) from 1 to 10, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger[1] Equal to 0
                Maiden_OWNER[(Integer A)] Equal to No unit
              Then - Actions
                Set VariableSet TempInteger[1] = (Integer A)
              Else - Actions
        Set VariableSet Maiden_OWNER[TempInteger[1]] = (Summoning unit)
        Special Effect - Create a special effect attached to the origin (attachpoint) of Maiden_OWNER[TempInteger[1]] using Abilities\Spells\Other\Charm\CharmTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Remove Eclipse (Passive) from Maiden_OWNER[TempInteger[1]]
        Unit - Add Eclipse (Cooldown) to Maiden_OWNER[TempInteger[1]]
        Unit - Order Maiden_OWNER[TempInteger[1]] to Orc Troll Berserker - Berserk.
        Countdown Timer - Start Maiden_TIMER[TempInteger[1]] as a One-shot timer that will expire in 24.00 seconds
        Set VariableSet TempInteger[2] = (Level of Summon Twilight Guardian for Maiden_OWNER[TempInteger[1]])
        Unit - Remove Summon Twilight Guardian from Maiden_OWNER[TempInteger[1]]
        For each (Integer A) from 1 to TempInteger[2], do (Actions)
          Loop - Actions
            Hero - Modify unspent skill points of Maiden_OWNER[TempInteger[1]]: Add 1 points
            Hero - Learn skill for Maiden_OWNER[TempInteger[1]]: Summon Twilight Guardian
      Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Twilight Guardian DEATH
  Events
    Unit - A unit Dies
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Killing unit) Equal to Twilight_UNIT[(Integer A)]
            And - All (Conditions) are true
              Conditions
                (Level of (Dying unit)) Less than or equal to 5
                ((Dying unit) is A structure) Equal to False
                ((Dying unit) is A Hero) Equal to False
                ((Dying unit) is A flying unit) Equal to False
                ((Dying unit) is Magic Immune) Equal to False
                ((Dying unit) is A peon-type unit) Equal to False
                ((Dying unit) is Mechanical) Equal to False
                ((Killing unit) belongs to an ally of (Owner of (Dying unit)).) Equal to False
          Then - Actions
            Set VariableSet TempPoint[1] = (Position of (Dying unit))
            Unit - Create 1.(Unit-type of (Dying unit)) for (Owner of Twilight_UNIT[(Integer A)]) at TempPoint[1] facing (Facing of (Dying unit)) degrees
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Special Effect - Destroy (Last created special effect)
            Animation - Change (Last created unit)'s vertex coloring to ((15.00 / 255.00)%, (15.00 / 255.00)%, (15.00 / 255.00)%) with 15.00% transparency
            Unit - Add Twilight Guardian (Effect) to (Last created unit)
            Unit - Add a (Remaining time for Twilight_TIMER[(Integer A)]) second Generic expiration timer to (Last created unit)
            Unit Group - Add (Last created unit) to Twilight_FOLK[(Integer A)]
            Unit - Disable supply usage for (Last created unit).
            Unit - Remove Elune's Grace from (Last created unit)
            Unit - Remove Endurance Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Ensnare from (Last created unit)
            Unit - Remove Ensnare from (Last created unit)
            Unit - Remove Ensnare (Neutral Hostile) from (Last created unit)
            Unit - Remove Entangling Roots (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Entangling Roots (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Parasite from (Last created unit)
            Unit - Remove Parasite from (Last created unit)
            Unit - Remove Frost Armor (Autocast) (Neutral Hostile) from (Last created unit)
            Unit - Remove Frost Armor (Autocast) (Neutral Hostile) from (Last created unit)
            Unit - Remove Frost Armor (Neutral Hostile) from (Last created unit)
            Unit - Remove Abolish Magic from (Last created unit)
            Unit - Remove Abolish Magic from (Last created unit)
            Unit - Remove Abolish Magic (Neutral Hostile) from (Last created unit)
            Unit - Remove Abolish Magic (Neutral Hostile, second position) from (Last created unit)
            Unit - Remove Animate Dead (Neutral Hostile) from (Last created unit)
            Unit - Remove Anti-magic Shell from (Last created unit)
            Unit - Remove Anti-magic Shell (Magic Resistance) from (Last created unit)
            Unit - Remove Anti-magic Shell (Neutral Hostile) from (Last created unit)
            Unit - Remove Devour from (Last created unit)
            Unit - Remove Devour (Neutral Hostile) from (Last created unit)
            Unit - Remove Spiked Shell (2,2 Button Pos) from (Last created unit)
            Unit - Remove Spiked Shell from (Last created unit)
            Unit - Remove Submerge (Myrmidon) from (Last created unit)
            Unit - Remove Submerge (Royal Guard) from (Last created unit)
            Unit - Remove Submerge (Snap Dragon) from (Last created unit)
            Unit - Remove Summon Sea Elemental from (Last created unit)
            Unit - Remove Frost Bolt from (Last created unit)
            Unit - Remove Slow Poison from (Last created unit)
            Unit - Remove Crushing Wave from (Last created unit)
            Unit - Remove Crushing Wave (Lesser) from (Last created unit)
            Unit - Remove Crushing Wave (Lesser) from (Last created unit)
            Unit - Remove Resistant Skin (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Resistant Skin (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Resistant Skin from (Last created unit)
            Unit - Remove Hardened Skin from (Last created unit)
            Unit - Remove Hardened Skin from (Last created unit)
            Unit - Remove Shadow Meld from (Last created unit)
            Unit - Remove ACss (Neutral Hostile) from (Last created unit)
            Unit - Remove Envenomed Weapons (Neutral Hostile) from (Last created unit)
            Unit - Remove Envenomed Spears from (Last created unit)
            Unit - Remove Evasion (Neutral Hostile) from (Last created unit)
            Unit - Remove Devotion Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Divine Shield (Neutral Hostile) from (Last created unit)
            Unit - Remove Frost Nova (Neutral Hostile) from (Last created unit)
            Unit - Remove Bash (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Bash (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Critical Strike (Neutral Hostile) from (Last created unit)
            Unit - Remove Heal from (Last created unit)
            Unit - Remove Heal (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Heal (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Heal (Neutral Hostile 3) from (Last created unit)
            Unit - Remove Inner Fire from (Last created unit)
            Unit - Remove Inner Fire (Neutral Hostile) from (Last created unit)
            Unit - Remove Thorns Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Trueshot Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Rejuvenation from (Last created unit)
            Unit - Remove Rejuvenation (Neutral Hostile) from (Last created unit)
            Unit - Remove Rejuvenation (Furbolg) from (Last created unit)
            Unit - Remove Faerie Fire from (Last created unit)
            Unit - Remove Faerie Fire (Morph) from (Last created unit)
            Unit - Remove Faerie Fire (Neutral Hostile) from (Last created unit)
            Unit - Remove Lightning Shield from (Last created unit)
            Unit - Remove Lightning Shield (Neutral Hostile) from (Last created unit)
            Unit - Remove War Stomp (Neutral Hostile) from (Last created unit)
            Unit - Remove War Stomp (Neutral Hostile) from (Last created unit)
            Unit - Remove War Stomp (Neutral Hostile) from (Last created unit)
            Unit - Remove Command Aura from (Last created unit)
            Unit - Remove Pulverize from (Last created unit)
            Unit - Remove Pulverize (Neutral Hostile) from (Last created unit)
            Unit - Remove Hurl Boulder from (Last created unit)
            Unit - Remove Hex (Neutral Hostile) from (Last created unit)
            Unit - Remove Slam (Neutral Hostile) from (Last created unit)
            Unit - Remove Slam (Thunder Lizard) from (Last created unit)
            Unit - Remove Sleep (Neutral Hostile) from (Last created unit)
            Unit - Remove Summon Prawns from (Last created unit)
            Unit - Remove Cleaving Attack from (Last created unit)
            Unit - Remove Curse from (Last created unit)
            Unit - Remove Curse (Neutral Hostile) from (Last created unit)
            Unit - Remove Immolation (Neutral Hostile) from (Last created unit)
            Unit - Remove Blizzard (Neutral Hostile) from (Last created unit)
            Unit - Remove Disease Cloud (Abomination) from (Last created unit)
            Unit - Remove Disease Cloud (Meat Wagon) from (Last created unit)
            Unit - Remove Disease Cloud (Neutral Hostile no damage) from (Last created unit)
            Unit - Remove Disease Cloud (Neutral Hostile) from (Last created unit)
            Unit - Remove Disease Cloud (Plague Ward) from (Last created unit)
            Unit - Remove Purge from (Last created unit)
            Unit - Remove Purge from (Last created unit)
            Unit - Remove Purge (Neutral Hostile) from (Last created unit)
            Unit - Remove Cyclone (Neutral Hostile) from (Last created unit)
            Unit - Remove Cyclone from (Last created unit)
            Unit - Remove Cyclone from (Last created unit)
            Unit - Remove Cyclone (Cenarius) from (Last created unit)
          Else - Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Twilight_UNIT[(Integer A)] Equal to (Dying unit)
          Then - Actions
            Unit - Remove Twilight Guardian (Effect) from (Dying unit)
            Unit - Remove Twilight_UNIT[(Integer A)] from the game
            Unit Group - Pick every unit in Twilight_FOLK[(Integer A)] and do (Actions)
              Loop - Actions
                Unit Group - Remove (Picked unit) from Twilight_FOLK[(Integer A)].
                Unit - Remove Twilight Guardian (Effect) from (Picked unit)
                Unit - Remove (Picked unit) from the game
                Set VariableSet TempPoint[1] = (Position of (Picked unit))
                Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Special Effect - Destroy (Last created special effect)
            Set VariableSet Twilight_UNIT[(Integer A)] = No unit
            Set VariableSet TempPoint[1] = (Position of (Dying unit))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Special Effect - Destroy (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Dying unit) is in Twilight_FOLK[(Integer A)].) Equal to True
          Then - Actions
            Unit Group - Remove (Picked unit) from Twilight_FOLK[(Integer A)].
            Unit - Remove Twilight Guardian (Effect) from (Dying unit)
            Unit Group - Remove (Dying unit) from Twilight_FOLK[(Integer A)].
            Unit - Remove (Dying unit) from the game
            Set VariableSet TempPoint[1] = (Position of (Dying unit))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Special Effect - Destroy (Last created special effect)
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shadow Orb INIT
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Shadow_Orb_TYPE[1] = Shadow Orb +1
    Set VariableSet Shadow_Orb_TYPE[2] = Shadow Orb +2
    Set VariableSet Shadow_Orb_TYPE[3] = Shadow Orb +3
    Set VariableSet Shadow_Orb_TYPE[4] = Shadow Orb +4
    Set VariableSet Shadow_Orb_TYPE[5] = Shadow Orb +5
    Set VariableSet Shadow_Orb_TYPE[6] = Shadow Orb +6
    Set VariableSet Shadow_Orb_TYPE[7] = Shadow Orb +7
    Set VariableSet Shadow_Orb_TYPE[8] = Shadow Orb +8
    Set VariableSet Shadow_Orb_TYPE[9] = Shadow Orb +9
    Set VariableSet Shadow_Orb_TYPE[10] = Shadow Orb +10
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shadow Orb CUMULATIVE
  Events
    Unit - A unit Acquires an item
  Conditions
    GameHasStarted Equal to True
    Or - Any (Conditions) are true
      Conditions
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[1]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[2]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[3]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[4]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[5]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[6]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[7]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[8]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[9]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[10]
  Actions
    For each (Integer A) from 1 to 8, do (Actions)
      Loop - Actions
        Set VariableSet TempInteger[(Integer A)] = 0
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        For each (Integer B) from 1 to 10, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Item-type of (Item carried by (Hero manipulating item) in slot (Integer A))) Equal to Shadow_Orb_TYPE[(Integer B)]
              Then - Actions
                Set VariableSet TempInteger[(Integer A)] = (Integer B)
                Set VariableSet TempInteger[7] = (TempInteger[7] + 1)
                Set VariableSet TempInteger[8] = (TempInteger[8] + (Integer B))
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger[7] Greater than or equal to 2
      Then - Actions
        For each (Integer A) from 1 to 6, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger[(Integer A)] Not equal to 0
              Then - Actions
                Hero - Drop the item from slot (Integer A) of (Hero manipulating item).
                Item - Remove (Last dropped item)
              Else - Actions
        Hero - Create Shadow_Orb_TYPE[TempInteger[8]] and give it to (Hero manipulating item)
      Else - Actions
    For each (Integer A) from 1 to 8, do (Actions)
      Loop - Actions
        Set VariableSet TempInteger[(Integer A)] = 0
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
This is a chart that shows the statistics of Illidan's Catastrophic Wave ultimate.
Burn INIT
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet CONSTANT_Burn_LOOP = 0.06
    Set VariableSet CONSTANT_Burn_DAMAGE = 300.00
    Set VariableSet CONSTANT_Burn_AREA_OF_EFFECT = 200.00
    Set VariableSet CONSTANT_Burn_RANGE = 1200.00
    Set VariableSet CONSTANT_Burn_VELOCITY = 60.00
    Set VariableSet CONSTANT_Burn_LIMIT = 10
    -------- r --------
    Set VariableSet CONSTANT_Burn_BURN_DAMAGE = 300.00
    Set VariableSet CONSTANT_Burn_BURN_TIME = 15.00
    Set VariableSet CONSTANT_Burn_BURN_LOOP = 0.25
    Set VariableSet CONSTANT_Burn_BURN_EFFECT = Abilities\Spells\Other\BreathOfFire\BreathOfFireDamage.mdl
    Set VariableSet CONSTANT_Burn_BURN_LIMIT = 20
    -------- r --------
    Set VariableSet CONSTANT_Burn_KNOCKBACK = 300.00
    Set VariableSet CONSTANT_Burn_KNOCKBACK_TIME = 0.80
    Set VariableSet CONSTANT_Burn_KNOCKBACK_LOOP = 0.04
    Set VariableSet CONSTANT_Burn_KNOCKBACK_LIMIT = 20
    -------- r --------
    For each (Integer A) from 1 to CONSTANT_Burn_LIMIT, do (Actions)
      Loop - Actions
        Trigger - Add to Burn_LOOP <gen> the event (Burn_LOOP[(Integer A)] expires)
    For each (Integer A) from 1 to CONSTANT_Burn_BURN_LIMIT, do (Actions)
      Loop - Actions
        Trigger - Add to Burn_BURN_LOOP <gen> the event (Burn_BURN_LOOP_TIMER[(Integer A)] expires)
    For each (Integer A) from 1 to CONSTANT_Burn_KNOCKBACK_LIMIT, do (Actions)
      Loop - Actions
        Trigger - Add to Burn_KNOCKBACK_LOOP <gen> the event (Burn_KNOCKBACK_LOOP_TIMER[(Integer A)] expires)
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn BEGIN
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Shockwave
  Actions
    Set VariableSet TempInteger[1] = 0
    For each (Integer A) from 1 to CONSTANT_Burn_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            Burn_OWNER[(Integer A)] Equal to No unit
          Then - Actions
            Set VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    Set VariableSet Burn_OWNER[TempInteger[1]] = (Casting unit)
    Set VariableSet TempPoint[1] = (Position of (Casting unit))
    Set VariableSet TempPoint[2] = (Target point of ability being cast)
    Unit - Create 1 Dummy Caster for (Owner of (Casting unit)) at TempPoint[1] facing TempPoint[2]
    Unit - Hide (Last created unit)
    Custom script: call RemoveLocation(udg_TempPoint[1])
    Custom script: call RemoveLocation(udg_TempPoint[2])
    Set VariableSet Burn_UNIT[TempInteger[1]] = (Last created unit)
    Countdown Timer - Start Burn_LOOP[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_LOOP seconds
    Set VariableSet Burn_DISTANCE[TempInteger[1]] = 0.00
    Set VariableSet TempInteger[1] = 0
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Burn_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Burn_LOOP[(Integer A)]) Equal to 0.00
          Then - Actions
            -------- Effect --------
            Set VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
            Special Effect - Create a special effect at TempPoint[1] using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
            -------- Damage --------
            Set VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
            Set VariableSet TempGroup[1] = (Units within CONSTANT_Burn_AREA_OF_EFFECT of TempPoint[1] matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Burn_OWNER[(Integer A)]).) Equal to True) and (((Matching unit) is in Burn_GROUP[(Integer A)].) Equal to False)))).)
            Unit Group - Pick every unit in TempGroup[1] and do (Actions)
              Loop - Actions
                Unit - Cause Burn_OWNER[(Integer A)] to damage (Picked unit), dealing CONSTANT_Burn_DAMAGE damage of attack type Spells and damage type Normal
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Picked unit) is in Burn_BURN_GROUP.) Equal to False
                  Then - Actions
                    Set VariableSet TempInteger[1] = 0
                    For each (Integer B) from 1 to CONSTANT_Burn_BURN_LIMIT, do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            Burn_BURN_UNIT[(Integer B)] Equal to No unit
                            TempInteger[1] Equal to 0
                          Then - Actions
                            Set VariableSet TempInteger[1] = (Integer B)
                          Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        TempInteger[1] Not equal to 0
                      Then - Actions
                        Set VariableSet Burn_BURN_UNIT[TempInteger[1]] = (Picked unit)
                        Set VariableSet Burn_BURN_DAMAGE_SOUCE[TempInteger[1]] = Burn_OWNER[(Integer A)]
                        Special Effect - Create a special effect attached to the chest (attachpoint) of Burn_BURN_UNIT[TempInteger[1]] using CONSTANT_Burn_BURN_EFFECT
                        Set VariableSet Burn_BURN_EFFECT[TempInteger[1]] = (Last created special effect)
                        Countdown Timer - Start Burn_BURN_LOOP_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_BURN_LOOP seconds
                        Countdown Timer - Start Burn_BURN_EXPIRE_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_BURN_TIME seconds
                        Unit Group - Add Burn_BURN_UNIT[TempInteger[1]] to Burn_BURN_GROUP
                      Else - Actions
                    Set VariableSet TempInteger[1] = 0
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Picked unit) is in Burn_KNOCKBACK_GROUP.) Equal to False
                    ((Picked unit) is A structure) Equal to False
                  Then - Actions
                    Set VariableSet TempInteger[1] = 0
                    For each (Integer B) from 1 to CONSTANT_Burn_KNOCKBACK_LIMIT, do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            Burn_KNOCKBACK_UNIT[(Integer B)] Equal to No unit
                            TempInteger[1] Equal to 0
                          Then - Actions
                            Set VariableSet TempInteger[1] = (Integer B)
                          Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        TempInteger[1] Not equal to 0
                      Then - Actions
                        Set VariableSet Burn_KNOCKBACK_UNIT[TempInteger[1]] = (Picked unit)
                        Set VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                        Set VariableSet TempPoint[2] = (Position of (Picked unit))
                        Set VariableSet Burn_KNOCKBACK_ANGLE[TempInteger[1]] = (Angle from TempPoint[1] to TempPoint[2])
                        Custom script: call RemoveLocation(udg_TempPoint[1])
                        Custom script: call RemoveLocation(udg_TempPoint[2])
                        Countdown Timer - Start Burn_KNOCKBACK_LOOP_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_KNOCKBACK_LOOP seconds
                        Countdown Timer - Start Burn_KNOCKBACK_EXPIRE_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_KNOCKBACK_TIME seconds
                        Unit Group - Add Burn_KNOCKBACK_UNIT[TempInteger[1]] to Burn_KNOCKBACK_GROUP
                      Else - Actions
                    Set VariableSet TempInteger[1] = 0
                  Else - Actions
                Unit Group - Add (Picked unit) to Burn_GROUP[(Integer A)]
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Custom script: call DestroyGroup(udg_TempGroup[1])
            -------- Move --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (CONSTANT_Burn_RANGE - Burn_DISTANCE[(Integer A)]) Less than or equal to CONSTANT_Burn_VELOCITY
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (CONSTANT_Burn_RANGE - Burn_DISTANCE[(Integer A)]) Not equal to 0.00
                  Then - Actions
                    Set VariableSet Burn_DISTANCE[(Integer A)] = CONSTANT_Burn_RANGE
                    Set VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                    Set VariableSet TempPoint[2] = (TempPoint[1] offset by (CONSTANT_Burn_RANGE - Burn_DISTANCE[(Integer A)]) towards (Facing of Burn_UNIT[(Integer A)]) degrees.)
                    Unit - Move Burn_UNIT[(Integer A)] instantly to TempPoint[2], facing (Facing of Burn_UNIT[(Integer A)]) degrees
                    Custom script: call RemoveLocation(udg_TempPoint[1])
                    Custom script: call RemoveLocation(udg_TempPoint[2])
                    Countdown Timer - Start Burn_LOOP[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_LOOP seconds
                  Else - Actions
                    Set VariableSet Burn_UNIT[(Integer A)] = No unit
                    Set VariableSet Burn_OWNER[(Integer A)] = No unit
                    Set VariableSet Burn_DISTANCE[(Integer A)] = 0.00
                    Unit Group - Pick every unit in Burn_GROUP[(Integer A)] and do (Actions)
                      Loop - Actions
                        Unit Group - Remove (Picked unit) from Burn_GROUP[(Integer A)].
              Else - Actions
                Set VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                Set VariableSet TempPoint[2] = (TempPoint[1] offset by CONSTANT_Burn_VELOCITY towards (Facing of Burn_UNIT[(Integer A)]) degrees.)
                Unit - Move Burn_UNIT[(Integer A)] instantly to TempPoint[2], facing (Facing of Burn_UNIT[(Integer A)]) degrees
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
                Set VariableSet Burn_DISTANCE[(Integer A)] = (Burn_DISTANCE[(Integer A)] + CONSTANT_Burn_VELOCITY)
                Countdown Timer - Start Burn_LOOP[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_LOOP seconds
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn BURN LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Burn_BURN_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Burn_BURN_EXPIRE_TIMER[(Integer A)]) Not equal to 0.00
            (Burn_BURN_UNIT[(Integer A)] is alive) Equal to True
          Then - Actions
            Unit - Cause Burn_BURN_DAMAGE_SOUCE[(Integer A)] to damage Burn_BURN_UNIT[(Integer A)], dealing (CONSTANT_Burn_BURN_DAMAGE / (CONSTANT_Burn_BURN_TIME / CONSTANT_Burn_BURN_LOOP)) damage of attack type Spells and damage type Normal
            Countdown Timer - Start Burn_BURN_LOOP_TIMER[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_BURN_LOOP seconds
          Else - Actions
            Set VariableSet Burn_BURN_DAMAGE_SOUCE[(Integer A)] = No unit
            Set VariableSet Burn_BURN_UNIT[(Integer A)] = No unit
            Special Effect - Destroy Burn_BURN_EFFECT[(Integer A)]
            Unit Group - Remove Burn_BURN_UNIT[(Integer A)] from Burn_BURN_GROUP.
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn KNOCKBACK LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Burn_KNOCKBACK_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Burn_KNOCKBACK_EXPIRE_TIMER[(Integer A)]) Not equal to 0.00
            (Burn_KNOCKBACK_UNIT[(Integer A)] is alive) Equal to True
          Then - Actions
            Set VariableSet TempPoint[1] = (Position of Burn_KNOCKBACK_UNIT[(Integer A)])
            Set VariableSet TempPoint[2] = (TempPoint[1] offset by (CONSTANT_Burn_KNOCKBACK / (CONSTANT_Burn_KNOCKBACK_TIME / CONSTANT_Burn_KNOCKBACK_LOOP)) towards Burn_KNOCKBACK_ANGLE[(Integer A)] degrees.)
            Unit - Move Burn_KNOCKBACK_UNIT[(Integer A)] instantly to TempPoint[2], facing (Facing of Burn_KNOCKBACK_UNIT[(Integer A)]) degrees
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Custom script: call RemoveLocation(udg_TempPoint[2])
            Countdown Timer - Start Burn_KNOCKBACK_LOOP_TIMER[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_KNOCKBACK_LOOP seconds
          Else - Actions
            Set VariableSet Burn_KNOCKBACK_UNIT[(Integer A)] = No unit
            Set VariableSet Burn_KNOCKBACK_ANGLE[(Integer A)] = 0.00
            Unit Group - Remove Burn_KNOCKBACK_UNIT[(Integer A)] from Burn_KNOCKBACK_GROUP.
Ambush INIT
  Events
    Map initialization
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Trigger - Add to Ambush_EXPIRE <gen> the event (AmbushTimer[(Integer A)] expires)
Ambush REGISTER
  Events
  Conditions
  Actions
    Set VariableSet TempPoint[1] = (Center of CreateAmbush_Region)
    Unit - Create 1.CreateAmbush_Type for Neutral Hostile at TempPoint[1] facing CreateAmbush_Angle degrees
    Custom script: call RemoveLocation(udg_TempPoint[1])
    Unit Group - Add (Last created unit) to CreateAmbush_Group
    Set VariableSet TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            AmbushUnit[(Integer A)] Equal to No unit
          Then - Actions
            Set VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            TempInteger[1] Equal to 0
            And - All (Conditions) are true
              Conditions
                (Unit-type of (Last created unit)) Not equal to Skeleton Archer
                (Unit-type of (Last created unit)) Not equal to Skeleton Warrior
                (Unit-type of (Last created unit)) Not equal to Skeletal Mage
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc Grunt
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc Champion
                (Unit-type of (Last created unit)) Not equal to Reef Elemental
                (Unit-type of (Last created unit)) Not equal to Sea Elemental
                (Unit-type of (Last created unit)) Not equal to Berserk Elemental
                (Unit-type of (Last created unit)) Not equal to Revenant of the Tides
                (Unit-type of (Last created unit)) Not equal to Revenant of the Seas
                (Unit-type of (Last created unit)) Not equal to Revenant of the Depths
                (Unit-type of (Last created unit)) Not equal to Deeplord Revenant
      Then - Actions
        Skip remaining actions
      Else - Actions
    Set VariableSet AmbushUnit[TempInteger[1]] = (Last created unit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Last created unit)) Equal to Skeleton Archer
        (Unit-type of (Last created unit)) Equal to Skeleton Warrior
        (Unit-type of (Last created unit)) Equal to Skeletal Mage
      Then - Actions
        Set VariableSet TempPoint[1] = (Center of CreateAmbush_GoToRegion)
        Unit - Order AmbushUnit[TempInteger[1]] to Attack-Move To.TempPoint[1]
        Custom script: call RemoveLocation(udg_TempPoint[1])
      Else - Actions
    Unit - Make AmbushUnit[TempInteger[1]] Invulnerable
    Unit - Pause AmbushUnit[TempInteger[1]]
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Last created unit)) Equal to Skeletal Orc
            (Unit-type of (Last created unit)) Equal to Skeletal Orc Grunt
            (Unit-type of (Last created unit)) Equal to Skeletal Orc Champion
            (Unit-type of (Last created unit)) Equal to Skeleton Archer
            (Unit-type of (Last created unit)) Equal to Skeleton Warrior
            (Unit-type of (Last created unit)) Equal to Skeletal Mage
      Then - Actions
        Animation - Play AmbushUnit[TempInteger[1]]'s birth (animationname) animation
        Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 2.33 seconds
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                (Unit-type of (Last created unit)) Equal to Reef Elemental
                (Unit-type of (Last created unit)) Equal to Sea Elemental
                (Unit-type of (Last created unit)) Equal to Berserk Elemental
          Then - Actions
            Animation - Play AmbushUnit[TempInteger[1]]'s birth swim (animationname) animation
            Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 0.90 seconds
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    (Unit-type of (Last created unit)) Equal to Revenant of the Tides
                    (Unit-type of (Last created unit)) Equal to Revenant of the Seas
                    (Unit-type of (Last created unit)) Equal to Revenant of the Depths
                    (Unit-type of (Last created unit)) Equal to Deeplord Revenant
              Then - Actions
                Animation - Play AmbushUnit[TempInteger[1]]'s spell (animationname) animation
                Set VariableSet Ambush_VISIBILITY[TempInteger[1]] = 100
                Animation - Change AmbushUnit[TempInteger[1]]'s vertex coloring to (100%, 100%, 100%) with (Real(Ambush_VISIBILITY[TempInteger[1]]))% transparency
                Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 0.01 seconds
              Else - Actions
                Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 1.00 seconds
Ambush EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            AmbushUnit[(Integer A)] Not equal to No unit
            (Remaining time for AmbushTimer[(Integer A)]) Equal to 0.00
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Ambush_VISIBILITY[(Integer A)] Not equal to 0
              Then - Actions
                Set VariableSet Ambush_VISIBILITY[(Integer A)] = (Ambush_VISIBILITY[(Integer A)] - 10)
                Animation - Change AmbushUnit[(Integer A)]'s vertex coloring to (100%, 100%, 100%) with (Real(Ambush_VISIBILITY[(Integer A)]))% transparency
                Countdown Timer - Start AmbushTimer[(Integer A)] as a One-shot timer that will expire in 0.15 seconds
              Else - Actions
                Unit - Unpause AmbushUnit[(Integer A)]
                Unit - Make AmbushUnit[(Integer A)] Vulnerable
                Animation - Reset AmbushUnit[(Integer A)]'s animation
                Animation - Change AmbushUnit[(Integer A)]'s animation speed to 100.00% of its original speed
                Set VariableSet AmbushUnit[(Integer A)] = No unit
          Else - Actions
SaveLoad Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet SaveLoad_Items[1] = Claws of Attack +15
    Set VariableSet SaveLoad_Item_String[1] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[2] = Crown of Kings +5
    Set VariableSet SaveLoad_Item_String[2] = ReplaceableTextures\CommandButtons\BTNHelmutPurple.blp
    Set VariableSet SaveLoad_Items[3] = Kelen's Dagger of Escape
    Set VariableSet SaveLoad_Item_String[3] = ReplaceableTextures\CommandButtons\BTNDaggerOfEscape.blp
    Set VariableSet SaveLoad_Items[4] = Mask of Death
    Set VariableSet SaveLoad_Item_String[4] = ReplaceableTextures\CommandButtons\BTNMaskOfDeath.blp
    Set VariableSet SaveLoad_Items[5] = Orb of Frost
    Set VariableSet SaveLoad_Item_String[5] = ReplaceableTextures\CommandButtons\BTNOrbOfFrost.blp
    Set VariableSet SaveLoad_Items[6] = Ring of Protection +5
    Set VariableSet SaveLoad_Item_String[6] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[7] = Amulet of the Wild
    Set VariableSet SaveLoad_Item_String[7] = ReplaceableTextures\CommandButtons\BTNAmuletOftheWild.blp
    Set VariableSet SaveLoad_Items[8] = Book of the Dead
    Set VariableSet SaveLoad_Item_String[8] = ReplaceableTextures\CommandButtons\BTNBookOfTheDead.blp
    Set VariableSet SaveLoad_Items[9] = Demonic Figurine
    Set VariableSet SaveLoad_Item_String[9] = ReplaceableTextures\CommandButtons\BTNDoomGuard.blp
    Set VariableSet SaveLoad_Items[10] = Healing Wards
    Set VariableSet SaveLoad_Item_String[10] = ReplaceableTextures\CommandButtons\BTNHealingWard.blp
    Set VariableSet SaveLoad_Items[11] = Health Stone
    Set VariableSet SaveLoad_Item_String[11] = ReplaceableTextures\CommandButtons\BTNHealthStone.blp
    Set VariableSet SaveLoad_Items[12] = Ice Shard
    Set VariableSet SaveLoad_Item_String[12] = ReplaceableTextures\CommandButtons\BTNIceShard.blp
    Set VariableSet SaveLoad_Items[13] = Inferno Stone
    Set VariableSet SaveLoad_Item_String[13] = ReplaceableTextures\CommandButtons\BTNInfernalStone.blp
    Set VariableSet SaveLoad_Items[14] = Mana Stone
    Set VariableSet SaveLoad_Item_String[14] = ReplaceableTextures\CommandButtons\BTNManaStone.blp
    Set VariableSet SaveLoad_Items[15] = Potion of Divinity
    Set VariableSet SaveLoad_Item_String[15] = ReplaceableTextures\CommandButtons\BTNPotionOfDivinity.blp
    Set VariableSet SaveLoad_Items[16] = Potion of Greater Healing
    Set VariableSet SaveLoad_Item_String[16] = ReplaceableTextures\CommandButtons\BTNPotionGreen.blp
    Set VariableSet SaveLoad_Items[17] = Potion of Greater Mana
    Set VariableSet SaveLoad_Item_String[17] = ReplaceableTextures\CommandButtons\BTNPotionBlueBig.blp
    Set VariableSet SaveLoad_Items[18] = Potion of Invulnerability
    Set VariableSet SaveLoad_Item_String[18] = ReplaceableTextures\CommandButtons\BTNGreaterInvulneralbility.blp
    Set VariableSet SaveLoad_Items[19] = Potion of Omniscience
    Set VariableSet SaveLoad_Item_String[19] = ReplaceableTextures\CommandButtons\BTNPotionOfOmniscience.blp
    Set VariableSet SaveLoad_Items[20] = Potion of Restoration
    Set VariableSet SaveLoad_Item_String[20] = ReplaceableTextures\CommandButtons\BTNPotionOfRestoration.blp
    Set VariableSet SaveLoad_Items[21] = Red Drake Egg
    Set VariableSet SaveLoad_Item_String[21] = ReplaceableTextures\CommandButtons\BTNRedDragon.blp
    Set VariableSet SaveLoad_Items[22] = Replenishment Potion
    Set VariableSet SaveLoad_Item_String[22] = ReplaceableTextures\CommandButtons\BTNRejuvPotion.blp
    Set VariableSet SaveLoad_Items[23] = Scroll of Animate Dead
    Set VariableSet SaveLoad_Item_String[23] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollPurple.blp
    Set VariableSet SaveLoad_Items[24] = Scroll of Restoration
    Set VariableSet SaveLoad_Item_String[24] = ReplaceableTextures\CommandButtons\BTNScrollOfHealing.blp
    Set VariableSet SaveLoad_Items[25] = Scroll of Resurrection
    Set VariableSet SaveLoad_Item_String[25] = ReplaceableTextures\CommandButtons\BTNSnazzyScroll.blp
    Set VariableSet SaveLoad_Items[26] = Scroll of the Beast
    Set VariableSet SaveLoad_Item_String[26] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollGreen.blp
    Set VariableSet SaveLoad_Items[27] = Sentry Wards
    Set VariableSet SaveLoad_Item_String[27] = ReplaceableTextures\CommandButtons\BTNSentryWard.blp
    Set VariableSet SaveLoad_Items[28] = Spiked Collar
    Set VariableSet SaveLoad_Item_String[28] = ReplaceableTextures\CommandButtons\BTNFelHound.blp
    Set VariableSet SaveLoad_Items[29] = Stone Token
    Set VariableSet SaveLoad_Item_String[29] = ReplaceableTextures\CommandButtons\BTNRockGolem.blp
    Set VariableSet SaveLoad_Items[30] = Talisman of the Wild
    Set VariableSet SaveLoad_Item_String[30] = ReplaceableTextures\CommandButtons\BTNStone.blp
    Set VariableSet SaveLoad_Items[31] = Wand of Illusion
    Set VariableSet SaveLoad_Item_String[31] = ReplaceableTextures\CommandButtons\BTNWand.blp
    Set VariableSet SaveLoad_Items[32] = Wand of Lightning Shield
    Set VariableSet SaveLoad_Item_String[32] = ReplaceableTextures\CommandButtons\BTNStarWand.blp
    Set VariableSet SaveLoad_Items[33] = Wand of Mana Stealing
    Set VariableSet SaveLoad_Item_String[33] = ReplaceableTextures\CommandButtons\BTNWandOfManaSteal.blp
    Set VariableSet SaveLoad_Items[34] = Wand of Shadowsight
    Set VariableSet SaveLoad_Item_String[34] = ReplaceableTextures\CommandButtons\BTNWandOfShadowSight.blp
    Set VariableSet SaveLoad_Items[35] = Wand of the Wind
    Set VariableSet SaveLoad_Item_String[35] = ReplaceableTextures\CommandButtons\BTNWandOfCyclone.blp
    Set VariableSet SaveLoad_Items[36] = Amulet of Recall
    Set VariableSet SaveLoad_Item_String[36] = ReplaceableTextures\CommandButtons\BTNAmulet.blp
    Set VariableSet SaveLoad_Items[37] = Ancient Figurine
    Set VariableSet SaveLoad_Item_String[37] = ReplaceableTextures\CommandButtons\BTNClayFigurine.blp
    Set VariableSet SaveLoad_Items[38] = Anti-magic Potion
    Set VariableSet SaveLoad_Item_String[38] = ReplaceableTextures\CommandButtons\BTNSnazzyPotion.blp
    Set VariableSet SaveLoad_Items[39] = Arcane Scroll
    Set VariableSet SaveLoad_Item_String[39] = ReplaceableTextures\CommandButtons\BTNBansheeAdept.blp
    Set VariableSet SaveLoad_Items[40] = Bracer of Agility
    Set VariableSet SaveLoad_Item_String[40] = ReplaceableTextures\CommandButtons\BTNRingPurple.blp
    Set VariableSet SaveLoad_Items[41] = Claws of Attack +3
    Set VariableSet SaveLoad_Item_String[41] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[42] = Druid Pouch
    Set VariableSet SaveLoad_Item_String[42] = ReplaceableTextures\CommandButtons\BTNDust.blp
    Set VariableSet SaveLoad_Items[43] = Dust of Appearance
    Set VariableSet SaveLoad_Item_String[43] = ReplaceableTextures\CommandButtons\BTNDustOfAppearance.blp
    Set VariableSet SaveLoad_Items[44] = Essence of Aszune
    Set VariableSet SaveLoad_Item_String[44] = ReplaceableTextures\CommandButtons\BTNHeartOfAszune.blp
    Set VariableSet SaveLoad_Items[45] = Frost Wyrm Skull Shield
    Set VariableSet SaveLoad_Item_String[45] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set VariableSet SaveLoad_Items[46] = Gem of True Seeing
    Set VariableSet SaveLoad_Item_String[46] = ReplaceableTextures\CommandButtons\BTNGem.blp
    Set VariableSet SaveLoad_Items[47] = Goblin Land Mines
    Set VariableSet SaveLoad_Item_String[47] = ReplaceableTextures\CommandButtons\BTNGoblinLandMine.blp
    Set VariableSet SaveLoad_Items[48] = Goblin Night Scope
    Set VariableSet SaveLoad_Item_String[48] = ReplaceableTextures\CommandButtons\BTNTelescope.blp
    Set VariableSet SaveLoad_Items[49] = Greater Replenishment Potion
    Set VariableSet SaveLoad_Item_String[49] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvPotion.blp
    Set VariableSet SaveLoad_Items[50] = Greater Scroll of Replenishment
    Set VariableSet SaveLoad_Item_String[50] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvScroll.blp
    Set VariableSet SaveLoad_Items[51] = Horn of the Clouds
    Set VariableSet SaveLoad_Item_String[51] = ReplaceableTextures\CommandButtons\BTNHornOfFog.blp
    Set VariableSet SaveLoad_Items[52] = Ironwood Branch
    Set VariableSet SaveLoad_Item_String[52] = ReplaceableTextures\CommandButtons\BTNNatureTouchGrow.blp
    Set VariableSet SaveLoad_Items[53] = Jade Ring
    Set VariableSet SaveLoad_Item_String[53] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[54] = Keg of Ale
    Set VariableSet SaveLoad_Item_String[54] = ReplaceableTextures\CommandButtons\BTNBarrel.blp
    Set VariableSet SaveLoad_Items[55] = Lesser Replenishment Potion
    Set VariableSet SaveLoad_Item_String[55] = ReplaceableTextures\CommandButtons\BTNLesserRejuvPotion.blp
    Set VariableSet SaveLoad_Items[56] = Lesser Scroll of Replenishment
    Set VariableSet SaveLoad_Item_String[56] = ReplaceableTextures\CommandButtons\BTNLesserRejuvScroll.blp
    Set VariableSet SaveLoad_Items[57] = Lion's Ring
    Set VariableSet SaveLoad_Item_String[57] = ReplaceableTextures\CommandButtons\BTNRingLionHead.blp
    Set VariableSet SaveLoad_Items[58] = Maul of Strength
    Set VariableSet SaveLoad_Item_String[58] = ReplaceableTextures\CommandButtons\BTNHammer.blp
    Set VariableSet SaveLoad_Items[59] = Minor Replenishment Potion
    Set VariableSet SaveLoad_Item_String[59] = ReplaceableTextures\CommandButtons\BTNMinorRejuvPotion.blp
    Set VariableSet SaveLoad_Items[60] = Necklace of Spell Immunity
    Set VariableSet SaveLoad_Item_String[60] = ReplaceableTextures\CommandButtons\BTNNecklace.blp
    Set VariableSet SaveLoad_Items[61] = Orb of Corruption
    Set VariableSet SaveLoad_Item_String[61] = ReplaceableTextures\CommandButtons\BTNOrbOfCorruption.blp
    Set VariableSet SaveLoad_Items[62] = Orb of Fire
    Set VariableSet SaveLoad_Item_String[62] = ReplaceableTextures\CommandButtons\BTNOrbOfFire.blp
    Set VariableSet SaveLoad_Items[63] = Orb of Kil'jaeden
    Set VariableSet SaveLoad_Item_String[63] = ReplaceableTextures\CommandButtons\BTNUsedSoulGem.blp
    Set VariableSet SaveLoad_Items[64] = Orb of Lightning
    Set VariableSet SaveLoad_Item_String[64] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set VariableSet SaveLoad_Items[65] = Orb of Lightning
    Set VariableSet SaveLoad_Item_String[65] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set VariableSet SaveLoad_Items[66] = Orb of Slow
    Set VariableSet SaveLoad_Item_String[66] = ReplaceableTextures\CommandButtons\BTNOrbofSlowness.blp
    Set VariableSet SaveLoad_Items[67] = Orb of Venom
    Set VariableSet SaveLoad_Item_String[67] = ReplaceableTextures\CommandButtons\BTNOrbOfVenom.blp
    Set VariableSet SaveLoad_Items[68] = Potion of Greater Invisibility
    Set VariableSet SaveLoad_Item_String[68] = ReplaceableTextures\CommandButtons\BTNGreaterInvisibility.blp
    Set VariableSet SaveLoad_Items[69] = Potion of Speed
    Set VariableSet SaveLoad_Item_String[69] = ReplaceableTextures\CommandButtons\BTNPotionRed.blp
    Set VariableSet SaveLoad_Items[70] = Ring of Protection +1
    Set VariableSet SaveLoad_Item_String[70] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[71] = Ring of Superiority
    Set VariableSet SaveLoad_Item_String[71] = ReplaceableTextures\CommandButtons\BTNGoldRing.blp
    Set VariableSet SaveLoad_Items[72] = Ring of the Archmagi (version 2)
    Set VariableSet SaveLoad_Item_String[72] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[73] = Ring of the Archmagi (version 4)
    Set VariableSet SaveLoad_Item_String[73] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[74] = Ring of the Archmagi (version 1)
    Set VariableSet SaveLoad_Item_String[74] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[75] = Ring of the Archmagi (version 3)
    Set VariableSet SaveLoad_Item_String[75] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[76] = Scepter of Mastery
    Set VariableSet SaveLoad_Item_String[76] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[77] = Shadow Orb +1
    Set VariableSet SaveLoad_Item_String[77] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[78] = Shadow Orb +10
    Set VariableSet SaveLoad_Item_String[78] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[79] = Shadow Orb +2
    Set VariableSet SaveLoad_Item_String[79] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[80] = Shadow Orb +3
    Set VariableSet SaveLoad_Item_String[80] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[81] = Shadow Orb +4
    Set VariableSet SaveLoad_Item_String[81] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[82] = Shadow Orb +5
    Set VariableSet SaveLoad_Item_String[82] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[83] = Shadow Orb +6
    Set VariableSet SaveLoad_Item_String[83] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[84] = Shadow Orb +7
    Set VariableSet SaveLoad_Item_String[84] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[85] = Shadow Orb +8
    Set VariableSet SaveLoad_Item_String[85] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[86] = Shadow Orb +9
    Set VariableSet SaveLoad_Item_String[86] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[87] = Shamanic Totem
    Set VariableSet SaveLoad_Item_String[87] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set VariableSet SaveLoad_Items[88] = Skull Shield
    Set VariableSet SaveLoad_Item_String[88] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set VariableSet SaveLoad_Items[89] = Spider Ring
    Set VariableSet SaveLoad_Item_String[89] = ReplaceableTextures\CommandButtons\BTNRingVioletSpider.blp
    Set VariableSet SaveLoad_Items[90] = Staff of Preservation
    Set VariableSet SaveLoad_Item_String[90] = ReplaceableTextures\CommandButtons\BTNStaffOfPreservation.blp
    Set VariableSet SaveLoad_Items[91] = Staff of Reanimation
    Set VariableSet SaveLoad_Item_String[91] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set VariableSet SaveLoad_Items[92] = Tiny Altar of Kings
    Set VariableSet SaveLoad_Item_String[92] = ReplaceableTextures\CommandButtons\BTNAltarOfKings.blp
    Set VariableSet SaveLoad_Items[93] = Tiny Barracks
    Set VariableSet SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNHumanBarracks.blp
    Set VariableSet SaveLoad_Items[94] = Tiny Blacksmith
    Set VariableSet SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNBlacksmith.blp
    Set VariableSet SaveLoad_Items[95] = Tiny Farm
    Set VariableSet SaveLoad_Item_String[95] = ReplaceableTextures\CommandButtons\BTNFarm.blp
    Set VariableSet SaveLoad_Items[96] = Tiny Lumber Mill
    Set VariableSet SaveLoad_Item_String[96] = ReplaceableTextures\CommandButtons\BTNHumanLumberMill.blp
    Set VariableSet SaveLoad_Items[97] = Totem of Might
    Set VariableSet SaveLoad_Item_String[97] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set VariableSet SaveLoad_Items[98] = Voodoo Doll
    Set VariableSet SaveLoad_Item_String[98] = ReplaceableTextures\CommandButtons\BTNShadowPact.blp
    Set VariableSet SaveLoad_Items[99] = Alleria's Flute of Accuracy
    Set VariableSet SaveLoad_Item_String[99] = ReplaceableTextures\CommandButtons\BTNAlleriaFlute.blp
    Set VariableSet SaveLoad_Items[100] = Amulet of Spell Shield
    Set VariableSet SaveLoad_Item_String[100] = ReplaceableTextures\CommandButtons\BTNSpellShieldAmulet.blp
    Set VariableSet SaveLoad_Items[101] = Ancient Janggo of Endurance
    Set VariableSet SaveLoad_Item_String[101] = ReplaceableTextures\CommandButtons\BTNJanggo.blp
    Set VariableSet SaveLoad_Items[102] = Belt of Giant Strength +6
    Set VariableSet SaveLoad_Item_String[102] = ReplaceableTextures\CommandButtons\BTNBelt.blp
    Set VariableSet SaveLoad_Items[103] = Boots of Quel'Thalas +6
    Set VariableSet SaveLoad_Item_String[103] = ReplaceableTextures\CommandButtons\BTNBoots.blp
    Set VariableSet SaveLoad_Items[104] = Boots of Speed
    Set VariableSet SaveLoad_Item_String[104] = ReplaceableTextures\CommandButtons\BTNBootsOfSpeed.blp
    Set VariableSet SaveLoad_Items[105] = Circlet of Nobility
    Set VariableSet SaveLoad_Item_String[105] = ReplaceableTextures\CommandButtons\BTNCirclet.blp
    Set VariableSet SaveLoad_Items[106] = Claws of Attack +12
    Set VariableSet SaveLoad_Item_String[106] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[107] = Claws of Attack +6
    Set VariableSet SaveLoad_Item_String[107] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[108] = Claws of Attack +9
    Set VariableSet SaveLoad_Item_String[108] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[109] = Cloak of Flames
    Set VariableSet SaveLoad_Item_String[109] = ReplaceableTextures\CommandButtons\BTNCloakOfFlames.blp
    Set VariableSet SaveLoad_Items[110] = Cloak of Shadows
    Set VariableSet SaveLoad_Item_String[110] = ReplaceableTextures\CommandButtons\BTNCloak.blp
    Set VariableSet SaveLoad_Items[111] = Crystal Ball
    Set VariableSet SaveLoad_Item_String[111] = ReplaceableTextures\CommandButtons\BTNCrystalBall.blp
    Set VariableSet SaveLoad_Items[112] = Diamond of Summoning
    Set VariableSet SaveLoad_Item_String[112] = ReplaceableTextures\CommandButtons\BTNDarkSummoning.blp
    Set VariableSet SaveLoad_Items[113] = Gauntlets of Ogre Strength +3
    Set VariableSet SaveLoad_Item_String[113] = ReplaceableTextures\CommandButtons\BTNGauntletsOfOgrePower.blp
    Set VariableSet SaveLoad_Items[114] = Gloves of Haste
    Set VariableSet SaveLoad_Item_String[114] = ReplaceableTextures\CommandButtons\BTNGlove.blp
    Set VariableSet SaveLoad_Items[115] = Helm of Valor
    Set VariableSet SaveLoad_Item_String[115] = ReplaceableTextures\CommandButtons\BTNHelmOfValor.blp
    Set VariableSet SaveLoad_Items[116] = Hood of Cunning
    Set VariableSet SaveLoad_Item_String[116] = ReplaceableTextures\CommandButtons\BTNHoodOfCunning.blp
    Set VariableSet SaveLoad_Items[117] = Khadgar's Gem of Health
    Set VariableSet SaveLoad_Item_String[117] = ReplaceableTextures\CommandButtons\BTNPeriapt1.blp
    Set VariableSet SaveLoad_Items[118] = Khadgar's Pipe of Insight
    Set VariableSet SaveLoad_Item_String[118] = ReplaceableTextures\CommandButtons\BTNPipeOfInsight.blp
    Set VariableSet SaveLoad_Items[119] = Legion Doom-Horn
    Set VariableSet SaveLoad_Item_String[119] = ReplaceableTextures\CommandButtons\BTNHornOfDoom.blp
    Set VariableSet SaveLoad_Items[120] = Mantle of Intelligence +3
    Set VariableSet SaveLoad_Item_String[120] = ReplaceableTextures\CommandButtons\BTNMantleOfIntelligence.blp
    Set VariableSet SaveLoad_Items[121] = Medallion of Courage
    Set VariableSet SaveLoad_Item_String[121] = ReplaceableTextures\CommandButtons\BTNMedalionOfCourage.blp
    Set VariableSet SaveLoad_Items[122] = Orb of Darkness
    Set VariableSet SaveLoad_Item_String[122] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[123] = Pendant of Energy
    Set VariableSet SaveLoad_Item_String[123] = ReplaceableTextures\CommandButtons\BTNPendantOfEnergy.blp
    Set VariableSet SaveLoad_Items[124] = Pendant of Mana
    Set VariableSet SaveLoad_Item_String[124] = ReplaceableTextures\CommandButtons\BTNPendantOfMana.blp
    Set VariableSet SaveLoad_Items[125] = Periapt of Vitality
    Set VariableSet SaveLoad_Item_String[125] = ReplaceableTextures\CommandButtons\BTNPeriapt.blp
    Set VariableSet SaveLoad_Items[126] = Ring of Protection +2
    Set VariableSet SaveLoad_Item_String[126] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[127] = Ring of Protection +3
    Set VariableSet SaveLoad_Item_String[127] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[128] = Ring of Protection +4
    Set VariableSet SaveLoad_Item_String[128] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[129] = Ring of Regeneration
    Set VariableSet SaveLoad_Item_String[129] = ReplaceableTextures\CommandButtons\BTNRingSkull.blp
    Set VariableSet SaveLoad_Items[130] = Robe of the Magi +6
    Set VariableSet SaveLoad_Item_String[130] = ReplaceableTextures\CommandButtons\BTNRobeOfTheMagi.blp
    Set VariableSet SaveLoad_Items[131] = Runed Bracers
    Set VariableSet SaveLoad_Item_String[131] = ReplaceableTextures\CommandButtons\BTNRunedBracers.blp
    Set VariableSet SaveLoad_Items[132] = Scourge Bone Chimes
    Set VariableSet SaveLoad_Item_String[132] = ReplaceableTextures\CommandButtons\BTNBoneChimes.blp
    Set VariableSet SaveLoad_Items[133] = Slippers of Agility +3
    Set VariableSet SaveLoad_Item_String[133] = ReplaceableTextures\CommandButtons\BTNSlippersOfAgility.blp
    Set VariableSet SaveLoad_Items[134] = Sobi Mask
    Set VariableSet SaveLoad_Item_String[134] = ReplaceableTextures\CommandButtons\BTNSobiMask.blp
    Set VariableSet SaveLoad_Items[135] = Staff of Silence
    Set VariableSet SaveLoad_Item_String[135] = ReplaceableTextures\CommandButtons\BTNStaffOfSilence.blp
    Set VariableSet SaveLoad_Items[136] = Staff of Teleportation
    Set VariableSet SaveLoad_Item_String[136] = ReplaceableTextures\CommandButtons\BTNStaffOfTeleportation.blp
    Set VariableSet SaveLoad_Items[137] = Talisman of Evasion
    Set VariableSet SaveLoad_Item_String[137] = ReplaceableTextures\CommandButtons\BTNTalisman.blp
    Set VariableSet SaveLoad_Items[138] = The Lion Horn of Stormwind
    Set VariableSet SaveLoad_Item_String[138] = ReplaceableTextures\CommandButtons\BTNLionHorn.blp
    Set VariableSet SaveLoad_Items[139] = Warsong Battle Drums
    Set VariableSet SaveLoad_Item_String[139] = ReplaceableTextures\CommandButtons\BTNDrum.blp
    Set VariableSet SaveLoad_Items[140] = Clarity Potion
    Set VariableSet SaveLoad_Item_String[140] = ReplaceableTextures\CommandButtons\BTNPotionOfClarity.blp
    Set VariableSet SaveLoad_Items[141] = Healing Salve
    Set VariableSet SaveLoad_Item_String[141] = ReplaceableTextures\CommandButtons\BTNHealingSalve.blp
    Set VariableSet SaveLoad_Items[142] = Ivory Tower
    Set VariableSet SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNHumanWatchTower.blp
    Set VariableSet SaveLoad_Items[142] = Lesser Clarity Potion
    Set VariableSet SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNLesserClarityPotion.blp
    Set VariableSet SaveLoad_Items[143] = Mechanical Critter
    Set VariableSet SaveLoad_Item_String[143] = ReplaceableTextures\CommandButtons\BTNMechanicalCritter.blp
    Set VariableSet SaveLoad_Items[144] = Moonstone
    Set VariableSet SaveLoad_Item_String[144] = ReplaceableTextures\CommandButtons\BTNMoonStone.blp
    Set VariableSet SaveLoad_Items[145] = Potion of Healing
    Set VariableSet SaveLoad_Item_String[145] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set VariableSet SaveLoad_Items[146] = Potion of Invisibility
    Set VariableSet SaveLoad_Item_String[146] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set VariableSet SaveLoad_Items[147] = Potion of Lesser Invulnerability
    Set VariableSet SaveLoad_Item_String[147] = ReplaceableTextures\CommandButtons\BTNLesserInvulneralbility.blp
    Set VariableSet SaveLoad_Items[148] = Potion of Mana
    Set VariableSet SaveLoad_Item_String[148] = ReplaceableTextures\CommandButtons\BTNPotionBlueSmall.blp
    Set VariableSet SaveLoad_Items[149] = Rod of Necromancy
    Set VariableSet SaveLoad_Item_String[149] = ReplaceableTextures\CommandButtons\BTNRodOfNecromancy.blp
    Set VariableSet SaveLoad_Items[150] = Sacrificial Skull
    Set VariableSet SaveLoad_Item_String[150] = ReplaceableTextures\CommandButtons\BTNSacrificialSkull.blp
    Set VariableSet SaveLoad_Items[151] = Scroll of Healing
    Set VariableSet SaveLoad_Item_String[151] = ReplaceableTextures\CommandButtons\BTNScrollOfTownPortal.blp
    Set VariableSet SaveLoad_Items[152] = Scroll of Mana
    Set VariableSet SaveLoad_Item_String[152] = ReplaceableTextures\CommandButtons\BTNScrollOfProtection.blp
    Set VariableSet SaveLoad_Items[153] = Scroll of Protection
    Set VariableSet SaveLoad_Item_String[153] = ReplaceableTextures\CommandButtons\BTNScroll.blp
    Set VariableSet SaveLoad_Items[154] = Scroll of Regeneration
    Set VariableSet SaveLoad_Item_String[154] = ReplaceableTextures\CommandButtons\BTNScrollOfRegenerationGreen.blp
    Set VariableSet SaveLoad_Items[155] = Scroll of Speed
    Set VariableSet SaveLoad_Item_String[155] = ReplaceableTextures\CommandButtons\BTNScrollOfHaste.blp
    Set VariableSet SaveLoad_Items[156] = Scroll of Town Portal
    Set VariableSet SaveLoad_Item_String[156] = ReplaceableTextures\CommandButtons\BTNScrollUber.blp
    Set VariableSet SaveLoad_Items[157] = Spider Silk Broach
    Set VariableSet SaveLoad_Item_String[157] = ReplaceableTextures\CommandButtons\BTNSpiderSilkBroach.blp
    Set VariableSet SaveLoad_Items[158] = Staff of Negation
    Set VariableSet SaveLoad_Item_String[158] = ReplaceableTextures\CommandButtons\BTNStaffOfNegation.blp
    Set VariableSet SaveLoad_Items[159] = Staff of Sanctuary
    Set VariableSet SaveLoad_Item_String[159] = ReplaceableTextures\CommandButtons\BTNStaffOfSanctuary.blp
    Set VariableSet SaveLoad_Items[160] = Tiny Castle
    Set VariableSet SaveLoad_Item_String[160] = ReplaceableTextures\CommandButtons\BTNTinyCastle.blp
    Set VariableSet SaveLoad_Items[161] = Tiny Great Hall
    Set VariableSet SaveLoad_Item_String[161] = ReplaceableTextures\CommandButtons\BTNGreathall.blp
    Set VariableSet SaveLoad_Items[162] = Tome of Retraining
    Set VariableSet SaveLoad_Item_String[162] = ReplaceableTextures\CommandButtons\BTNTomeOfRetraining.blp
    Set VariableSet SaveLoad_Items[163] = Vampiric Potion
    Set VariableSet SaveLoad_Item_String[163] = ReplaceableTextures\CommandButtons\BTNPotionOfVampirism.blp
    Set VariableSet SaveLoad_Items[164] = Wand of Negation
    Set VariableSet SaveLoad_Item_String[164] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set VariableSet SaveLoad_Items[165] = Wand of Neutralization
    Set VariableSet SaveLoad_Item_String[165] = ReplaceableTextures\CommandButtons\BTNWandOfNeutralization.blp
    Set VariableSet SaveLoad_Items_LastIndex = 165
    Set VariableSet SaveLoad_Alphabet = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz
    Set VariableSet SaveLoad_CaseSensitive = True
    Set VariableSet SaveLoad_UsePlayername = False
    Set VariableSet SaveLoad_Initialized = False
    Set VariableSet Code = AceHart
    Set VariableSet Save[1] = 0
    Set VariableSet SaveCount = 1
    Set VariableSet Validate = False
    Set VariableSet SaveLoad_Compress[1] = 0
    Set VariableSet SaveLoad_Uncompress[1] = 0
    -------- List of Heroes --------
    Set VariableSet SaveLoad_Heroes[1] = Paladin
    Set VariableSet SaveLoad_Heroes[2] = Archmage
    Set VariableSet SaveLoad_Heroes[3] = Mountain King
    Set VariableSet SaveLoad_Heroes[4] = Blood Mage
    -------- Number of Heroes --------
    Set VariableSet SaveLoad_Heroes_LastIndex = 4
    -------- List of Abilities --------
    Set VariableSet SaveLoad_Abilities[1] = Banish
    Set VariableSet SaveLoad_Abilities[2] = Flame Strike
    Set VariableSet SaveLoad_Abilities[3] = Phoenix
    Set VariableSet SaveLoad_Abilities[4] = Siphon Mana
    -------- Number of Abilities --------
    Set VariableSet SaveLoad_Abilities_LastIndex = 4
SaveLoad Load
  Events
  Conditions
    (Substring((Entered chat string), 1, 6)) Equal to (Matched chat string)
    (Length of (Entered chat string)) Greater than 6
    GameHasStarted Equal to False
  Actions
    Set VariableSet Code = (Substring((Entered chat string), 7, (Length of (Entered chat string))))
    Custom script: set udg_Validate = SaveLoad_Decode( udg_Code )
    For each (Integer A) from 1 to 20, do (Actions)
      Loop - Actions
        Game - Display to (All players) the text: (String(Save[(Integer A)]))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Validate Equal to False
      Then - Actions
        -------- Invalid code --------
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
        Game - Display to (Player group((Triggering player))) the text: There's some error in this code, sorry.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Code_Is_Active Equal to True
          Then - Actions
            Game - Display to (All players) the text: However, a valid code has already been entered. You may proceed to play the map using that one.
          Else - Actions
        Skip remaining actions
      Else - Actions
    Set VariableSet SaveCount = 1
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Save[1] Not equal to 1051
        Save[1] Not equal to 1052
      Then - Actions
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[SaveCount])), 1, 2)) Not equal to 10
          Then - Actions
            Game - Display to (All players) for 600.00 seconds the text: This code is from an older release.
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[SaveCount])), 3, 3)) Not equal to 5
              Then - Actions
                Game - Display to (All players) for 600.00 seconds the text: This code is not from the previous map of the campaign.
              Else - Actions
                Game - Display to (All players) for 600.00 seconds the text: Unknown loading error.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Code_Is_Active Equal to True
          Then - Actions
            Game - Display to (All players) the text: However, a valid code has already been entered. You may proceed to play the map using that one.
          Else - Actions
        Skip remaining actions
      Else - Actions
        Sound - Play GoodJob <gen>
        Set VariableSet Code_Is_Active = True
    -------- --- --------
    -------- Code A --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[1])), 4, 4)) Equal to 1
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            SaveLoad_Security_Number Equal to 0
          Then - Actions
            Set VariableSet SaveLoad_Security_Number = Save[2]
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                SaveLoad_Security_Number Not equal to Save[2]
              Then - Actions
                Game - Display to (All players) the text: These codes do not belong together.
                Skip remaining actions
              Else - Actions
                Do nothing
        Set VariableSet Bonus_Strength = 0
        Set VariableSet Bonus_Intelligence = 0
        Set VariableSet Bonus_Agility = 0
        Unit - Remove Fan of Knives from Maiev
        Unit - Remove Blink from Maiev
        Unit - Remove Shadow Strike from Maiev
        Unit - Remove Vengeance from Maiev
        Hero - Modify unspent skill points of Maiev: Set to (Hero level of Maiev) points
        Unit - Remove Blade Shield from NewWarden
        Unit - Remove Shift from NewWarden
        Unit - Remove Summon Twilight Guardian from NewWarden
        Unit - Remove Eclipse from NewWarden
        Hero - Modify unspent skill points of NewWarden: Set to (Hero level of NewWarden) points
        For each (Integer A) from 1 to 6, do (Actions)
          Loop - Actions
            Hero - Drop the item from slot (Integer A) of Maiev.
            Item - Remove (Last dropped item)
            Hero - Drop the item from slot (Integer A) of NewWarden.
            Item - Remove (Last dropped item)
        Set VariableSet Bonus_Strength = Save[3]
        Set VariableSet Bonus_Agility = Save[4]
        Set VariableSet Bonus_Intelligence = Save[5]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 1, 1)) Equal to 4
          Then - Actions
            Hero - Learn skill for Maiev: Fan of Knives
            Hero - Learn skill for Maiev: Fan of Knives
            Hero - Learn skill for Maiev: Fan of Knives
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 1, 1)) Equal to 3
              Then - Actions
                Hero - Learn skill for Maiev: Fan of Knives
                Hero - Learn skill for Maiev: Fan of Knives
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Substring((String(Save[6])), 1, 1)) Equal to 2
                  Then - Actions
                    Hero - Learn skill for Maiev: Fan of Knives
                  Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 2, 2)) Equal to 4
          Then - Actions
            Hero - Learn skill for Maiev: Blink
            Hero - Learn skill for Maiev: Blink
            Hero - Learn skill for Maiev: Blink
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 2, 2)) Equal to 3
              Then - Actions
                Hero - Learn skill for Maiev: Blink
                Hero - Learn skill for Maiev: Blink
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions