//TESH.scrollpos=228
//TESH.alwaysfold=0
//TESH.scrollpos=220
//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 |
allyunits | unit | No | |
AltUNit | unitcode | Yes | |
BUMPED | group | No | |
captbonus | integer | No | |
Caster_EOZ | unit | No | |
Code | StringExt | No | |
ColorCode | string | Yes | |
ConfuseEffect | effect | No | |
ConfuseTarget | unit | No | |
ConfuseTimer | timer | Yes | |
ControlPoint | boolean | Yes | |
Dialog | dialog | Yes | |
Dialog_Buttons | button | Yes | |
Dreadnoughtlimit | boolean | No | |
dreadnoughtunit | unit | No | |
dreadpoint | location | No | |
EnableAltUnit | integer | No | |
enemyunits | unit | No | |
F_Integers | integer | Yes | |
F_ReachedFading | real | Yes | |
F_Time | real | Yes | |
F_Unit | unit | Yes | |
FA_Time | real | No | |
FA_Unit | unit | No | |
FortuneEffect | effect | No | |
FortuneTarget | unit | No | |
G | integervar | No | |
G_Angle | real | Yes | |
G_AoeFinal | real | Yes | |
G_AoeSelect | real | Yes | |
G_Caster | unit | Yes | |
G_Damage | real | Yes | |
G_Distance | real | Yes | |
G_Dummy | unit | Yes | |
G_ExGroup | group | Yes | |
G_Fly | integer | Yes | |
G_Group | group | Yes | |
G_Height | real | Yes | |
G_Level | integer | Yes | |
G_Off | boolean | Yes | |
G_Point | location | Yes | |
G_Skip | integer | No | |
G_Speed | real | Yes | |
G_Times | integer | No | |
Hero | unit | No | |
Initialize_Item_Count | integer | No | |
IntroText | string | No | |
Item | item | No | |
JD_Angle | real | Yes | |
JD_Animations | string | Yes | |
JD_Distances | real | Yes | |
JD_Effect | string | Yes | |
JD_Group | group | No | |
JD_HighSettings | real | Yes | |
JD_Integers | integer | Yes | |
JD_JumpHigh | real | Yes | |
JD_ReachedDistance | real | Yes | |
JD_RealTimer | real | Yes | |
JD_SpeedUnits | real | Yes | |
JD_TempPoint | location | Yes | |
JD_TreesDestroy | boolean | Yes | |
JD_Unit | unit | Yes | |
JDA_Animation | string | No | |
JDA_AnimationSpeed | real | No | |
JDA_Collusion | boolean | No | |
JDA_DestroyTrees_Dash | boolean | No | |
JDA_JumpHigh_Distance | real | No | |
JDA_SpecialEffect | string | No | |
JDA_Speed | real | No | |
JDA_TargetPoint | location | No | |
JDA_Unit | unit | No | |
KB_Angle | real | Yes | |
KB_Casters | unit | Yes | |
KB_CountBuffs | integer | No | |
KB_DestroyTrees | boolean | Yes | |
KB_EffectCounter | integer | Yes | |
KB_EffectCounter2 | integer | Yes | |
KB_Effects_1 | string | Yes | |
KB_Effects_2 | string | Yes | |
KB_GeneralIntegers | integervar | Yes | |
KB_KnockbackedUnits | group | No | |
KB_Levels | integer | Yes | |
KB_MaxDistance | real | Yes | |
KB_ReachedDistance | real | Yes | |
KB_ReducedReal | real | No | |
KB_ReduceSpeedReal | real | Yes | |
KB_SpecificSpeed | real | Yes | |
KB_StartPositions | location | Yes | |
KB_TempPoint | location | Yes | |
KB_TempReal | real | No | |
KB_TotalKnockUnits | integer | No | |
KB_Units | unit | Yes | |
KBA_Caster | unit | No | |
KBA_DestroyTrees | boolean | No | |
KBA_DistancePerLevel | real | No | |
KBA_Level | integer | No | |
KBA_SpecialEffects | string | Yes | |
KBA_Speed | real | No | |
KBA_StartingPosition | location | No | |
KBA_TargetUnit | unit | No | |
LevitationCaster | unit | No | |
LevitationTargets | group | No | |
LevitationTimer | timer | No | |
Library | string | Yes | |
Load | integer | Yes | |
Load_Code | string | Yes | |
Load_Item_Caried_Int | integer | No | |
LoadCount | integer | No | |
Loadit_Int | integer | No | |
Loadit_String | string | No | |
MercilessStrikeEffect | effect | No | |
multiboard | multiboard | No | |
multicount | integer | No | |
NewChar | boolean | Yes | |
PD_Angle | real | Yes | |
PD_Distances | real | Yes | |
PD_Integers | integer | Yes | |
PD_ReachedDistance | real | Yes | |
PD_RealTimer | real | Yes | |
PD_SpeedUnits | real | Yes | |
PD_TempPoint | location | Yes | |
PD_TestGroup | group | No | |
PD_TreesDestroy | boolean | Yes | |
PD_Unit | unit | Yes | |
pickedunitsAI | unit | No | |
PlayerCount | integer | No | |
point1 | location | No | |
point2 | location | No | |
powerfulattacknumber | integer | No | |
psychicstormcaster | unit | No | |
psychicstormeffect | unit | No | |
psychicstormunit | unit | No | |
Random_Item_Drop | integer | No | |
Sample_Group | group | No | |
Sample_Point | location | No | |
Save | integer | Yes | |
Save_Ability_Counter | integer | Yes | |
Save_Variable_i | integervar | No | |
SaveCount | integer | No | |
SaveEnableScrambler | boolean | No | |
Saveit_Int | integer | No | |
Saveit_String | string | No | |
saveitemcounter | integer | No | |
SaveLibraryScrambler | integer | No | |
SaveLoad_Ability | abilcode | Yes | |
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 | |
SaveScrambler | integer | No | |
SaveUnitCHecker | boolean | No | |
score | integer | No | |
scoremulti | integer | No | |
timebonus | integer | No | |
Timebonustimer | timer | No | |
TimerEOZ | timer | No | |
UC_Counter | integer | Yes | |
UC_Groups | group | Yes | |
UC_Inv | boolean | Yes | |
UC_SETTINGS_AreaOfEffect | real | Yes | |
UC_SETTINGS_Collosion | boolean | No | |
UC_SETTINGS_DestroyTrees_Dash | boolean | No | |
UC_SETTINGS_Invulnerable | boolean | No | |
UC_SETTINGS_Speed | real | No | |
UC_Target | unit | No | |
UC_TempPoint | location | Yes | |
UgW_AbilityTypeA | abilcode | Yes | |
UgW_AbilityTypeB | abilcode | Yes | |
UgW_AlreadyTouched | group | Yes | |
UgW_AngleA | real | Yes | |
UgW_AngleB | real | Yes | |
UgW_AoE | real | Yes | |
UgW_AoEExplosion | real | Yes | |
UgW_BumpedUnit | unit | Yes | |
UgW_CasterA | unit | Yes | |
UgW_CasterB | unit | Yes | |
UgW_DamagesFinal | real | Yes | |
UgW_DamagesUnderground | real | Yes | |
UgW_DestroyTrees | boolean | Yes | |
UgW_Distance | real | Yes | |
UgW_DistanceA | real | Yes | |
UgW_DistanceB | real | Yes | |
UgW_DistanceEffects | real | Yes | |
UgW_DistanceReachedA | real | Yes | |
UgW_DistanceReachedB | real | Yes | |
UgW_DummyGroup | unit | Yes | |
UgW_DummyPoint | unit | Yes | |
UgW_Effect | string | Yes | |
UgW_EffectExplosion1 | string | Yes | |
UgW_EffectExplosion2 | string | Yes | |
UgW_FinalDestination | unit | Yes | |
UgW_GroupA | group | No | |
UgW_GroupB | group | No | |
UgW_HighBump | real | Yes | |
UgW_HighSettings | real | Yes | |
UgW_Integer | integer | Yes | |
UgW_LandingEffectA | string | Yes | |
UgW_LandingEffectB | string | Yes | |
UgW_LevelA | integer | Yes | |
UgW_LevelB | integer | Yes | |
UgW_RealTimer | real | Yes | |
UgW_Speed | real | Yes | |
UgW_SpeedBumpA | real | Yes | |
UgW_SpeedBumpB | real | Yes | |
UgW_StunTypeA | unitcode | Yes | |
UgW_StunTypeB | unitcode | Yes | |
UgW_TempGroup | group | No | |
UgW_TempPoint | location | No | |
UgW_TempPoint2 | location | No | |
UgW_TempPoint3 | location | No | |
UgW_TempPoint4 | location | No | |
WardEffect | effect | No | |
WardTarget | unit | No | |
WardTimer | timer | No | |
wave1units | integer | No | |
wave2units | integer | No | |
wave3units | integer | No | |
wavebonus | integer | No | |
waveunits | integer | No |
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Setup_Run takes nothing returns nothing
local integer i = 0
local player p = GetEnumPlayer()
loop
exitwhen i > 5
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
call SetPlayerAlliance(Player(i), p, ALLIANCE_SHARED_ADVANCED_CONTROL, true)
call SetPlayerAlliance(p, Player(i), ALLIANCE_SHARED_ADVANCED_CONTROL, true)
endif
set i = i + 1
endloop
endfunction
function Trig_Setup_Actions takes nothing returns nothing
local force f = CreateForce()
call ForceEnumAllies(f, Player(0), null)
call ForForce(f, function Trig_Setup_Run)
call DestroyForce(f)
endfunction
function InitTrig_Setup takes nothing returns nothing
set gg_trg_Setup = CreateTrigger( )
call TriggerAddAction( gg_trg_Setup, function Trig_Setup_Actions )
endfunction