Name | Type | is_array | initial_value |
function H2I takes handle h returns integer
return h
return 0
endfunction
function I2U takes integer i returns unit
return i
return null
endfunction
function I2T takes integer i returns trigger
return i
return null
endfunction
function NumAndNum takes integer i1,integer i2 returns string
local integer num = i1*6+i2+1
if ((i1 == 5) and (i2 == 6)) then
set num = 2
endif
return SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",num,num)
endfunction
function Num2Numbers takes string s returns integer
local integer i = 1
loop
exitwhen i > 36
if (s==SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",i,i)) then
return i-1
endif
set i = i + 1
endloop
return 0
endfunction
function Num2S takes integer i returns string
if (i > 57) then
return SubStringBJ("ABCDEFGHIJKLMNOPQRSTUVWXYZ", i-64, i-64)
endif
return I2S(i-48)
endfunction
function S2Num takes string s returns integer
local integer i = 1
loop
exitwhen i > 36
if (s==SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",i,i)) then
if (i < 11) then
return i + 47
else
return i + 54
endif
endif
set i = i + 1
endloop
return 0
endfunction
function IncDecNum takes string num, string incdec returns string
if (incdec == "+") then
if (num == "0") or (num == "1") or (num == "2") or (num == "3") or (num == "4") or (num == "5") or (num == "6") or (num == "7") or (num == "8") or (num == "9") then
if (num=="9") then
return "A"
else
return I2S(S2I(num) + 1)
endif
else
if (num=="Z") then
return "0"
else
return Num2S(S2Num(num)+1)
endif
endif
else
if (num == "0") or (num == "1") or (num == "2") or (num == "3") or (num == "4") or (num == "5") or (num == "6") or (num == "7") or (num == "8") or (num == "9") then
if (num=="0") then
return "Z"
else
return I2S(S2I(num) - 1)
endif
else
if (num=="A") then
return "9"
else
return Num2S(S2Num(num)-1)
endif
endif
endif
return ""
endfunction
function BigNum2S takes integer i returns string
local integer array n
set n[1] = R2I(i / 1296)
set n[2] = R2I((i-n[1]*1296) / 36)
set n[3] = (i-n[1]*1296)-(n[2]*36)
return IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n[2]+1,n[2]+1),"-")+IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n[1]+1,n[1]+1),"+")+IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n[3]+1,n[3]+1),"-")
endfunction
function S2BigNum takes string s returns integer
local integer array n
set n[1] = Num2Numbers(IncDecNum(SubStringBJ(s,2,2),"-"))
set n[2] = Num2Numbers(IncDecNum(SubStringBJ(s,1,1),"+"))
set n[3] = Num2Numbers(IncDecNum(SubStringBJ(s,3,3),"+"))
return n[1] * 1296 + n[2] * 36 + n[3]
endfunction
function GetSaveCodeGameCache takes nothing returns gamecache
return gg_trg_SaveCode_Copy
return null
endfunction
function SaveCodeGameCache2Trigger takes gamecache g returns trigger
return g
return null
endfunction
function MatchTable takes string ID,string sID,string storetype returns nothing
//All Abilities: 763 normal + 360 custom
local gamecache g = GetSaveCodeGameCache()
local integer i
if (storetype == "Spells") then
set i = 1+GetStoredInteger(g,"i1","i1")
call StoreString(g,"SsID2ID",sID,ID)
call StoreString(g,"SID2sID",ID,sID)
call StoreString(g,"SNum2ID",I2S(i),ID)
call StoreString(g,"SNum2sID",I2S(i),sID)
call StoreInteger(g,"i1","i1",i)
elseif (storetype == "Heros") then
set i = 1+GetStoredInteger(g,"i2","i2")
call StoreString(g,"HsID2ID",sID,ID)
call StoreString(g,"HID2sID",ID,sID)
call StoreString(g,"HNum2ID",I2S(i),ID)
call StoreString(g,"HNum2sID",I2S(i),sID)
call StoreInteger(g,"i2","i2",i)
elseif (storetype == "Items") then
set i = 1+GetStoredInteger(g,"i3","i3")
call StoreString(g,"IsID2ID",sID,ID)
call StoreString(g,"IID2sID",ID,sID)
call StoreString(g,"INum2ID",I2S(i),ID)
call StoreString(g,"INum2sID",I2S(i),sID)
call StoreInteger(g,"i3","i3",i)
endif
endfunction
function MatchHeroes takes integer num returns nothing
local integer i = 0
local integer array x
local integer counter = 0
local gamecache g = GetSaveCodeGameCache()
set x[1] = 48 // 0
set x[2] = 48 // 0
set x[3] = GetStoredInteger(g,"x3","x3")
set x[4] = GetStoredInteger(g,"x4","x4")
loop
exitwhen i > 200
set counter = counter + 1
if (((counter < 11) or ((counter > 17) and (counter < 44))) and (UnitId2String(num+256*x[2]+x[1]) != null) and ( IsUnitIdType(num+256*x[2]+x[1], UNIT_TYPE_HERO) == true ) ) then
call MatchTable(I2S(num+256*x[2]+x[1]), Num2S(x[4]) + Num2S(x[3]), "Heros")
set x[3] = x[3] + 1
if (x[3] == 58) then
set x[3] = 65
elseif (x[3] == 91) then
set x[3] = 48
set x[4] = x[4] + 1
if (x[4] == 58) then
set x[4] = 65
elseif (x[4] == 91) then
set x[4] = 48
endif
endif
elseif (counter > 43) then
set counter = 0
set x[1] = 47
set x[2] = x[2] + 1
endif
set x[1] = x[1] + 1
set i = i + 1
endloop
call StoreInteger(g,"x3","x3",x[3])
call StoreInteger(g,"x4","x4",x[4])
endfunction
function SaveCode_InitItems takes nothing returns nothing
local integer i = 0
local integer array x
local integer counter = 0
local gamecache g = GetSaveCodeGameCache()
call MatchTable(I2S('ckng'), "01", "Items")
call MatchTable(I2S('modt'), "02", "Items")
call MatchTable(I2S('tkno'), "03", "Items")
call MatchTable(I2S('ratf'), "04", "Items")
call MatchTable(I2S('rde4'), "05", "Items")
call MatchTable(I2S('ofro'), "06", "Items")
call MatchTable(I2S('fgdg'), "07", "Items")
call MatchTable(I2S('infs'), "08", "Items")
call MatchTable(I2S('shar'), "09", "Items")
call MatchTable(I2S('sand'), "0A", "Items")
call MatchTable(I2S('sres'), "0B", "Items")
call MatchTable(I2S('wild'), "0C", "Items")
call MatchTable(I2S('srrc'), "0D", "Items")
call MatchTable(I2S('rej6'), "0E", "Items")
call MatchTable(I2S('odef'), "0F", "Items")
call MatchTable(I2S('rde3'), "0G", "Items")
call MatchTable(I2S('pmna'), "0H", "Items")
call MatchTable(I2S('rhth'), "0I", "Items")
call MatchTable(I2S('ssil'), "0J", "Items")
call MatchTable(I2S('spsh'), "0K", "Items")
call MatchTable(I2S('desc'), "0L", "Items")
call MatchTable(I2S('ankh'), "0M", "Items")
call MatchTable(I2S('pdiv'), "0N", "Items")
call MatchTable(I2S('pres'), "0O", "Items")
call MatchTable(I2S('whwd'), "0P", "Items")
call MatchTable(I2S('rej5'), "0Q", "Items")
call MatchTable(I2S('hcun'), "0R", "Items")
call MatchTable(I2S('hval'), "0S", "Items")
call MatchTable(I2S('mcou'), "0T", "Items")
call MatchTable(I2S('belv'), "0U", "Items")
call MatchTable(I2S('bgst'), "0V", "Items")
call MatchTable(I2S('ciri'), "0W", "Items")
call MatchTable(I2S('ajen'), "0X", "Items")
call MatchTable(I2S('clfm'), "0Y", "Items")
call MatchTable(I2S('ratc'), "0Z", "Items")
call MatchTable(I2S('ward'), "10", "Items")
call MatchTable(I2S('kpin'), "11", "Items")
call MatchTable(I2S('crys'), "12", "Items")
call MatchTable(I2S('totw'), "13", "Items")
call MatchTable(I2S('fgfh'), "14", "Items")
call MatchTable(I2S('fgrd'), "15", "Items")
call MatchTable(I2S('fgrg'), "16", "Items")
call MatchTable(I2S('fgsk'), "17", "Items")
call MatchTable(I2S('wcyc'), "18", "Items")
call MatchTable(I2S('hlst'), "19", "Items")
call MatchTable(I2S('mnst'), "1A", "Items")
call MatchTable(I2S('rej4'), "1B", "Items")
call MatchTable(I2S('ram4'), "1C", "Items")
call MatchTable(I2S('lhst'), "1D", "Items")
call MatchTable(I2S('afac'), "1E", "Items")
call MatchTable(I2S('lgdh'), "1F", "Items")
call MatchTable(I2S('sbch'), "1G", "Items")
call MatchTable(I2S('brac'), "1H", "Items")
call MatchTable(I2S('rwiz'), "1I", "Items")
call MatchTable(I2S('dsum'), "1J", "Items")
call MatchTable(I2S('pghe'), "1K", "Items")
call MatchTable(I2S('pgma'), "1L", "Items")
call MatchTable(I2S('pnvu'), "1M", "Items")
call MatchTable(I2S('sror'), "1N", "Items")
call MatchTable(I2S('woms'), "1O", "Items")
call MatchTable(I2S('rej3'), "1P", "Items")
call MatchTable(I2S('ofir'), "1Q", "Items")
call MatchTable(I2S('ocor'), "1R", "Items")
call MatchTable(I2S('oli2'), "1S", "Items")
call MatchTable(I2S('oven'), "1T", "Items")
call MatchTable(I2S('ram3'), "1U", "Items")
call MatchTable(I2S('evtl'), "1V", "Items")
call MatchTable(I2S('penr'), "1W", "Items")
call MatchTable(I2S('prvt'), "1X", "Items")
call MatchTable(I2S('rat9'), "1Y", "Items")
call MatchTable(I2S('rde2'), "1Z", "Items")
call MatchTable(I2S('rlif'), "20", "Items")
call MatchTable(I2S('tret'), "21", "Items")
call MatchTable(I2S('tgrh'), "22", "Items")
call MatchTable(I2S('will'), "23", "Items")
call MatchTable(I2S('wlsd'), "24", "Items")
call MatchTable(I2S('wswd'), "25", "Items")
call MatchTable(I2S('rej2'), "26", "Items")
call MatchTable(I2S('gemt'), "27", "Items")
call MatchTable(I2S('ram2'), "28", "Items")
call MatchTable(I2S('stel'), "29", "Items")
call MatchTable(I2S('cnob'), "2A", "Items")
call MatchTable(I2S('gcel'), "2B", "Items")
call MatchTable(I2S('rat6'), "2C", "Items")
call MatchTable(I2S('rde1'), "2D", "Items")
call MatchTable(I2S('bspd'), "2E", "Items")
call MatchTable(I2S('tdx2'), "2F", "Items")
call MatchTable(I2S('texp'), "2G", "Items")
call MatchTable(I2S('tin2'), "2H", "Items")
call MatchTable(I2S('tpow'), "2I", "Items")
call MatchTable(I2S('tst2'), "2J", "Items")
call MatchTable(I2S('pnvl'), "2K", "Items")
call MatchTable(I2S('stwp'), "2L", "Items")
call MatchTable(I2S('wneg'), "2M", "Items")
call MatchTable(I2S('sneg'), "2N", "Items")
call MatchTable(I2S('wneu'), "2O", "Items")
call MatchTable(I2S('shea'), "2P", "Items")
call MatchTable(I2S('sman'), "2Q", "Items")
call MatchTable(I2S('rej1'), "2R", "Items")
call MatchTable(I2S('pspd'), "2S", "Items")
call MatchTable(I2S('dust'), "2T", "Items")
call MatchTable(I2S('ram1'), "2U", "Items")
call MatchTable(I2S('clsd'), "2V", "Items")
call MatchTable(I2S('rag1'), "2W", "Items")
call MatchTable(I2S('rin1'), "2X", "Items")
call MatchTable(I2S('rst1'), "2Y", "Items")
call MatchTable(I2S('manh'), "2Z", "Items")
call MatchTable(I2S('tdex'), "30", "Items")
call MatchTable(I2S('tint'), "31", "Items")
call MatchTable(I2S('tstr'), "32", "Items")
call MatchTable(I2S('pinv'), "33", "Items")
call MatchTable(I2S('phea'), "34", "Items")
call MatchTable(I2S('pman'), "35", "Items")
call MatchTable(I2S('spro'), "36", "Items")
call MatchTable(I2S('hslv'), "37", "Items")
call MatchTable(I2S('moon'), "38", "Items")
call MatchTable(I2S('shas'), "39", "Items")
call MatchTable(I2S('skul'), "3A", "Items")
call MatchTable(I2S('mcri'), "3B", "Items")
call MatchTable(I2S('rnec'), "3C", "Items")
call MatchTable(I2S('tsct'), "3D", "Items")
call MatchTable(I2S('azhr'), "3E", "Items")
call MatchTable(I2S('bzbe'), "3F", "Items")
call MatchTable(I2S('bzbf'), "3G", "Items")
call MatchTable(I2S('ches'), "3H", "Items")
call MatchTable(I2S('cnhn'), "3I", "Items")
call MatchTable(I2S('glsk'), "3J", "Items")
call MatchTable(I2S('gopr'), "3K", "Items")
call MatchTable(I2S('k3m1'), "3L", "Items")
call MatchTable(I2S('k3m2'), "3M", "Items")
call MatchTable(I2S('k3m3'), "3N", "Items")
call MatchTable(I2S('ktrm'), "3O", "Items")
call MatchTable(I2S('kybl'), "3P", "Items")
call MatchTable(I2S('kygh'), "3Q", "Items")
call MatchTable(I2S('kymn'), "3R", "Items")
call MatchTable(I2S('kysn'), "3S", "Items")
call MatchTable(I2S('ledg'), "3T", "Items")
call MatchTable(I2S('phlt'), "3U", "Items")
call MatchTable(I2S('sehr'), "3V", "Items")
call MatchTable(I2S('engs'), "3W", "Items")
call MatchTable(I2S('sorf'), "3X", "Items")
call MatchTable(I2S('gmfr'), "3Y", "Items")
call MatchTable(I2S('jpnt'), "3Z", "Items")
call MatchTable(I2S('shwd'), "40", "Items")
call MatchTable(I2S('skrt'), "41", "Items")
call MatchTable(I2S('thle'), "42", "Items")
call MatchTable(I2S('pomn'), "43", "Items")
call MatchTable(I2S('wshs'), "44", "Items")
call MatchTable(I2S('fgun'), "45", "Items")
call MatchTable(I2S('lure'), "46", "Items")
call MatchTable(I2S('olig'), "47", "Items")
call MatchTable(I2S('amrc'), "48", "Items")
call MatchTable(I2S('ccmd'), "49", "Items")
call MatchTable(I2S('flag'), "4A", "Items")
call MatchTable(I2S('gobm'), "4B", "Items")
call MatchTable(I2S('gsou'), "4C", "Items")
call MatchTable(I2S('nflg'), "4D", "Items")
call MatchTable(I2S('nspi'), "4E", "Items")
call MatchTable(I2S('oflg'), "4F", "Items")
call MatchTable(I2S('pams'), "4G", "Items")
call MatchTable(I2S('pgin'), "4H", "Items")
call MatchTable(I2S('rat3'), "4I", "Items")
call MatchTable(I2S('rde0'), "4J", "Items")
call MatchTable(I2S('rnsp'), "4K", "Items")
call MatchTable(I2S('soul'), "4L", "Items")
call MatchTable(I2S('tels'), "4M", "Items")
call MatchTable(I2S('tgxp'), "4N", "Items")
call MatchTable(I2S('uflg'), "4O", "Items")
call MatchTable(I2S('anfg'), "4P", "Items")
call MatchTable(I2S('brag'), "4Q", "Items")
call MatchTable(I2S('drph'), "4R", "Items")
call MatchTable(I2S('iwbr'), "4S", "Items")
call MatchTable(I2S('jdrn'), "4T", "Items")
call MatchTable(I2S('lnrn'), "4U", "Items")
call MatchTable(I2S('mlst'), "4V", "Items")
call MatchTable(I2S('oslo'), "4W", "Items")
call MatchTable(I2S('sbok'), "4X", "Items")
call MatchTable(I2S('sksh'), "4Y", "Items")
call MatchTable(I2S('sprn'), "4Z", "Items")
call MatchTable(I2S('tmmt'), "50", "Items")
call MatchTable(I2S('vddl'), "51", "Items")
call MatchTable(I2S('spre'), "52", "Items")
call MatchTable(I2S('sfog'), "53", "Items")
call MatchTable(I2S('sor1'), "54", "Items")
call MatchTable(I2S('sor2'), "55", "Items")
call MatchTable(I2S('sor3'), "56", "Items")
call MatchTable(I2S('sor4'), "57", "Items")
call MatchTable(I2S('sor5'), "58", "Items")
call MatchTable(I2S('sor6'), "59", "Items")
call MatchTable(I2S('sor7'), "5A", "Items")
call MatchTable(I2S('sor8'), "5B", "Items")
call MatchTable(I2S('sor9'), "5C", "Items")
call MatchTable(I2S('sora'), "5D", "Items")
call MatchTable(I2S('fwss'), "5E", "Items")
call MatchTable(I2S('shtm'), "5F", "Items")
call MatchTable(I2S('esaz'), "5G", "Items")
call MatchTable(I2S('btst'), "5H", "Items")
call MatchTable(I2S('gold'), "5I", "Items")
call MatchTable(I2S('lmbr'), "5J", "Items")
call MatchTable(I2S('gfor'), "5K", "Items")
call MatchTable(I2S('guvi'), "5L", "Items")
call MatchTable(I2S('rspl'), "5M", "Items")
call MatchTable(I2S('rre1'), "5N", "Items")
call MatchTable(I2S('rre2'), "5O", "Items")
call MatchTable(I2S('gomn'), "5P", "Items")
call MatchTable(I2S('rsps'), "5Q", "Items")
call MatchTable(I2S('rspd'), "5R", "Items")
call MatchTable(I2S('rman'), "5S", "Items")
call MatchTable(I2S('rma2'), "5T", "Items")
call MatchTable(I2S('rres'), "5U", "Items")
call MatchTable(I2S('rreb'), "5V", "Items")
call MatchTable(I2S('rhe1'), "5W", "Items")
call MatchTable(I2S('rhe2'), "5X", "Items")
call MatchTable(I2S('rhe3'), "5Y", "Items")
call MatchTable(I2S('rdis'), "5Z", "Items")
call MatchTable(I2S('rwat'), "60", "Items")
call MatchTable(I2S('sclp'), "61", "Items")
call MatchTable(I2S('pclr'), "62", "Items")
call MatchTable(I2S('plcl'), "63", "Items")
call MatchTable(I2S('silk'), "64", "Items")
call MatchTable(I2S('vamp'), "65", "Items")
call MatchTable(I2S('sreg'), "66", "Items")
call MatchTable(I2S('ssan'), "67", "Items")
call MatchTable(I2S('tcas'), "68", "Items")
call MatchTable(I2S('tbsm'), "69", "Items")
call MatchTable(I2S('tfar'), "6A", "Items")
call MatchTable(I2S('tlum'), "6B", "Items")
call MatchTable(I2S('tbar'), "6C", "Items")
call MatchTable(I2S('tbak'), "6D", "Items")
call MatchTable(I2S('gldo'), "6E", "Items")
call MatchTable(I2S('wtlg'), "6F", "Items")
call MatchTable(I2S('wolg'), "6G", "Items")
call MatchTable(I2S('mgtk'), "6H", "Items")
call MatchTable(I2S('stre'), "6I", "Items")
call MatchTable(I2S('horl'), "6J", "Items")
call MatchTable(I2S('hbth'), "6K", "Items")
call MatchTable(I2S('blba'), "6L", "Items")
call MatchTable(I2S('rugt'), "6M", "Items")
call MatchTable(I2S('frhg'), "6N", "Items")
call MatchTable(I2S('gvsm'), "6O", "Items")
call MatchTable(I2S('crdt'), "6P", "Items")
call MatchTable(I2S('arsc'), "6Q", "Items")
call MatchTable(I2S('scul'), "6R", "Items")
call MatchTable(I2S('tmsc'), "6S", "Items")
call MatchTable(I2S('dtsb'), "6T", "Items")
call MatchTable(I2S('grsl'), "6U", "Items")
call MatchTable(I2S('arsh'), "6V", "Items")
call MatchTable(I2S('shdt'), "6W", "Items")
call MatchTable(I2S('shhn'), "6X", "Items")
call MatchTable(I2S('shen'), "6Y", "Items")
call MatchTable(I2S('thdm'), "6Z", "Items")
call MatchTable(I2S('stpg'), "70", "Items")
call MatchTable(I2S('shrs'), "71", "Items")
call MatchTable(I2S('bfhr'), "72", "Items")
call MatchTable(I2S('cosl'), "73", "Items")
call MatchTable(I2S('shcw'), "74", "Items")
call MatchTable(I2S('srbd'), "75", "Items")
call MatchTable(I2S('frgd'), "76", "Items")
call MatchTable(I2S('envl'), "77", "Items")
call MatchTable(I2S('rump'), "78", "Items")
call MatchTable(I2S('mort'), "79", "Items")
call MatchTable(I2S('srtl'), "7A", "Items")
call MatchTable(I2S('stwa'), "7B", "Items")
call MatchTable(I2S('klmm'), "7C", "Items")
call MatchTable(I2S('rots'), "7D", "Items")
call MatchTable(I2S('axas'), "7E", "Items")
call MatchTable(I2S('mnsf'), "7F", "Items")
call MatchTable(I2S('schl'), "7G", "Items")
call MatchTable(I2S('asbl'), "7H", "Items")
call MatchTable(I2S('kgal'), "7I", "Items")
call MatchTable(I2S('dphe'), "7J", "Items")
call MatchTable(I2S('dkfw'), "7K", "Items")
call MatchTable(I2S('dthb'), "7L", "Items")
set i = 0
set x[1] = 48 // 0
set x[2] = 48 // 0
set x[3] = 56 // 8
set x[4] = 76 // L
loop
exitwhen i > 438
set counter = counter + 1
if ((counter < 11) or ((counter > 17) and (counter < 44))) then
call MatchTable(I2S(1227882496+256*x[2]+x[1]), Num2S(x[4]) + Num2S(x[3]), "Items")
set x[3] = x[3] + 1
if (x[3] == 58) then
set x[3] = 65
elseif (x[3] == 91) then
set x[3] = 48
set x[4] = x[4] + 1
if (x[4] == 58) then
set x[4] = 65
elseif (x[4] == 91) then
set x[4] = 48
endif
endif
elseif (counter > 43) then
set counter = 0
set x[1] = 47
set x[2] = x[2] + 1
endif
set x[1] = x[1] + 1
set i = i + 1
endloop
endfunction
function SaveCode_InitHeros takes nothing returns nothing
local integer i = 0
local integer array x
local integer counter = 0
local gamecache g = GetSaveCodeGameCache()
call MatchTable(I2S('Hpal'), "01","Heros")
call MatchTable(I2S('Hamg'), "02","Heros")
call MatchTable(I2S('Hmkg'), "03","Heros")
call MatchTable(I2S('Hblm'), "04","Heros")
call MatchTable(I2S('Hapm'), "05","Heros")
call MatchTable(I2S('Hant'), "06","Heros")
call MatchTable(I2S('Hgam'), "07","Heros")
call MatchTable(I2S('Hart'), "08","Heros")
call MatchTable(I2S('Harf'), "09","Heros")
call MatchTable(I2S('Hdgo'), "0A","Heros") //
call MatchTable(I2S('Hhkl'), "0B","Heros")
call MatchTable(I2S('Hjai'), "0C","Heros")
call MatchTable(I2S('Hkal'), "0D","Heros")
call MatchTable(I2S('Hlgr'), "0E","Heros")
call MatchTable(I2S('Hpb1'), "0F","Heros")
call MatchTable(I2S('Hmgd'), "0G","Heros")
call MatchTable(I2S('Hmbr'), "0H","Heros")
call MatchTable(I2S('Hpb2'), "0I","Heros")
call MatchTable(I2S('Hvwd'), "0J","Heros")
call MatchTable(I2S('Huth'), "0K","Heros") //
call MatchTable(I2S('Obla'), "0L","Heros")
call MatchTable(I2S('Ofar'), "0M","Heros")
call MatchTable(I2S('Otch'), "0N","Heros")
call MatchTable(I2S('Oshd'), "0O","Heros")
call MatchTable(I2S('Nbbc'), "0P","Heros")
call MatchTable(I2S('Ocbh'), "0Q","Heros")
call MatchTable(I2S('Ocb2'), "0R","Heros")
call MatchTable(I2S('Nsjs'), "0S","Heros")
call MatchTable(I2S('Odrt'), "0T","Heros")
call MatchTable(I2S('Ogrh'), "0U","Heros") //
call MatchTable(I2S('Opgh'), "0V","Heros")
call MatchTable(I2S('Ogld'), "0W","Heros")
call MatchTable(I2S('Orex'), "0X","Heros")
call MatchTable(I2S('Orkn'), "0Y","Heros")
call MatchTable(I2S('Osam'), "0Z","Heros")
call MatchTable(I2S('Othr'), "10","Heros")
call MatchTable(I2S('Otcc'), "11","Heros")
call MatchTable(I2S('Udea'), "12","Heros")
call MatchTable(I2S('Ulic'), "13","Heros")
call MatchTable(I2S('Udre'), "14","Heros") //
call MatchTable(I2S('Ucrl'), "15","Heros")
call MatchTable(I2S('Nman'), "16","Heros")
call MatchTable(I2S('Uwar'), "17","Heros")
call MatchTable(I2S('Npld'), "18","Heros")
call MatchTable(I2S('Nklj'), "19","Heros")
call MatchTable(I2S('Nmag'), "1A","Heros")
call MatchTable(I2S('Uanb'), "1B","Heros")
call MatchTable(I2S('Uear'), "1C","Heros")
call MatchTable(I2S('Ubal'), "1D","Heros")
call MatchTable(I2S('Uvng'), "1E","Heros") //
call MatchTable(I2S('Udth'), "1F","Heros")
call MatchTable(I2S('Uktl'), "1G","Heros")
call MatchTable(I2S('Umal'), "1H","Heros")
call MatchTable(I2S('Usyl'), "1I","Heros")
call MatchTable(I2S('Utic'), "1J","Heros")
call MatchTable(I2S('Uvar'), "1K","Heros")
call MatchTable(I2S('Nkjx'), "1L","Heros")
call MatchTable(I2S('Uclc'), "1M","Heros")
call MatchTable(I2S('Ekee'), "1N","Heros")
call MatchTable(I2S('Emoo'), "1O","Heros") //
call MatchTable(I2S('Edem'), "1P","Heros")
call MatchTable(I2S('Ewar'), "1Q","Heros")
call MatchTable(I2S('Edmm'), "1R","Heros")
call MatchTable(I2S('Ecen'), "1S","Heros")
call MatchTable(I2S('Efur'), "1T","Heros")
call MatchTable(I2S('Ekgg'), "1U","Heros")
call MatchTable(I2S('Eill'), "1V","Heros")
call MatchTable(I2S('Eevi'), "1W","Heros")
call MatchTable(I2S('Ewrd'), "1X","Heros")
call MatchTable(I2S('Emfr'), "1Y","Heros") //
call MatchTable(I2S('Emns'), "1Z","Heros")
call MatchTable(I2S('Etyr'), "20","Heros")
call MatchTable(I2S('Eidm'), "21","Heros")
call MatchTable(I2S('Eilm'), "22","Heros")
call MatchTable(I2S('Eevm'), "23","Heros")
call MatchTable(I2S('Hvsh'), "24","Heros")
call MatchTable(I2S('Nngs'), "25","Heros")
call MatchTable(I2S('Nbst'), "26","Heros")
call MatchTable(I2S('Nbrn'), "27","Heros")
call MatchTable(I2S('Npbm'), "28","Heros") // 82
call MatchTable(I2S('Nplh'), "29","Heros")
call MatchTable(I2S('Ntin'), "2A","Heros")
call StoreInteger(g,"x3","x3",66)
call StoreInteger(g,"x4","x4",50)
call MatchHeroes(1311768576) //N
call MatchHeroes(1160773632) //E
call MatchHeroes(1429209088) //U
call MatchHeroes(1328545792) //O
call MatchHeroes(1211105280) //H
endfunction
function SaveCode_InitSpells takes nothing returns nothing
local integer i = 0
local integer array x
local integer counter = 0
local gamecache g = GetSaveCodeGameCache()
call MatchTable(I2S('AHbz'), "01","Spells")
call MatchTable(I2S('AHab'), "02","Spells")
call MatchTable(I2S('AHmt'), "03","Spells")
call MatchTable(I2S('AHwe'), "04","Spells")
call MatchTable(I2S('ANst'), "05","Spells")
call MatchTable(I2S('ANsg'), "06","Spells")
call MatchTable(I2S('ANsq'), "07","Spells")
call MatchTable(I2S('ANsw'), "08","Spells")
call MatchTable(I2S('AOww'), "09","Spells")
call MatchTable(I2S('AOcr'), "0A","Spells")
call MatchTable(I2S('AOmi'), "0B","Spells")
call MatchTable(I2S('AOwk'), "0C","Spells")
call MatchTable(I2S('AHbn'), "0D","Spells")
call MatchTable(I2S('AHfs'), "0E","Spells")
call MatchTable(I2S('AHdr'), "0F","Spells")
call MatchTable(I2S('AHpx'), "0G","Spells")
call MatchTable(I2S('AUcb'), "0H","Spells")
call MatchTable(I2S('AUim'), "0I","Spells")
call MatchTable(I2S('AUls'), "0J","Spells")
call MatchTable(I2S('AUts'), "0K","Spells")
call MatchTable(I2S('ANba'), "0L","Spells")
call MatchTable(I2S('ANch'), "0M","Spells")
call MatchTable(I2S('ANdr'), "0N","Spells")
call MatchTable(I2S('ANsi'), "0O","Spells")
call MatchTable(I2S('AUan'), "0P","Spells")
call MatchTable(I2S('AUdc'), "0Q","Spells")
call MatchTable(I2S('AUdp'), "0R","Spells")
call MatchTable(I2S('AUau'), "0S","Spells")
call MatchTable(I2S('AEev'), "0T","Spells")
call MatchTable(I2S('AEim'), "0U","Spells")
call MatchTable(I2S('AEmb'), "0V","Spells")
call MatchTable(I2S('AEme'), "0W","Spells")
call MatchTable(I2S('AUsl'), "0X","Spells")
call MatchTable(I2S('AUav'), "0Y","Spells")
call MatchTable(I2S('AUcs'), "0Z","Spells")
call MatchTable(I2S('AUin'), "10","Spells")
call MatchTable(I2S('AOcl'), "11","Spells")
call MatchTable(I2S('AOeq'), "12","Spells")
call MatchTable(I2S('AOfs'), "13","Spells")
call MatchTable(I2S('AOsf'), "14","Spells")
call MatchTable(I2S('AEer'), "15","Spells")
call MatchTable(I2S('AEfn'), "16","Spells")
call MatchTable(I2S('AEah'), "17","Spells")
call MatchTable(I2S('AEtq'), "18","Spells")
call MatchTable(I2S('AUdr'), "19","Spells")
call MatchTable(I2S('AUdd'), "1A","Spells")
call MatchTable(I2S('AUfa'), "1B","Spells")
call MatchTable(I2S('AUfu'), "1C","Spells")
call MatchTable(I2S('AUfn'), "1D","Spells")
call MatchTable(I2S('AHav'), "1E","Spells")
call MatchTable(I2S('AHbh'), "1F","Spells")
call MatchTable(I2S('AHtb'), "1G","Spells")
call MatchTable(I2S('AHtc'), "1H","Spells")
call MatchTable(I2S('ANfl'), "1I","Spells")
call MatchTable(I2S('ANfa'), "1J","Spells")
call MatchTable(I2S('ANto'), "1K","Spells")
call MatchTable(I2S('ANms'), "1L","Spells")
call MatchTable(I2S('AHad'), "1M","Spells")
call MatchTable(I2S('AHds'), "1N","Spells")
call MatchTable(I2S('AHhb'), "1O","Spells")
call MatchTable(I2S('AHre'), "1P","Spells")
call MatchTable(I2S('ANbf'), "1Q","Spells")
call MatchTable(I2S('ANdb'), "1R","Spells")
call MatchTable(I2S('ANdh'), "1S","Spells")
call MatchTable(I2S('ANef'), "1T","Spells")
call MatchTable(I2S('ANdo'), "1U","Spells")
call MatchTable(I2S('ANht'), "1V","Spells")
call MatchTable(I2S('ANca'), "1W","Spells")
call MatchTable(I2S('ANrf'), "1X","Spells")
call MatchTable(I2S('AHfa'), "1Y","Spells")
call MatchTable(I2S('AEst'), "1Z","Spells")
call MatchTable(I2S('AEsf'), "20","Spells")
call MatchTable(I2S('AEar'), "21","Spells")
call MatchTable(I2S('AOae'), "22","Spells")
call MatchTable(I2S('AOre'), "23","Spells")
call MatchTable(I2S('AOsh'), "24","Spells")
call MatchTable(I2S('AOws'), "25","Spells")
call MatchTable(I2S('AOhw'), "26","Spells")
call MatchTable(I2S('AOhx'), "27","Spells")
call MatchTable(I2S('AOsw'), "28","Spells")
call MatchTable(I2S('AOvd'), "29","Spells")
call MatchTable(I2S('AEbl'), "2A","Spells")
call MatchTable(I2S('AEfk'), "2B","Spells")
call MatchTable(I2S('AEsh'), "2C","Spells")
call MatchTable(I2S('AEsv'), "2D","Spells")
call MatchTable(I2S('ANin'), "2E","Spells")
call MatchTable(I2S('SNin'), "2F","Spells")
call MatchTable(I2S('ANfb'), "2G","Spells")
call MatchTable(I2S('ANfd'), "2H","Spells")
call MatchTable(I2S('ACfd'), "2I","Spells")
call MatchTable(I2S('ACf3'), "2J","Spells")
call MatchTable(I2S('ANdp'), "2K","Spells")
call MatchTable(I2S('ANrc'), "2L","Spells")
call MatchTable(I2S('ANr3'), "2M","Spells")
call MatchTable(I2S('AEsb'), "2N","Spells")
call MatchTable(I2S('ANrn'), "2O","Spells")
call MatchTable(I2S('ANdc'), "2P","Spells")
call MatchTable(I2S('SNdc'), "2Q","Spells")
call MatchTable(I2S('ANsl'), "2R","Spells")
call MatchTable(I2S('AEIl'), "2S","Spells")
call MatchTable(I2S('AEvi'), "2T","Spells")
call MatchTable(I2S('SNeq'), "2U","Spells")
call MatchTable(I2S('SNdd'), "2V","Spells")
call MatchTable(I2S('ANmo'), "2W","Spells")
call MatchTable(I2S('AEpa'), "2X","Spells")
call MatchTable(I2S('ANwm'), "2Y","Spells")
call MatchTable(I2S('AHca'), "2Z","Spells")
call MatchTable(I2S('ANbr'), "30","Spells")
call MatchTable(I2S('Arsg'), "31","Spells")
call MatchTable(I2S('Aamk'), "32","Spells")
call MatchTable(I2S('Arsq'), "33","Spells")
call MatchTable(I2S('Arsp'), "34","Spells")
call MatchTable(I2S('ANsb'), "35","Spells")
call MatchTable(I2S('ANhw'), "36","Spells")
call MatchTable(I2S('Arsw'), "37","Spells")
call MatchTable(I2S('ANhx'), "38","Spells")
call MatchTable(I2S('AOls'), "39","Spells")
call MatchTable(I2S('ANcf'), "3A","Spells")
call MatchTable(I2S('Acdb'), "3B","Spells")
call MatchTable(I2S('Acdh'), "3C","Spells")
call MatchTable(I2S('Acef'), "3D","Spells")
call MatchTable(I2S('AOr2'), "3E","Spells")
call MatchTable(I2S('AOr3'), "3F","Spells")
call MatchTable(I2S('AOs2'), "3G","Spells")
call MatchTable(I2S('AOw2'), "3H","Spells")
call MatchTable(I2S('ANcl'), "3I","Spells")
call MatchTable(I2S('Aadm'), "3J","Spells")
call MatchTable(I2S('Andm'), "3K","Spells")
call MatchTable(I2S('ACdm'), "3L","Spells")
call MatchTable(I2S('ACd2'), "3M","Spells")
call MatchTable(I2S('Aabs'), "3N","Spells")
call MatchTable(I2S('Aaha'), "3O","Spells")
call MatchTable(I2S('ANav'), "3P","Spells")
call MatchTable(I2S('Aalr'), "3Q","Spells")
call MatchTable(I2S('Aall'), "3R","Spells")
call MatchTable(I2S('Aast'), "3S","Spells")
call MatchTable(I2S('ACad'), "3T","Spells")
call MatchTable(I2S('Aams'), "3U","Spells")
call MatchTable(I2S('ACam'), "3V","Spells")
//call MatchTable(I2S('Aatk'), "3W","Spells")
call MatchTable(I2S('ACba'), "3X","Spells")
call MatchTable(I2S('ACac'), "3Y","Spells")
call MatchTable(I2S('ACav'), "3Z","Spells")
call MatchTable(I2S('SCae'), "40","Spells")
call MatchTable(I2S('Aap1'), "41","Spells")
call MatchTable(I2S('Aap2'), "42","Spells")
call MatchTable(I2S('Aap3'), "43","Spells")
call MatchTable(I2S('Aap4'), "44","Spells")
call MatchTable(I2S('Aoar'), "45","Spells")
call MatchTable(I2S('Aabr'), "46","Spells")
call MatchTable(I2S('Aasl'), "47","Spells")
call MatchTable(I2S('ACat'), "48","Spells")
call MatchTable(I2S('Aakb'), "49","Spells")
call MatchTable(I2S('Aave'), "4A","Spells")
call MatchTable(I2S('Aawa'), "4B","Spells")
call MatchTable(I2S('Abof'), "4C","Spells")
call MatchTable(I2S('ACbn'), "4D","Spells")
call MatchTable(I2S('ACbh'), "4E","Spells")
call MatchTable(I2S('ANbh'), "4F","Spells")
call MatchTable(I2S('ANb2'), "4G","Spells")
call MatchTable(I2S('Abtl'), "4H","Spells")
call MatchTable(I2S('Sbtl'), "4I","Spells")
call MatchTable(I2S('Abrf'), "4J","Spells")
call MatchTable(I2S('Absk'), "4K","Spells")
call MatchTable(I2S('Sbsk'), "4L","Spells")
call MatchTable(I2S('ACbk'), "4M","Spells")
call MatchTable(I2S('Abds'), "4N","Spells")
call MatchTable(I2S('Abdl'), "4O","Spells")
call MatchTable(I2S('Abgs'), "4P","Spells")
call MatchTable(I2S('Abgl'), "4Q","Spells")
call MatchTable(I2S('Abgm'), "4R","Spells")
call MatchTable(I2S('ANbl'), "4S","Spells")
call MatchTable(I2S('ACbz'), "4T","Spells")
call MatchTable(I2S('Ablo'), "4U","Spells")
call MatchTable(I2S('ACbl'), "4V","Spells")
call MatchTable(I2S('ACbb'), "4W","Spells")
call MatchTable(I2S('ACbc'), "4X","Spells")
call MatchTable(I2S('ACbf'), "4Y","Spells")
call MatchTable(I2S('ANbu'), "4Z","Spells")
call MatchTable(I2S('AHbu'), "50","Spells")
call MatchTable(I2S('AObu'), "51","Spells")
call MatchTable(I2S('AEbu'), "52","Spells")
call MatchTable(I2S('AUbu'), "53","Spells")
call MatchTable(I2S('AGbu'), "54","Spells")
call MatchTable(I2S('Abur'), "55","Spells")
call MatchTable(I2S('Abu2'), "56","Spells")
call MatchTable(I2S('Abu3'), "57","Spells")
call MatchTable(I2S('Abu5'), "58","Spells")
call MatchTable(I2S('Abdt'), "59","Spells")
call MatchTable(I2S('Acan'), "5A","Spells")
call MatchTable(I2S('Acn2'), "5B","Spells")
call MatchTable(I2S('ACcn'), "5C","Spells")
call MatchTable(I2S('Abun'), "5D","Spells")
call MatchTable(I2S('Advc'), "5E","Spells")
call MatchTable(I2S('Sch2'), "5F","Spells")
call MatchTable(I2S('Sch5'), "5G","Spells")
call MatchTable(I2S('Sch4'), "5H","Spells")
call MatchTable(I2S('Sch3'), "5I","Spells")
call MatchTable(I2S('Aenc'), "5J","Spells")
call MatchTable(I2S('Achd'), "5K","Spells")
call MatchTable(I2S('ACca'), "5L","Spells")
call MatchTable(I2S('ACcv'), "5M","Spells")
call MatchTable(I2S('ACc2'), "5N","Spells")
call MatchTable(I2S('ACc3'), "5O","Spells")
call MatchTable(I2S('ACcl'), "5P","Spells")
call MatchTable(I2S('Ache'), "5Q","Spells")
call MatchTable(I2S('Sca1'), "5R","Spells")
call MatchTable(I2S('Sca2'), "5S","Spells")
call MatchTable(I2S('Sca3'), "5T","Spells")
call MatchTable(I2S('Sca4'), "5U","Spells")
call MatchTable(I2S('Sca5'), "5V","Spells")
call MatchTable(I2S('Sca6'), "5W","Spells")
call MatchTable(I2S('Achl'), "5X","Spells")
call MatchTable(I2S('ACch'), "5Y","Spells")
call MatchTable(I2S('ACce'), "5Z","Spells")
call MatchTable(I2S('Aclf'), "60","Spells")
call MatchTable(I2S('ACcw'), "61","Spells")
call MatchTable(I2S('Acmg'), "62","Spells")
call MatchTable(I2S('Acpf'), "63","Spells")
call MatchTable(I2S('Acor'), "64","Spells")
call MatchTable(I2S('Acoa'), "65","Spells")
call MatchTable(I2S('Acoh'), "66","Spells")
call MatchTable(I2S('Aco2'), "67","Spells")
call MatchTable(I2S('Aco3'), "68","Spells")
call MatchTable(I2S('ACsp'), "69","Spells")
call MatchTable(I2S('Acri'), "6A","Spells")
call MatchTable(I2S('Scri'), "6B","Spells")
call MatchTable(I2S('ACcr'), "6C","Spells")
call MatchTable(I2S('ACct'), "6D","Spells")
call MatchTable(I2S('Acrs'), "6E","Spells")
call MatchTable(I2S('ACcs'), "6F","Spells")
call MatchTable(I2S('Acyc'), "6G","Spells")
call MatchTable(I2S('Acny'), "6H","Spells")
call MatchTable(I2S('ACcy'), "6I","Spells")
call MatchTable(I2S('SCc1'), "6J","Spells")
call MatchTable(I2S('ACdc'), "6K","Spells")
call MatchTable(I2S('Adda'), "6L","Spells")
call MatchTable(I2S('Amnx'), "6M","Spells")
call MatchTable(I2S('Amnz'), "6N","Spells")
call MatchTable(I2S('Adec'), "6O","Spells")
call MatchTable(I2S('Adef'), "6P","Spells")
call MatchTable(I2S('Adt1'), "6Q","Spells")
call MatchTable(I2S('Atru'), "6R","Spells")
call MatchTable(I2S('Adtg'), "6S","Spells")
call MatchTable(I2S('ANtr'), "6T","Spells")
call MatchTable(I2S('Agyv'), "6U","Spells")
call MatchTable(I2S('Adts'), "6V","Spells")
call MatchTable(I2S('Adtn'), "6W","Spells")
call MatchTable(I2S('Adev'), "6X","Spells")
call MatchTable(I2S('ACdv'), "6Y","Spells")
call MatchTable(I2S('Advm'), "6Z","Spells")
call MatchTable(I2S('ACde'), "70","Spells")
call MatchTable(I2S('Adch'), "71","Spells")
call MatchTable(I2S('Adcn'), "72","Spells")
call MatchTable(I2S('Adis'), "73","Spells")
call MatchTable(I2S('Adsm'), "74","Spells")
call MatchTable(I2S('ACds'), "75","Spells")
call MatchTable(I2S('ACdr'), "76","Spells")
call MatchTable(I2S('Adri'), "77","Spells")
call MatchTable(I2S('Adro'), "78","Spells")
call MatchTable(I2S('Sdro'), "79","Spells")
call MatchTable(I2S('Atdp'), "7A","Spells")
call MatchTable(I2S('Aeat'), "7B","Spells")
call MatchTable(I2S('ANen'), "7C","Spells")
call MatchTable(I2S('Aens'), "7D","Spells")
call MatchTable(I2S('ACen'), "7E","Spells")
call MatchTable(I2S('Aent'), "7F","Spells")
call MatchTable(I2S('Aegm'), "7G","Spells")
call MatchTable(I2S('Aenr'), "7H","Spells")
call MatchTable(I2S('Aenw'), "7I","Spells")
call MatchTable(I2S('Aetl'), "7J","Spells")
call MatchTable(I2S('Aetf'), "7K","Spells")
call MatchTable(I2S('ACev'), "7L","Spells")
call MatchTable(I2S('ACes'), "7M","Spells")
call MatchTable(I2S('Aexh'), "7N","Spells")
call MatchTable(I2S('Afae'), "7O","Spells")
call MatchTable(I2S('Afa2'), "7P","Spells")
call MatchTable(I2S('ACff'), "7Q","Spells")
call MatchTable(I2S('Afbk'), "7R","Spells")
call MatchTable(I2S('Afbt'), "7S","Spells")
call MatchTable(I2S('Afbb'), "7T","Spells")
call MatchTable(I2S('ACsf'), "7U","Spells")
call MatchTable(I2S('ACs9'), "7V","Spells")
call MatchTable(I2S('ACs8'), "7W","Spells")
call MatchTable(I2S('ACs7'), "7X","Spells")
call MatchTable(I2S('Afod'), "7Y","Spells")
call MatchTable(I2S('Awfb'), "7Z","Spells")
call MatchTable(I2S('ACfb'), "80","Spells")
call MatchTable(I2S('Aflk'), "81","Spells")
call MatchTable(I2S('Afla'), "82","Spells")
call MatchTable(I2S('ACfs'), "83","Spells")
call MatchTable(I2S('ANfs'), "84","Spells")
call MatchTable(I2S('ACfr'), "85","Spells")
call MatchTable(I2S('ACfl'), "86","Spells")
call MatchTable(I2S('Afsh'), "87","Spells")
call MatchTable(I2S('Afrz'), "88","Spells")
call MatchTable(I2S('Afzy'), "89","Spells")
call MatchTable(I2S('ACfa'), "8A","Spells")
call MatchTable(I2S('ACf2'), "8B","Spells")
call MatchTable(I2S('ACfu'), "8C","Spells")
call MatchTable(I2S('Afra'), "8D","Spells")
call MatchTable(I2S('Afrb'), "8E","Spells")
call MatchTable(I2S('ACfn'), "8F","Spells")
call MatchTable(I2S('ACcb'), "8G","Spells")
call MatchTable(I2S('Agho'), "8H","Spells")
call MatchTable(I2S('Aeth'), "8I","Spells")
call MatchTable(I2S('Agld'), "8J","Spells")
call MatchTable(I2S('Agra'), "8K","Spells")
call MatchTable(I2S('Agyd'), "8L","Spells")
call MatchTable(I2S('Agyb'), "8M","Spells")
call MatchTable(I2S('Assk'), "8N","Spells")
call MatchTable(I2S('Ansk'), "8O","Spells")
call MatchTable(I2S('Ahar'), "8P","Spells")
call MatchTable(I2S('ANha'), "8Q","Spells")
call MatchTable(I2S('Ahrl'), "8R","Spells")
call MatchTable(I2S('Ahr3'), "8S","Spells")
call MatchTable(I2S('Ahr2'), "8T","Spells")
call MatchTable(I2S('Ahea'), "8U","Spells")
call MatchTable(I2S('Anhe'), "8V","Spells")
call MatchTable(I2S('Anh1'), "8W","Spells")
call MatchTable(I2S('Anh2'), "8X","Spells")
call MatchTable(I2S('Ahwd'), "8Y","Spells")
call MatchTable(I2S('AChw'), "8Z","Spells")
call MatchTable(I2S('AChv'), "90","Spells")
call MatchTable(I2S('Ahnl'), "91","Spells")
//call MatchTable(I2S('AHer'), "92","Spells")
call MatchTable(I2S('AChx'), "93","Spells")
call MatchTable(I2S('Acht'), "94","Spells")
call MatchTable(I2S('ACim'), "95","Spells")
call MatchTable(I2S('ACmp'), "96","Spells")
call MatchTable(I2S('Aimp'), "97","Spells")
call MatchTable(I2S('Ainf'), "98","Spells")
call MatchTable(I2S('ACif'), "99","Spells")
call MatchTable(I2S('Aivs'), "9A","Spells")
//call MatchTable(I2S('AInv'), "9B","Spells")
call MatchTable(I2S('Apak'), "9C","Spells")
call MatchTable(I2S('Aion'), "9D","Spells")
call MatchTable(I2S('Aihn'), "9E","Spells")
call MatchTable(I2S('Aien'), "9F","Spells")
call MatchTable(I2S('Aiun'), "9G","Spells")
call MatchTable(I2S('Avul'), "9H","Spells")
call MatchTable(I2S('Alit'), "9I","Spells")
call MatchTable(I2S('Alsh'), "9J","Spells")
call MatchTable(I2S('ACls'), "9K","Spells")
call MatchTable(I2S('Aliq'), "9L","Spells")
call MatchTable(I2S('Aloa'), "9M","Spells")
call MatchTable(I2S('Sloa'), "9N","Spells")
call MatchTable(I2S('Slo2'), "9O","Spells")
call MatchTable(I2S('Slo3'), "9P","Spells")
call MatchTable(I2S('Atlp'), "9Q","Spells")
call MatchTable(I2S('Aloc'), "9R","Spells")
call MatchTable(I2S('Amdf'), "9S","Spells")
call MatchTable(I2S('Amim'), "9T","Spells")
call MatchTable(I2S('ACmi'), "9U","Spells")
call MatchTable(I2S('ACm2'), "9V","Spells")
call MatchTable(I2S('ACm3'), "9W","Spells")
call MatchTable(I2S('Amls'), "9X","Spells")
call MatchTable(I2S('Ambt'), "9Y","Spells")
call MatchTable(I2S('Amb2'), "9Z","Spells")
call MatchTable(I2S('Amnb'), "A0","Spells")
call MatchTable(I2S('Ambd'), "A1","Spells")
call MatchTable(I2S('Ambb'), "A2","Spells")
call MatchTable(I2S('Amfl'), "A3","Spells")
call MatchTable(I2S('ACmf'), "A4","Spells")
call MatchTable(I2S('Amed'), "A5","Spells")
call MatchTable(I2S('Amel'), "A6","Spells")
call MatchTable(I2S('Amil'), "A7","Spells")
call MatchTable(I2S('Amic'), "A8","Spells")
call MatchTable(I2S('ANmr'), "A9","Spells")
call MatchTable(I2S('Amin'), "AA","Spells")
call MatchTable(I2S('ACmo'), "AB","Spells")
call MatchTable(I2S('Amgl'), "AC","Spells")
call MatchTable(I2S('Amgr'), "AD","Spells")
//call MatchTable(I2S('Amov'), "AE","Spells")
call MatchTable(I2S('Aneu'), "AF","Spells")
call MatchTable(I2S('Ane2'), "AG","Spells")
call MatchTable(I2S('Andt'), "AH","Spells")
call MatchTable(I2S('ANre'), "AI","Spells")
call MatchTable(I2S('ACnr'), "AJ","Spells")
call MatchTable(I2S('Ansp'), "AK","Spells")
call MatchTable(I2S('Afak'), "AL","Spells")
call MatchTable(I2S('ANak'), "AM","Spells")
call MatchTable(I2S('Afir'), "AN","Spells")
call MatchTable(I2S('Afih'), "AO","Spells")
call MatchTable(I2S('Afio'), "AP","Spells")
call MatchTable(I2S('Afin'), "AQ","Spells")
call MatchTable(I2S('Afiu'), "AR","Spells")
call MatchTable(I2S('ANpa'), "AS","Spells")
call MatchTable(I2S('ACpa'), "AT","Spells")
call MatchTable(I2S('ANpi'), "AU","Spells")
call MatchTable(I2S('Apmf'), "AV","Spells")
call MatchTable(I2S('Apig'), "AW","Spells")
call MatchTable(I2S('Apiv'), "AX","Spells")
call MatchTable(I2S('Apsh'), "AY","Spells")
call MatchTable(I2S('Aphx'), "AZ","Spells")
call MatchTable(I2S('Apxf'), "B0","Spells")
call MatchTable(I2S('Apts'), "B1","Spells")
call MatchTable(I2S('Apoi'), "B2","Spells")
call MatchTable(I2S('Aply'), "B3","Spells")
call MatchTable(I2S('ACpy'), "B4","Spells")
call MatchTable(I2S('Apos'), "B5","Spells")
call MatchTable(I2S('ACps'), "B6","Spells")
call MatchTable(I2S('Awar'), "B7","Spells")
call MatchTable(I2S('ACpv'), "B8","Spells")
call MatchTable(I2S('Apit'), "B9","Spells")
call MatchTable(I2S('Aprg'), "BA","Spells")
call MatchTable(I2S('ACpu'), "BB","Spells")
call MatchTable(I2S('ACrf'), "BC","Spells")
call MatchTable(I2S('ACrg'), "BD","Spells")
call MatchTable(I2S('Arai'), "BE","Spells")
call MatchTable(I2S('ACrd'), "BF","Spells")
call MatchTable(I2S('ARal'), "BG","Spells")
call MatchTable(I2S('Arav'), "BH","Spells")
call MatchTable(I2S('Amrf'), "BI","Spells")
call MatchTable(I2S('ACrn'), "BJ","Spells")
call MatchTable(I2S('ANr2'), "BK","Spells")
call MatchTable(I2S('Arbr'), "BL","Spells")
call MatchTable(I2S('Arej'), "BM","Spells")
call MatchTable(I2S('ACrj'), "BN","Spells")
call MatchTable(I2S('ACr2'), "BO","Spells")
call MatchTable(I2S('Aren'), "BP","Spells")
call MatchTable(I2S('Ahrp'), "BQ","Spells")
call MatchTable(I2S('Arep'), "BR","Spells")
call MatchTable(I2S('Arpb'), "BS","Spells")
call MatchTable(I2S('Arpl'), "BT","Spells")
call MatchTable(I2S('Arpm'), "BU","Spells")
call MatchTable(I2S('Arsk'), "BV","Spells")
call MatchTable(I2S('ACrk'), "BW","Spells")
call MatchTable(I2S('ACsk'), "BX","Spells")
call MatchTable(I2S('Arst'), "BY","Spells")
call MatchTable(I2S('Argd'), "BZ","Spells")
call MatchTable(I2S('Argl'), "C0","Spells")
call MatchTable(I2S('Arlm'), "C1","Spells")
call MatchTable(I2S('AHta'), "C2","Spells")
call MatchTable(I2S('Arng'), "C3","Spells")
call MatchTable(I2S('Arev'), "C4","Spells")
call MatchTable(I2S('Aroa'), "C5","Spells")
call MatchTable(I2S('Ara2'), "C6","Spells")
call MatchTable(I2S('ACr1'), "C7","Spells")
call MatchTable(I2S('ACro'), "C8","Spells")
call MatchTable(I2S('Aroc'), "C9","Spells")
call MatchTable(I2S('Aro1'), "CA","Spells")
call MatchTable(I2S('Aro2'), "CB","Spells")
call MatchTable(I2S('Asac'), "CC","Spells")
call MatchTable(I2S('Asal'), "CD","Spells")
call MatchTable(I2S('Alam'), "CE","Spells")
call MatchTable(I2S('ACsa'), "CF","Spells")
call MatchTable(I2S('Asds'), "CG","Spells")
call MatchTable(I2S('Asid'), "CH","Spells")
call MatchTable(I2S('Asud'), "CI","Spells")
call MatchTable(I2S('Aesn'), "CJ","Spells")
call MatchTable(I2S('Aesr'), "CK","Spells")
call MatchTable(I2S('Aeye'), "CL","Spells")
call MatchTable(I2S('ACtn'), "CM","Spells")
call MatchTable(I2S('Ashm'), "CN","Spells")
call MatchTable(I2S('Sshm'), "CO","Spells")
call MatchTable(I2S('Ahid'), "CP","Spells")
call MatchTable(I2S('ACss'), "CQ","Spells")
call MatchTable(I2S('ACsh'), "CR","Spells")
call MatchTable(I2S('ACst'), "CS","Spells")
call MatchTable(I2S('ANsh'), "CT","Spells")
call MatchTable(I2S('ACsi'), "CU","Spells")
call MatchTable(I2S('ACsm'), "CV","Spells")
call MatchTable(I2S('ACsl'), "CW","Spells")
call MatchTable(I2S('Asla'), "CX","Spells")
call MatchTable(I2S('Aslo'), "CY","Spells")
call MatchTable(I2S('ACsw'), "CZ","Spells")
call MatchTable(I2S('Aspo'), "D0","Spells")
call MatchTable(I2S('Asod'), "D1","Spells")
call MatchTable(I2S('Assp'), "D2","Spells")
call MatchTable(I2S('Aspd'), "D3","Spells")
call MatchTable(I2S('Aspy'), "D4","Spells")
call MatchTable(I2S('Aspt'), "D5","Spells")
call MatchTable(I2S('Asps'), "D6","Spells")
call MatchTable(I2S('Asph'), "D7","Spells")
call MatchTable(I2S('Asp1'), "D8","Spells")
call MatchTable(I2S('Asp2'), "D9","Spells")
call MatchTable(I2S('Asp3'), "DA","Spells")
call MatchTable(I2S('Asp4'), "DB","Spells")
call MatchTable(I2S('Asp5'), "DC","Spells")
call MatchTable(I2S('Asp6'), "DD","Spells")
call MatchTable(I2S('Aspa'), "DE","Spells")
call MatchTable(I2S('Aspi'), "DF","Spells")
call MatchTable(I2S('Aspl'), "DG","Spells")
call MatchTable(I2S('Astd'), "DH","Spells")
call MatchTable(I2S('Asta'), "DI","Spells")
call MatchTable(I2S('Astn'), "DJ","Spells")
call MatchTable(I2S('Asth'), "DK","Spells")
call MatchTable(I2S('Asb1'), "DL","Spells")
call MatchTable(I2S('Asb2'), "DM","Spells")
call MatchTable(I2S('Asb3'), "DN","Spells")
call MatchTable(I2S('Aslp'), "DO","Spells")
call MatchTable(I2S('ACwe'), "DP","Spells")
call MatchTable(I2S('Attu'), "DQ","Spells")
call MatchTable(I2S('Srtt'), "DR","Spells")
call MatchTable(I2S('Atau'), "DS","Spells")
call MatchTable(I2S('ANta'), "DT","Spells")
call MatchTable(I2S('ANth'), "DU","Spells")
call MatchTable(I2S('ANt2'), "DV","Spells")
call MatchTable(I2S('ACah'), "DW","Spells")
call MatchTable(I2S('ACtb'), "DX","Spells")
call MatchTable(I2S('ACtc'), "DY","Spells")
call MatchTable(I2S('ACt2'), "DZ","Spells")
call MatchTable(I2S('Atdg'), "E0","Spells")
call MatchTable(I2S('Atsp'), "E1","Spells")
call MatchTable(I2S('Atwa'), "E2","Spells")
call MatchTable(I2S('Atol'), "E3","Spells")
call MatchTable(I2S('Ault'), "E4","Spells")
call MatchTable(I2S('ACua'), "E5","Spells")
call MatchTable(I2S('Auhf'), "E6","Spells")
call MatchTable(I2S('Suhf'), "E7","Spells")
call MatchTable(I2S('ACuf'), "E8","Spells")
call MatchTable(I2S('Auco'), "E9","Spells")
call MatchTable(I2S('Auns'), "EA","Spells")
call MatchTable(I2S('SCva'), "EB","Spells")
call MatchTable(I2S('ACvp'), "EC","Spells")
call MatchTable(I2S('Avng'), "ED","Spells")
call MatchTable(I2S('Awan'), "EE","Spells")
call MatchTable(I2S('Awrs'), "EF","Spells")
call MatchTable(I2S('Awrg'), "EG","Spells")
call MatchTable(I2S('Awrh'), "EH","Spells")
call MatchTable(I2S('ANwk'), "EI","Spells")
call MatchTable(I2S('Awha'), "EJ","Spells")
call MatchTable(I2S('Awh2'), "EK","Spells")
call MatchTable(I2S('Aven'), "EL","Spells")
call MatchTable(I2S('ACvs'), "EM","Spells")
call MatchTable(I2S('Awrp'), "EN","Spells")
call MatchTable(I2S('Aweb'), "EO","Spells")
call MatchTable(I2S('ACwb'), "EP","Spells")
call MatchTable(I2S('AIa1'), "EQ","Spells")
call MatchTable(I2S('AIa3'), "ER","Spells")
call MatchTable(I2S('AIa4'), "ES","Spells")
call MatchTable(I2S('AIa6'), "ET","Spells")
call MatchTable(I2S('AIx5'), "EU","Spells")
call MatchTable(I2S('AIx1'), "EV","Spells")
call MatchTable(I2S('AIx2'), "EW","Spells")
call MatchTable(I2S('AIs1'), "EX","Spells")
call MatchTable(I2S('AIs3'), "EY","Spells")
call MatchTable(I2S('AIs4'), "EZ","Spells")
call MatchTable(I2S('AIs6'), "F0","Spells")
call MatchTable(I2S('AIi1'), "F1","Spells")
call MatchTable(I2S('AIi3'), "F2","Spells")
call MatchTable(I2S('AIi4'), "F3","Spells")
call MatchTable(I2S('AIi6'), "F4","Spells")
call MatchTable(I2S('AIxm'), "F5","Spells")
call MatchTable(I2S('AIam'), "F6","Spells")
call MatchTable(I2S('AIim'), "F7","Spells")
call MatchTable(I2S('AIsm'), "F8","Spells")
call MatchTable(I2S('AIgm'), "F9","Spells")
call MatchTable(I2S('AItm'), "FA","Spells")
call MatchTable(I2S('AInm'), "FB","Spells")
call MatchTable(I2S('AIaa'), "FC","Spells")
call MatchTable(I2S('AIat'), "FD","Spells")
call MatchTable(I2S('AIt6'), "FE","Spells")
call MatchTable(I2S('AIt9'), "FF","Spells")
call MatchTable(I2S('AItc'), "FG","Spells")
call MatchTable(I2S('AItf'), "FH","Spells")
call MatchTable(I2S('AItg'), "FI","Spells")
call MatchTable(I2S('AIth'), "FJ","Spells")
call MatchTable(I2S('AIti'), "FK","Spells")
call MatchTable(I2S('AItj'), "FL","Spells")
call MatchTable(I2S('AItk'), "FM","Spells")
call MatchTable(I2S('AItl'), "FN","Spells")
call MatchTable(I2S('AItn'), "FO","Spells")
call MatchTable(I2S('AIva'), "FP","Spells")
call MatchTable(I2S('AIbk'), "FQ","Spells")
call MatchTable(I2S('AIbl'), "FR","Spells")
call MatchTable(I2S('AIbg'), "FS","Spells")
call MatchTable(I2S('AIbt'), "FT","Spells")
call MatchTable(I2S('AIbb'), "FU","Spells")
call MatchTable(I2S('AIbf'), "FV","Spells")
call MatchTable(I2S('AIbr'), "FW","Spells")
call MatchTable(I2S('AIbs'), "FX","Spells")
call MatchTable(I2S('AIbh'), "FY","Spells")
call MatchTable(I2S('AIcy'), "FZ","Spells")
call MatchTable(I2S('AId1'), "G0","Spells")
call MatchTable(I2S('AId2'), "G1","Spells")
call MatchTable(I2S('AId3'), "G2","Spells")
call MatchTable(I2S('AId4'), "G3","Spells")
call MatchTable(I2S('AId5'), "G4","Spells")
call MatchTable(I2S('AIgf'), "G5","Spells")
call MatchTable(I2S('AIgu'), "G6","Spells")
call MatchTable(I2S('AIem'), "G7","Spells")
call MatchTable(I2S('AIe2'), "G8","Spells")
call MatchTable(I2S('AIfd'), "G9","Spells")
call MatchTable(I2S('AIff'), "GA","Spells")
call MatchTable(I2S('AIfr'), "GB","Spells")
call MatchTable(I2S('AIfu'), "GC","Spells")
call MatchTable(I2S('AIfh'), "GD","Spells")
call MatchTable(I2S('AIfs'), "GE","Spells")
call MatchTable(I2S('AIir'), "GF","Spells")
call MatchTable(I2S('AIuw'), "GG","Spells")
call MatchTable(I2S('AIfl'), "GH","Spells")
call MatchTable(I2S('AIfm'), "GI","Spells")
call MatchTable(I2S('AIfo'), "GJ","Spells")
call MatchTable(I2S('AIfn'), "GK","Spells")
call MatchTable(I2S('AIfe'), "GL","Spells")
call MatchTable(I2S('AIfx'), "GM","Spells")
call MatchTable(I2S('AIfa'), "GN","Spells")
call MatchTable(I2S('AIin'), "GO","Spells")
call MatchTable(I2S('AIlm'), "GP","Spells")
call MatchTable(I2S('AIlp'), "GQ","Spells")
call MatchTable(I2S('AIlf'), "GR","Spells")
call MatchTable(I2S('AIl1'), "GS","Spells")
call MatchTable(I2S('AIl2'), "GT","Spells")
call MatchTable(I2S('AIms'), "GU","Spells")
call MatchTable(I2S('ANbs'), "GV","Spells")
call MatchTable(I2S('AIdf'), "GW","Spells")
call MatchTable(I2S('AIcb'), "GX","Spells")
call MatchTable(I2S('AIdn'), "GY","Spells")
call MatchTable(I2S('AIfb'), "GZ","Spells")
call MatchTable(I2S('AIgd'), "H0","Spells")
call MatchTable(I2S('AIzb'), "H1","Spells")
call MatchTable(I2S('AIob'), "H2","Spells")
call MatchTable(I2S('AIll'), "H3","Spells")
call MatchTable(I2S('AIlb'), "H4","Spells")
call MatchTable(I2S('AIsb'), "H5","Spells")
call MatchTable(I2S('AIpb'), "H6","Spells")
call MatchTable(I2S('Apo2'), "H7","Spells")
call MatchTable(I2S('AInd'), "H8","Spells")
call MatchTable(I2S('Arel'), "H9","Spells")
call MatchTable(I2S('Arll'), "HA","Spells")
call MatchTable(I2S('AIsi'), "HB","Spells")
call MatchTable(I2S('AIos'), "HC","Spells")
call MatchTable(I2S('AIso'), "HD","Spells")
call MatchTable(I2S('Asou'), "HE","Spells")
call MatchTable(I2S('AIcf'), "HF","Spells")
call MatchTable(I2S('AIco'), "HG","Spells")
call MatchTable(I2S('AIdm'), "HH","Spells")
call MatchTable(I2S('AIda'), "HI","Spells")
call MatchTable(I2S('AIdb'), "HJ","Spells")
call MatchTable(I2S('AIta'), "HK","Spells")
call MatchTable(I2S('AIdi'), "HL","Spells")
call MatchTable(I2S('AIds'), "HM","Spells")
call MatchTable(I2S('APdi'), "HN","Spells")
call MatchTable(I2S('AIh1'), "HO","Spells")
call MatchTable(I2S('AIh2'), "HP","Spells")
call MatchTable(I2S('AIh3'), "HQ","Spells")
call MatchTable(I2S('AIha'), "HR","Spells")
call MatchTable(I2S('AIhb'), "HS","Spells")
call MatchTable(I2S('APh1'), "HT","Spells")
call MatchTable(I2S('APh2'), "HU","Spells")
call MatchTable(I2S('APh3'), "HV","Spells")
call MatchTable(I2S('AIhw'), "HW","Spells")
call MatchTable(I2S('AIsw'), "HX","Spells")
call MatchTable(I2S('AIil'), "HY","Spells")
call MatchTable(I2S('AIv1'), "HZ","Spells")
call MatchTable(I2S('AIv2'), "I0","Spells")
call MatchTable(I2S('AIvu'), "I1","Spells")
call MatchTable(I2S('AIvl'), "I2","Spells")
call MatchTable(I2S('AIm1'), "I3","Spells")
call MatchTable(I2S('AIm2'), "I4","Spells")
call MatchTable(I2S('AImr'), "I5","Spells")
call MatchTable(I2S('APmr'), "I6","Spells")
call MatchTable(I2S('APmg'), "I7","Spells")
call MatchTable(I2S('AIpm'), "I8","Spells")
call MatchTable(I2S('AIrt'), "I9","Spells")
call MatchTable(I2S('AIrm'), "IA","Spells")
call MatchTable(I2S('AIrn'), "IB","Spells")
call MatchTable(I2S('AIrc'), "IC","Spells")
call MatchTable(I2S('AIre'), "ID","Spells")
call MatchTable(I2S('AIra'), "IE","Spells")
call MatchTable(I2S('APra'), "IF","Spells")
call MatchTable(I2S('AIsp'), "IG","Spells")
call MatchTable(I2S('AIsa'), "IH","Spells")
call MatchTable(I2S('APsa'), "II","Spells")
call MatchTable(I2S('AItp'), "IJ","Spells")
call MatchTable(I2S('AIad'), "IK","Spells")
call MatchTable(I2S('AIcd'), "IL","Spells")
call MatchTable(I2S('AIba'), "IM","Spells")
call MatchTable(I2S('AIav'), "IN","Spells")
call MatchTable(I2S('AIar'), "IO","Spells")
call MatchTable(I2S('AIae'), "IP","Spells")
call MatchTable(I2S('AIau'), "IQ","Spells")
call MatchTable(I2S('AIuv'), "IR","Spells")
call MatchTable(I2S('AIls'), "IS","Spells")
call MatchTable(I2S('AIxs'), "IT","Spells")
call MatchTable(I2S('AIan'), "IU","Spells")
call MatchTable(I2S('AIrs'), "IV","Spells")
call MatchTable(I2S('AIrr'), "IW","Spells")
call MatchTable(I2S('AIev'), "IX","Spells")
call MatchTable(I2S('AImx'), "IY","Spells")
call MatchTable(I2S('AImh'), "IZ","Spells")
call MatchTable(I2S('AImb'), "J0","Spells")
call MatchTable(I2S('AIbm'), "J1","Spells")
call MatchTable(I2S('AIsx'), "J2","Spells")
call MatchTable(I2S('AIs2'), "J3","Spells")
call MatchTable(I2S('AIrl'), "J4","Spells")
call MatchTable(I2S('AIpr'), "J5","Spells")
call MatchTable(I2S('AIsl'), "J6","Spells")
call MatchTable(I2S('AIpl'), "J7","Spells")
call MatchTable(I2S('AIp1'), "J8","Spells")
call MatchTable(I2S('AIp2'), "J9","Spells")
call MatchTable(I2S('AIp3'), "JA","Spells")
call MatchTable(I2S('AIp4'), "JB","Spells")
call MatchTable(I2S('AIp5'), "JC","Spells")
call MatchTable(I2S('AIp6'), "JD","Spells")
call MatchTable(I2S('AIgo'), "JE","Spells")
call MatchTable(I2S('AIlu'), "JF","Spells")
call MatchTable(I2S('AIrv'), "JG","Spells")
call MatchTable(I2S('AIdc'), "JH","Spells")
call MatchTable(I2S('AIwb'), "JI","Spells")
call MatchTable(I2S('AImo'), "JJ","Spells")
call MatchTable(I2S('AIct'), "JK","Spells")
call MatchTable(I2S('AIri'), "JL","Spells")
call MatchTable(I2S('AIsr'), "JM","Spells")
call MatchTable(I2S('Ablp'), "JN","Spells")
call MatchTable(I2S('AIpv'), "JO","Spells")
call MatchTable(I2S('Aste'), "JP","Spells")
call MatchTable(I2S('Amec'), "JQ","Spells")
call MatchTable(I2S('Ashs'), "JR","Spells")
call MatchTable(I2S('ANpr'), "JS","Spells")
call MatchTable(I2S('ANsa'), "JT","Spells")
call MatchTable(I2S('ANss'), "JU","Spells")
call MatchTable(I2S('ANse'), "JV","Spells")
call MatchTable(I2S('Aret'), "JW","Spells")
call MatchTable(I2S('AImt'), "JX","Spells")
call MatchTable(I2S('Aspb'), "JY","Spells")
call MatchTable(I2S('AIrd'), "JZ","Spells")
call MatchTable(I2S('AItb'), "K0","Spells")
call MatchTable(I2S('AIdv'), "K1","Spells")
call MatchTable(I2S('AIse'), "K2","Spells")
call MatchTable(I2S('AIpg'), "K3","Spells")
call MatchTable(I2S('AIps'), "K4","Spells")
call MatchTable(I2S('AIfg'), "K5","Spells")
call MatchTable(I2S('APrl'), "K6","Spells")
call MatchTable(I2S('APrr'), "K7","Spells")
call MatchTable(I2S('AIrb'), "K8","Spells")
call MatchTable(I2S('Aspp'), "K9","Spells")
call MatchTable(I2S('AUds'), "KA","Spells")
call MatchTable(I2S('APwt'), "KB","Spells")
call MatchTable(I2S('AIuf'), "KC","Spells")
call MatchTable(I2S('AId0'), "KD","Spells")
call MatchTable(I2S('AIcm'), "KE","Spells")
call MatchTable(I2S('AImz'), "KF","Spells")
call MatchTable(I2S('AIfz'), "KG","Spells")
call MatchTable(I2S('AIdp'), "KH","Spells")
call MatchTable(I2S('AImv'), "KI","Spells")
call MatchTable(I2S('AIpx'), "KJ","Spells")
call MatchTable(I2S('AIdd'), "KK","Spells")
call MatchTable(I2S('AId7'), "KL","Spells")
call MatchTable(I2S('AId8'), "KM","Spells")
call MatchTable(I2S('AIlz'), "KN","Spells")
call MatchTable(I2S('AIhx'), "KO","Spells")
call MatchTable(I2S('AIaz'), "KP","Spells")
call MatchTable(I2S('AIrx'), "KQ","Spells")
call MatchTable(I2S('AIbx'), "KR","Spells")
call MatchTable(I2S('AItx'), "KS","Spells")
call MatchTable(I2S('AIwm'), "KT","Spells")
call MatchTable(I2S('AIsh'), "KU","Spells")
call MatchTable(I2S('AI2m'), "KV","Spells")
call MatchTable(I2S('AIgx'), "KW","Spells")
call MatchTable(I2S('AIhl'), "KX","Spells")
call MatchTable(I2S('AIsz'), "KY","Spells")
call MatchTable(I2S('AIpz'), "KZ","Spells")
call MatchTable(I2S('AIfw'), "L0","Spells")
call MatchTable(I2S('AIft'), "L1","Spells")
call MatchTable(I2S('AIlx'), "L2","Spells")
call MatchTable(I2S('AIcs'), "L3","Spells")
call MatchTable(I2S('AIcl'), "L4","Spells")
call MatchTable(I2S('AIx3'), "L5","Spells")
call MatchTable(I2S('AIx4'), "L6","Spells")
call MatchTable(I2S('AIxk'), "L7","Spells")
set i = 0
set x[1] = 48 // 0
set x[2] = 48 // 0
set x[3] = 56 // 8
set x[4] = 76 // L
loop
exitwhen i > 438
set counter = counter + 1
if ((counter < 11) or ((counter > 17) and (counter < 44))) then
call MatchTable(I2S(1093664768+256*x[2]+x[1]), Num2S(x[4]) + Num2S(x[3]), "Spells")
set x[3] = x[3] + 1
if (x[3] == 58) then
set x[3] = 65
elseif (x[3] == 91) then
set x[3] = 48
set x[4] = x[4] + 1
if (x[4] == 58) then
set x[4] = 65
elseif (x[4] == 91) then
set x[4] = 48
endif
endif
elseif (counter > 43) then
set counter = 0
set x[1] = 47
set x[2] = x[2] + 1
endif
set x[1] = x[1] + 1
set i = i + 1
endloop
endfunction
function LearnSpell takes nothing returns nothing
local gamecache g = GetSaveCodeGameCache()
local integer spell = GetStoredInteger(g,"spellid","learnspell")
local integer level = GetStoredInteger(g,"level","learnspell")
local integer i = 1
local unit u = I2U(GetStoredInteger(g,"unit","learnspell"))
loop
exitwhen i > level
call SelectHeroSkill( u, spell )
set i = i + 1
endloop
endfunction
function SetUnitHP takes unit u, integer hp returns nothing
local real handycap
local player owner = GetOwningPlayer(u)
local unit tu
set tu = CreateUnit(Player(0),GetUnitTypeId(u),0,0,0)
call ModifyHeroStat( bj_HEROSTAT_STR, tu, bj_MODIFYMETHOD_SET, 1 )
call SetPlayerHandicapBJ(Player(15),100)
call SetUnitOwner(u, Player(15),false)
set handycap = (((R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, tu)) - 25) + hp)*100) / (R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, tu)) - 25)
call SetPlayerHandicapBJ(Player(15),handycap)
call SetUnitOwner(u, owner,false)
call SetPlayerHandicapBJ(Player(15),100)
call RemoveUnit(tu)
endfunction
function Restore_Unit takes string ecodestr returns unit
local gamecache g = GetSaveCodeGameCache()
local string codestr = StringCase(ecodestr, true)
local integer utype = S2I(GetStoredString(g,"HsID2ID",IncDecNum(SubStringBJ(codestr,4,4),"+")+IncDecNum(SubStringBJ(codestr,2,2),"-")))
local integer array positions
local integer array items
local integer i = 1
local integer num
local integer spellID
local integer spellLevel
local integer offset = 6
local unit u = CreateUnit(GetTriggerPlayer(),utype,0,0,0)
local integer spells
local trigger t = I2T(GetStoredInteger(g,"trigger","learnspell"))
local integer array addons
set positions[1] = R2I((Num2Numbers(SubStringBJ(codestr,1,1))) / 6)
set positions[2] = Num2Numbers(SubStringBJ(codestr,1,1)) - positions[1] * 6
set positions[3] = R2I((Num2Numbers(SubStringBJ(codestr,3,3))) / 6)
set positions[4] = Num2Numbers(SubStringBJ(codestr,3,3)) - positions[3] * 6
set num = Num2Numbers(SubStringBJ(codestr,5,5))
if (num == 1) then
set positions[5] = 5
set positions[6] = 6
else
set positions[5] = R2I((Num2Numbers(SubStringBJ(codestr,5,5))) / 6)
set positions[6] = Num2Numbers(SubStringBJ(codestr,5,5)) - positions[5] * 6
endif
loop
exitwhen i > 6
call UnitAddItemByIdSwapped( 'sor5', u )
if (positions[i] != 0) then
set items[i] = S2I(GetStoredString(g,"IsID2ID",IncDecNum(SubStringBJ(codestr,offset+1,offset+1),"+")+IncDecNum(SubStringBJ(codestr,offset,offset),"-")))
set offset = offset + 2
endif
set i = i + 1
endloop
call SetHeroXP( u, 100*S2BigNum(SubStringBJ(codestr,offset,offset+2)), false )
set spells = S2I(SubStringBJ(codestr,offset+3,offset+3))
set i = 1
loop
set offset = offset + 4
exitwhen i > spells
set spellID = S2I(GetStoredString(g,"SsID2ID",IncDecNum(SubStringBJ(codestr,offset+2,offset+2),"+")+IncDecNum(SubStringBJ(codestr,offset,offset),"-")))
set spellLevel = 36*Num2Numbers(IncDecNum(SubStringBJ(codestr,offset+3,offset+3),"+"))+Num2Numbers(IncDecNum(SubStringBJ(codestr,offset+1,offset+1),"-"))
call StoreInteger(g,"unit","learnspell",H2I(u))
call StoreInteger(g,"level","learnspell",spellLevel)
call StoreInteger(g,"spellid","learnspell",spellID)
call TriggerExecute( t )
set i = i + 1
endloop
if (SubStringBJ(codestr,offset,offset) != "") then
set num = Num2Numbers(SubStringBJ(codestr,offset,offset))
set addons[1] = R2I(8*R2I(num/8) / 8)
set num = (num-addons[1])
set addons[2] = R2I(4*R2I(num/4) / 4)
set num = (num-addons[2])
set addons[3] = R2I(2*R2I(num/2) / 2)
set num = (num-addons[3])
set addons[4] = num
set offset = offset + 1
if (addons[1] > 0) then
set num = 36*Num2Numbers(IncDecNum(SubStringBJ(codestr,offset+1,offset+1),"+"))+Num2Numbers(IncDecNum(SubStringBJ(codestr,offset,offset),"-"))
call SetUnitHP(u,num)
set offset = offset + 2
endif
if (addons[2] > 0) then
set num = 36*Num2Numbers(IncDecNum(SubStringBJ(codestr,offset+1,offset+1),"+"))+Num2Numbers(IncDecNum(SubStringBJ(codestr,offset,offset),"-"))
call SetHeroStr(u,GetHeroStr(u,false)+num,true)
set offset = offset + 2
endif
if (addons[3] > 0) then
set num = 36*Num2Numbers(IncDecNum(SubStringBJ(codestr,offset+1,offset+1),"+"))+Num2Numbers(IncDecNum(SubStringBJ(codestr,offset,offset),"-"))
call SetHeroAgi(u,GetHeroAgi(u,false)+num,true)
set offset = offset + 2
endif
if (addons[4] > 0) then
set num = 36*Num2Numbers(IncDecNum(SubStringBJ(codestr,offset+1,offset+1),"+"))+Num2Numbers(IncDecNum(SubStringBJ(codestr,offset,offset),"-"))
call SetHeroInt(u,GetHeroInt(u,false)+num,true)
endif
endif
set i = 7
loop
set i = i - 1
exitwhen i < 1
call RemoveItem( UnitItemInSlot(u, i-1) )
if (positions[i] != 0) then
call UnitAddItemByIdSwapped( items[i], u )
endif
endloop
return u
endfunction
function Store_Unit takes unit u returns string
local gamecache g = GetSaveCodeGameCache()
local string sID = GetStoredString(g,"HID2sID",I2S(GetUnitTypeId(u)))
local integer i = 0
local string herocode = ""
local unit tu
local string array s
local integer array items
local integer array charges
local integer array positions
local integer spells = 0
local string array spell_sIDs
local integer array spell_levels
local integer array values
local integer addon = 0
loop
exitwhen i > 5
set items[i+1] = GetItemTypeId(UnitItemInSlot(u, i))
set charges[i+1] = GetItemCharges(UnitItemInSlot(u, i))
set positions[i+1] = i+1
if (items[i+1] == 0) then
set positions[i+1] = 0
else
call RemoveItem( UnitItemInSlot(u, i) )
endif
set i = i + 1
endloop
set tu = CreateUnit(Player(0),GetUnitTypeId(u),0,0,0)
call SetHeroXP( tu, GetHeroXP(u), false )
set values[2] = R2I(GetHeroStr(u,false)-GetHeroStr(tu,false))
set values[3] = R2I(GetHeroAgi(u,false)-GetHeroAgi(tu,false))
set values[4] = R2I(GetHeroInt(u,false)-GetHeroInt(tu,false))
call SetHeroStr(tu,GetHeroStr(u,false),true)
call SetHeroAgi(tu,GetHeroAgi(u,false),true)
call SetHeroInt(tu,GetHeroInt(u,false),true)
set values[1] = R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, u) - GetUnitStateSwap(UNIT_STATE_MAX_LIFE, tu))
if (values[4] > 0) then
set addon = addon + 1
endif
if (values[3] > 0) then
set addon = addon + 2
endif
if (values[2] > 0) then
set addon = addon + 4
endif
if (values[1] > 0) then
set addon = addon + 8
endif
set s[6] = SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",addon+1,addon+1)
if (s[6] == "0") then
set s[6] = ""
endif
call RemoveUnit(tu)
set i = 1
set s[1] = NumAndNum(positions[1],positions[2])
set s[2] = IncDecNum(SubStringBJ(sID,2,2),"+")
set s[3] = NumAndNum(positions[3],positions[4])
set s[4] = IncDecNum(SubStringBJ(sID,1,1),"-")
set s[5] = NumAndNum(positions[5],positions[6])
set herocode = s[1] + s[2] + s[3] + s[4] + s[5]
loop
exitwhen i > 6
if (positions[i] != 0) then
set sID = GetStoredString(g,"IID2sID",I2S(items[i]))
set herocode = herocode + IncDecNum(SubStringBJ(sID,2,2),"+")
set herocode = herocode + IncDecNum(SubStringBJ(sID,1,1),"-")
endif
set i = i + 1
endloop
set herocode = herocode + BigNum2S(R2I(GetHeroXP(u)/100))
set i = 0
loop
exitwhen i > (763+360)
if ( GetUnitAbilityLevelSwapped(S2I(GetStoredString(g,"SNum2ID",I2S(i))), u) > 0) then
set spells = spells + 1
set spell_sIDs[spells] = GetStoredString(g,"SNum2sID",I2S(i))
set spell_levels[spells] = GetUnitAbilityLevelSwapped(S2I(GetStoredString(g,"SNum2ID",I2S(i))), u)
endif
set i = i + 1
endloop
set herocode = herocode + I2S(spells)
set i = 1
loop
exitwhen i > spells
set positions[1] = R2I(spell_levels[i] / 36)
set positions[2] = spell_levels[i]-36*positions[1]
set herocode = herocode + IncDecNum(SubStringBJ(spell_sIDs[i],2,2),"+")
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[2]+1,positions[2]+1),"+")
set herocode = herocode + IncDecNum(SubStringBJ(spell_sIDs[i],1,1),"-")
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[1]+1,positions[1]+1),"-")
set i = i + 1
endloop
set herocode = herocode + s[6]
set positions[1] = R2I(values[1] / 36)
set positions[2] = values[1]-36*positions[1]
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[2]+1,positions[2]+1),"+")
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[1]+1,positions[1]+1),"-")
set positions[1] = R2I(values[2] / 36)
set positions[2] = values[2]-36*positions[1]
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[2]+1,positions[2]+1),"+")
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[1]+1,positions[1]+1),"-")
set positions[1] = R2I(values[3] / 36)
set positions[2] = values[3]-36*positions[1]
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[2]+1,positions[2]+1),"+")
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[1]+1,positions[1]+1),"-")
set positions[1] = R2I(values[4] / 36)
set positions[2] = values[4]-36*positions[1]
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[2]+1,positions[2]+1),"+")
set herocode = herocode + IncDecNum(SubStringBJ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",positions[1]+1,positions[1]+1),"-")
call RemoveUnit(u)
return herocode
endfunction
function HeroGroup takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_HERO) == true )
endfunction
function ChatStoreHero takes nothing returns nothing
local string s = Store_Unit(GroupPickRandomUnit(GetUnitsOfPlayerMatching(GetTriggerPlayer(), Condition(function HeroGroup))))
call DisplayTimedTextToForce( GetForceOfPlayer(GetTriggerPlayer()), 230, s)
endfunction
function ChatRestoreHero takes nothing returns nothing
call Restore_Unit(SubStringBJ(GetEventPlayerChatString(), 10, 150))
endfunction
//===========================================================================
function InitTrig_SaveCode_Copy takes nothing returns nothing
local trigger t = CreateTrigger( )
local integer i = 0
set gg_trg_SaveCode_Copy = SaveCodeGameCache2Trigger(InitGameCache( "SaveCode.w3v" ))
call TriggerRegisterTimerEventSingle( t, 0.10 )
call TriggerAddAction( t, function SaveCode_InitSpells )
set t = CreateTrigger( )
call TriggerRegisterTimerEventSingle( t, 0.10 )
call TriggerAddAction( t, function SaveCode_InitHeros )
set t = CreateTrigger( )
call TriggerRegisterTimerEventSingle( t, 0.10 )
call TriggerAddAction( t, function SaveCode_InitItems )
set t = CreateTrigger( )
call TriggerAddAction( t, function LearnSpell )
call StoreInteger(GetSaveCodeGameCache(),"trigger","learnspell",H2I(t))
set t = CreateTrigger( )
loop
exitwhen i > 11
call TriggerRegisterPlayerChatEvent( t, Player(i), "-store", false )
set i = i + 1
endloop
call TriggerAddAction( t, function ChatStoreHero )
set i = 0
set t = CreateTrigger( )
loop
exitwhen i > 11
call TriggerRegisterPlayerChatEvent( t, Player(i), "-restore", false )
set i = i + 1
endloop
call TriggerAddAction( t, function ChatRestoreHero )
endfunction