//TESH.scrollpos=0
//TESH.alwaysfold=0
function CodeGen_Init takes nothing returns nothing
set udg_SaveLoad_Char = SubString(udg_SaveLoad_Alphabet, 0, 1)
set udg_SaveLoad_Alphabet = SubString(udg_SaveLoad_Alphabet, 1, 999)
set udg_SaveLoad_Base = udg_SaveLoad_Base - 1
endfunction
function CodeGen_ConvertItem takes integer id returns integer
local integer i = 1
loop
exitwhen i > udg_SaveLoad_ItemCount
if (id == udg_SaveLoad_Item[i]) then
return i
endif
set i = i + 1
endloop
return 0
endfunction
function CodeGen_ConvertUnit takes integer id returns integer
local integer i = 1
loop
exitwhen i > udg_SaveLoad_HeroCount
if (id == udg_SaveLoad_Hero[i]) then
return i
endif
set i = i + 1
endloop
return 0
endfunction
function CodeGen_Encode takes integer i returns string
local integer b
local string s = ""
if i < udg_SaveLoad_Base then
return SubString(udg_SaveLoad_Alphabet, i, i + 1)
endif
loop
exitwhen i <= 0
set b = i - (i / udg_SaveLoad_Base) * udg_SaveLoad_Base
set s = SubString(udg_SaveLoad_Alphabet, b, b + 1) + s
set i = i / udg_SaveLoad_Base
endloop
return s
endfunction
function CodeGen_StrPos takes string s returns integer
local integer i = 0
loop
exitwhen i > udg_SaveLoad_Base
if s == SubString(udg_SaveLoad_Alphabet, i, i + 1) then
return i
endif
set i = i + 1
endloop
return -1
endfunction
function CodeGen_Alphabet takes string s returns integer
local integer i = 0
local string x = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
local integer b = StringLength(x)
loop
exitwhen i > b
if s == SubString(x, i, i + 1) then
return i
endif
set i = i + 1
endloop
return -1
endfunction
function CodeGen_Decode takes string s returns integer
local integer a = 0
loop
exitwhen StringLength(s) == 1
set a = a * udg_SaveLoad_Base + udg_SaveLoad_Base * CodeGen_StrPos(SubString(s, 0, 1))
set s = SubString(s, 1, 50)
endloop
return a+CodeGen_StrPos(s)
endfunction
function CodeGen_String takes string s returns integer
local integer i = 0
local integer x = StringLength(s)
local integer z = 0
loop
exitwhen i > x
set z = z + CodeGen_Alphabet(SubString(s, i, i + 1))
set i = i + 1
endloop
return z
endfunction
function CodeGen_Color takes string char returns string
local integer i = 0
local string s = udg_SaveLoad_Alphabet + udg_SaveLoad_Char
local string x = ""
loop
exitwhen i > udg_SaveLoad_Base+1
set x = SubString(s, i, i + 1)
if char == x then
if (x=="0"or x=="1"or x=="2"or x=="3"or x=="4"or x=="5"or x=="6"or x=="7"or x=="8"or x=="9"or x=="10") then
return udg_SaveLoad_Number + char + "|r"
elseif StringCase(x, false) == x then
return udg_SaveLoad_Lower + char + "|r"
elseif StringCase(x, true) == x then
return udg_SaveLoad_Upper + char + "|r"
endif
endif
set i = i + 1
endloop
return char
endfunction
function CodeGen_Format takes string s returns string
local integer i = 0
local integer x = StringLength(s)
local integer j = 1
local string s2 = ""
if (x <= udg_SaveLoad_HyphenSpace) then
return s
endif
loop
exitwhen i >= x
set s2 = s2 + CodeGen_Color(SubString(s, i, i + 1))
if (j >= udg_SaveLoad_HyphenSpace and i != (x-1)) then
set j = 0
set s2 = s2 + "-"
endif
set j = j + 1
set i = i + 1
endloop
return s2
endfunction
function CodeGen_Strip takes string s returns string
local integer i = 0
local integer x = StringLength(s)
local string out = ""
local string a = ""
loop
exitwhen i > x
set a = SubString(s, i, i + 1)
if not (a == "-") then
set out = out + a
endif
set i = i + 1
endloop
return out
endfunction
function CodeGen_Load takes string s returns nothing
local integer i = 0
local integer r = 0
local integer x = 0
local integer j = 0
local integer b = 0
set s = CodeGen_Strip(s)
set x = StringLength(s)
set j = CodeGen_Decode(SubString(s, x - 1, x))
set r = CodeGen_Decode(SubString(s, x - j - 1, x - 1))
set s = SubString(s, 0, x - j - 1)
if (r != CodeGen_String(s)) then
set udg_SaveLoad_Valid = false
return
endif
set x = CodeGen_String(GetPlayerName(GetTriggerPlayer()))
set udg_SaveLoad_Valid = true
if (udg_SaveLoad_CheckName) then
if not (CodeGen_Decode(SubString(s, 0, 2)) == x) then
if not (CodeGen_Decode(SubString(s, 0, 1)) == x) then
set udg_SaveLoad_Valid = false
return
else
set s = SubString(s, 1, 999)
endif
else
set s = SubString(s, 2, 999)
endif
endif
set j = StringLength(s)
set x = 0
loop
exitwhen i == j
if (SubString(s, i, i + 1) == udg_SaveLoad_Char) then
set b = CodeGen_Decode(SubString(s, i + 1, i + 2))
set udg_Load[x] = CodeGen_Decode(SubString(s, i + 2, i + (b + 2)))
set i = i + b + 1
else
set udg_Load[x] = CodeGen_Decode(SubString(s, i, i + 1))
endif
set x = x + 1
set i = i + 1
endloop
endfunction
function CodeGen_Compile takes nothing returns string
local integer i = 0
local integer j = 0
local string out = ""
local string ln = ""
local string x = ""
if (udg_SaveLoad_CheckName) then
set out = out + CodeGen_Encode(CodeGen_String(GetPlayerName(GetTriggerPlayer())))
endif
loop
exitwhen i == udg_SaveCount
set x = CodeGen_Encode(udg_Save[i])
set j = StringLength(x)
if (j > 1) then
set out = out + udg_SaveLoad_Char + CodeGen_Encode(j)
endif
set out = out + x
set i = i + 1
endloop
set x = CodeGen_Encode(CodeGen_String(out))
return CodeGen_Format(out + x + CodeGen_Encode(StringLength(x)))
endfunction
Name | Type | is_array | initial_value |
AgroArea | real | No | |
AgroRangeGroup | group | No | |
AgroSpellAgro | integer | Yes | |
AgroSpellNumber | integer | No | |
AgroSpellRange | real | Yes | |
AgroSpells | abilcode | Yes | |
AgroTable | hashtable | No | |
AgroTarget | unit | No | |
AgroTempGroup | group | No | |
AgroTempHandle | handle | No | |
AgroTempInt | integer | No | |
AgroTempPoint | location | No | |
AI_SpellTexts | texttag | Yes | |
Amount | integer | Yes | |
AOE | real | No | |
Arcane_Attribute | integer | No | |
Arcane_Caster | unit | No | |
Arcane_Damage | real | No | |
AreaSpell | boolean | Yes | |
Assasinate_Attribute | integer | No | |
Assasinate_caster | unit | No | |
Assasinate_Dmg | real | No | |
Assasinate_Target | unit | No | |
Astralios_Item | itemcode | Yes | |
Astralios_MaxItems | integer | No | |
Back_Attribute | integer | No | |
Back_Caster | unit | No | |
Back_Damage | real | No | |
Back_Target | unit | No | |
Bandit_Items | itemcode | Yes | |
Bleed_Attribute | integer | No | |
Bleed_Caster | unit | No | |
Bleed_Damage | real | No | |
Bleed_Group | group | No | |
Bleed_Table | hashtable | Yes | |
Bleed_Target | unit | No | |
Bleed_Time | real | No | |
Boss_Unit | unitcode | No | |
Bounty | real | No | |
Burst_AoE | real | No | |
Burst_Attribute | integer | No | |
Burst_Caster | unit | No | |
Burst_Formula | real | No | |
Burst_Group | group | No | |
Burst_Heal | real | No | |
Burst_Point | location | Yes | |
Chain_Attribute | integer | No | |
Chain_Caster | unit | No | |
Chain_Damage | real | No | |
Chain_Effect | effect | Yes | |
Chain_Target | unit | No | |
Chain_Text | texttag | No | |
Charge_angle | real | No | |
Charge_caster | unit | No | |
Charge_checker | integer | No | |
Charge_damage | real | No | |
Charge_distance | real | No | |
Charge_distx | real | No | |
Charge_Grp | group | No | |
Charge_Hash | hashtable | No | |
Charge_ID | integer | No | |
Charge_loc1 | location | No | |
Charge_loc2 | location | No | |
Charge_sfx | string | No | |
Charge_sfx2 | string | No | |
Charge_speed | real | No | |
Charge_target | unit | No | |
Chest_Items | item | Yes | |
Chest_Units | unit | Yes | |
Code | StringExt | No | |
Creep_Units | unitcode | No | |
Crystallus_Item | itemcode | Yes | |
DamagePerSecond | integer | No | |
Desert_Items | itemcode | Yes | |
EquipedItem | item | No | |
Eternal_Item | itemcode | Yes | |
EvadeDelay | real | No | |
EvadeDist | real | No | |
EvadeGroup | group | No | |
Fan_AoE | real | No | |
Fan_Attribute | integer | No | |
Fan_Caster | unit | No | |
Fan_Damage | real | No | |
Fan_Group | group | No | |
Frost_Aoe | real | No | |
Frost_Attribute | integer | No | |
Frost_Caster | unit | No | |
Frost_Damage1 | real | No | |
Frost_Damage2 | real | No | |
Frost_Group | group | No | |
Frost_Point | location | No | |
Frost_Target | unit | No | |
Gnoll_Items | itemcode | Yes | |
Hero | unit | No | |
Hero_Group | group | No | |
Hero_Player1 | unit | No | |
HeroINT | integer | No | |
Hex_AoE | real | No | |
Hex_Caster | unit | No | |
Hex_Point | location | No | |
HexGroup | group | No | |
Holy_Light_Attribute | integer | No | |
Holy_Light_Caster | unit | No | |
Holy_Light_Effect | effect | Yes | |
Holy_Light_Heal | real | No | |
Holy_Light_Target | unit | No | |
Holy_Light_Text | texttag | No | |
Horan_Item | itemcode | Yes | |
HWGroup | group | No | |
HWLoop | integervar | No | |
HWReal | real | No | |
HWTemp | unit | No | |
Hydra_AoE | real | Yes | |
Hydra_Caster | unit | No | |
Hydra_DMG | real | Yes | |
Hydra_Group | group | Yes | |
Hydra_Item | itemcode | Yes | |
Hydra_Point | location | Yes | |
Imbued_Attribute | integer | No | |
Imbued_Caster | unit | No | |
Imbued_Damage | real | No | |
Item | item | No | |
key | integer | No | |
Koran_Item | itemcode | Yes | |
Koran_MaxItems | integer | No | |
l | location | No | |
Lesser_Heal_Attribute | integer | No | |
Lesser_Heal_Caster | unit | No | |
Lesser_Heal_Effect | effect | Yes | |
Lesser_Heal_Heal | real | No | |
Lesser_Heal_Target | unit | No | |
Lesser_Heal_Text | texttag | Yes | |
Life_T_Attribute | integer | No | |
Life_T_Caster | unit | No | |
Life_T_Damage | real | No | |
Life_T_Effect | effect | Yes | |
Life_T_Heal | real | No | |
Life_T_Target | unit | No | |
Life_T_Text | texttag | No | |
LightningShieldGroup | group | No | |
Load | integer | Yes | |
LoadCount | integer | No | |
Mark2_AoE | real | No | |
Mark2_Attribute | integer | No | |
Mark2_Caster | unit | No | |
Mark2_Damage | real | No | |
Mark2_Group | group | No | |
Mark_AoE | real | No | |
Mark_Attribute | integer | No | |
Mark_Caster | unit | No | |
Mark_Group | group | No | |
Mark_Heal | real | No | |
Mark_Target | unit | No | |
Mortal_Attribute | integer | No | |
Mortal_Caster | unit | No | |
Mortal_Damage | real | No | |
Mortal_Effect | effect | Yes | |
Mortal_Target | unit | No | |
Mortal_Text | texttag | No | |
Nature_Attribute | integer | No | |
Nature_Caster | unit | No | |
Nature_Group | group | No | |
Nature_Heal | real | No | |
Nature_Loc | location | No | |
Nature_Loop | integer | No | |
Nature_Target | unit | No | |
Necro_Attribute | integer | No | |
Necro_Caster | unit | No | |
Necro_Group | group | No | |
Necromancer_AoE | real | No | |
Necromancer_Damage | real | No | |
Necromancer_Formula | real | No | |
Necromancer_Point | location | Yes | |
OnDelay | real | Yes | |
OnEvade | boolean | Yes | |
p | location | No | |
p2 | location | No | |
p3 | location | No | |
p4 | location | No | |
p5 | location | No | |
PickedLoc | location | No | |
PlayerGroupAllreadyIT | force | No | |
Point | location | No | |
Point2 | location | No | |
Point3 | location | No | |
Point4 | location | No | |
Point5 | location | No | |
Quests | quest | Yes | |
RespawnTime | real | No | |
S_Point1 | location | No | |
S_Point2 | location | No | |
S_Point3 | location | No | |
S_Point4 | location | No | |
S_Point5 | location | No | |
Save | integer | Yes | |
SaveCount | integer | No | |
SaveLoad_Alphabet | string | No | |
SaveLoad_Base | integer | No | |
SaveLoad_Char | string | No | |
SaveLoad_CheckName | boolean | No | |
SaveLoad_Hero | unitcode | Yes | |
SaveLoad_HeroCount | integer | No | |
SaveLoad_HyphenSpace | integer | No | |
SaveLoad_Item | itemcode | Yes | |
SaveLoad_ItemCount | integer | No | |
SaveLoad_Lower | string | No | |
SaveLoad_Number | string | No | |
SaveLoad_Upper | string | No | |
SaveLoad_Valid | boolean | No | |
SFX | effect | No | |
SpecialEffect | effect | Yes | |
Specific_Spawned_Units | unitcode | No | |
StatsMultiplier | real | No | |
Steal_Items | itemcode | Yes | |
Steal_Units | unitcode | Yes | |
Strenght | integer | No | |
SwiftStab_Damage | real | No | |
SwiftStab_Target | unit | No | |
SwitfStab_Attribute | integer | No | |
SwitfStab_Caster | unit | No | |
Target | unit | No | |
TempPoint | location | Yes | |
TempX | real | No | |
TempY | real | No | |
testUnit | unit | No | |
Thunder_AoE | real | No | |
Thunder_Attribute | integer | No | |
Thunder_Caster | unit | No | |
Thunder_Damage | real | No | |
Thunder_Group | group | No | |
time | real | Yes | |
TorrakSpawn | unit | No | |
Touch_Attribute | integer | No | |
Touch_Group | group | No | |
Touch_Heal | real | No | |
Touch_Table | hashtable | No | |
Touch_Time | real | No | |
UDex | integer | No | |
UDexGen | integer | No | |
UDexNext | integer | Yes | |
UDexPrev | integer | Yes | |
UDexRecycle | integer | No | |
UDexUnits | unit | Yes | |
UDexWasted | integer | No | |
UMovNext | integer | Yes | |
UMovPrev | integer | Yes | |
Undead_Caster | unit | No | |
Undead_Caster_HP | real | No | |
Undead_HP | real | No | |
Undead_Spawn | unit | No | |
Unit_Spell_Group | group | Yes | |
Unit_Spell_Point | location | Yes | |
Unit_Spell_Target | unit | Yes | |
Unit_Spells_AoE | real | Yes | |
UnitIndexerEnabled | boolean | No | |
UnitIndexEvent | real | No | |
UnitMoving | boolean | Yes | |
UnitMovingEvent | real | No | |
UnitMovingX | real | Yes | |
UnitMovingY | real | Yes | |
Units | unit | Yes | |
UnitSpell_Damage | real | Yes | |
Volley_AoE | real | No | |
Volley_Attribute | integer | No | |
Volley_Caster | unit | No | |
Volley_Damage | real | No | |
Volley_Group | group | No | |
Volley_Loc | location | Yes | |
Water_AoE | real | No | |
Water_Attribute | integer | No | |
Water_Caster | unit | No | |
Water_Damage | real | No | |
Water_Group | group | No | |
Water_Loc | location | Yes | |
Wildking_Items | itemcode | Yes | |
Wolf_MaxItems | integer | No | |
WolfUnitQuest | unitcode | Yes | |
WolfUnits_Item | itemcode | Yes | |
x | real | Yes | |
XP | real | No | |
y | real | Yes | |
YoungWolf | unitcode | No |