function SaveLoad_InitialSetup takes nothing returns nothing
local integer i = 0
local integer j = 0
loop
set udg_SaveLoad_Compress[i + 48] = j
set udg_SaveLoad_Uncompress[i] = i + 48
set j = j + 1
set i = i + 1
exitwhen i >= 10
endloop
set i = 0
loop
set udg_SaveLoad_Compress[i + 97] = j
set udg_SaveLoad_Compress[i + 65] = j + 26
set udg_SaveLoad_Uncompress[i + 10] = i + 97
set udg_SaveLoad_Uncompress[i + 26 + 10] = i + 65
set j = j + 1
set i = i + 1
exitwhen i >= 26
endloop
endfunction
function SaveLoad_Id2CId takes integer n returns integer
local integer i = n / (256 * 256 * 256)
local integer r
set n = n - i * (256 * 256 * 256)
set r = udg_SaveLoad_Compress[i]
set i = n / (256 * 256)
set n = n - i * (256 * 256)
set r = r * 64 + udg_SaveLoad_Compress[i]
set i = n / 256
set r = r * 64 + udg_SaveLoad_Compress[i]
return r * 64 + udg_SaveLoad_Compress[n - i * 256]
endfunction
function SaveLoad_CId2Id takes integer n returns integer
local integer i = n / (64 * 64 * 64)
local integer r
set n = n - i * (64 * 64 * 64)
set r = udg_SaveLoad_Uncompress[i]
set i = n / (64 * 64)
set n = n - i * (64 * 64)
set r = r * 256 + udg_SaveLoad_Uncompress[i]
set i = n / 64
set r = r * 256 + udg_SaveLoad_Uncompress[i]
return r * 256 + udg_SaveLoad_Uncompress[n - i * 64]
endfunction
function SaveLoad_Unit2Integer takes unit u returns integer
local integer i = 0
local integer n = GetUnitTypeId(u)
if udg_SaveLoad_Initialized == false then
set udg_SaveLoad_Initialized = true
call SaveLoad_InitialSetup()
endif
loop
set i = i + 1
exitwhen i > udg_SaveLoad_Heroes_LastIndex
if udg_SaveLoad_Heroes[i] == n then
return i
endif
endloop
return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Unit takes integer i returns integer
if udg_SaveLoad_Initialized == false then
set udg_SaveLoad_Initialized = true
call SaveLoad_InitialSetup()
endif
if i <= udg_SaveLoad_Heroes_LastIndex then
return udg_SaveLoad_Heroes[i]
endif
return SaveLoad_CId2Id(i)
endfunction
function SaveLoad_Item2Integer takes item t returns integer
local integer i = 0
local integer n = GetItemTypeId(t)
if udg_SaveLoad_Initialized == false then
set udg_SaveLoad_Initialized = true
call SaveLoad_InitialSetup()
endif
loop
set i = i + 1
exitwhen i > udg_SaveLoad_Items_LastIndex
if udg_SaveLoad_Items[i] == n then
return i
endif
endloop
return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Item takes integer i returns integer
if udg_SaveLoad_Initialized == false then
set udg_SaveLoad_Initialized = true
call SaveLoad_InitialSetup()
endif
if i <= udg_SaveLoad_Items_LastIndex then
return udg_SaveLoad_Items[i]
endif
return SaveLoad_CId2Id(i)
endfunction
function SaveLoad_Ability2Integer takes integer a returns integer
local integer i = 0
if udg_SaveLoad_Initialized == false then
set udg_SaveLoad_Initialized = true
call SaveLoad_InitialSetup()
endif
loop
set i = i + 1
exitwhen i > udg_SaveLoad_Abilities_LastIndex
if udg_SaveLoad_Abilities[i] == a then
return i
endif
endloop
return SaveLoad_Id2CId(a)
endfunction
function SaveLoad_Integer2Ability takes integer i returns integer
if udg_SaveLoad_Initialized == false then
set udg_SaveLoad_Initialized = true
call SaveLoad_InitialSetup()
endif
if i <= udg_SaveLoad_Abilities_LastIndex then
return udg_SaveLoad_Abilities[i]
endif
return SaveLoad_CId2Id(i)
endfunction
function SaveLoad_Color takes string s returns string
local integer i = StringLength(s)
local string c
local string r = ""
loop
set i = i - 1
set c = SubString(s,i,i + 1)
if c == "0" or c == "1" or c == "2" or c == "3" or c == "4" or c == "5" or c == "6" or c == "7" or c == "8" or c == "9" then
set r = "|cffffcc00" + c + "|r" + r
elseif c == "-" then
set r = "|cffdddddd-|r" + r
else
set r = c + r
endif
exitwhen i <= 0
endloop
return r
endfunction
function SaveLoad_EncodeChar takes string n returns integer
local integer i = 0
local string s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
local string s2 = "abcdefghijklmnopqrstuvwxyz"
local string s3 = "0123456789"
loop
if SubString(s1,i,i + 1) == n then
return i
endif
if SubString(s2,i,i + 1) == n then
return i
endif
set i = i + 1
exitwhen i >= 26
endloop
set i = 0
loop
if SubString(s3,i,i + 1) == n then
return i
endif
set i = i + 1
exitwhen i >= 10
endloop
return 0
endfunction
function SaveLoad_EncodeVerify takes string buffer returns integer
local integer i = 0
local integer j = 0
local string name = GetPlayerName(GetTriggerPlayer())
if udg_SaveLoad_UsePlayername == true then
loop
set j = j + SaveLoad_EncodeChar(SubString(name,i,i + 1))
set i = i + 1
exitwhen i >= StringLength(name)
endloop
endif
set i = 0
loop
set j = j + SaveLoad_EncodeChar(SubString(buffer,i,i + 1))
set i = i + 1
exitwhen i >= StringLength(buffer)
endloop
return j
endfunction
function SaveLoad_EncodeValues takes nothing returns string
local integer i
local integer j
local integer k
local integer l
local integer m
local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
local integer array a
local string buffer = ""
local string c = ""
local integer skip = 0
local integer CONST = 1000000
local string abc = "0123456789"
set i = 0
loop
set i = i + 1
exitwhen i > udg_SaveCount
set buffer = buffer + I2S(udg_Save[i]) + "-"
endloop
set buffer = buffer + I2S(SaveLoad_EncodeVerify(buffer))
if udg_Save[1] == 0 then
set buffer = "-" + buffer
endif
set i = 0
loop
set a[i] = 0
set i = i + 1
exitwhen i >= 100
endloop
set m = 0
set i = 0
loop
set j = 0
loop
set a[j] = a[j] * 11
set j = j + 1
exitwhen j > m
endloop
set l = 0
set c = SubString(buffer,i,i + 1)
loop
exitwhen SubString(abc,l,l + 1) == c
set l = l + 1
exitwhen l > 9
endloop
set a[0] = a[0] + l
set j = 0
loop
set k = a[j] / CONST
set a[j] = a[j] - k * CONST
set a[j + 1] = a[j + 1] + k
set j = j + 1
exitwhen j > m
endloop
if k > 0 then
set m = m + 1
endif
set i = i + 1
exitwhen i >= StringLength(buffer)
endloop
set buffer = ""
loop
exitwhen m < 0
set j = m
loop
exitwhen j <= 0
set k = a[j] / CodeLength
set a[j - 1] = a[j - 1] + (a[j] - k * CodeLength) * CONST
set a[j] = k
set j = j - 1
endloop
set k = a[j] / CodeLength
set i = a[j] - k * CodeLength
set buffer = buffer + SubString(udg_SaveLoad_Alphabet,i,i + 1)
set a[j] = k
if a[m] == 0 then
set m = m - 1
endif
endloop
set i = StringLength(buffer)
set skip = 0
set c = ""
loop
set i = i - 1
set c = c + SubString(buffer,i,i + 1)
set skip = skip + 1
if skip == 4 and i > 0 then
set c = c + "-"
set skip = 0
endif
exitwhen i <= 0
endloop
return c
endfunction
function SaveLoad_DecodeValues takes string s returns boolean
local integer i
local integer j
local integer k
local integer l
local integer SaveCode = 0
local integer m
local integer array a
local string buffer = ""
local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
local integer skip = -1
local integer CONST = 1000000
local string abc = "0123456789-"
local string c
set i = 0
loop
set a[i] = 0
set i = i + 1
exitwhen i >= 100
endloop
set m = 0
set i = 0
loop
set j = 0
loop
set a[j] = a[j] * CodeLength
set j = j + 1
exitwhen j > m
endloop
set skip = skip + 1
if skip == 4 then
set skip = 0
set i = i + 1
endif
set l = CodeLength
set c = SubString(s,i,i + 1)
loop
set l = l - 1
exitwhen l < 1
exitwhen SubString(udg_SaveLoad_Alphabet,l,l + 1) == c
endloop
set a[0] = a[0] + l
set j = 0
loop
set k = a[j] / CONST
set a[j] = a[j] - k * CONST
set a[j + 1] = a[j + 1] + k
set j = j + 1
exitwhen j > m
endloop
if k > 0 then
set m = m + 1
endif
set i = i + 1
exitwhen i >= StringLength(s)
endloop
loop
exitwhen m < 0
set j = m
loop
exitwhen j <= 0
set k = a[j] / 11
set a[j - 1] = a[j - 1] + (a[j] - k * 11) * CONST
set a[j] = k
set j = j - 1
endloop
set k = a[j] / 11
set i = a[j] - k * 11
set buffer = SubString(abc,i,i + 1) + buffer
set a[j] = k
if a[m] == 0 then
set m = m - 1
endif
endloop
set i = 0
set j = 0
loop
loop
exitwhen i >= StringLength(buffer)
exitwhen i > 0 and SubString(buffer,i,i + 1) == "-" and SubString(buffer,i - 1,i) != "-"
set i = i + 1
endloop
if i < StringLength(buffer) then
set k = i
endif
set SaveCode = SaveCode + 1
set udg_Save[SaveCode] = S2I(SubString(buffer,j,i))
set j = i + 1
set i = i + 1
exitwhen i >= StringLength(buffer)
endloop
set j = SaveLoad_EncodeVerify(SubString(buffer,0,k))
set udg_SaveCount = SaveCode - 1
if j == udg_Save[SaveCode] then
return true
endif
return false
endfunction
function SaveLoad_Encode takes nothing returns string
if udg_SaveLoad_CaseSensitive == false then
set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
endif
return SaveLoad_Color(SaveLoad_EncodeValues())
endfunction
function SaveLoad_Decode takes string s returns boolean
if udg_SaveLoad_CaseSensitive == false then
set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
set s = StringCase(s,true)
endif
if SaveLoad_DecodeValues(s) then
call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding sucessful")
return true
endif
call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding failed")
return false
endfunction
function PolarProjectionX takes location start, real dist, real angle returns location
local real x = GetLocationX(start) + dist * Cos(Deg2Rad(angle))
local real y = GetLocationY(start) + dist * Sin(Deg2Rad(angle))
return Location(x, y)
endfunction
Name | Type | is_array | initial_value |
AbleToStartTGQuest | boolean | Yes | |
AlchemyFailRandomInt | integer | Yes | |
armorwearers | group | No | |
ArrowKeyUpPoint | location | Yes | |
ArtilleryGroup | group | Yes | |
ArtilleryInt | integer | Yes | |
ArtilleryMultiplier | integer | Yes | |
ArtilleryPoint | location | Yes | |
AttackedGroup | group | Yes | |
AttackingBanditDenPlayerInt | integer | No | |
AttackingPlayer | player | No | |
BalragInt | integer | No | |
BanditDenDialog | dialog | No | |
BanditDenGoldTimer | timer | No | |
BanditDenIsOwned | boolean | No | |
BanditDenOwnerInt | integer | No | |
barrowcount | integer | No | |
barrowguy | group | No | |
BarrowItem | itemcode | Yes | |
barrownumb | integer | No | |
BarrowPlayerGroup | force | No | |
Barrowstarted | boolean | No | |
Base32Input | string | No | |
BlowUpPoint | location | No | |
bossbutton | button | Yes | |
bossdrop_check1 | integer | Yes | |
bossdrop_check2 | integer | Yes | |
bosshelpspawn | location | Yes | |
Bosspick | dialog | No | |
BossSpawnRandomInt | integer | Yes | |
Bosstype | unitcode | No | |
bridge | destructable | No | |
BSInt | integer | Yes | |
BSInt1 | integer | Yes | |
BuilderTalkTextPoint | location | No | |
capes | group | No | |
CapPoint | location | No | |
CCLocation | location | Yes | |
CCPlayers | force | No | |
CCPoints | location | No | |
CCStarted | boolean | No | |
CCTower | unit | No | |
CCTriggerId | integer | No | |
CCTriggerId2 | integer | No | |
ChampionGroup | group | No | |
ChampionInt | integer | No | |
ChargeInt | integer | No | |
CholakConvertDialog | dialog | No | |
CholakMiner | unit | No | |
CholaksPickedUp | integer | Yes | |
CItem1 | itemcode | Yes | |
CItem2 | itemcode | Yes | |
CItem3 | itemcode | Yes | |
CItem4 | itemcode | Yes | |
CItem5 | itemcode | Yes | |
CItem6 | itemcode | Yes | |
Code | string | No | |
CombatStateGroup | group | No | |
CreatorOfPenons | unit | No | |
CurrentEventEqualToSurvival | boolean | No | |
DamageTextPoint | location | No | |
DeadGroup | group | No | |
deathcount | integer | Yes | |
DeathGroup | group | Yes | |
DeathInt | integer | Yes | |
DecapitateGroup | force | No | |
DesertAsa | item | No | |
destresboss | integer | No | |
destrescurrentboss | unit | Yes | |
dialoga | button | Yes | |
dialogb | button | Yes | |
dialogc | button | Yes | |
DPoint | location | No | |
DropInteger | integer | No | |
DropRandomInt | integer | Yes | |
DrPoint | location | No | |
DTemp | integer | No | |
duelpeople | group | No | |
DuelPlayer | player | Yes | |
DuelPlayers | force | No | |
DuelPoint | location | No | |
EachTeamNo | integer | No | |
EarthGroup | group | Yes | |
EarthInt | integer | Yes | |
ETarg | unit | No | |
Event | dialog | No | |
EventPickPlayer | player | No | |
EventPlayerGroup | force | No | |
EventStarted | boolean | No | |
Eventtimer | timer | No | |
ExpAmount | integer | No | |
ExpGroup | group | No | |
ExpPoint | location | No | |
EyeShotRandomInt | integer | No | |
F | integer | Yes | |
FighterGhostSpearPoint | location | No | |
FighterGroup | group | Yes | |
FighterInt | integer | Yes | |
FinalCode | string | No | |
FireGroup | group | Yes | |
FireInt | integer | Yes | |
Firstpersontimer | timer | No | |
FirstPrimeGuards | group | No | |
FirstPrimePoint | location | No | |
FPactivatedplayers | player | Yes | |
FRStrengthInt | integer | Yes | |
FS | abilcode | Yes | |
FSGroup | group | No | |
FSTarg | unit | No | |
GameOver | force | No | |
GateString | string | No | |
GiantInt | integer | No | |
Giants | group | No | |
GoldAmount | integer | No | |
GoldConvertDialog | dialog | No | |
GoldEffectPoint | location | No | |
GoldGroup | group | No | |
GoldInt | integer | No | |
GoldPoint | location | No | |
golems | group | No | |
graveyardpoint | location | Yes | |
Graveyardunit | unitcode | Yes | |
grenade | unit | Yes | |
GSPRandomPoint | location | No | |
HasBeenDecapitated | boolean | Yes | |
HealingHandsGroup | group | Yes | |
HealingHandsInt | integer | Yes | |
HealingMultiplier | integer | Yes | |
HealPoint | location | No | |
helmwearers | group | No | |
Hero | unit | Yes | |
HFRandomInt | integer | No | |
HighlanderVotes | integer | No | |
HTVotes | integer | No | |
I | integer | Yes | |
IceGroup | group | Yes | |
IceInt | integer | Yes | |
IceTeleDialog | dialog | No | |
icetrolls | integer | No | |
IFRandomInt | integer | No | |
InitializeItems | itemcode | Yes | |
IntegerC | integer | No | |
IntroMovieWatchD | dialog | No | |
IsTrading | boolean | Yes | |
Item1 | itemcode | Yes | |
Item2 | itemcode | Yes | |
Item3 | itemcode | Yes | |
Item4 | itemcode | Yes | |
Item5 | itemcode | Yes | |
Item6 | itemcode | Yes | |
itemdrop | integer | No | |
Itemslot1 | itemcode | Yes | |
ItemSlot10 | itemcode | Yes | |
ItemSlot11 | itemcode | Yes | |
ItemSlot12 | itemcode | Yes | |
Itemslot2 | itemcode | Yes | |
Itemslot3 | itemcode | Yes | |
Itemslot4 | itemcode | Yes | |
Itemslot5 | itemcode | Yes | |
Itemslot6 | itemcode | Yes | |
ItemSlot7 | itemcode | Yes | |
ItemSlot8 | itemcode | Yes | |
ItemSlot9 | itemcode | Yes | |
IW | abilcode | Yes | |
IWTarg | unit | No | |
KBDungeonPoint2 | location | No | |
KBDungeonPoints | location | No | |
KBGroup | group | No | |
KBPlayers | force | No | |
KBStarted | boolean | No | |
Kid | unit | Yes | |
KidServeQuestHasStarted | boolean | Yes | |
killcount | integer | Yes | |
Kobold | unitcode | Yes | |
koboldkills | integer | Yes | |
KoboldPoint | location | Yes | |
KoboldQuestDone | boolean | Yes | |
KoboldQuestHasStarted | boolean | Yes | |
KoboldsThere | boolean | No | |
KoboldSupportGroup | group | No | |
KoboldTriggerId | integer | No | |
kqhelpcount | integer | No | |
legwears | group | No | |
LeverPullCount | integer | No | |
LeverPulledGroup | group | No | |
LifeTextPoint | location | No | |
Lightning | lightning | No | |
LightningGroup | group | Yes | |
LightningGuy | unit | Yes | |
LightningInt | integer | Yes | |
List | integer | No | |
LoadString | string | No | |
LostGame | force | No | |
Lotteryo_oInt | integer | Yes | |
LSAgilityInt | integer | Yes | |
LSPoint | location | No | |
LSStrikePoint | location | No | |
madman07 | unit | Yes | |
madmanpoint | location | No | |
MB_alltargs | group | No | |
MB_cur | integervar | No | |
MB_level | integer | No | |
MB_prev | unit | No | |
MB_SMax | real | No | |
MB_targ | unit | No | |
MB_targetsnum | integer | No | |
MB_TempPoint | location | No | |
MBText | string | No | |
MButton | button | Yes | |
MMinigameyn | dialog | No | |
modepick | dialog | No | |
ModeRandomize | integer | No | |
MoveBackPoint | location | No | |
Multiboard_Spots | integer | Yes | |
multiboardgroup | force | No | |
NatTargs | group | No | |
NatureGroup | group | Yes | |
NatureInt | integer | Yes | |
NaturePoint | location | Yes | |
NatureTarg | unit | Yes | |
NoWatchGroup | force | No | |
NumberNat | integer | Yes | |
NumberOfPlayers | integer | No | |
Part1 | string | No | |
Paused | boolean | No | |
Penon | unitcode | Yes | |
PenonGroup | group | Yes | |
PenonsThere | boolean | No | |
PickButton | button | Yes | |
PingPoint | location | No | |
Player_Colors | string | Yes | |
Player_Count | integer | No | |
PlayerBoots | boolean | Yes | |
PlayerChest | boolean | Yes | |
PlayerFPcamPlayers | force | No | |
PlayerGloves | boolean | Yes | |
PlayerHelm | boolean | Yes | |
PlayerIOffhand | boolean | Yes | |
Playernumber | integer | Yes | |
Players | force | No | |
PlayerWeapon | boolean | Yes | |
PS | unit | No | |
QCGroup | group | No | |
QCPoint | location | No | |
Quest | quest | Yes | |
questdummy | unit | No | |
questdummyitem | item | No | |
questrequire | questitem | Yes | |
Quests | string | Yes | |
questtalk | effect | Yes | |
RageGroup | group | Yes | |
RageMadnessInt | integer | Yes | |
RagePlayerNumber | integer | No | |
RagingTransformTimer | timer | Yes | |
RangerGroup | group | Yes | |
RangerInt | integer | Yes | |
Regions | rect | Yes | |
RFFBurnRandomInt | integer | No | |
RPGVotes | integer | No | |
RPoint | location | Yes | |
RuinsStargate | unit | No | |
Save | integer | Yes | |
SaveCount | integer | No | |
SaveLoad_Abilities | abilcode | Yes | |
SaveLoad_Abilities_LastIndex | integer | No | |
SaveLoad_Alphabet | string | No | |
SaveLoad_CaseSensitive | boolean | No | |
SaveLoad_Compress | integer | Yes | |
SaveLoad_Heroes | unitcode | Yes | |
SaveLoad_Heroes_LastIndex | integer | No | |
SaveLoad_Initialized | boolean | No | |
SaveLoad_Items | itemcode | Yes | |
SaveLoad_Items_LastIndex | integer | No | |
SaveLoad_Uncompress | integer | Yes | |
SaveLoad_UsePlayername | boolean | No | |
SaveLoadAbilitiesStored | abilcode | Yes | |
SaveLoadAbilitySingle | abilcode | Yes | |
SaveLoadBlockSize | integer | No | |
SaveLoadCharacterNumbers | string | Yes | |
SaveLoadCharacterSet | string | No | |
SaveLoadChecksumChar | string | No | |
SaveLoadChecksumCharCompare | string | No | |
SaveLoadCheckSumInt | integer | No | |
SaveLoadConversionDividedInt | integer | No | |
SaveLoadConversionInteger | integer | No | |
SaveLoadConversionRemainder | integer | No | |
SaveLoadEncryptedString | string | No | |
SaveLoadEncryptionKey | string | No | |
SaveLoadEncryptionKeyInt | integer | No | |
SaveLoadEncryptionNumbers | string | Yes | |
SaveLoadEncryptionSet | string | Yes | |
SaveLoadFinalString | string | No | |
SaveLoadHasLoaded | boolean | Yes | |
SaveLoadHeroesStored | unitcode | Yes | |
SaveLoadItemsStored | itemcode | Yes | |
SaveLoadMaxCharacters | integer | No | |
SaveLoadMaxEncryptionSets | integer | No | |
SaveLoadMaxHeroes | integer | No | |
SaveLoadMaxHeroesStored | integer | No | |
SaveLoadMaxItemsStored | integer | No | |
SaveLoadMaxSBooksStored | integer | No | |
SaveLoadMaxVariablesStored | integer | No | |
SaveLoadMultiple | integer | No | |
SaveLoadPlayerGroupFocus | force | No | |
SaveLoadPlayerHeroSingle | unit | Yes | |
SaveLoadPowerOfCurrent | integer | No | |
SaveLoadPowerOfMaxNumber | integer | No | |
SaveLoadPreEncryptionString | string | No | |
SaveLoadSBooksStored | abilcode | Yes | |
SaveLoadSlotsAbilities | integer | No | |
SaveLoadSlotsGold | integer | No | |
SaveLoadSlotsHero | integer | No | |
SaveLoadSlotsHeroLevel | integer | No | |
SaveLoadSlotsItem | integer | No | |
SaveLoadSlotsLumber | integer | No | |
SaveLoadSlotsStats | integer | No | |
SaveLoadTempStrings | string | Yes | |
SaveLoadTriggerErrored | boolean | No | |
SaveLoadVariablesStored | integer | Yes | |
SavingHero | unit | No | |
SBPoint | location | No | |
secondform | boolean | No | |
SelectedDuelers | group | No | |
SGPoint | location | No | |
SGQuestPoint | location | No | |
SH | abilcode | Yes | |
ShadowGroup | group | Yes | |
ShadowInt | integer | Yes | |
shieldholders | group | No | |
SHTarg | unit | No | |
SoulThrustRandomize | integer | No | |
SoulThrustTarg | unit | Yes | |
SoulThrustThing | unit | Yes | |
soundtest | sound | No | |
SpellCaster_Rage | unit | Yes | |
SpellLevel | integer | Yes | |
SPHTarg | unit | No | |
Spirit | unit | Yes | |
STarg | unit | No | |
StargateQuestHasStarted | boolean | Yes | |
StatButton | button | Yes | |
StatLvlDialog | dialog | No | |
StatPoints | integer | Yes | |
SurvivalCreepSpell | abilcode | Yes | |
SurvivalPeopleDeadInt | integer | No | |
SurvivalPGroup | force | No | |
SurvivalSpawnPoint | location | Yes | |
SurvivalSpawnTimer | timer | No | |
Team1 | force | No | |
Team2 | force | No | |
TempInt | integer | No | |
TempIntCount | integer | No | |
TempIntCount2 | integer | No | |
TempInteger | integer | No | |
TempInteger1 | integer | Yes | |
TempIntt | integer | No | |
TempItem | item | No | |
TempItemType | itemcode | No | |
TempUnit | unit | No | |
TempUnitType | unitcode | No | |
TextPoint | location | No | |
TFRandomInt | integer | No | |
TheOne | player | No | |
ThiefImbueRandomInt | integer | No | |
ThiefPlayerGroup | force | No | |
ThiefSpawnPoint | location | Yes | |
ThiefSpawnTimer | timer | No | |
ThiefSpell | abilcode | Yes | |
TI | integer | Yes | |
TigerGirlDead | boolean | Yes | |
tigergirlhelpcount | integer | No | |
TigerGirlKillQuestStarted | boolean | Yes | |
TigerGirlQuestDone | boolean | Yes | |
TigerSummonPoint | location | No | |
TownAttackInt | integer | No | |
TownNpc | group | No | |
TP | effect | No | |
Trader | unit | Yes | |
TraderPlayerGroup | force | No | |
TriggerKobold | unit | No | |
ujigibrothers | group | No | |
ujigideathcount | integer | No | |
UjigiKillingQuestHasStarted | boolean | Yes | |
ujigikills | integer | Yes | |
UjigiQuestDone | boolean | Yes | |
UjigiQuestPoint | location | No | |
UnitGroup | group | No | |
UnitLotteryDropInt | integer | Yes | |
uruechihelpcount | integer | No | |
Validate | boolean | No | |
VoteTimer | timer | No | |
WatchGroup | force | No | |
WaterGroup | group | Yes | |
WaterInt | integer | Yes | |
WaterPoint | location | Yes | |
WB | abilcode | Yes | |
WBPlayers | force | No | |
WBStarted | boolean | No | |
WBTarg | unit | No | |
WBTimer | timer | No | |
WeakKobolds | group | No | |
WeaponHeldBoolean | boolean | Yes | false |
weaponholders | group | No | |
WFWRandomInt | integer | No | |
Wolf | unit | Yes | |
WolfAttackQuestDone | boolean | Yes | |
WolfAttackQuestHasStarted | boolean | Yes | |
WolfTimer | timerdialog | No | |
WolfType | unitcode | Yes | |
WPlayers | force | No | |
Wstarted | boolean | No |
function Trig_Storage_Actions takes nothing returns nothing
local location sloc = GetRectCenter(gg_rct_Storagetele)
call PlaySoundBJ(gg_snd_ReviveOrc)
call DisplayTextToForce(GetForceOfPlayer(GetTriggerPlayer()), "|cff32cd32Preparing teleportation matrix for teleport ... Please wait(10.00 seconds)")
call TriggerSleepAction(10.00)
call SetUnitPositionLoc(udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], sloc)
call RemoveLocation(sloc)
set sloc = null
endfunction
//===========================================================================
function InitTrig_Storage takes nothing returns nothing
set gg_trg_Storage = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(0), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(1), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(2), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(3), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(4), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(5), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(6), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(7), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(8), "-storage", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Storage, Player(9), "-storage", true )
call TriggerAddAction( gg_trg_Storage, function Trig_Storage_Actions )
endfunction
function Trig_Repick_Actions takes nothing returns nothing
local location repick = GetRectCenter(gg_rct_Spirit_Spawn)
set udg_I[GetConvertedPlayerId(GetTriggerPlayer())] = 0
set udg_F[GetConvertedPlayerId(GetTriggerPlayer())] = 0
set udg_StatPoints[GetConvertedPlayerId(GetTriggerPlayer())] = 0
call SetPlayerStateBJ( GetTriggerPlayer(), PLAYER_STATE_RESOURCE_GOLD, 0 )
call SetPlayerStateBJ( GetTriggerPlayer(), PLAYER_STATE_RESOURCE_LUMBER, 0 )
call RemoveUnit(udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())])
call RemoveUnit(udg_Spirit[GetConvertedPlayerId(GetTriggerPlayer())])
call CreateUnitAtLoc(GetTriggerPlayer(), 'e000', repick, 270.00)
call RemoveLocation(repick)
set repick = null
endfunction
//===========================================================================
function InitTrig_Repick takes nothing returns nothing
set gg_trg_Repick = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(0), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(1), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(2), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(3), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(4), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(5), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(6), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(7), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(8), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(9), "-repick", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Repick, Player(10), "-repick", true )
call TriggerAddAction( gg_trg_Repick, function Trig_Repick_Actions )
endfunction
function Trig_Town_tele_Func003C takes nothing returns boolean
if ( not ( IsUnitInGroup(udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], udg_CombatStateGroup) == false ) ) then
return false
endif
return true
endfunction
function Trig_Town_tele_Actions takes nothing returns nothing
local location town
call PlaySoundBJ( gg_snd_LichKingDream )
call TriggerSleepAction( 2 )
if ( Trig_Town_tele_Func003C() ) then
set town = GetUnitLoc(udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())])
call SetUnitPositionLoc( udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], udg_RPoint[GetConvertedPlayerId(GetTriggerPlayer())] )
call PanCameraToTimedLocForPlayer( GetTriggerPlayer(), town, 0 )
call RemoveLocation(town)
else
call DisplayTextToForce( GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_2440" )
endif
set town = null
endfunction
//===========================================================================
function InitTrig_Town_tele takes nothing returns nothing
set gg_trg_Town_tele = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(0), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(1), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(2), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(3), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(4), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(5), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(6), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(7), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(8), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(9), "-town", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Town_tele, Player(10), "-town", true )
call TriggerAddAction( gg_trg_Town_tele, function Trig_Town_tele_Actions )
endfunction
function Trig_Ressurect_Conditions takes nothing returns boolean
if ( not ( GetOwningPlayer(GetTriggerUnit()) != Player(PLAYER_NEUTRAL_PASSIVE) ) ) then
return false
endif
if ( not ( GetOwningPlayer(GetTriggerUnit()) != Player(bj_PLAYER_NEUTRAL_EXTRA) ) ) then
return false
endif
if ( not ( GetOwningPlayer(GetTriggerUnit()) != Player(bj_PLAYER_NEUTRAL_VICTIM) ) ) then
return false
endif
if ( not ( GetOwningPlayer(GetTriggerUnit()) != Player(PLAYER_NEUTRAL_AGGRESSIVE) ) ) then
return false
endif
if ( not ( GetOwningPlayer(GetTriggerUnit()) != Player(11) ) ) then
return false
endif
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
if ( not ( UnitHasBuffBJ(GetTriggerUnit(), 'B019') == false ) ) then
return false
endif
return true
endfunction
function Trig_Ressurect_Actions takes nothing returns nothing
call DisplayTextToForce( GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_2136" )
call TriggerSleepAction( 3.00 )
call ReviveHeroLoc( udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], udg_RPoint[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], true )
call TriggerSleepAction( 0.10 )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), udg_RPoint[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], 0 )
endfunction
//===========================================================================
function InitTrig_Ressurect takes nothing returns nothing
set gg_trg_Ressurect = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Ressurect, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_Ressurect, Condition( function Trig_Ressurect_Conditions ) )
call TriggerAddAction( gg_trg_Ressurect, function Trig_Ressurect_Actions )
endfunction
function Trig_Cap_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A005' ) ) then
return false
endif
return true
endfunction
function Trig_Cap_Func001C takes unit l returns boolean
if ( not ( GetUnitLifePercent(l) < 10.00 ) ) then
return false
endif
return true
endfunction
function Trig_Cap_Actions takes nothing returns nothing
local effect array cape
local location cap
local unit targ = GetSpellTargetUnit()
if ( Trig_Cap_Func001C(targ) ) then
call KillUnit(targ)
call ForceAddPlayerSimple( GetOwningPlayer(targ), udg_GameOver )
call ForceAddPlayerSimple( GetOwningPlayer(targ), udg_LostGame )
call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(targ)), "TRIGSTR_4127" )
call DisplayTextToForce( GetPlayersEnemies(GetOwningPlayer(targ)), GetPlayerName(GetOwningPlayer(targ)) )
call DisplayTextToForce( GetPlayersEnemies(GetOwningPlayer(targ)), ( "|cffff0000has lost his head in battle. HE HAS BEEN DEFEATED BY " + GetPlayerName(GetOwningPlayer(GetTriggerUnit())) ) )
call PlaySoundBJ( gg_snd_TheHornOfCenarius )
call CreateFogModifierRectBJ( true, GetOwningPlayer(GetTriggerUnit()), FOG_OF_WAR_VISIBLE, GetPlayableMapRect() )
call TriggerSleepAction( 1.00 )
call SetUnitAnimation( GetTriggerUnit(), "stand victory" )
set cap = GetUnitLoc(GetTriggerUnit())
call AddSpecialEffectLocBJ( cap, "Doodads\\Cinematic\\Lightningbolt\\Lightningbolt.mdl" )
set cape[1] = (GetLastCreatedEffectBJ())
call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Abilities\\Weapons\\Bolt\\BoltImpact.mdl" )
set cape[2] = (GetLastCreatedEffectBJ())
call RemoveLocation(cap)
set cap = null
set targ = null
call TriggerSleepAction( 0.30 )
call RemoveUnit(targ)
call DestroyEffectBJ( cape[1] )
call DestroyEffectBJ( cape[2] )
set cape[1] = null
set cape[2] = null
else
endif
endfunction
//===========================================================================
function InitTrig_Cap takes nothing returns nothing
set gg_trg_Cap = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Cap, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Cap, Condition( function Trig_Cap_Conditions ) )
call TriggerAddAction( gg_trg_Cap, function Trig_Cap_Actions )
endfunction
function Trig_Holy_Force_Func001C takes nothing returns boolean
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00W') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00X') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00Y') == true ) ) then
return true
endif
return false
endfunction
function Trig_Holy_Force_Conditions takes nothing returns boolean
if ( not Trig_Holy_Force_Func001C() ) then
return false
endif
return true
endfunction
function Trig_Holy_Force_Actions takes nothing returns nothing
local integer hi = GetRandomInt(1, 8)
local location hl
local unit hu
if hi == 2 then
set hl = GetUnitLoc(GetTriggerUnit())
set hu = CreateUnitAtLoc( GetOwningPlayer(GetAttacker()), 'nalb', hl, 0.00 )
call RemoveLocation(hl)
call ShowUnitHide(hu)
call UnitAddAbilityBJ( 'A05O', hu )
call IssueTargetOrder( hu, "acidbomb", GetAttacker() )
call UnitApplyTimedLifeBJ( 1.50, 'BTLF', hu )
call SetUnitLifeBJ( GetAttacker(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetAttacker()) + ( I2R(GetUnitAbilityLevelSwapped('A027', GetAttacker())) * I2R(GetHeroStatBJ(bj_HEROSTAT_STR, GetAttacker(), true)) ) ) )
endif
set hl = null
set hu = null
endfunction
//===========================================================================
function InitTrig_Holy_Force takes nothing returns nothing
set gg_trg_Holy_Force = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Holy_Force, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Holy_Force, Condition( function Trig_Holy_Force_Conditions ) )
call TriggerAddAction( gg_trg_Holy_Force, function Trig_Holy_Force_Actions )
endfunction
function Trig_Water_Force_Func001C takes nothing returns boolean
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00R') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00S') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00Q') == true ) ) then
return true
endif
return false
endfunction
function Trig_Water_Force_Conditions takes nothing returns boolean
if ( not Trig_Water_Force_Func001C() ) then
return false
endif
return true
endfunction
function Trig_Water_Force_Actions takes nothing returns nothing
local integer wi = GetRandomInt(1, 10)
local location wl
local unit wu
if wi == 2 then
set wl = GetUnitLoc(GetTriggerUnit())
set wu = CreateUnitAtLoc( GetOwningPlayer(GetAttacker()), 'nalb', wl, 0.00 )
call RemoveLocation(wl)
call ShowUnitHide( wu )
call UnitAddAbilityBJ( 'A05K', wu )
call IssueImmediateOrder( wu, "stomp" )
call UnitApplyTimedLifeBJ( 1.50, 'BTLF', wu )
endif
set wl = null
set wu = null
endfunction
//===========================================================================
function InitTrig_Water_Force takes nothing returns nothing
set gg_trg_Water_Force = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Water_Force, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Water_Force, Condition( function Trig_Water_Force_Conditions ) )
call TriggerAddAction( gg_trg_Water_Force, function Trig_Water_Force_Actions )
endfunction
function Trig_Shadow_Force_Func005C takes nothing returns boolean
if ( ( GetUnitTypeId(GetAttacker()) == 'N00P' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetAttacker()) == 'H00I' ) ) then
return true
endif
return false
endfunction
function Trig_Shadow_Force_Conditions takes nothing returns boolean
if ( not ( R2I(GetUnitStateSwap(UNIT_STATE_MANA, GetTriggerUnit())) > 0 ) ) then
return false
endif
if ( not Trig_Shadow_Force_Func005C() ) then
return false
endif
return true
endfunction
function Trig_Shadow_Force_Actions takes nothing returns nothing
local integer si = R2I(( I2R(GetHeroStatBJ(bj_HEROSTAT_AGI, GetAttacker(), true)) * ( 0.05 * I2R(GetUnitAbilityLevelSwapped('A01Z', GetAttacker())) ) ))
call SetUnitManaBJ( GetTriggerUnit(), ( GetUnitStateSwap(UNIT_STATE_MANA, GetTriggerUnit()) - I2R(si) ) )
if GetHeroLevel(GetAttacker()) >= 20 then
call SetUnitManaBJ( GetAttacker(), ( GetUnitStateSwap(UNIT_STATE_MANA, GetAttacker()) + I2R(si) ) )
endif
endfunction
//===========================================================================
function InitTrig_Shadow_Force takes nothing returns nothing
set gg_trg_Shadow_Force = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Shadow_Force, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Shadow_Force, Condition( function Trig_Shadow_Force_Conditions ) )
call TriggerAddAction( gg_trg_Shadow_Force, function Trig_Shadow_Force_Actions )
endfunction
function Trig_Fire_Force_Func001C takes nothing returns boolean
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00A') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00F') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00G') == true ) ) then
return true
endif
return false
endfunction
function Trig_Fire_Force_Conditions takes nothing returns boolean
if ( not Trig_Fire_Force_Func001C() ) then
return false
endif
return true
endfunction
function Trig_Fire_Force_Actions takes nothing returns nothing
local integer fi = GetRandomInt(1, 3)
local location fl = GetUnitLoc(GetTriggerUnit())
local unit fu = CreateUnitAtLoc(GetOwningPlayer(GetAttacker()), 'n022', fl, 0.00)
local unit fuo
call UnitApplyTimedLifeBJ( 0.01, 'BTLF', fu )
if fi == 2 then
set fuo = CreateUnitAtLoc(GetOwningPlayer(GetAttacker()), 'nalb', fl, 0.00 )
call RemoveLocation(fl)
call ShowUnitHide( fuo )
call UnitAddAbilityBJ( 'A04Z', fuo )
call SetUnitAbilityLevelSwapped( 'A04Z', fuo, GetUnitAbilityLevelSwapped('A050', GetAttacker()) )
call IssueTargetOrder( fuo, "soulburn", GetTriggerUnit() )
call UnitApplyTimedLifeBJ( 1.50, 'BTLF', fuo )
else
endif
set fl = null
set fu = null
set fuo = null
endfunction
//===========================================================================
function InitTrig_Fire_Force takes nothing returns nothing
set gg_trg_Fire_Force = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Fire_Force, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Fire_Force, Condition( function Trig_Fire_Force_Conditions ) )
call TriggerAddAction( gg_trg_Fire_Force, function Trig_Fire_Force_Actions )
endfunction
function Trig_Ice_Force_Func001C takes nothing returns boolean
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00H') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00I') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00J') == true ) ) then
return true
endif
return false
endfunction
function Trig_Ice_Force_Conditions takes nothing returns boolean
if ( not Trig_Ice_Force_Func001C() ) then
return false
endif
return true
endfunction
function Trig_Ice_Force_Actions takes nothing returns nothing
local integer ifi = GetRandomInt(1, 2)
local location il = GetUnitLoc(GetTriggerUnit())
local unit iu = CreateUnitAtLoc( GetOwningPlayer(GetAttacker()), 'n023', il, 0.00 )
local unit iut
call RemoveLocation(il)
call UnitApplyTimedLifeBJ( 0.01, 'BTLF', iu )
if ifi == 2 then
set il = GetUnitLoc(GetTriggerUnit())
set iut = CreateUnitAtLoc( GetOwningPlayer(GetAttacker()), 'nalb', il, 0.00 )
call RemoveLocation(il)
call ShowUnitHide( iu )
call UnitAddAbilityBJ( 'A05F', iu )
call SetUnitAbilityLevelSwapped( 'A05F', iu, GetUnitAbilityLevelSwapped('A05E', GetAttacker()) )
call IssueTargetOrder( iu, "frostnova", GetTriggerUnit() )
call UnitApplyTimedLifeBJ( 1.50, 'BTLF', iu )
endif
set il = null
set iut = null
set iu = null
endfunction
//===========================================================================
function InitTrig_Ice_Force takes nothing returns nothing
set gg_trg_Ice_Force = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Ice_Force, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Ice_Force, Condition( function Trig_Ice_Force_Conditions ) )
call TriggerAddAction( gg_trg_Ice_Force, function Trig_Ice_Force_Actions )
endfunction
function Trig_Thunder_Force_Func001C takes nothing returns boolean
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00L') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00K') == true ) ) then
return true
endif
if ( ( UnitHasBuffBJ(GetAttacker(), 'B00M') == true ) ) then
return true
endif
return false
endfunction
function Trig_Thunder_Force_Conditions takes nothing returns boolean
if ( not Trig_Thunder_Force_Func001C() ) then
return false
endif
return true
endfunction
function Trig_Thunder_Force_Actions takes nothing returns nothing
local integer ti = GetRandomInt(1, 3)
local location tl = GetUnitLoc(GetTriggerUnit())
local unit tu = CreateUnitAtLoc( GetOwningPlayer(GetAttacker()), 'n024', tl, 0.00 )
local unit tuo
call RemoveLocation(tl)
call UnitApplyTimedLifeBJ( 0.01, 'BTLF', tu )
if ti == 2 then
set tl = GetUnitLoc(GetTriggerUnit())
set tuo = CreateUnitAtLoc( GetOwningPlayer(GetAttacker()), 'nalb', tl, 0.00 )
call RemoveLocation(tl)
call ShowUnitHide( tuo )
call UnitAddAbilityBJ( 'A05H', tuo )
call IssueTargetOrderBJ( tuo, "curse", GetTriggerUnit() )
call UnitApplyTimedLifeBJ( 1.50, 'BTLF', tuo )
endif
set tl = null
set tu = null
set tuo = null
endfunction
//===========================================================================
function InitTrig_Thunder_Force takes nothing returns nothing
set gg_trg_Thunder_Force = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Thunder_Force, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Thunder_Force, Condition( function Trig_Thunder_Force_Conditions ) )
call TriggerAddAction( gg_trg_Thunder_Force, function Trig_Thunder_Force_Actions )
endfunction
function Trig_Madnesscrazy_Func001Func001C takes integer pea returns boolean
if ( not ( IsUnitAliveBJ(udg_madman07[pea]) == true ) ) then
return false
endif
if ( not ( UnitHasBuffBJ(udg_madman07[pea], 'B00E') == true ) ) then
return false
endif
return true
endfunction
function Trig_Madnesscrazy_Actions takes nothing returns nothing
local integer ii = 1
local location temad
local location mad
local integer ir = 10
loop
exitwhen ii > ir
if ( Trig_Madnesscrazy_Func001Func001C(ii) ) then
set temad = GetUnitLoc(udg_madman07[ii])
set mad = PolarProjectionBJ(temad, 50.00, GetRandomDirectionDeg())
call SetUnitPositionLoc(udg_madman07[ii], mad)
call RemoveLocation(mad)
call RemoveLocation(temad)
endif
set ii = ii + 1
endloop
set mad = null
set temad = null
endfunction
//===========================================================================
function InitTrig_Madnesscrazy takes nothing returns nothing
set gg_trg_Madnesscrazy = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Madnesscrazy, 0.13 )
call TriggerAddAction( gg_trg_Madnesscrazy, function Trig_Madnesscrazy_Actions )
endfunction
function Trig_ExitBarrows_Func001C takes nothing returns boolean
if ( not ( IsUnitInGroup(udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], udg_barrowguy) == true ) ) then
return false
endif
return true
endfunction
function Trig_ExitBarrows_Actions takes nothing returns nothing
local location ex
if ( Trig_ExitBarrows_Func001C() ) then
set ex = (GetRectCenter(gg_rct_BurialSite))
call SetUnitPositionLoc(udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], ex)
call PanCameraToTimedLocForPlayer( GetTriggerPlayer(), ex, 0 )
call RemoveLocation(ex)
else
endif
set ex = null
endfunction
//===========================================================================
function InitTrig_ExitBarrows takes nothing returns nothing
set gg_trg_ExitBarrows = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(0), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(1), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(2), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(3), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(4), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(5), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(6), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(7), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(8), "-exit barrow", true )
call TriggerRegisterPlayerChatEvent( gg_trg_ExitBarrows, Player(9), "-exit barrow", true )
call TriggerAddAction( gg_trg_ExitBarrows, function Trig_ExitBarrows_Actions )
endfunction
function Trig_Barrowloss_Conditions takes nothing returns boolean
if ( not ( IsUnitInGroup(GetTriggerUnit(), udg_barrowguy) == true ) ) then
return false
endif
return true
endfunction
function Trig_Barrowloss_Func002C takes nothing returns boolean
if ( not ( RectContainsUnit(gg_rct_Barrow, GetTriggerUnit()) == false ) ) then
return false
endif
if ( not ( RectContainsUnit(gg_rct_BurialSite, GetTriggerUnit()) == false ) ) then
return false
endif
return true
endfunction
function Trig_Barrowloss_Func005002 takes nothing returns nothing
call SetUnitPositionLoc( GetEnumUnit(), GetRectCenter(gg_rct_Town_Tele) )
endfunction
function Trig_Barrowloss_Func009001002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_HERO) == true )
endfunction
function Trig_Barrowloss_Func009002 takes nothing returns nothing
call RemoveUnit( GetEnumUnit() )
endfunction
function Trig_Barrowloss_Actions takes nothing returns nothing
call TriggerSleepAction( 1.00 )
if ( Trig_Barrowloss_Func002C() ) then
set udg_Barrowstarted = false
set udg_LeverPullCount = 0
set udg_barrowcount = 0
call ForGroupBJ( udg_barrowguy, function Trig_Barrowloss_Func005002 )
call GroupRemoveGroup( udg_barrowguy, udg_barrowguy )
call GroupRemoveGroup( udg_LeverPulledGroup, udg_LeverPulledGroup )
call TriggerSleepAction( 1.00 )
call ForGroupBJ( GetUnitsInRectMatching(gg_rct_Barrows, Condition(function Trig_Barrowloss_Func009001002)), function Trig_Barrowloss_Func009002 )
call EnableTrigger( gg_trg_Dharok )
call EnableTrigger( gg_trg_Guthan )
call EnableTrigger( gg_trg_Verac )
call EnableTrigger( gg_trg_Torag )
call EnableTrigger( gg_trg_Arhim )
call EnableTrigger( gg_trg_Karil )
call EnableTrigger( gg_trg_BarrowPart1Done )
else
endif
endfunction
//===========================================================================
function InitTrig_Barrowloss takes nothing returns nothing
set gg_trg_Barrowloss = CreateTrigger( )
call TriggerRegisterLeaveRectSimple( gg_trg_Barrowloss, gg_rct_Barrow )
call TriggerRegisterLeaveRectSimple( gg_trg_Barrowloss, gg_rct_BurialSite )
call TriggerAddCondition( gg_trg_Barrowloss, Condition( function Trig_Barrowloss_Conditions ) )
call TriggerAddAction( gg_trg_Barrowloss, function Trig_Barrowloss_Actions )
endfunction
function Trig_EnterDharok_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_EnterDharok_Actions takes nothing returns nothing
local location d = (GetRectCenter(gg_rct_DharokT))
call GroupAddUnitSimple( GetTriggerUnit(), udg_barrowguy )
call DisplayTimedTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), 10.00, "|cffffcc00Dharok's Burial Chamber.|r" )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), d, 0 )
call SetUnitPositionLoc( GetTriggerUnit(), d )
call RemoveLocation(d)
set d = null
endfunction
//===========================================================================
function InitTrig_EnterDharok takes nothing returns nothing
set gg_trg_EnterDharok = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_EnterDharok, gg_rct_DharokB )
call TriggerAddCondition( gg_trg_EnterDharok, Condition( function Trig_EnterDharok_Conditions ) )
call TriggerAddAction( gg_trg_EnterDharok, function Trig_EnterDharok_Actions )
endfunction
function Trig_Dharok_Actions takes nothing returns nothing
local location dc = GetUnitLoc(GetTriggerUnit())
call DisableTrigger( GetTriggeringTrigger() )
call CreateNUnitsAtLoc( 1, 'O002', Player(11), dc, 270.00 )
call SetHeroLevelBJ( GetLastCreatedUnit(), 35, false )
call UnitAddItemByIdSwapped( 'I01B', GetLastCreatedUnit() )
call TransmissionFromUnitWithNameBJ( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), GetLastCreatedUnit(), "TRIGSTR_907", null, "TRIGSTR_908", bj_TIMETYPE_ADD, 0, true )
call RemoveLocation(dc)
set dc = null
endfunction
//===========================================================================
function InitTrig_Dharok takes nothing returns nothing
set gg_trg_Dharok = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Dharok, gg_rct_Dharok )
call TriggerAddAction( gg_trg_Dharok, function Trig_Dharok_Actions )
endfunction
function Trig_EnterGuthan_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_EnterGuthan_Actions takes nothing returns nothing
local location g = (GetRectCenter(gg_rct_GuthanT))
call GroupAddUnitSimple( GetTriggerUnit(), udg_barrowguy )
call DisplayTimedTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), 10.00, "|cffffcc00Guthan's Burial Chamber.|r" )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), g, 0 )
call SetUnitPositionLoc( GetTriggerUnit(), g )
call RemoveLocation(g)
set g = null
endfunction
//===========================================================================
function InitTrig_EnterGuthan takes nothing returns nothing
set gg_trg_EnterGuthan = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_EnterGuthan, gg_rct_GuthanB )
call TriggerAddCondition( gg_trg_EnterGuthan, Condition( function Trig_EnterGuthan_Conditions ) )
call TriggerAddAction( gg_trg_EnterGuthan, function Trig_EnterGuthan_Actions )
endfunction
function Trig_EnterVerac_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_EnterVerac_Actions takes nothing returns nothing
local location v = (GetRectCenter(gg_rct_VeracT))
call GroupAddUnitSimple( GetTriggerUnit(), udg_barrowguy )
call DisplayTimedTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), 10.00, "|cffffcc00Verac's Burial Chamber.|r" )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), v, 0 )
call SetUnitPositionLoc( GetTriggerUnit(), v )
call RemoveLocation(v)
set v = null
endfunction
//===========================================================================
function InitTrig_EnterVerac takes nothing returns nothing
set gg_trg_EnterVerac = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_EnterVerac, gg_rct_VeracB )
call TriggerAddCondition( gg_trg_EnterVerac, Condition( function Trig_EnterVerac_Conditions ) )
call TriggerAddAction( gg_trg_EnterVerac, function Trig_EnterVerac_Actions )
endfunction
function Trig_EnterTorag_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_EnterTorag_Actions takes nothing returns nothing
local location t = (GetRectCenter(gg_rct_ToragT))
call GroupAddUnitSimple( GetTriggerUnit(), udg_barrowguy )
call DisplayTimedTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), 10.00, "|cffffcc00Torag's Burial Chamber.|r" )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), t, 0 )
call SetUnitPositionLoc( GetTriggerUnit(), t )
call RemoveLocation(t)
set t = null
endfunction
//===========================================================================
function InitTrig_EnterTorag takes nothing returns nothing
set gg_trg_EnterTorag = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_EnterTorag, gg_rct_ToragB )
call TriggerAddCondition( gg_trg_EnterTorag, Condition( function Trig_EnterTorag_Conditions ) )
call TriggerAddAction( gg_trg_EnterTorag, function Trig_EnterTorag_Actions )
endfunction
function Trig_EnterArhim_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_EnterArhim_Actions takes nothing returns nothing
local location a = (GetRectCenter(gg_rct_ArhimT))
call GroupAddUnitSimple( GetTriggerUnit(), udg_barrowguy )
call DisplayTimedTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), 10.00, "|cffffcc00Arhim's Burial Chamber.|r" )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), a, 0 )
call SetUnitPositionLoc( GetTriggerUnit(), a )
call RemoveLocation(a)
set a = null
endfunction
//===========================================================================
function InitTrig_EnterArhim takes nothing returns nothing
set gg_trg_EnterArhim = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_EnterArhim, gg_rct_ArhimB )
call TriggerAddCondition( gg_trg_EnterArhim, Condition( function Trig_EnterArhim_Conditions ) )
call TriggerAddAction( gg_trg_EnterArhim, function Trig_EnterArhim_Actions )
endfunction
function Trig_EnterKaril_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_EnterKaril_Actions takes nothing returns nothing
local location k = (GetRectCenter(gg_rct_KarilT))
call GroupAddUnitSimple( GetTriggerUnit(), udg_barrowguy )
call DisplayTimedTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), 10.00, "|cffffcc00Karil's Burial Chamber.|r" )
call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), k, 0 )
call SetUnitPositionLoc( GetTriggerUnit(), k )
call RemoveLocation(k)
set k = null
endfunction
//===========================================================================
function InitTrig_EnterKaril takes nothing returns nothing
set gg_trg_EnterKaril = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_EnterKaril, gg_rct_KarilB )
call TriggerAddCondition( gg_trg_EnterKaril, Condition( function Trig_EnterKaril_Conditions ) )
call TriggerAddAction( gg_trg_EnterKaril, function Trig_EnterKaril_Actions )
endfunction
function Trig_Cave_exit_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_Cave_exit_Actions takes nothing returns nothing
local location exitd = GetRectCenter(gg_rct_dw_exit)
call SetUnitPositionLoc( GetTriggerUnit(), exitd )
call RemoveLocation(exitd)
set exitd = null
endfunction
//===========================================================================
function InitTrig_Cave_exit takes nothing returns nothing
set gg_trg_Cave_exit = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Cave_exit, gg_rct_donwhang_exit )
call TriggerAddCondition( gg_trg_Cave_exit, Condition( function Trig_Cave_exit_Conditions ) )
call TriggerAddAction( gg_trg_Cave_exit, function Trig_Cave_exit_Actions )
endfunction
function Trig_Cave_Entry_Actions takes nothing returns nothing
local location cavee = GetRectCenter(gg_rct_Cave_Area1)
call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), "TRIGSTR_2441" )
call SetUnitPositionLoc( GetTriggerUnit(), cavee)
call RemoveLocation(cavee)
set cavee = null
endfunction
//===========================================================================
function InitTrig_Cave_Entry takes nothing returns nothing
set gg_trg_Cave_Entry = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Cave_Entry, gg_rct_CaveEntry )
call TriggerAddAction( gg_trg_Cave_Entry, function Trig_Cave_Entry_Actions )
endfunction
function Trig_ThroughCave_Actions takes nothing returns nothing
local location wb = GetRectCenter(gg_rct_WCTele)
call SetUnitPositionLoc( GetTriggerUnit(), wb )
call RemoveLocation(wb)
set wb = null
endfunction
//===========================================================================
function InitTrig_ThroughCave takes nothing returns nothing
set gg_trg_ThroughCave = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_ThroughCave, gg_rct_Wolf_Massacre )
call TriggerAddAction( gg_trg_ThroughCave, function Trig_ThroughCave_Actions )
endfunction
function Trig_Exit_Actions takes nothing returns nothing
local location tb = GetRectCenter(gg_rct_Wolf_Massacre)
call SetUnitPositionLoc( GetTriggerUnit(), tb )
call RemoveLocation(tb)
set tb = null
endfunction
//===========================================================================
function InitTrig_Exit takes nothing returns nothing
set gg_trg_Exit = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Exit, gg_rct_Exit )
call TriggerAddAction( gg_trg_Exit, function Trig_Exit_Actions )
endfunction
function Trig_AlchemistStarted_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction
function Trig_AlchemistStarted_Actions takes nothing returns nothing
local location ub
call TransmissionFromUnitWithNameBJ( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), gg_unit_N01C_0059, "TRIGSTR_4175", null, "TRIGSTR_4176", bj_TIMETYPE_ADD, 5.00, true )
call ForceAddPlayerSimple( GetOwningPlayer(GetTriggerUnit()), udg_WBPlayers )
call PauseUnit(GetTriggerUnit(), true)
call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), "TRIGSTR_4174" )
set ub = GetRectCenter(gg_rct_Centre)
call SetUnitPositionLoc( GetTriggerUnit(), ub )
call PauseUnit(GetTriggerUnit(), false)
call RemoveLocation(ub)
call TransmissionFromUnitWithNameBJ( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), gg_unit_N01C_0059, "TRIGSTR_4177", null, "TRIGSTR_4178", bj_TIMETYPE_ADD, 5.00, true )
call TriggerSleepAction( 20.00 )
if udg_WBStarted == false then
set udg_WBStarted = true
call DisableTrigger( GetTriggeringTrigger() )
call TriggerExecute( gg_trg_Part1 )
endif
set ub = null
endfunction
//===========================================================================
function InitTrig_AlchemistStarted takes nothing returns nothing
set gg_trg_AlchemistStarted = CreateTrigger( )
call TriggerRegisterUnitInRangeSimple( gg_trg_AlchemistStarted, 256.00, gg_unit_N01C_0059 )
call TriggerAddCondition( gg_trg_AlchemistStarted, Condition( function Trig_AlchemistStarted_Conditions ) )
call TriggerAddAction( gg_trg_AlchemistStarted, function Trig_AlchemistStarted_Actions )
endfunction
function Trig_Part1_Actions takes nothing returns nothing
local unit crock
local location cent = GetRectCenter(gg_rct_Centre)
local location minerspawn = GetRectCenter(gg_rct_Minerspawn)
call CreateNUnitsAtLoc( 1, 'e008', Player(PLAYER_NEUTRAL_PASSIVE), cent, 0.00 )
call SetUnitUserData(GetLastCreatedUnit(), 8)
set crock = GetLastCreatedUnit()
call CreateNUnitsAtLoc( 1, 'h005', Player(PLAYER_NEUTRAL_PASSIVE), minerspawn, 0.00 )
call RemoveLocation(minerspawn)
set udg_CholakMiner = GetLastCreatedUnit()
call IssueTargetOrder(GetLastCreatedUnit(), "attack", crock)
call RemoveLocation(cent)
call TriggerExecute(gg_trg_Wolf)
call TimerStart(udg_WBTimer, 300.00, false, null)
set udg_WolfTimer = CreateTimerDialogBJ(udg_WBTimer, "Mining Time")
set udg_Paused = false
set cent = null
set crock = null
set minerspawn = null
endfunction
//===========================================================================
function InitTrig_Part1 takes nothing returns nothing
set gg_trg_Part1 = CreateTrigger( )
call TriggerAddAction( gg_trg_Part1, function Trig_Part1_Actions )
endfunction
function Trig_Wolf_Actions takes nothing returns nothing
local location wofl = GetRandomLocInRect(gg_rct_WolfM)
call CreateNUnitsAtLoc( 1, udg_WolfType[GetRandomInt(1, 3)], Player(11), wofl, 0.00 )
call IssueTargetOrder(GetLastCreatedUnit(), "attack", udg_CholakMiner)
call RemoveLocation(wofl)
set wofl = null
call TriggerSleepAction(GetRandomReal(1.00, 10.00))
if udg_Paused == false then
call TriggerExecute(gg_trg_Wolf)
endif
endfunction
//===========================================================================
function InitTrig_Wolf takes nothing returns nothing
set gg_trg_Wolf = CreateTrigger( )
call TriggerAddAction( gg_trg_Wolf, function Trig_Wolf_Actions )
endfunction
function Trig_MinerDie_Conditions takes nothing returns boolean
if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'h005' ) ) then
return false
endif
return true
endfunction
function Trig_MinerDie_Func005A takes nothing returns nothing
call SetUnitPositionLoc( udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetEnumPlayer())], udg_KBDungeonPoints )
endfunction
function Trig_MinerDie_Actions takes nothing returns nothing
local unit u
local group tempw = CreateGroup()
set udg_Paused = true
call DestroyTimerDialog(udg_WolfTimer)
call QuestMessageBJ( udg_WBPlayers, bj_QUESTMESSAGE_FAILED, "TRIGSTR_4179" )
set udg_WBStarted = false
set udg_KBDungeonPoints = GetRectCenter(gg_rct_Town_Tele)
call ForForce( udg_WBPlayers, function Trig_MinerDie_Func005A )
call RemoveLocation(udg_KBDungeonPoints)
set tempw = GetUnitsInRectAll(gg_rct_WolfM)
loop
set u = FirstOfGroup(tempw)
exitwhen u == null
call RemoveUnit(u)
call GroupRemoveUnit(tempw, u)
endloop
call DestroyGroup(tempw)
call EnableTrigger( gg_trg_AlchemistStarted )
call DisableTrigger(gg_trg_Wolf)
call ForceClear( udg_WBPlayers )
set tempw = null
set u = null
endfunction
//===========================================================================
function InitTrig_MinerDie takes nothing returns nothing
set gg_trg_MinerDie = CreateTrigger( )
call TriggerRegisterPlayerUnitEventSimple( gg_trg_MinerDie, Player(PLAYER_NEUTRAL_PASSIVE), EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_MinerDie, Condition( function Trig_MinerDie_Conditions ) )
call TriggerAddAction( gg_trg_MinerDie, function Trig_MinerDie_Actions )
endfunction
function Trig_SaveLoad_Save_All_Actions takes nothing returns nothing
local integer i
local integer r
call DisplayTextToForce(GetForceOfPlayer(GetTriggerPlayer()), "|cff32cd32Saving character...please wait...|r")
set udg_SaveCount = 1
set udg_Save[udg_SaveCount] = GetPlayerState(GetTriggerPlayer(), PLAYER_STATE_RESOURCE_GOLD)
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_Save[udg_SaveCount] = GetPlayerState(GetTriggerPlayer(), PLAYER_STATE_RESOURCE_LUMBER)
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_TempUnit = udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())]
set udg_Save[udg_SaveCount] = SaveLoad_Unit2Integer( udg_TempUnit )
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_Save[udg_SaveCount] = GetHeroXP(udg_TempUnit)
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_Save[udg_SaveCount] = UnitInventoryCount(udg_TempUnit)
set i = 1
set r = 6
loop
exitwhen i > r
if IsItemOwned(UnitItemInSlotBJ(udg_TempUnit, i)) then
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_TempItem = UnitItemInSlotBJ(udg_TempUnit, i)
set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
else
endif
set i = i + 1
endloop
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_Save[udg_SaveCount] = GetHeroStatBJ(bj_HEROSTAT_STR, udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], false)
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_Save[udg_SaveCount] = GetHeroStatBJ(bj_HEROSTAT_AGI, udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], false)
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_Save[udg_SaveCount] = GetHeroStatBJ(bj_HEROSTAT_INT, udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], false)
set udg_Code = SaveLoad_Encode()
call QuestMessageBJ( GetForceOfPlayer(GetTriggerPlayer()), bj_QUESTMESSAGE_SECRET, "TRIGSTR_3977" )
call DisplayTimedTextToForce( GetForceOfPlayer(GetTriggerPlayer()), 60.00, "|cff32cd32Your code: |r" + udg_Code )
endfunction
//===========================================================================
function InitTrig_SaveLoad_Save_All takes nothing returns nothing
set gg_trg_SaveLoad_Save_All = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(0), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(1), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(2), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(3), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(4), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(5), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(6), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(7), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(8), "-save", true )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Save_All, Player(9), "-save", true )
call TriggerAddAction( gg_trg_SaveLoad_Save_All, function Trig_SaveLoad_Save_All_Actions )
endfunction
function Trig_SaveLoad_Load_All_Conditions takes nothing returns boolean
if ( not ( StringLength(GetEventPlayerChatString()) > 6 ) ) then
return false
endif
return true
endfunction
function Trig_SaveLoad_Load_All_Func005A takes nothing returns nothing
call RemoveUnit( GetEnumUnit() )
endfunction
function Trig_SaveLoad_Load_All_Actions takes nothing returns nothing
local integer i
local integer r
set udg_Code = SubStringBJ(GetEventPlayerChatString(), 7, StringLength(GetEventPlayerChatString()))
set udg_Validate = SaveLoad_Decode( udg_Code )
if udg_Validate == false then
call DisplayTextToForce(GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_3978")
return
else
endif
call DisplayTextToForce(GetPlayersAll(), (udg_Player_Colors[GetConvertedPlayerId(GetTriggerPlayer())] + (GetPlayerName(GetTriggerPlayer()) + " has loaded:")))
call ForGroupBJ( GetUnitsOfPlayerAll(GetTriggerPlayer()), function Trig_SaveLoad_Load_All_Func005A )
set udg_SaveCount = 1
call SetPlayerStateBJ( GetTriggerPlayer(), PLAYER_STATE_RESOURCE_GOLD, udg_Save[udg_SaveCount] )
set udg_SaveCount = ( udg_SaveCount + 1 )
call SetPlayerStateBJ( GetTriggerPlayer(), PLAYER_STATE_RESOURCE_LUMBER, udg_Save[udg_SaveCount] )
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_TempUnitType = SaveLoad_Integer2Unit(udg_Save[udg_SaveCount])
call CreateNUnitsAtLoc( 1, udg_TempUnitType, GetTriggerPlayer(), GetRectCenter(gg_rct_Town_Tele), bj_UNIT_FACING )
call UnitAddAbilityBJ( udg_SaveLoadSBooksStored[udg_Save[udg_SaveCount]], GetLastCreatedUnit() )
set udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())] = GetLastCreatedUnit()
call GroupAddUnitSimple( GetLastCreatedUnit(), udg_duelpeople )
call ForceAddPlayerSimple( GetTriggerPlayer(), udg_Players )
set udg_SaveCount = udg_SaveCount + 1
call SetHeroXP( GetLastCreatedUnit(), udg_Save[udg_SaveCount], false )
set udg_SaveCount = udg_SaveCount + 1
set i = 1
set r = udg_Save[udg_SaveCount]
call DisplayTextToForce( GetPlayersAll(), ( udg_Player_Colors[GetConvertedPlayerId(GetTriggerPlayer())] + ( "A Level " + ( I2S(GetUnitLevel(GetLastCreatedUnit())) + ( " " + GetUnitName(GetLastCreatedUnit()) ) ) ) ) )
loop
exitwhen i > r
set udg_SaveCount = ( udg_SaveCount + 1 )
set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
call UnitAddItemByIdSwapped( udg_TempItemType, udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())] )
set i = i + 1
endloop
set udg_SaveCount = ( udg_SaveCount + 1 )
call ModifyHeroStat( bj_HEROSTAT_STR, udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], bj_MODIFYMETHOD_SET, udg_Save[udg_SaveCount] )
set udg_SaveCount = ( udg_SaveCount + 1 )
call ModifyHeroStat( bj_HEROSTAT_AGI, udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], bj_MODIFYMETHOD_SET, udg_Save[udg_SaveCount] )
set udg_SaveCount = ( udg_SaveCount + 1 )
call ModifyHeroStat( bj_HEROSTAT_INT, udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], bj_MODIFYMETHOD_SET, udg_Save[udg_SaveCount] )
endfunction
//===========================================================================
function InitTrig_SaveLoad_Load_All takes nothing returns nothing
set gg_trg_SaveLoad_Load_All = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(0), "-load ", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(1), "-load ", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(2), "-load ", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(3), "-load ", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(4), "-load", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(5), "-load", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(6), "-load", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(7), "-load", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(8), "-load", false )
call TriggerRegisterPlayerChatEvent( gg_trg_SaveLoad_Load_All, Player(9), "-load", false )
call TriggerAddCondition( gg_trg_SaveLoad_Load_All, Condition( function Trig_SaveLoad_Load_All_Conditions ) )
call TriggerAddAction( gg_trg_SaveLoad_Load_All, function Trig_SaveLoad_Load_All_Actions )
endfunction
function Trig_Death_Conditions takes nothing returns boolean
if ( not ( GetOwningPlayer(GetTriggerUnit()) != Player(11) ) ) then
return false
endif
return true
endfunction
function Trig_Death_Actions takes nothing returns nothing
call KillUnit( GetTriggerUnit() )
endfunction
//===========================================================================
function InitTrig_Death takes nothing returns nothing
set gg_trg_Death = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_148 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_149 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_150 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_151 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_152 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_153 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_154 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_155 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_156 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_157 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_158 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_159 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_160 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_161 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_162 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_163 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_164 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_165 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_166 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_167 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_168 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_169 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_170 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_171 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_172 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_173 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_174 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_175 )
call TriggerRegisterEnterRectSimple( gg_trg_Death, gg_rct_Region_176 )
call TriggerAddCondition( gg_trg_Death, Condition( function Trig_Death_Conditions ) )
call TriggerAddAction( gg_trg_Death, function Trig_Death_Actions )
endfunction
function Trig_Pickyes_Conditions takes nothing returns boolean
if ( not ( GetClickedButtonBJ() == udg_MButton[1] ) ) then
return false
endif
return true
endfunction
function Trig_Pickyes_Actions takes nothing returns nothing
local location maze = GetRectCenter(gg_rct_Mazestart)
call TransmissionFromUnitWithNameBJ( GetForceOfPlayer(GetTriggerPlayer()), gg_unit_n02B_0060, "TRIGSTR_4113", null, "TRIGSTR_4114", bj_TIMETYPE_ADD, 0, true )
call PanCameraToTimedLocForPlayer( GetTriggerPlayer(), maze, 2.00 )
call SetUnitPositionLoc( udg_SaveLoadPlayerHeroSingle[GetConvertedPlayerId(GetTriggerPlayer())], maze )
call TransmissionFromUnitWithNameBJ( GetForceOfPlayer(GetTriggerPlayer()), gg_unit_n02B_0060, "TRIGSTR_4115", null, "TRIGSTR_4116", bj_TIMETYPE_ADD, 0, true )
call RemoveLocation(maze)
set maze = null
endfunction
//===========================================================================
function InitTrig_Pickyes takes nothing returns nothing
set gg_trg_Pickyes = CreateTrigger( )
call TriggerRegisterDialogEventBJ( gg_trg_Pickyes, udg_MMinigameyn )
call TriggerAddCondition( gg_trg_Pickyes, Condition( function Trig_Pickyes_Conditions ) )
call TriggerAddAction( gg_trg_Pickyes, function Trig_Pickyes_Actions )
endfunction
function Trig_Damage_Actions takes nothing returns nothing
local location dmg = GetUnitLoc(GetTriggerUnit())
if GetEventDamage() >= 1.00 then
call CreateTextTagLocBJ( I2S(R2I(GetEventDamage())), dmg, 0, 9.00, 100, 0.00, 0.00, 0 )
call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 80.00, 90.00 )
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 3.00 )
call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 1.00 )
else
endif
call RemoveLocation(dmg)
set dmg = null
endfunction
//===========================================================================
function InitTrig_Damage takes nothing returns nothing
set gg_trg_Damage = CreateTrigger( )
call TriggerAddAction( gg_trg_Damage, function Trig_Damage_Actions )
endfunction
function Trig_Spells_Func001C takes nothing returns boolean
if ( not ( GetSpellAbilityId() != 'A06B' ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetTriggerUnit()) != 'nalb' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'AIxk' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'ANhs' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04O' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04P' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04N' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04S' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04U' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04V' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04X' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A04Z' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A057' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A054' ) ) then
return false
endif
if ( not ( GetSpellAbilityId() != 'A058' ) ) then
return false
endif
return true
endfunction
function Trig_Spells_Actions takes nothing returns nothing
local location spell = GetUnitLoc(GetTriggerUnit())
if ( Trig_Spells_Func001C() ) then
call CreateTextTagLocBJ( ( ( GetAbilityName(GetSpellAbilityId()) + ( "(Level " + I2S(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ) ) + ")!" ), spell, 0, 12.00, 100.00, 100.00, 0.00, 0 )
call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 30.00, 90.00 )
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 5.00 )
call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 2.00 )
call RemoveLocation(spell)
else
endif
set spell = null
endfunction
//===========================================================================
function InitTrig_Spells takes nothing returns nothing
set gg_trg_Spells = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Spells, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddAction( gg_trg_Spells, function Trig_Spells_Actions )
endfunction
function Trig_Thieves_Func002Func001C takes integer a returns boolean
if ( not ( RectContainsUnit(gg_rct_Town, udg_Trader[a]) == false ) ) then
return false
endif
if ( not ( GetUnitTypeId(udg_Trader[a]) == 'h00Z' ) ) then
return false
endif
return true
endfunction
function Trig_Thieves_Actions takes nothing returns nothing
local integer tri
local location tempt
local location ts
local integer i
local integer r
call TimerStart( udg_ThiefSpawnTimer, GetRandomReal(35.00, 60.00), false, null )
set i = 1
set r = 11
loop
exitwhen i > r
if ( Trig_Thieves_Func002Func001C(i) ) then
set tempt = GetUnitLoc(udg_Trader[i])
set ts = PolarProjectionBJ(tempt, 200.00, GetRandomDirectionDeg())
call CreateNUnitsAtLoc( 1, 'H010', Player(11), ts, 270.00 )
call SetHeroLevelBJ( GetLastCreatedUnit(), GetHeroLevel(udg_SaveLoadPlayerHeroSingle[i]), false )
call ModifyHeroStat( bj_HEROSTAT_STR, GetLastCreatedUnit(), bj_MODIFYMETHOD_SET, GetHeroStatBJ(bj_HEROSTAT_STR, udg_SaveLoadPlayerHeroSingle[i], true) )
call ModifyHeroStat( bj_HEROSTAT_INT, GetLastCreatedUnit(), bj_MODIFYMETHOD_SET, GetHeroStatBJ(bj_HEROSTAT_INT, udg_SaveLoadPlayerHeroSingle[i], true) )
set tri = GetRandomInt(1, 4)
call UnitAddAbilityBJ( udg_ThiefSpell[tri], GetLastCreatedUnit() )
call RemoveLocation(ts)
call RemoveLocation(tempt)
else
endif
set i = i + 1
endloop
set tempt = null
set ts = null
endfunction
//===========================================================================
function InitTrig_Thieves takes nothing returns nothing
set gg_trg_Thieves = CreateTrigger( )
call TriggerRegisterTimerExpireEventBJ( gg_trg_Thieves, udg_ThiefSpawnTimer )
call TriggerAddAction( gg_trg_Thieves, function Trig_Thieves_Actions )
endfunction
function Trig_DeathOfRock_Conditions takes nothing returns boolean
if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'e008' ) ) then
return false
endif
return true
endfunction
function Trig_DeathOfRock_Actions takes nothing returns nothing
local location rock
local integer i = (GetUnitUserData(GetTriggerUnit()))
if i == 8 then
else
set rock = GetUnitLoc(GetTriggerUnit())
call TriggerSleepAction( 35.00 )
call CreateUnitAtLoc(Player(PLAYER_NEUTRAL_PASSIVE), 'e008', rock, 270.00)
call RemoveLocation(rock)
set rock = null
endif
endfunction
//===========================================================================
function InitTrig_DeathOfRock takes nothing returns nothing
set gg_trg_DeathOfRock = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_DeathOfRock, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_DeathOfRock, Condition( function Trig_DeathOfRock_Conditions ) )
call TriggerAddAction( gg_trg_DeathOfRock, function Trig_DeathOfRock_Actions )
endfunction
function Trig_Invto2_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A06Z' ) ) then
return false
endif
return true
endfunction
function Trig_Invto2_Actions takes nothing returns nothing
local integer i
local integer r
set udg_Item1[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 1))
set udg_Item2[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 2))
set udg_Item3[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 3))
set udg_Item4[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 4))
set udg_Item5[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 5))
set udg_Item6[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 6))
set i = 1
set r = 6
loop
exitwhen i > r
call RemoveItem( UnitItemInSlotBJ(GetTriggerUnit(), i) )
set i = i + 1
endloop
call UnitAddItemByIdSwapped( udg_CItem1[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_CItem2[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_CItem3[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_CItem4[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_CItem5[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_CItem6[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddAbilityBJ('A070', GetTriggerUnit())
call UnitRemoveAbilityBJ('A06Z', GetTriggerUnit())
endfunction
//===========================================================================
function InitTrig_Invto2 takes nothing returns nothing
set gg_trg_Invto2 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Invto2, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Invto2, Condition( function Trig_Invto2_Conditions ) )
call TriggerAddAction( gg_trg_Invto2, function Trig_Invto2_Actions )
endfunction
function Trig_Invto1_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A070' ) ) then
return false
endif
return true
endfunction
function Trig_Invto1_Actions takes nothing returns nothing
local integer i
local integer r
set udg_CItem1[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 1))
set udg_CItem2[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 2))
set udg_CItem3[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 3))
set udg_CItem4[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 4))
set udg_CItem5[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 5))
set udg_CItem6[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), 6))
set i = 1
set r = 6
loop
exitwhen i > r
call RemoveItem( UnitItemInSlotBJ(GetTriggerUnit(), i) )
set i = i + 1
endloop
call UnitAddItemByIdSwapped( udg_Item1[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_Item2[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_Item3[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_Item4[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_Item5[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddItemByIdSwapped( udg_Item6[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))], GetTriggerUnit() )
call UnitAddAbilityBJ('A06Z', GetTriggerUnit())
call UnitRemoveAbilityBJ('A070', GetTriggerUnit())
endfunction
//===========================================================================
function InitTrig_Invto1 takes nothing returns nothing
set gg_trg_Invto1 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Invto1, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Invto1, Condition( function Trig_Invto1_Conditions ) )
call TriggerAddAction( gg_trg_Invto1, function Trig_Invto1_Actions )
endfunction