1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. From the gates of hell, the 5th Special Effect Contest Results have emerged.
    Dismiss Notice
  5. Rubbed the right way, the genie is out of its lamp! The 12th Concept Art Contest Results have been announced.
    Dismiss Notice
  6. Race against the odds and Reforge, Don't Refund. The 14th Techtree Contest has begun!
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
Do you have good ideas for new contests? If so, please open new threads in the Contest Submission sub-forum to discuss them.
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

The tavern of the wise.w3x
Variables
Item Cleanup
Item Cleanup
Stack system
EasyItemStacknSplitGUI
Damage Engine
Requirement
Unit Indexer
-------------mages--------------
Damage Engine Config
Damage Engine
------Spell fix---------
Mana Shield Fix
Pet System / Combine itens
---------------------------
Adopt
PetSurge
PetDie
---------------------------
Adopt Copy
PetSurge Copy
---------------------------
remove scroll
grizzle combine
---------------------------
arma 1
arma 2
arma 3
arma 4
arma 5
arma 6
arma 7
arma 8
arma 9
---------------------------
armadura 1
armadura 2
armadura 3
armadura 4
armadura 5
armadura 6
armadura 7
armadura 8
armadura 9
---------------------------
Warrior
Warrior Defender
Defender unbreakable
Warrior master
master super
Reborn Engineer
Reborn Engineer Mechatronic
---------------------------
Archer
Archer Quick
Archer Quick of fast
sniper
sniper god
Spearman
Spearman Crazy
---------------------------
Mage
Mage Power
Mage Power Mysterium
Mage healer
Mage healer god
enchanter
enchanter of darkness
Demo Triggers
Set Damage
Damage Tag
Initialization
Friendly Fire off
Melee Initialization
Texto flutuante
descricao
revive
dificuldade
---------------------------
pvp mode
itens select player
Ability damage + stats
----Selecionado----
Rage punch
lightningfall
impale
sniper arrow
stun spear
long spear
firebolt
heavy shot
one shot
Lightning
life drain
finger of death
---Area---
flame striker
flare
IDEX01
blizzard striker
meteor
cluster rocket for meca
Circle of Death
Circle of Death healer
war stomp
killer kick
---Atributos---
Comando pontos
Comando pontos Copy
Comando pontos Copy 2
Comando pontos Copy 3
Comando pontos Copy 4
Comando pontos Copy 5
---------------------------
pontos por level
player2 add
player3 add
player4 add
player5 add
player6 add
---------------------------
suicide
reset
TPS
EXP Farm
Gold Farm
Respawn
morreu
entrada dungeon orcs
saida dungeon orcs
spawn orcs entrada
spawn orcs saida
Entrada DG cachoeira
saida DG cachoeira
Entrada DG Zombie
saida DG Zombie
Entrada DG Zombie Copy
saida DG Zombie Copy
Entrada DG Zombie Copy Copy
saida DG Zombie Copy Copy
zona lvl 80 entrada
zona verde lvl 80 saida
Igreja Entrada
Igreja Saida
Castelo Entrada
Castelo Saida
Escola Entrada
Escola Saida
Loja de armaduras Entrada
Loja de armaduras Saida
Loja de armas Entrada
Loja de armas Saida
Caverna Entrada
Caverna Saida
Undead Entrada
Undead Saida
polar entrada
polar saida
level 60 esquerda cidade
level 60 esquerda cidade Copy
felwood boss lvl 110 entrada
felwood boss lvl 110 saida
Skeleton Entrada
Skeleton Saida
Nevasca Cave Entrada
Nevasca Cave Saida
Dragon Entrada
Dragon Saida
Mammoth Entrada
Mammoth Saida
ponte entrada
ponte saida
SP Entrada
SP Saida
GF7 Entrada
GF7 Saida
GF9 Entrada
GF9 Saida
CV1 Entrada
CV1 Saida
CV2 Entrada
CV2 Saida
CV3 E
CV3 S
CV4 E
CV4 S
END1 E
END1 S
END2 E
END2 S
END3 E
END3 S
END4 E
END4 S
END5 E
END5 S
END6 E
END6 S
PVP Entrada
PVP Saida
------RESPAWN------
orcs respawn
zombie respawn
-------Teletransporte-----
vila
felwood
cidade
cidade e vila
undead vila
vila fogo
cidade e vila Copy Copy
lvl 140
loja de magia entrada
loja de magia saida
Cameras / Portas
camera distance
---------------------------
abrir portao dentro pra fora
abrir portao dentro pra fora 2
undead DG
undead DG2
---------------------------
Nevada lever 1
Nevada lever 2
Nevada lever 3
---------------------------
Murgul lever 1
Murgul lever 2
---------------------------
Vile entrada lever 1
Vile entrada lever 2
---------------------------
CV2 lever
CV2 lever 2
---------------------------
END2 lever 1
Creep Respawn
CR Setup
CR Respawn
missoes by ChatiSnake
Crear Mision 01
Crear Mision 01 Copy
Crear Mision 01 JASS
Crear Mision GOLDEN GODS 2
Crear Mision 02
Crear Mision 03
Crear Mision 04
Crear Mision 05
Crear Mision 06
Crear Mision 07
Crear Mision 08
Crear Mision 09
Crear Mision 10
Crear Mision 11
Crear Mision 12
Crear Mision 13
Crear Mision 14
Crear Mision 15
Crear Mision 16
Crear Mision 17
Crear Mision 18
Crear Mision 19
Crear Mision 20
Crear Mision 21
Crear Mision 22
Crear Mision 23
Crear Mision 24
Crear Mision 25
Crear Mision 26
Crear Mision 27
Crear Mision 28
Crear Mision 29
Crear Mision 30
Crear Mision 31
Crear Mision 32
Crear Mision 33
Crear Mision 34
Crear Mision 35
Crear Mision 36
Crear Mision 37
Crear Mision 38
Crear Mision 39
Crear Mision 40
Crear Mision 41
Crear Mision 42
Crear Mision 43
Crear Mision 44
Crear Mision 45
Crear Mision 46
Crear Mision 47
Crear Mision 48
Crear Mision 49
Crear Mision 50
Crear Mision 51
Crear Mision 52
Crear Mision 53
Crear Mision 54
Crear Mision 55
Crear Mision 56
Crear Mision 57
Crear Mision 58
Crear Mision 59
Crear Mision 60
Crear Mision 61
Crear Mision 62
Crear Mision 63
Crear Mision 64
Crear Mision 65
Crear Mision 66
Crear Mision 67
Crear Mision 68
Crear Mision 69
Crear Mision 70
Crear Mision 71
Crear Mision 72
Secret Mission
---------------------------
Soul Orb 4
Soul Orb 5
Soul Orb 6
Soul Orb 7
Soul Orb 8
Soul Orb 9
---------------------------
Gem Fragment 4
Gem Fragment 5
Gem Fragment 6
Gem Fragment 7
Gem Fragment 8
Gem Fragment 9
---------------------------
Matando Unidad de Mision
No Inmediato
Cancelar Mision
---------------------------
Explicacion
---------------------------
Crear Mision Explicacion
Save Load ALL
SaveLoad Initialization All
SaveLoad Save All
SaveLoad Load All
Enter map-specific custom script code below. This text will be included in the map script after variables are declared and before any trigger code.
//TESH.scrollpos=128
//TESH.alwaysfold=0
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 == "-" 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

//=============================================

function DebugError takes player ForPlayer, string msg returns nothing
    local sound error=CreateSoundFromLabel("InterfaceError",false,false,false,10,10)
    if (GetLocalPlayer() == ForPlayer) then
        if (msg!="") and (msg!=null) then
            call ClearTextMessages()
            call DisplayTimedTextToPlayer(ForPlayer, 0.85, 0., 2.00, "|cffffcc00"+msg+"|r")
        endif
        call StartSound(error)
    endif
    call KillSoundWhenDone(error)
    set error=null
endfunction

//=============================================
function Refresh takes unit u returns nothing
    call SetUnitLifePercentBJ(u,100.0)
    call SetUnitManaPercentBJ(u,100.0)
    call UnitResetCooldown(u)
    call SetHeroLevelBJ( u, ( GetHeroLevel(u) + 10 ), false )
endfunction

//====================================================
//Remove Location
function rl takes location l returns nothing
    call RemoveLocation(l)
    set l = null
endfunction

//=============================================
//Destroy Group
function dg takes group g returns nothing
    call DestroyGroup(g)
    set g = null
endfunction

//=============================================
//Destroy Effect
function de takes effect e returns nothing
    call DestroyEffect(e)
    set e = null
endfunction
Name Type Is Array Initial Value
A integervar No
AfterDamageEvent real No
AlreadyInScreen boolean Yes
AMSAmount real Yes
Angle real No
AOEDamageEvent real No
AOEString string No
B integervar No
C integervar No
cage destructablecode No LOcg
Camera_Distance real No
CamView camerasetup Yes
CleanedItem item Yes
ClearDamageEvent trigger No
Code string No
Conjurador unit No
ContadorResets integer Yes
CR_Angle real Yes
CR_Integer integer No
CR_Point location Yes
CR_Temp_Unit_Group group No
CR_Type unitcode Yes
D integervar No
DAMAGE_FACTOR_BRACERS real No
DAMAGE_FACTOR_ELUNES real No
DAMAGE_FACTOR_ETHEREAL real No
DamageBlockingAbility abilcode No
DamageEvent real No
DamageEventAmount real No
DamageEventAOE integer No
DamageEventAOEGroup group No
DamageEventExplodesUnit boolean No
DamageEventLevel integer No
DamageEventOverride boolean No
DamageEventPrevAmt real No
DamageEventSource unit No
DamageEventsWasted integer No
DamageEventTarget unit No
DamageEventTrigger trigger No
DamageEventType integer No
DamageModifierEvent real No
DamageTypeBlocked integer No
DamageTypeCriticalStrike integer No
DamageTypeDOT integer No
DamageTypeExplosive integer No
DamageTypeHeal integer No
DamageTypeRanged integer No
DamageTypeReduced integer No
DamageTypeSpell integer No
DialogRace dialog No
DialogRaceButton button Yes
DmgEvBracers itemcode No
DmgEvLife real No
DmgEvMana real No
DmgEvManaMult real No
DmgEvMSlvl integer No
DmgEvN integer No
DmgEvRecursionN integer No
DmgEvRunning boolean No
DmgEvStack unit Yes
DmgEvStarted boolean No
DmgEvTimer timer No
DmgEvTrig trigger No
DmgTypPrev integer No
Dummy unit No
Dummy_Unit_Wave group No
E integervar No
EasyItem__ERRORSOUND string No
EasyItem__SPLIT boolean No
EasyItem__SPLITDROP boolean No
EasyItem__SPLITSIZE integer No
EasyItem__SPLITSTACK boolean No
EasyItem__SPLITSTACKDELAY real No
EasyItem__USEITEMLEVEL boolean No
EasyItem_integer integervar Yes
EasyItem_item item No
EasyItem_items item Yes
EasyItem_point location Yes
EasyItem_sound sound No
EasyItem_string string Yes
EasyItem_timer timer No
EasyItem_unit unit No
EasyItem_units unit Yes
EmptySlot destructable Yes
EnhancedDamageTarget unit No
Entregarcarta trigger No
F integervar No
FactorCleared boolean Yes
Hero integer No
Heroes unit Yes
HeroIV unit Yes
HideDamageFrom boolean Yes
IconType destructablecode No
Ingredients integer No
integer integer No 1
InvCam camerasetup Yes
IsDamageSpell boolean No
ItemBoard multiboard Yes
ItemCleanupFlag boolean No
ItemCleanupTimer timer No
ItemHA1 abilcode Yes
ItemHA2 abilcode Yes
ItemHelmet destructablecode Yes
ItemHName string Yes
ItemHString string Yes
ItemInSelection destructable Yes
ItemRA1 abilcode Yes
ItemRA2 abilcode Yes
ItemRing destructablecode Yes
ItemRName string Yes
ItemRString string Yes
ItemShiA1 abilcode Yes
ItemShiA2 abilcode Yes
ItemShield destructablecode Yes
ItemShiName string Yes
ItemShiString string Yes
ItemShoA1 abilcode Yes
ItemShoA2 abilcode Yes
ItemShoulder destructablecode Yes
ItemShoulName string Yes
ItemShoulString string Yes
ItemsToClean integer No
ItemTA1 abilcode Yes
ItemTA2 abilcode Yes
ItemTName string Yes
ItemTorso destructablecode Yes
ItemTString string Yes
ItemTypeHelmet itemcode Yes
ItemTypeRing itemcode Yes
ItemTypeShield itemcode Yes
ItemTypeShoulder itemcode Yes
ItemTypeTorso itemcode Yes
ItemTypeWeapon itemcode Yes
ItemWA1 abilcode Yes
ItemWA2 abilcode Yes
ItemWeapon destructablecode Yes
ItemWName string Yes
ItemWString string Yes
Kill_Count integer Yes
KillingEnforcer integer No 0
Kills integer No
KoboldCounter integer No
LastDamageHP real No
LastDmgPrevAmount real Yes
LastDmgPrevType integer Yes
LastDmgSource unit Yes
LastDmgTarget unit Yes
LastDmgValue real Yes
LastDmgWasSpell boolean Yes
LevelLumber integer No
Lobo unitcode Yes n000
Loop integervar No
Mision_Completa boolean Yes
Mision_Descripcion string Yes
Mision_Ganado string Yes
Mision_Icono string Yes
Mision_Index integer No
Mision_Kills integer Yes
Mision_Mision quest Yes
Mision_NombreUni string Yes
Mision_OnOff boolean Yes
Mision_Player player Yes
Mision_RecibeInmediato boolean Yes
Mision_Recompensa_Cash integer Yes
Mision_Recompensa_Exp integer Yes
Mision_Recompensa_Items itemcode Yes
Mision_Recompensa_Madera integer Yes
Mision_Titulo string Yes
Mision_Total integer No
Mision_Unidad unit Yes
Mision_UnidadType unitcode Yes
Murloc_Loc location No
NextDamageOverride boolean No
NextDamageType integer No
Occupied boolean Yes
OurQuest string Yes notstarted
OurQuest_Copy string Yes notstarted
PETDummy unit Yes
PETGroup group No
PETOwner unit No
PETOwnerLoc location No
Player player No
PlayerNumber integer No
PointsPlayer1 integer No
PointsPlayer2 integer No
PointsPlayer3 integer No
PointsPlayer4 integer No
PointsPlayer5 integer No
PointsPlayer6 integer No
Portaocidade boolean No false
Portaocidade_Copy boolean No false
PotionsFilled integer Yes
Power_Slam_Ability_Level integer No
Power_Slam_Base_Chance real No
Power_Slam_Caster unit No
Power_Slam_Damage real No
Power_Slam_Damage_Multiplier real No
Power_Slam_Dummy_Ability abilcode No
Power_Slam_Location location No
Power_Slam_Owner player No
Power_Slam_Strength integer No
Power_Slam_Target unit No
Power_Slam_Total_Chance real No
PreviousLevel integer Yes
RecipeFactor itemcode Yes
Resets integer No
Roots_Point location No
Roots_Units group 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_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
Selection group Yes
SelectionCircle destructable Yes
SkillArea group No
SlotInt integer No
SlotsFilled integer Yes
SpellDamageAbility abilcode No
temp_cast_point location No
temp_group group No
temp_lightning lightning Yes
temp_point location No
Temp_Unit unit No
TempDes destructable No
TempGroup group No
TempInt integer No
TempItem item No
TempItemType itemcode No
TempPlayers force No
TempPoint location No
tempRect rect No
tempUnit unit No
TempUnit unit No
TempUnitType unitcode No
teste quest Yes
teste1 questitem Yes
UDex integer No
UDexGen integer No
UDexNext integer Yes
UDexPrev integer Yes
UDexRecycle integer No
UDexUnits unit Yes
UDexWasted integer No
UnitDamageRegistered boolean Yes
UnitGroup group No
UnitIndexerEnabled boolean No
UnitIndexEvent real No
UnitIndexLock integer Yes
UnitMoving boolean Yes
Validate boolean No
Victima unit No
Vis fogmodifier Yes
Visibility rect Yes
Original mechanics by Trilititi, made portable for GUI users by Bribe.

Disclaimer: Don't set the life of a dead item unless you know what you are doing.
It will bug the system if you set a dead item's life to a value between 0 and 1.
Item Cleanup
  Events
    Time - Every 15.00 seconds of game time
    Time - ItemCleanupTimer expires
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ItemCleanupFlag Equal to True
      Then - Actions
        Set VariableSet ItemCleanupFlag = False
        -------- --------
        -------- Loop through all dead items and remove them --------
        -------- --------
        For each (Integer Loop) from 0 to ItemsToClean, do (Actions)
          Loop - Actions
            Item - Set life of CleanedItem[Loop] to 1.00
            Item - Remove CleanedItem[Loop]
            Set VariableSet CleanedItem[Loop] = No item
      Else - Actions
        -------- --------
        -------- Clean up all dead items on the map every 15 seconds --------
        -------- --------
        Set VariableSet ItemsToClean = -1
        Item - Pick every item in (Playable map area) and do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Current life of (Picked item)) Equal to 0.00
              Then - Actions
                Set VariableSet ItemsToClean = (ItemsToClean + 1)
                Set VariableSet CleanedItem[ItemsToClean] = (Picked item)
              Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ItemsToClean Greater than or equal to 0
          Then - Actions
            -------- --------
            -------- Start a 1.50 second timer to give time for any death animations to play --------
            -------- --------
            Countdown Timer - Start ItemCleanupTimer as a One-shot timer that will expire in 1.50 seconds
            Set VariableSet ItemCleanupFlag = True
          Else - Actions
Easy Item Stack 'n Split v2.7.4 - GUI
by Dangerb0y

IMPLEMENTATION:
1) In map view, go to File > Preferences... and tick "Automatically create unknown variables while pasting trigger data" under the General tab.
2) Copy the trigger "EasyItemStacknSplitGUI" to your Trigger Editor.

See Documentation for more info...
EasyItemStacknSplitGUI
  Events
    Unit - A unit Is issued an order targeting an object
    Unit - A unit Is issued an order targeting a point
    Unit - A unit Acquires an item
    Time - Elapsed game time is 0.00 seconds
    Time - EasyItem_timer expires
  Conditions
  Actions
    -------- ############################################### --------
    -------- SYSTEM PARAMETERS --------
    -------- ############################################### --------
    -------- Allow item splitting with double right-click? --------
    Set VariableSet EasyItem__SPLIT = True
    -------- Amount to split from stack... (0 = half) --------
    Set VariableSet EasyItem__SPLITSIZE = 1
    -------- Allow consecutively split items to stack together? --------
    Set VariableSet EasyItem__SPLITSTACK = True
    Set VariableSet EasyItem__SPLITSTACKDELAY = 2.00
    -------- Allow split items to be dropped if no inventory slots are open? --------
    Set VariableSet EasyItem__SPLITDROP = True
    -------- Use item levels to determine stack limit? (false = unlimited stacks) --------
    Set VariableSet EasyItem__USEITEMLEVEL = False
    -------- Full inventory error sound filename... (empty string = disabled) --------
    Set VariableSet EasyItem__ERRORSOUND = Sound\Interface\Error.wav
    -------- ############################################### --------
    -------- DO NOT EDIT BELOW THIS LINE --------
    -------- ############################################### --------
    Set VariableSet EasyItem_unit = (Triggering unit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        EasyItem_unit Not equal to No unit
      Then - Actions
        -------- POINT OR OBJECT? --------
        Custom script: if GetOrderPointLoc() == null then
        -------- UNIT TARGETS OR ACQUIRES ITEM --------
        Set VariableSet EasyItem_integer[4] = (Size of inventory for EasyItem_unit)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            EasyItem_integer[4] Greater than 0
          Then - Actions
            -------- GET UNIT ORDER AND ITEM STATE --------
            Custom script: set udg_EasyItem_integer[1] = GetIssuedOrderId()
            Set VariableSet EasyItem_item = (Target item of issued order)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                EasyItem_item Not equal to No item
                (Charges remaining in EasyItem_item) Greater than 0
                EasyItem_integer[1] Greater than 852001
                EasyItem_integer[1] Less than 852008
              Then - Actions
                -------- THE ITEM IS BEING MOVED --------
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (EasyItem_unit has EasyItem_item) Equal to True
                  Then - Actions
                    Set VariableSet EasyItem_integer[2] = (EasyItem_integer[1] - 852001)
                    Set VariableSet EasyItem_items[8000] = (Item carried by EasyItem_unit in slot EasyItem_integer[2])
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (Item-type of EasyItem_items[8000]) Equal to (Item-type of EasyItem_item)
                      Then - Actions
                        Set VariableSet EasyItem_integer[5] = (Item level of EasyItem_item)
                        Set VariableSet EasyItem_integer[6] = (Charges remaining in EasyItem_item)
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            EasyItem_items[8000] Equal to EasyItem_item
                          Then - Actions
                            -------- SPLIT ITEMS --------
                            Set VariableSet EasyItem_integer[3] = (Number of items carried by EasyItem_unit)
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                EasyItem__SPLIT Equal to True
                                EasyItem_integer[6] Greater than 1
                                Or - Any (Conditions) are true
                                  Conditions
                                    EasyItem__SPLITDROP Equal to True
                                    EasyItem_integer[3] Less than EasyItem_integer[4]
                              Then - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem__SPLITSIZE Greater than 0
                                  Then - Actions
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem__SPLITSIZE Greater than or equal to EasyItem_integer[6]
                                      Then - Actions
                                        Set VariableSet EasyItem_integer[12] = (EasyItem_integer[6] - 1)
                                      Else - Actions
                                        Set VariableSet EasyItem_integer[12] = EasyItem__SPLITSIZE
                                  Else - Actions
                                    Set VariableSet EasyItem_integer[12] = (EasyItem_integer[6] / 2)
                                Item - Set charges remaining in EasyItem_item to (EasyItem_integer[6] - EasyItem_integer[12])
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem__SPLITSTACK Equal to True
                                  Then - Actions
                                    Set VariableSet EasyItem_items[8000] = No item
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem_integer[10] Greater than 0
                                      Then - Actions
                                        For each (Integer EasyItem_integer[1]) from 4000 to (EasyItem_integer[10] + 3999), do (Actions)
                                          Loop - Actions
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                              If - Conditions
                                                EasyItem_unit Equal to EasyItem_units[EasyItem_integer[1]]
                                              Then - Actions
                                                Set VariableSet EasyItem_items[8000] = EasyItem_items[(EasyItem_integer[1] + 2000)]
                                                Set VariableSet EasyItem_integer[7] = (Charges remaining in EasyItem_items[8000])
                                                Set VariableSet EasyItem_integer[8] = (Item level of EasyItem_items[8000])
                                                Custom script: exitwhen true
                                              Else - Actions
                                      Else - Actions
                                  Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem__SPLITSTACK Equal to True
                                    EasyItem_items[8000] Not equal to No item
                                    EasyItem_items[8000] Not equal to EasyItem_item
                                    EasyItem_items[EasyItem_integer[1]] Equal to EasyItem_item
                                    Or - Any (Conditions) are true
                                      Conditions
                                        EasyItem__USEITEMLEVEL Equal to False
                                        EasyItem_integer[8] Equal to 0
                                        EasyItem_integer[7] Less than EasyItem_integer[8]
                                    (EasyItem_unit has EasyItem_items[8000]) Equal to True
                                    (Item-type of EasyItem_items[8000]) Equal to (Item-type of EasyItem_item)
                                  Then - Actions
                                    Item - Set charges remaining in EasyItem_items[8000] to (EasyItem_integer[7] + EasyItem_integer[12])
                                    Set VariableSet EasyItem_integer[EasyItem_integer[1]] = (Integer((EasyItem__SPLITSTACKDELAY / 0.05)))
                                  Else - Actions
                                    Set VariableSet EasyItem_point[0] = (Position of EasyItem_unit)
                                    Set VariableSet EasyItem_point[1] = (EasyItem_point[0] offset by 100.00 towards (Facing of EasyItem_unit) degrees.)
                                    Item - Create (Item-type of EasyItem_item) at EasyItem_point[1]
                                    Item - Set charges remaining in (Last created item) to EasyItem_integer[12]
                                    Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                                    Custom script: call RemoveLocation( udg_EasyItem_point[1] )
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem_integer[3] Less than EasyItem_integer[4]
                                      Then - Actions
                                        Trigger - Turn off (This trigger)
                                        Hero - Give (Last created item) to (Triggering unit)
                                        Trigger - Turn on (This trigger)
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                          If - Conditions
                                            EasyItem__SPLITSTACK Equal to True
                                          Then - Actions
                                            Set VariableSet EasyItem_integer[1] = 0 (integervar)
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                              If - Conditions
                                                EasyItem_integer[10] Greater than 0
                                              Then - Actions
                                                For each (Integer EasyItem_integer[1]) from 4000 to (EasyItem_integer[10] + 3999), do (Actions)
                                                  Loop - Actions
                                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                      If - Conditions
                                                        EasyItem_units[EasyItem_integer[1]] Equal to EasyItem_unit
                                                      Then - Actions
                                                        Set VariableSet EasyItem_items[EasyItem_integer[1]] = EasyItem_item
                                                        Set VariableSet EasyItem_items[(EasyItem_integer[1] + 2000)] = (Last created item)
                                                        Set VariableSet EasyItem_integer[EasyItem_integer[1]] = (Integer((EasyItem__SPLITSTACKDELAY / 0.05)))
                                                        Set VariableSet EasyItem_integer[1] = (EasyItem_integer[10] + 4001)
                                                      Else - Actions
                                              Else - Actions
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                              If - Conditions
                                                EasyItem_integer[1] Less than (EasyItem_integer[10] + 4001)
                                              Then - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                  If - Conditions
                                                    EasyItem_integer[10] Equal to 0
                                                  Then - Actions
                                                    Countdown Timer - Start EasyItem_timer as a Repeating timer that will expire in 0.05 seconds
                                                  Else - Actions
                                                Set VariableSet EasyItem_units[(EasyItem_integer[10] + 4000)] = EasyItem_unit
                                                Set VariableSet EasyItem_items[(EasyItem_integer[10] + 4000)] = EasyItem_item
                                                Set VariableSet EasyItem_items[(EasyItem_integer[10] + 6000)] = (Last created item)
                                                Set VariableSet EasyItem_integer[(EasyItem_integer[10] + 4000)] = (Integer((EasyItem__SPLITSTACKDELAY / 0.05)))
                                                Set VariableSet EasyItem_integer[10] = (EasyItem_integer[10] + 1)
                                              Else - Actions
                                          Else - Actions
                                      Else - Actions
                                        -------- PLAY THE 'ITEM DROP' SOUND --------
                                        Set VariableSet EasyItem_string[0] = Sound\Interface\HeroDropItem1.wav
                                        Custom script: if GetLocalPlayer() != GetOwningPlayer(udg_EasyItem_unit) then
                                        Set VariableSet EasyItem_string[0] =
                                        Custom script: endif
                                        Custom script: set udg_EasyItem_sound = CreateSound( udg_EasyItem_string[0], false, true, false, 12700, 12700, "" )
                                        Sound - Set EasyItem_sound distances to 600.00 minimum and 1024.00 maximum
                                        Sound - Set cutoff distance of EasyItem_sound to 1536.00
                                        Sound - Play EasyItem_sound at 60.00% volume, attached to EasyItem_unit
                                        Sound - Destroy EasyItem_sound
                                        Set VariableSet EasyItem_sound = No sound
                              Else - Actions
                          Else - Actions
                            -------- STACK ITEMS --------
                            Set VariableSet EasyItem_integer[7] = (Charges remaining in EasyItem_items[8000])
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                EasyItem__USEITEMLEVEL Equal to True
                                EasyItem_integer[5] Greater than 0
                                (EasyItem_integer[7] + EasyItem_integer[6]) Greater than EasyItem_integer[5]
                              Then - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem_integer[6] Less than EasyItem_integer[5]
                                    EasyItem_integer[7] Less than EasyItem_integer[5]
                                  Then - Actions
                                    Item - Set charges remaining in EasyItem_items[8000] to ((EasyItem_integer[7] + EasyItem_integer[6]) - EasyItem_integer[5])
                                    Item - Set charges remaining in EasyItem_item to EasyItem_integer[5]
                                  Else - Actions
                              Else - Actions
                                Item - Set charges remaining in EasyItem_item to (EasyItem_integer[6] + EasyItem_integer[7])
                                Item - Remove EasyItem_items[8000]
                      Else - Actions
                  Else - Actions
              Else - Actions
                -------- TARGETED OR ACQUIRED? --------
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    EasyItem_item Not equal to No item
                    EasyItem_integer[1] Equal to 851971
                  Then - Actions
                    -------- THE ITEM IS BEING TARGETED --------
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (Number of items carried by EasyItem_unit) Greater than or equal to EasyItem_integer[4]
                      Then - Actions
                        -------- THE ITEM IS BEING TARGETED WITH A FULL INVENTORY SO WE ADD IT TO THE TIMER QUEUE --------
                        Set VariableSet EasyItem_integer[5] = (Item level of EasyItem_item)
                        For each (Integer EasyItem_integer[2]) from 1 to EasyItem_integer[4], do (Actions)
                          Loop - Actions
                            Set VariableSet EasyItem_items[8000] = (Item carried by EasyItem_unit in slot EasyItem_integer[2])
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                EasyItem_items[8000] Not equal to EasyItem_item
                                (Item-type of EasyItem_items[8000]) Equal to (Item-type of EasyItem_item)
                                Or - Any (Conditions) are true
                                  Conditions
                                    EasyItem__USEITEMLEVEL Equal to False
                                    EasyItem_integer[5] Equal to 0
                                    (Charges remaining in EasyItem_items[8000]) Less than EasyItem_integer[5]
                              Then - Actions
                                Set VariableSet EasyItem_integer[2] = (EasyItem_integer[4] + 2)
                              Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            (Charges remaining in EasyItem_item) Greater than 0
                            EasyItem_integer[2] Greater than (EasyItem_integer[4] + 1)
                          Then - Actions
                            Set VariableSet EasyItem_integer[2] = 0 (integervar)
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                EasyItem_integer[0] Greater than 0
                              Then - Actions
                                For each (Integer EasyItem_integer[2]) from 0 to (EasyItem_integer[0] - 1), do (Actions)
                                  Loop - Actions
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem_units[EasyItem_integer[2]] Equal to EasyItem_unit
                                      Then - Actions
                                        Set VariableSet EasyItem_items[EasyItem_integer[2]] = EasyItem_item
                                        Set VariableSet EasyItem_integer[2] = (EasyItem_integer[0] + 2)
                                      Else - Actions
                              Else - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                EasyItem_integer[2] Less than (EasyItem_integer[0] + 2)
                              Then - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem_integer[0] Equal to 0
                                  Then - Actions
                                    Countdown Timer - Start EasyItem_timer as a Repeating timer that will expire in 0.05 seconds
                                  Else - Actions
                                Set VariableSet EasyItem_units[EasyItem_integer[0]] = EasyItem_unit
                                Set VariableSet EasyItem_items[EasyItem_integer[0]] = EasyItem_item
                                Set VariableSet EasyItem_integer[0] = (EasyItem_integer[0] + 1)
                              Else - Actions
                            Set VariableSet EasyItem_point[0] = (Position of EasyItem_item)
                            Unit - Order EasyItem_unit to Move To.EasyItem_point[0]
                            Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                          Else - Actions
                            Unit - Order EasyItem_unit to Stop.
                            -------- PLAY THE FULL INVENTORY ERROR SOUND FOR TRIGGER PLAYER --------
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                EasyItem__ERRORSOUND Not equal to
                              Then - Actions
                                Set VariableSet EasyItem_string[0] = EasyItem__ERRORSOUND
                                Custom script: if GetLocalPlayer() != GetOwningPlayer(udg_EasyItem_unit) then
                                Set VariableSet EasyItem_string[0] =
                                Custom script: endif
                                Custom script: set udg_EasyItem_sound = CreateSound( udg_EasyItem__ERRORSOUND, false, false, false, 12700, 12700, "" )
                                Sound - Set volume of EasyItem_sound to 100.00%
                                Sound - Play EasyItem_sound
                                Sound - Destroy EasyItem_sound
                                Set VariableSet EasyItem_sound = No sound
                              Else - Actions
                      Else - Actions
                  Else - Actions
                    -------- THE ITEM IS BEING ACQUIRED --------
                    Set VariableSet EasyItem_item = (Item being manipulated)
                    Set VariableSet EasyItem_integer[6] = (Charges remaining in EasyItem_item)
                    -------- STACK ITEMS --------
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (EasyItem_item is A powerup.) Equal to False
                      Then - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            EasyItem_integer[6] Less than or equal to 0
                          Then - Actions
                            Trigger - Turn off (This trigger)
                            Hero - Give EasyItem_item to EasyItem_unit
                            Trigger - Turn on (This trigger)
                          Else - Actions
                            Set VariableSet EasyItem_integer[5] = (Item level of EasyItem_item)
                            Hero - Drop EasyItem_item from EasyItem_unit.
                            For each (Integer EasyItem_integer[2]) from 1 to EasyItem_integer[4], do (Actions)
                              Loop - Actions
                                Set VariableSet EasyItem_items[8000] = (Item carried by EasyItem_unit in slot EasyItem_integer[2])
                                Set VariableSet EasyItem_integer[7] = (Charges remaining in EasyItem_items[8000])
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem_items[8000] Not equal to No item
                                    Or - Any (Conditions) are true
                                      Conditions
                                        EasyItem__USEITEMLEVEL Equal to False
                                        EasyItem_integer[5] Equal to 0
                                        EasyItem_integer[7] Less than EasyItem_integer[5]
                                    (Item-type of EasyItem_items[8000]) Equal to (Item-type of EasyItem_item)
                                  Then - Actions
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem__USEITEMLEVEL Equal to True
                                        EasyItem_integer[5] Greater than 0
                                        (EasyItem_integer[7] + EasyItem_integer[6]) Greater than EasyItem_integer[5]
                                      Then - Actions
                                        Item - Set charges remaining in EasyItem_items[8000] to EasyItem_integer[5]
                                        Set VariableSet EasyItem_integer[6] = ((EasyItem_integer[7] + EasyItem_integer[6]) - EasyItem_integer[5])
                                      Else - Actions
                                        Item - Set charges remaining in EasyItem_items[8000] to (EasyItem_integer[7] + EasyItem_integer[6])
                                        Set VariableSet EasyItem_integer[6] = 0 (integervar)
                                  Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem_integer[6] Less than or equal to 0
                                  Then - Actions
                                    Set VariableSet EasyItem_integer[2] = EasyItem_integer[4]
                                  Else - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                EasyItem_integer[6] Greater than 0
                              Then - Actions
                                Set VariableSet EasyItem_point[0] = (Position of EasyItem_unit)
                                Set VariableSet EasyItem_integer[2] = 0 (integervar)
                                For each (Integer EasyItem_integer[2]) from 1 to EasyItem_integer[4], do (Actions)
                                  Loop - Actions
                                    Set VariableSet EasyItem_items[8000] = (Item carried by EasyItem_unit in slot EasyItem_integer[2])
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem_items[8000] Equal to No item
                                      Then - Actions
                                        Item - Create (Item-type of EasyItem_item) at EasyItem_point[0]
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                          If - Conditions
                                            EasyItem__USEITEMLEVEL Equal to True
                                            EasyItem_integer[5] Greater than 0
                                            EasyItem_integer[6] Greater than EasyItem_integer[5]
                                          Then - Actions
                                            Item - Set charges remaining in (Last created item) to EasyItem_integer[5]
                                            Set VariableSet EasyItem_integer[6] = (EasyItem_integer[6] - EasyItem_integer[5])
                                          Else - Actions
                                            Item - Set charges remaining in (Last created item) to EasyItem_integer[6]
                                            Set VariableSet EasyItem_integer[6] = 0 (integervar)
                                        Trigger - Turn off (This trigger)
                                        Hero - Give (Last created item) to EasyItem_unit
                                        Trigger - Turn on (This trigger)
                                      Else - Actions
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem_integer[6] Less than or equal to 0
                                      Then - Actions
                                        Set VariableSet EasyItem_integer[2] = EasyItem_integer[4]
                                      Else - Actions
                                Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                                -------- IF THERE ARE LEFT OVER CHARGES WE DROP THEM ON THE GROUND --------
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    EasyItem_integer[6] Greater than 0
                                  Then - Actions
                                    Set VariableSet EasyItem_point[0] = (Position of EasyItem_unit)
                                    Set VariableSet EasyItem_point[1] = (EasyItem_point[0] offset by 100.00 towards (Facing of EasyItem_unit) degrees.)
                                    For each (Integer EasyItem_integer[2]) from 0 to 1, do (Actions)
                                      Loop - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                          If - Conditions
                                            EasyItem_integer[6] Greater than EasyItem_integer[5]
                                          Then - Actions
                                            Set VariableSet EasyItem_integer[7] = EasyItem_integer[5]
                                            Set VariableSet EasyItem_integer[6] = (EasyItem_integer[6] - EasyItem_integer[5])
                                          Else - Actions
                                            Set VariableSet EasyItem_integer[7] = EasyItem_integer[6]
                                            Set VariableSet EasyItem_integer[6] = 0 (integervar)
                                        Item - Create (Item-type of EasyItem_item) at EasyItem_point[1]
                                        Item - Set charges remaining in (Last created item) to EasyItem_integer[7]
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                          If - Conditions
                                            EasyItem_integer[6] Greater than 0
                                          Then - Actions
                                            Set VariableSet EasyItem_integer[2] = 0 (integervar)
                                          Else - Actions
                                            Set VariableSet EasyItem_integer[2] = 1 (integervar)
                                    Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                                    Custom script: call RemoveLocation( udg_EasyItem_point[1] )
                                    -------- PLAY THE 'ITEM DROP' SOUND --------
                                    Set VariableSet EasyItem_string[0] = Sound\Interface\HeroDropItem1.wav
                                    Custom script: if GetLocalPlayer() != GetOwningPlayer(udg_EasyItem_unit) then
                                    Set VariableSet EasyItem_string[0] =
                                    Custom script: endif
                                    Custom script: set udg_EasyItem_sound = CreateSound( udg_EasyItem_string[0], false, true, false, 12700, 12700, "" )
                                    Sound - Set EasyItem_sound distances to 600.00 minimum and 1024.00 maximum
                                    Sound - Set cutoff distance of EasyItem_sound to 1536.00
                                    Sound - Play EasyItem_sound at 60.00% volume, attached to EasyItem_unit
                                    Sound - Destroy EasyItem_sound
                                    Set VariableSet EasyItem_sound = No sound
                                  Else - Actions
                              Else - Actions
                            Item - Remove EasyItem_item
                      Else - Actions
          Else - Actions
        Custom script: else
        -------- UNIT TARGETS A POINT --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            EasyItem_integer[0] Greater than 0
          Then - Actions
            -------- REMOVE FROM TIMER QUEUE? --------
            For each (Integer EasyItem_integer[1]) from 0 to (EasyItem_integer[0] - 1), do (Actions)
              Loop - Actions
                Set VariableSet EasyItem_point[0] = (Target point of issued order)
                Set VariableSet EasyItem_point[1] = (Position of EasyItem_items[EasyItem_integer[1]])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    EasyItem_units[EasyItem_integer[1]] Equal to EasyItem_unit
                    Or - Any (Conditions) are true
                      Conditions
                        (X of EasyItem_point[0]) Not equal to (X of EasyItem_point[1])
                        (Y of EasyItem_point[0]) Not equal to (Y of EasyItem_point[1])
                  Then - Actions
                    Set VariableSet EasyItem_integer[0] = (EasyItem_integer[0] - 1)
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        EasyItem_integer[0] Greater than 0
                      Then - Actions
                        Set VariableSet EasyItem_units[EasyItem_integer[1]] = EasyItem_units[EasyItem_integer[0]]
                        Set VariableSet EasyItem_items[EasyItem_integer[1]] = EasyItem_items[EasyItem_integer[0]]
                        Set VariableSet EasyItem_integer[1] = (EasyItem_integer[1] - 1)
                      Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            Or - Any (Conditions) are true
                              Conditions
                                EasyItem__SPLITSTACK Equal to False
                                EasyItem_integer[10] Less than or equal to 0
                          Then - Actions
                            Countdown Timer - Pause EasyItem_timer
                          Else - Actions
                  Else - Actions
                Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                Custom script: call RemoveLocation( udg_EasyItem_point[1] )
          Else - Actions
        Custom script: endif
      Else - Actions
        -------- TIMER TIMEOUT OR GAME START? --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            EasyItem_integer[8001] Greater than 0
          Then - Actions
            -------- RUN THROUGH FULL-STACK QUEUE --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                EasyItem_integer[0] Greater than 0
              Then - Actions
                For each (Integer EasyItem_integer[1]) from 0 to (EasyItem_integer[0] - 1), do (Actions)
                  Loop - Actions
                    Set VariableSet EasyItem_unit = EasyItem_units[EasyItem_integer[1]]
                    Set VariableSet EasyItem_item = EasyItem_items[EasyItem_integer[1]]
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        EasyItem_unit Not equal to No unit
                        EasyItem_item Not equal to No item
                        (EasyItem_item is owned) Equal to False
                        (Life of EasyItem_unit) Greater than 0.00
                        (Current life of EasyItem_item) Greater than 0.00
                      Then - Actions
                        Set VariableSet EasyItem_point[0] = (Position of EasyItem_unit)
                        Set VariableSet EasyItem_point[1] = (Position of EasyItem_item)
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            Or - Any (Conditions) are true
                              Conditions
                                (Distance between EasyItem_point[0] and EasyItem_point[1]) Less than or equal to 150.00
                                (Current order of EasyItem_unit) Not equal to (Order(move))
                          Then - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                (Current order of EasyItem_unit) Equal to (Order(move))
                              Then - Actions
                                -------- PLAY THE 'ITEM GET' SOUND --------
                                Set VariableSet EasyItem_string[0] = Sound\Interface\PickUpItem.wav
                                Custom script: if GetLocalPlayer() != GetOwningPlayer(udg_EasyItem_unit) then
                                Set VariableSet EasyItem_string[0] =
                                Custom script: endif
                                Custom script: set udg_EasyItem_sound = CreateSound( udg_EasyItem_string[0], false, true, false, 12700, 12700, "" )
                                Sound - Set EasyItem_sound distances to 600.00 minimum and 1024.00 maximum
                                Sound - Set cutoff distance of EasyItem_sound to 1536.00
                                Sound - Play EasyItem_sound at 60.00% volume, attached to EasyItem_unit
                                Sound - Destroy EasyItem_sound
                                Set VariableSet EasyItem_sound = No sound
                                -------- - --------
                                Unit - Order EasyItem_unit to Stop.
                                Unit - Make EasyItem_unit face (Angle from EasyItem_point[0] to EasyItem_point[1]) over 0 seconds
                                Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                                Custom script: call RemoveLocation( udg_EasyItem_point[1] )
                                -------- STACK THE ITEM --------
                                Set VariableSet EasyItem_integer[4] = (Size of inventory for EasyItem_unit)
                                Set VariableSet EasyItem_integer[5] = (Item level of EasyItem_item)
                                Set VariableSet EasyItem_integer[6] = (Charges remaining in EasyItem_item)
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  If - Conditions
                                    (EasyItem_item is A powerup.) Equal to False
                                  Then - Actions
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      If - Conditions
                                        EasyItem_integer[6] Less than or equal to 0
                                      Then - Actions
                                        Trigger - Turn off (This trigger)
                                        Hero - Give EasyItem_item to EasyItem_unit
                                        Trigger - Turn on (This trigger)
                                      Else - Actions
                                        Set VariableSet EasyItem_integer[5] = (Item level of EasyItem_item)
                                        Hero - Drop EasyItem_item from EasyItem_unit.
                                        For each (Integer EasyItem_integer[2]) from 1 to EasyItem_integer[4], do (Actions)
                                          Loop - Actions
                                            Set VariableSet EasyItem_items[8000] = (Item carried by EasyItem_unit in slot EasyItem_integer[2])
                                            Set VariableSet EasyItem_integer[7] = (Charges remaining in EasyItem_items[8000])
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                              If - Conditions
                                                EasyItem_items[8000] Not equal to No item
                                                Or - Any (Conditions) are true
                                                  Conditions
                                                    EasyItem__USEITEMLEVEL Equal to False
                                                    EasyItem_integer[5] Equal to 0
                                                    EasyItem_integer[7] Less than EasyItem_integer[5]
                                                (Item-type of EasyItem_items[8000]) Equal to (Item-type of EasyItem_item)
                                              Then - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                  If - Conditions
                                                    EasyItem__USEITEMLEVEL Equal to True
                                                    EasyItem_integer[5] Greater than 0
                                                    (EasyItem_integer[7] + EasyItem_integer[6]) Greater than EasyItem_integer[5]
                                                  Then - Actions
                                                    Item - Set charges remaining in EasyItem_items[8000] to EasyItem_integer[5]
                                                    Set VariableSet EasyItem_integer[6] = ((EasyItem_integer[7] + EasyItem_integer[6]) - EasyItem_integer[5])
                                                  Else - Actions
                                                    Item - Set charges remaining in EasyItem_items[8000] to (EasyItem_integer[7] + EasyItem_integer[6])
                                                    Set VariableSet EasyItem_integer[6] = 0 (integervar)
                                              Else - Actions
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                              If - Conditions
                                                EasyItem_integer[6] Less than or equal to 0
                                              Then - Actions
                                                Set VariableSet EasyItem_integer[2] = EasyItem_integer[4]
                                              Else - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                          If - Conditions
                                            EasyItem_integer[6] Greater than 0
                                          Then - Actions
                                            Set VariableSet EasyItem_point[0] = (Position of EasyItem_unit)
                                            Set VariableSet EasyItem_integer[2] = 0 (integervar)
                                            For each (Integer EasyItem_integer[2]) from 1 to EasyItem_integer[4], do (Actions)
                                              Loop - Actions
                                                Set VariableSet EasyItem_items[8000] = (Item carried by EasyItem_unit in slot EasyItem_integer[2])
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                  If - Conditions
                                                    EasyItem_items[8000] Equal to No item
                                                  Then - Actions
                                                    Item - Create (Item-type of EasyItem_item) at EasyItem_point[0]
                                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                      If - Conditions
                                                        EasyItem__USEITEMLEVEL Equal to True
                                                        EasyItem_integer[5] Greater than 0
                                                        EasyItem_integer[6] Greater than EasyItem_integer[5]
                                                      Then - Actions
                                                        Item - Set charges remaining in (Last created item) to EasyItem_integer[5]
                                                        Set VariableSet EasyItem_integer[6] = (EasyItem_integer[6] - EasyItem_integer[5])
                                                      Else - Actions
                                                        Item - Set charges remaining in (Last created item) to EasyItem_integer[6]
                                                        Set VariableSet EasyItem_integer[6] = 0 (integervar)
                                                    Trigger - Turn off (This trigger)
                                                    Hero - Give (Last created item) to EasyItem_unit
                                                    Trigger - Turn on (This trigger)
                                                  Else - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                  If - Conditions
                                                    EasyItem_integer[6] Less than or equal to 0
                                                  Then - Actions
                                                    Set VariableSet EasyItem_integer[2] = EasyItem_integer[4]
                                                  Else - Actions
                                            Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                                            -------- IF THERE ARE LEFT OVER CHARGES WE DROP THEM ON THE GROUND --------
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                              If - Conditions
                                                EasyItem_integer[6] Greater than 0
                                              Then - Actions
                                                Set VariableSet EasyItem_point[0] = (Position of EasyItem_unit)
                                                Set VariableSet EasyItem_point[1] = (EasyItem_point[0] offset by 100.00 towards (Facing of EasyItem_unit) degrees.)
                                                For each (Integer EasyItem_integer[2]) from 0 to 1, do (Actions)
                                                  Loop - Actions
                                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                      If - Conditions
                                                        EasyItem_integer[6] Greater than EasyItem_integer[5]
                                                      Then - Actions
                                                        Set VariableSet EasyItem_integer[7] = EasyItem_integer[5]
                                                        Set VariableSet EasyItem_integer[6] = (EasyItem_integer[6] - EasyItem_integer[5])
                                                      Else - Actions
                                                        Set VariableSet EasyItem_integer[7] = EasyItem_integer[6]
                                                        Set VariableSet EasyItem_integer[6] = 0 (integervar)
                                                    Item - Create (Item-type of EasyItem_item) at EasyItem_point[1]
                                                    Item - Set charges remaining in (Last created item) to EasyItem_integer[7]
                                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                      If - Conditions
                                                        EasyItem_integer[6] Greater than 0
                                                      Then - Actions
                                                        Set VariableSet EasyItem_integer[2] = 0 (integervar)
                                                      Else - Actions
                                                        Set VariableSet EasyItem_integer[2] = 1 (integervar)
                                                Custom script: call RemoveLocation( udg_EasyItem_point[0] )
                                                Custom script: call RemoveLocation( udg_EasyItem_point[1] )
                                                -------- PLAY THE 'ITEM DROP' SOUND --------
                                                Set VariableSet EasyItem_string[0] = Sound\Interface\HeroDropItem1.wav
                                                Custom script: if GetLocalPlayer() != GetOwningPlayer(udg_EasyItem_unit) then
                                                Set VariableSet EasyItem_string[0] =