//TESH.scrollpos=214
//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 |
Angle | real | Yes | |
Armor | integer | Yes | |
Backpack | unit | Yes | |
Boots | integer | Yes | |
Bounty | real | No | |
BountyExpGroup | group | No | |
BPHero | unit | Yes | |
Caster | unit | Yes | |
Chance | integer | Yes | |
Chooser | unit | Yes | |
CL_AbilityLevel | integer | Yes | |
CL_AOE | real | Yes | |
CL_Boolean | boolean | Yes | |
CL_Caster | unit | Yes | |
CL_Damage | integer | Yes | |
CL_FirstTarget | boolean | Yes | |
CL_Group | group | Yes | |
CL_Index | integer | Yes | |
CL_Loc | location | Yes | |
CL_Player | player | Yes | |
CL_Slashes | integer | Yes | |
CL_Special | effect | Yes | |
CL_Target | unit | Yes | |
CL_Victim | unit | Yes | |
Code | string | No | |
Color | string | Yes | |
CoralSet | boolean | Yes | |
Creep_Point | location | Yes | |
Die | unit | No | |
DMGGroup | group | Yes | |
DungeonMobs | group | Yes | |
DungeonPlayers | group | Yes | |
EESet | boolean | Yes | |
ExpGain | real | No | |
ExpGainINT | integer | No | |
ExpGainINT2 | integer | No | |
ExpGainINT3 | integer | No | |
ExpPoint | integer | No | |
ExpPointR | real | No | |
Game_Time_String | string | No | |
Hands | integer | Yes | |
Helmet | integer | Yes | |
Hero | unit | No | |
Hints | string | Yes | |
HintsGroup | force | No | |
HWCaster | unit | Yes | |
HWCCount | integer | No | |
HWCount | integer | Yes | |
HWDamage | real | Yes | |
HWGroup | group | No | |
HWHas | boolean | Yes | |
HWIndex | integer | No | |
HWInteger | integer | No | |
HWMax | integer | No | |
HWPoint | location | No | |
HWTarget | unit | Yes | |
Int | integer | No | |
Item | item | No | |
Jump | integer | Yes | |
L | location | No | |
Lightning | lightning | Yes | |
Load | integer | Yes | |
LoadCount | integer | No | |
MainCount | integer | Yes | |
MainQuest | quest | Yes | |
Necklace | integer | Yes | |
Orb | integer | Yes | |
order | integer | No | |
PlayerLoad | integer | Yes | |
PlayerLoadBP | integer | Yes | |
PlayerNumber | integer | No | |
Point | location | Yes | |
QLightning | lightning | Yes | |
Rage | boolean | Yes | |
RageGroup | force | No | |
RagePointGroup | group | No | |
RageTimer | real | Yes | |
Random | integer | Yes | |
Real | real | Yes | |
RealC | real | No | |
Respawn_Time | real | No | |
RespawnPoint | location | Yes | |
Ring | integer | Yes | |
RitualSet | boolean | Yes | |
SacredSet | boolean | Yes | |
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 | |
Shield | integer | Yes | |
ShiverSet | boolean | Yes | |
SideCount | integer | Yes | |
SideQuest | quest | Yes | |
Sneak | group | No | |
SpecMQ | effect | Yes | |
SpecSkill | effect | Yes | |
SpecSQ | effect | Yes | |
Target | unit | Yes | |
Temp_Integer | integer | No | |
TempAbi | abilcode | No | |
TempGroup | group | No | |
TempInt | integer | No | |
TempPoint | location | Yes | |
TempReal | real | No | |
TempUnit | unit | No | |
ThievesSet | boolean | Yes | |
UGroup | group | Yes | |
Weapon | integer | Yes | |
Weather | weathereffect | Yes |