function Index2d takes integer x, integer y returns integer
return x * ( udg_NumHeroesAllowed + udg_NumUnitsAllowed ) + y
endfunction
function DebugText takes string txt returns nothing
call DisplayTextToForce( GetPlayersAll(), txt )
endfunction
function DebugTextI takes string txt, real r returns nothing
call DisplayTextToForce( GetPlayersAll(), txt + " [ " + R2S(r) + " ]" )
endfunction
// === GetColorPlayerName, and its subfunctions ===
//By JopeJope
function GetPlayerColorFlag takes playercolor color returns string
if color == PLAYER_COLOR_RED then
return "|cffff0303"
elseif color == PLAYER_COLOR_BLUE then
return "|cff0042ff"
elseif color == PLAYER_COLOR_CYAN then
return "|cff1ce6b9"
elseif color == PLAYER_COLOR_PURPLE then
return "|cff540081"
elseif color == PLAYER_COLOR_YELLOW then
return "|cfffffc01"
elseif color == PLAYER_COLOR_ORANGE then
return "|cfffe8a0e"
elseif color == PLAYER_COLOR_GREEN then
return "|cff20c000"
elseif color == PLAYER_COLOR_PINK then
return "|cffe55bb0"
elseif color == PLAYER_COLOR_LIGHT_GRAY then
return "|cff959697"
elseif color == PLAYER_COLOR_LIGHT_BLUE then
return "|cff7ebff1"
elseif color == PLAYER_COLOR_AQUA then
return "|cff106246"
elseif color == PLAYER_COLOR_BROWN then
return "|cff4e2a04"
endif
return "|cffffffff"
endfunction
function GetColorEnd takes nothing returns string
return "|r"
endfunction
function GetColorPlayerName takes player p returns string
return GetPlayerColorFlag(GetPlayerColor(p)) + GetPlayerName(p) + GetColorEnd()
endfunction
//===========================================================================
//custom victory and defeat functions that do not display "player defeated." messages
function CustomVictoryJJ takes player whichPlayer, boolean showDialog, boolean showScores returns nothing
if AllowVictoryDefeat( PLAYER_GAME_RESULT_VICTORY ) then
call RemovePlayer( whichPlayer, PLAYER_GAME_RESULT_VICTORY )
if not bj_isSinglePlayer then
//call DisplayTimedTextFromPlayer(whichPlayer, 0, 0, 60, GetLocalizedString( "PLAYER_VICTORIOUS" ) )
endif
// UI only needs to be displayed to users.
if (GetPlayerController(whichPlayer) == MAP_CONTROL_USER) then
set bj_changeLevelShowScores = showScores
if showDialog then
call CustomVictoryDialogBJ( whichPlayer )
else
call CustomVictorySkipBJ( whichPlayer )
endif
endif
endif
endfunction
function CustomDefeatJJ takes player whichPlayer, string message returns nothing
if AllowVictoryDefeat( PLAYER_GAME_RESULT_DEFEAT ) then
call RemovePlayer( whichPlayer, PLAYER_GAME_RESULT_DEFEAT )
if not bj_isSinglePlayer then
//call DisplayTimedTextFromPlayer(whichPlayer, 0, 0, 60, GetLocalizedString( "PLAYER_DEFEATED" ) )
endif
// UI only needs to be displayed to users.
if (GetPlayerController(whichPlayer) == MAP_CONTROL_USER) then
call CustomDefeatDialogBJ( whichPlayer, message )
endif
endif
endfunction
//===========================================================================
//===================================
// Cinematic functions
// Written By JopeJope
//===================================
// Variables Required:
// -------------------
// boolean udg_ExactCameraTime = false
// boolean udg_SkipCinematic = false
// real udg_CinematicSpeed = 1
// real udg_CameraTime
// real udg_TextTime
// real udg_LeftoverCameraTime = 0
// real udg_PanFadeTime = 0
// real udg_CameraLag = 1.0 //adjust to compensate for camera speed and wait disparities
// camerasetup udg_NextCamera
// string udg_InstructionalText
//===================================
//these functions mostly just move the camera or display the text for appropriate time intervals, allowing
//you to adjust the speed of everything at once with the global variable CinematicSpeed., and also allows
//easy cinematic abort when players want to skip the cinematic.
//Waits for the specified number of seconds, but aborts if SkipCinematic becomes true
//Very useful for making sequences that players can ESC skip.
function EscapeWait takes real seconds returns nothing
loop
exitwhen udg_SkipCinematic
exitwhen seconds < 1.00
set seconds = seconds - 1.00
call TriggerSleepAction( 1.00 )
endloop
if not udg_SkipCinematic then
call TriggerSleepAction( seconds )
endif
endfunction
//use exact camera timing when you need cameras to move exactly (to follow game action, say) and not be
//sped up or slowed down by the cinematic speed.
function BeginExactCameraTiming takes nothing returns nothing
set udg_ExactCameraTime = true
endfunction
function EndExactCameraTiming takes nothing returns nothing
set udg_ExactCameraTime = false
endfunction
function ConvertCameraTime takes real OriginalTime returns real
local real CameraTime = OriginalTime * (1 / udg_CinematicSpeed)
if udg_ExactCameraTime then
set udg_LeftoverCameraTime = udg_LeftoverCameraTime + (CameraTime - OriginalTime)
set CameraTime = OriginalTime
elseif udg_LeftoverCameraTime != 0 then
set CameraTime = CameraTime + udg_LeftoverCameraTime
if CameraTime < 0 then
set udg_LeftoverCameraTime = CameraTime
set CameraTime = 0
else
set udg_LeftoverCameraTime = 0
endif
endif
return CameraTime
endfunction
//pan to NextCamera over CameraTime seconds.
function PanToNextCamera takes nothing returns nothing
local real CameraTime = ConvertCameraTime(udg_CameraTime)
if not udg_SkipCinematic then
call CameraSetupApplyForceDuration(udg_NextCamera, true, CameraTime * udg_CameraLag)
call EscapeWait( CameraTime )
endif
endfunction
//can be used before a fade-out to cause the fade-out to occur while the camera is fading.
// Does not seem to work correctly.
function PanBeforeFade takes nothing returns nothing
local real CameraTime = ConvertCameraTime(udg_CameraTime)
if not udg_SkipCinematic then
call CameraSetupApplyForceDuration(udg_NextCamera, true, CameraTime * udg_CameraLag)
set udg_PanFadeTime = CameraTime
endif
endfunction
//pauses the camera
function CameraPause takes nothing returns nothing
call EscapeWait( ConvertCameraTime(udg_CameraTime) )
endfunction
function FadeToCameraColor takes real red, real green, real blue returns nothing
local real CameraTime = ConvertCameraTime(udg_CameraTime)
local camerasetup NextCamera = udg_NextCamera
if udg_PanFadeTime > CameraTime then
call EscapeWait( udg_PanFadeTime - CameraTime )
set udg_PanFadeTime = 0
endif
if not udg_SkipCinematic then
call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, CameraTime, "ReplaceableTextures\\CameraMasks\\White_mask.blp", red, green, blue, 0 )
call EscapeWait( CameraTime )
endif
if not udg_SkipCinematic then
call CameraSetupApplyForceDuration(NextCamera, true, 0)
call CinematicFadeBJ( bj_CINEFADETYPE_FADEIN, CameraTime, "ReplaceableTextures\\CameraMasks\\White_mask.blp", red, green, blue, 0 )
endif
endfunction
//fade to NextCamera, Taking CameraTime seconds to fade-out. The fade-in occurs over the following shot
function FadeToNextCamera takes nothing returns nothing
call FadeToCameraColor(0.0, 0.0, 0.0)
endfunction
function FlashToNextCamera takes nothing returns nothing
call FadeToCameraColor(100.0, 100.0, 100.0)
endfunction
//fade to NextCamera, pausing to wait for the fade-in to complete. Takes CameraTime seconds total.
function CompleteFadeToNextCamera takes nothing returns nothing
local real FadeOutTime = udg_CameraTime / 2
local real FadeInTime = udg_CameraTime - FadeOutTime
set udg_CameraTime = FadeOutTime
call FadeToNextCamera()
set udg_CameraTime = FadeInTime
call CameraPause()
endfunction
//fades out at the end of a cinematic sequence
function FadeOutFinal takes nothing returns nothing
local real CameraTime = ConvertCameraTime(udg_CameraTime)
if udg_PanFadeTime > CameraTime then
call EscapeWait( udg_PanFadeTime - CameraTime )
set udg_PanFadeTime = 0
endif
if not udg_SkipCinematic then
call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, CameraTime, "ReplaceableTextures\\CameraMasks\\White_mask.blp", 0.00, 0.00, 0.00, 0 )
call EscapeWait( CameraTime )
endif
endfunction
//displays InstructionalText for TextTime seconds.
function DisplayInstructionalText takes nothing returns nothing
local real TextTime = udg_TextTime * (1 / udg_CinematicSpeed)
if not udg_SkipCinematic then
//make transmission very long, in case some players are lagging
call TransmissionFromUnitTypeWithNameBJ( GetPlayersAll(), Player(1), 'Hant', "Instructions", GetRectCenter(GetPlayableMapRect()), gg_snd_InGameChatWhat1, udg_InstructionalText, bj_TIMETYPE_SET, TextTime * 10, false )
call EscapeWait( TextTime )
endif
endfunction
//waits the specified number of Cinematic Time seconds.
// use this function to wait for a sequence to finish.
function CinematicWait takes real WaitTime returns nothing
call EscapeWait( WaitTime * (1 / udg_CinematicSpeed) )
endfunction
Name | Type | is_array | initial_value |
AllPlayerUnits | group | Yes | |
alternates | force | No | |
ArenaCenter | rect | Yes | |
ArenaStartA | rect | Yes | |
ArenaStartB | rect | Yes | |
ArenaUsed | boolean | Yes | |
Arg_AIchooseUnit_Player | player | No | |
Arg_AIValueUnit_Unit | unit | No | |
Arg_Player | player | No | |
Arg_PlayerDone | player | No | |
CameraLag | real | No | 1.20 |
CameraTime | real | No | |
ChannelingUnits | group | No | |
CheckDefeatInterval | real | No | |
ChoosenUnit | unit | No | |
CinematicSpeed | real | No | 1.00 |
CombatRound | integer | No | |
CombatSeat | player | Yes | |
CreepsOnlyMode | boolean | No | false |
CurrentArenaStart | rect | No | |
CurrentPlayerNumber | integer | No | |
CurrentUnit | unit | No | |
CurrentUnitGroup | group | No | |
debug | boolean | No | |
DefeatTimeCreated | boolean | No | false |
DemoPack | integer | No | |
DoneLeaderboard | leaderboard | No | |
DraftQuest | quest | No | |
DraftRound | integer | No | |
DraftTimeLimit | real | No | 30.00 |
DraftWarning | real | No | 10.00 |
EnemyUnitGroup | group | No | |
ExactCameraTime | boolean | No | false |
FinalistString | string | No | |
FoundLiveUnit | boolean | No | |
GamePhase | integer | No | |
HealthPotions | boolean | No | true |
Hero1 | unitcode | Yes | |
Hero1Region | rect | Yes | |
Hero2 | unitcode | Yes | |
Hero2Region | rect | Yes | |
Hero3 | unitcode | Yes | |
Hero3Region | rect | Yes | |
HeroesLeftInPack | integer | Yes | |
HeroesPicked | integer | Yes | |
HWBugSuspend | boolean | No | false |
index | integer | No | |
index2 | integer | No | |
InstructionalText | string | No | |
LastLivingUnit | unit | Yes | UnitNull |
LeavingPlayer | player | No | |
LeftoverCameraTime | real | No | 0.00 |
MaxCombatRounds | integer | No | |
MaxValueSoFar | integer | No | |
MostWins | integer | No | |
newline | string | No | |
NewPlayerNumber | integer | No | |
NextCamera | camerasetup | No | |
NoCreeps | boolean | No | false |
NoHumanDraft | boolean | No | false |
NumArenas | integer | No | 4 |
NumHeroesAllowed | integer | No | 2 |
NumHumanPlayers | integer | No | |
NumPacks | integer | No | |
NumPlayers | integer | No | |
NumPotions | integer | No | 0 |
NumTiedPlayers | integer | No | 0 |
NumUnitsAllowed | integer | No | 8 |
offset | integer | No | 0 |
OffsetDegrees | real | No | |
PackOrder | integer | Yes | |
PackVision | rect | Yes | |
PanFadeTime | real | No | 0.00 |
PeasantStart | rect | Yes | |
PickedUnitRegions | rect | Yes | |
PlayerArena | integer | Yes | |
PlayerArenaStart | rect | Yes | |
PlayerEnemy | player | Yes | |
PlayerFighting | boolean | Yes | false |
PlayerName1 | string | No | |
PlayerName2 | string | No | |
PlayerPack | integer | Yes | |
PlayerPeasant | unit | Yes | |
PlayersDoneChoosing | integer | No | |
PlayersDoneDrafting | integer | No | |
PlayersDoneFighting | integer | No | |
PlayerUnits | group | Yes | |
PlayerVisibility | fogmodifier | Yes | |
Potions | item | Yes | |
PressedEsc | boolean | Yes | false |
PrevColor | playercolor | Yes | |
Ret_AIChooseUnit_Unit | unit | No | |
Ret_AIValueUnit_Value | integer | No | |
Ret_ArenaNumber | integer | No | |
SeatNumber | integer | No | |
SelectionTimeLimit | timer | No | |
SelectionWarning | timer | No | |
SkipAIAttack | boolean | No | |
SkipCinematic | boolean | No | true |
SkipVotePercentageRequired | integer | No | 80 |
Slot1 | unitcode | Yes | |
Slot1Region | rect | Yes | |
Slot2 | unitcode | Yes | |
Slot2Region | rect | Yes | |
Slot3 | unitcode | Yes | |
Slot3Region | rect | Yes | |
Slot4 | unitcode | Yes | |
Slot4Region | rect | Yes | |
Slot5 | unitcode | Yes | |
Slot5Region | rect | Yes | |
Slot6 | unitcode | Yes | |
Slot6Region | rect | Yes | |
Slot7 | unitcode | Yes | |
Slot7Region | rect | Yes | |
Slot8 | unitcode | Yes | |
Slot8Region | rect | Yes | |
Slot9 | unitcode | Yes | |
Slot9Region | rect | Yes | |
stall | integer | No | |
StallTimer | timer | No | |
SubsAvailable | integer | No | |
SubstitutePlayer | player | No | |
TCDead | integer | Yes | |
TeleportTo | location | No | |
TempString | string | No | |
TextTime | real | No | |
ThePlayers | force | No | |
TiedPlayers | player | Yes | |
UnitsLeftInPack | integer | Yes | |
UnitsPicked | integer | Yes | |
VotesToSkip | integer | No | 0 |
WinnerSpot | rect | Yes | |
WinningPlayer | player | No | |
Wins | integer | Yes | |
WinsLeaderboard | leaderboard | No |
JopeJope's WarDraft Micro Tournament
This map and all its triggers are Copyright (c) 2003 by Billy Martin ([email protected])
This map is "unprotected" so that people can learn from and improve upon my work.
The following resources were extremely helpful in the making of this map:
Elil's World Editor FAQ and Elil's Micro Tournament map.
http://www.elilz.com
JASS Manual (also the PJASS program), by Jeff Pang
http://jass.sourceforge.net/doc/
NightElfX04.w3x - Some map from the TFT Night Elf campaign, by Blizzard Entertainment.
The campaign maps are professionally done, and probably among the best maps you'll get your
hands on. I definitely recommend studying one or two if you're a map developer, especially if
you are trying to make cinematic sequences for your map. Extract a few from war3xlocal.mpq.
================================================================================================
IMPORTANT! READ ON IF YOU WANT TO MODIFY THIS MAP!
================================================================================================
People who like this map enough to modify or improve it should feel free to do so!
However, I have a few (very small) rules that I would like you to abide by when
modifying this map:
1. Do not modify or delete this README trigger. Please comment all your changes in
the CHANGES trigger.
2. Do not protect your modified version of this map. Protecting the map would erase
this README and therefore violate rule #1. Besides, I would like to see what
interesting things you've done!
3. Change the filename of your modified version so that people will be able to
recognize and distinguish your version of this map. Remove the version number
and put something discriptive instead.
4. Do not remove mention of http://www.wardraft.org from the loading screen.
I'm sure the changes you make are going to be awesome, but many nostalgic people
will still want to know where to get the original version.
Of course, feel free to add mention of you or your own website to the loading
screen if you want to.
That's it! Have fun modifying this map!
Some notes to get you started:
If you just want to re-balance what units appear in the draft, simply add or delete
units from the areas at the bottom of the map. Pay attention to the regions there.
Check out the "Initialize Packs" trigger if you want to do something more advanced.
That trigger controls what appears in the draft rooms and should be the only trigger
you need to use. I would advise that you keep all powerful creeps (level 7+) in the
designated black marble area. They don't balance well with normal units, and should
only be used when "CreepsOnlyMode" is turned on.
To modify the text that appears in the intro sequence (which you will probably want to do,
in order to notify people of your additions), see the "Explain Pack" and "Explain Fight"
triggers. They set variables which control what text is displayed and how long the text
is displayed for.
Just make sure whatever text you put there will finish within the time alotted for the intro!
If you want to do anything else you'll have to figure it out... I hope I've organized the
triggers in a convenient manner. Sorry there aren't more comments. Feel free to E-mail me
with any questions.
Please send me your versions of this map! E-mail your mods to [email protected]. I'd love
to check them out, and I'll probably put up the good ones at http://www.wardraft.org
If you fix any bugs, I will incorporate your changes into the official reference version.
Check http://www.wardraft.org. I might have additional hints posted there.
NOTE: The following variables have initial values that can be changed to alter the game in
some way:
CreepsOnlyMode //causes only creeps and heroes to be added to the draft. A fun variant.
NoCreeps //prevents creeps from appearing in the draft (if CreepsOnlyMode is off)
HealthPotions //Enables/Disables health potions for heroes.
NoHumanDraft //Causes the draft to be skipped. Useful for Debugging.
NumHeroesAllowed //The number of heroes each player can draft
NumUnitsAllowed //The number of units each player can draft
CinematicSpeed //The overall speed of the cinematic sequences.
DraftTimeLimit //The amount of time players have to draft each unit
DraftWarning //The amount of time left when players will receive a warning.
If NumHeroesAllowed and NumUnitsAllowed add up to more than 10 the map might not work correctly.
These variables don't affect what units appear in the draft. Make sure there are enough heroes
and enough units to go around or the draft may not end properly.
WarDraft 1.00
By JopeJope
Added:
First public version.
This is the official reference version of WarDraft.
1.00a
Fixed bug that caused intro text to disappear
1.00b
-Really- fixed bug that caused intro text to disappear
1.00c
Fixed Healing Wave bug
1.00d
Fixed Rejuvenation bug (related to Healing Wave bug)
Tweaked some of the arenas a little bit
Improved the segway cinematic between drafting and combat
Added version number to map title
1.00e
Fixed no sky bug during ending sequence
Fixed bug where some players are not set as enemies for tiebreakers
Shortened the intro
Added reminder to push ESC during intro
Removed Mountain Giant from common draft (not so much because it was too powerful, but because it was no fun)
Made weaker units less common in the draft
Made some minor optimizations to reduce lag
1.00f
Fixed a crash problem that some people were having (hopefully!)
1.00g
Added ability to skip ending cinematic by pushing ESC.
Made the AI slightly more friendly (insane computer behaves the same as before)
1.00h
Fixed the crash bug once and for all.
Fixed a bug that very rarely caused the draft to halt when players failed to select their units
Changed the skip intro vote to require 80% majority to skip instead of 100% majority
1.01
Fixed bug that caused AI to have the wrong color when players were dropped during the intro
Significantly reduced file size thanks to new map editor features in TFT 1.13
Updated for TFT 1.13
For 1.15
Tinker added
Burrow removed
function Trig_Initialize_Region_Variables_Actions takes nothing returns nothing
set udg_Slot1Region[1] = gg_rct_slot_1
set udg_Slot1Region[2] = gg_rct_slot_1_Copy
set udg_Slot1Region[3] = gg_rct_slot_1_Copy_2
set udg_Slot1Region[4] = gg_rct_slot_1_Copy_3
set udg_Slot1Region[5] = gg_rct_slot_1_Copy_4
set udg_Slot1Region[6] = gg_rct_slot_1_Copy_5
set udg_Slot1Region[7] = gg_rct_slot_1_Copy_6
set udg_Slot1Region[8] = gg_rct_slot_1_Copy_7
set udg_Slot2Region[1] = gg_rct_slot_5
set udg_Slot2Region[2] = gg_rct_slot_5_Copy
set udg_Slot2Region[3] = gg_rct_slot_5_Copy_2
set udg_Slot2Region[4] = gg_rct_slot_5_Copy_3
set udg_Slot2Region[5] = gg_rct_slot_5_Copy_4
set udg_Slot2Region[6] = gg_rct_slot_5_Copy_5
set udg_Slot2Region[7] = gg_rct_slot_5_Copy_6
set udg_Slot2Region[8] = gg_rct_slot_5_Copy_7
set udg_Slot3Region[1] = gg_rct_slot_6
set udg_Slot3Region[2] = gg_rct_slot_6_Copy
set udg_Slot3Region[3] = gg_rct_slot_6_Copy_2
set udg_Slot3Region[4] = gg_rct_slot_6_Copy_3
set udg_Slot3Region[5] = gg_rct_slot_6_Copy_4
set udg_Slot3Region[6] = gg_rct_slot_6_Copy_5
set udg_Slot3Region[7] = gg_rct_slot_6_Copy_6
set udg_Slot3Region[8] = gg_rct_slot_6_Copy_7
set udg_Slot4Region[1] = gg_rct_slot_7
set udg_Slot4Region[2] = gg_rct_slot_7_Copy
set udg_Slot4Region[3] = gg_rct_slot_7_Copy_2
set udg_Slot4Region[4] = gg_rct_slot_7_Copy_3
set udg_Slot4Region[5] = gg_rct_slot_7_Copy_4
set udg_Slot4Region[6] = gg_rct_slot_7_Copy_5
set udg_Slot4Region[7] = gg_rct_slot_7_Copy_6
set udg_Slot4Region[8] = gg_rct_slot_7_Copy_7
set udg_Slot5Region[1] = gg_rct_slot_8
set udg_Slot5Region[2] = gg_rct_slot_8_Copy
set udg_Slot5Region[3] = gg_rct_slot_8_Copy_2
set udg_Slot5Region[4] = gg_rct_slot_8_Copy_3
set udg_Slot5Region[5] = gg_rct_slot_8_Copy_4
set udg_Slot5Region[6] = gg_rct_slot_8_Copy_5
set udg_Slot5Region[7] = gg_rct_slot_8_Copy_6
set udg_Slot5Region[8] = gg_rct_slot_8_Copy_7
set udg_Slot6Region[1] = gg_rct_slot_9
set udg_Slot6Region[2] = gg_rct_slot_9_Copy
set udg_Slot6Region[3] = gg_rct_slot_9_Copy_2
set udg_Slot6Region[4] = gg_rct_slot_9_Copy_3
set udg_Slot6Region[5] = gg_rct_slot_9_Copy_4
set udg_Slot6Region[6] = gg_rct_slot_9_Copy_5
set udg_Slot6Region[7] = gg_rct_slot_9_Copy_6
set udg_Slot6Region[8] = gg_rct_slot_9_Copy_7
set udg_Slot7Region[1] = gg_rct_slot_10
set udg_Slot7Region[2] = gg_rct_slot_10_Copy
set udg_Slot7Region[3] = gg_rct_slot_10_Copy_2
set udg_Slot7Region[4] = gg_rct_slot_10_Copy_3
set udg_Slot7Region[5] = gg_rct_slot_10_Copy_4
set udg_Slot7Region[6] = gg_rct_slot_10_Copy_5
set udg_Slot7Region[7] = gg_rct_slot_10_Copy_6
set udg_Slot7Region[8] = gg_rct_slot_10_Copy_7
set udg_Slot8Region[1] = gg_rct_slot_11
set udg_Slot8Region[2] = gg_rct_slot_11_Copy
set udg_Slot8Region[3] = gg_rct_slot_11_Copy_2
set udg_Slot8Region[4] = gg_rct_slot_11_Copy_3
set udg_Slot8Region[5] = gg_rct_slot_11_Copy_4
set udg_Slot8Region[6] = gg_rct_slot_11_Copy_5
set udg_Slot8Region[7] = gg_rct_slot_11_Copy_6
set udg_Slot8Region[8] = gg_rct_slot_11_Copy_7
set udg_Slot9Region[1] = gg_rct_slot_12
set udg_Slot9Region[2] = gg_rct_slot_12_Copy
set udg_Slot9Region[3] = gg_rct_slot_12_Copy_2
set udg_Slot9Region[4] = gg_rct_slot_12_Copy_3
set udg_Slot9Region[5] = gg_rct_slot_12_Copy_4
set udg_Slot9Region[6] = gg_rct_slot_12_Copy_5
set udg_Slot9Region[7] = gg_rct_slot_12_Copy_6
set udg_Slot9Region[8] = gg_rct_slot_12_Copy_7
set udg_Hero1Region[1] = gg_rct_slot_2
set udg_Hero1Region[2] = gg_rct_slot_2_Copy
set udg_Hero1Region[3] = gg_rct_slot_2_Copy_2
set udg_Hero1Region[4] = gg_rct_slot_2_Copy_3
set udg_Hero1Region[5] = gg_rct_slot_2_Copy_4
set udg_Hero1Region[6] = gg_rct_slot_2_Copy_5
set udg_Hero1Region[7] = gg_rct_slot_2_Copy_6
set udg_Hero1Region[8] = gg_rct_slot_2_Copy_7
set udg_Hero2Region[1] = gg_rct_slot_3
set udg_Hero2Region[2] = gg_rct_slot_3_Copy
set udg_Hero2Region[3] = gg_rct_slot_3_Copy_2
set udg_Hero2Region[4] = gg_rct_slot_3_Copy_3
set udg_Hero2Region[5] = gg_rct_slot_3_Copy_4
set udg_Hero2Region[6] = gg_rct_slot_3_Copy_5
set udg_Hero2Region[7] = gg_rct_slot_3_Copy_6
set udg_Hero2Region[8] = gg_rct_slot_3_Copy_7
set udg_Hero3Region[1] = gg_rct_slot_4
set udg_Hero3Region[2] = gg_rct_slot_4_Copy
set udg_Hero3Region[3] = gg_rct_slot_4_Copy_2
set udg_Hero3Region[4] = gg_rct_slot_4_Copy_3
set udg_Hero3Region[5] = gg_rct_slot_4_Copy_4
set udg_Hero3Region[6] = gg_rct_slot_4_Copy_5
set udg_Hero3Region[7] = gg_rct_slot_4_Copy_6
set udg_Hero3Region[8] = gg_rct_slot_4_Copy_7
set udg_PeasantStart[1] = gg_rct_start
set udg_PeasantStart[2] = gg_rct_start_Copy
set udg_PeasantStart[3] = gg_rct_start_Copy_2
set udg_PeasantStart[4] = gg_rct_start_Copy_3
set udg_PeasantStart[5] = gg_rct_start_Copy_4
set udg_PeasantStart[6] = gg_rct_start_Copy_5
set udg_PeasantStart[7] = gg_rct_start_Copy_6
set udg_PeasantStart[8] = gg_rct_start_Copy_7
set udg_PackVision[1] = gg_rct_PackArea
set udg_PackVision[2] = gg_rct_PackArea_Copy
set udg_PackVision[3] = gg_rct_PackArea_Copy_2
set udg_PackVision[4] = gg_rct_PackArea_Copy_3
set udg_PackVision[5] = gg_rct_PackArea_Copy_4
set udg_PackVision[6] = gg_rct_PackArea_Copy_5
set udg_PackVision[7] = gg_rct_PackArea_Copy_6
set udg_PackVision[8] = gg_rct_PackArea_Copy_7
set udg_PickedUnitRegions[Index2d(1,1)] = gg_rct_pick_1
set udg_PickedUnitRegions[Index2d(2,1)] = gg_rct_pick_1_Copy
set udg_PickedUnitRegions[Index2d(3,1)] = gg_rct_pick_1_Copy_2
set udg_PickedUnitRegions[Index2d(4,1)] = gg_rct_pick_1_Copy_3
set udg_PickedUnitRegions[Index2d(5,1)] = gg_rct_pick_1_Copy_4
set udg_PickedUnitRegions[Index2d(6,1)] = gg_rct_pick_1_Copy_5
set udg_PickedUnitRegions[Index2d(7,1)] = gg_rct_pick_1_Copy_6
set udg_PickedUnitRegions[Index2d(8,1)] = gg_rct_pick_1_Copy_7
set udg_PickedUnitRegions[Index2d(1,2)] = gg_rct_pick_2
set udg_PickedUnitRegions[Index2d(2,2)] = gg_rct_pick_2_Copy
set udg_PickedUnitRegions[Index2d(3,2)] = gg_rct_pick_2_Copy_2
set udg_PickedUnitRegions[Index2d(4,2)] = gg_rct_pick_2_Copy_3
set udg_PickedUnitRegions[Index2d(5,2)] = gg_rct_pick_2_Copy_4
set udg_PickedUnitRegions[Index2d(6,2)] = gg_rct_pick_2_Copy_5
set udg_PickedUnitRegions[Index2d(7,2)] = gg_rct_pick_2_Copy_6
set udg_PickedUnitRegions[Index2d(8,2)] = gg_rct_pick_2_Copy_7
set udg_PickedUnitRegions[Index2d(1,3)] = gg_rct_pick_3
set udg_PickedUnitRegions[Index2d(2,3)] = gg_rct_pick_3_Copy
set udg_PickedUnitRegions[Index2d(3,3)] = gg_rct_pick_3_Copy_2
set udg_PickedUnitRegions[Index2d(4,3)] = gg_rct_pick_3_Copy_3
set udg_PickedUnitRegions[Index2d(5,3)] = gg_rct_pick_3_Copy_4
set udg_PickedUnitRegions[Index2d(6,3)] = gg_rct_pick_3_Copy_5
set udg_PickedUnitRegions[Index2d(7,3)] = gg_rct_pick_3_Copy_6
set udg_PickedUnitRegions[Index2d(8,3)] = gg_rct_pick_3_Copy_7
set udg_PickedUnitRegions[Index2d(1,4)] = gg_rct_pick_4
set udg_PickedUnitRegions[Index2d(2,4)] = gg_rct_pick_4_Copy
set udg_PickedUnitRegions[Index2d(3,4)] = gg_rct_pick_4_Copy_2
set udg_PickedUnitRegions[Index2d(4,4)] = gg_rct_pick_4_Copy_3
set udg_PickedUnitRegions[Index2d(5,4)] = gg_rct_pick_4_Copy_4
set udg_PickedUnitRegions[Index2d(6,4)] = gg_rct_pick_4_Copy_5
set udg_PickedUnitRegions[Index2d(7,4)] = gg_rct_pick_4_Copy_6
set udg_PickedUnitRegions[Index2d(8,4)] = gg_rct_pick_4_Copy_7
set udg_PickedUnitRegions[Index2d(1,5)] = gg_rct_pick_5
set udg_PickedUnitRegions[Index2d(2,5)] = gg_rct_pick_5_Copy
set udg_PickedUnitRegions[Index2d(3,5)] = gg_rct_pick_5_Copy_2
set udg_PickedUnitRegions[Index2d(4,5)] = gg_rct_pick_5_Copy_3
set udg_PickedUnitRegions[Index2d(5,5)] = gg_rct_pick_5_Copy_4
set udg_PickedUnitRegions[Index2d(6,5)] = gg_rct_pick_5_Copy_5
set udg_PickedUnitRegions[Index2d(7,5)] = gg_rct_pick_5_Copy_6
set udg_PickedUnitRegions[Index2d(8,5)] = gg_rct_pick_5_Copy_7
set udg_PickedUnitRegions[Index2d(1,6)] = gg_rct_pick_6
set udg_PickedUnitRegions[Index2d(2,6)] = gg_rct_pick_6_Copy
set udg_PickedUnitRegions[Index2d(3,6)] = gg_rct_pick_6_Copy_2
set udg_PickedUnitRegions[Index2d(4,6)] = gg_rct_pick_6_Copy_3
set udg_PickedUnitRegions[Index2d(5,6)] = gg_rct_pick_6_Copy_4
set udg_PickedUnitRegions[Index2d(6,6)] = gg_rct_pick_6_Copy_5
set udg_PickedUnitRegions[Index2d(7,6)] = gg_rct_pick_6_Copy_6
set udg_PickedUnitRegions[Index2d(8,6)] = gg_rct_pick_6_Copy_7
set udg_PickedUnitRegions[Index2d(1,7)] = gg_rct_pick_7
set udg_PickedUnitRegions[Index2d(2,7)] = gg_rct_pick_7_Copy
set udg_PickedUnitRegions[Index2d(3,7)] = gg_rct_pick_7_Copy_2
set udg_PickedUnitRegions[Index2d(4,7)] = gg_rct_pick_7_Copy_3
set udg_PickedUnitRegions[Index2d(5,7)] = gg_rct_pick_7_Copy_4
set udg_PickedUnitRegions[Index2d(6,7)] = gg_rct_pick_7_Copy_5
set udg_PickedUnitRegions[Index2d(7,7)] = gg_rct_pick_7_Copy_6
set udg_PickedUnitRegions[Index2d(8,7)] = gg_rct_pick_7_Copy_7
set udg_PickedUnitRegions[Index2d(1,8)] = gg_rct_pick_8
set udg_PickedUnitRegions[Index2d(2,8)] = gg_rct_pick_8_Copy
set udg_PickedUnitRegions[Index2d(3,8)] = gg_rct_pick_8_Copy_2
set udg_PickedUnitRegions[Index2d(4,8)] = gg_rct_pick_8_Copy_3
set udg_PickedUnitRegions[Index2d(5,8)] = gg_rct_pick_8_Copy_4
set udg_PickedUnitRegions[Index2d(6,8)] = gg_rct_pick_8_Copy_5
set udg_PickedUnitRegions[Index2d(7,8)] = gg_rct_pick_8_Copy_6
set udg_PickedUnitRegions[Index2d(8,8)] = gg_rct_pick_8_Copy_7
set udg_PickedUnitRegions[Index2d(1,9)] = gg_rct_pick_9
set udg_PickedUnitRegions[Index2d(2,9)] = gg_rct_pick_9_Copy
set udg_PickedUnitRegions[Index2d(3,9)] = gg_rct_pick_9_Copy_2
set udg_PickedUnitRegions[Index2d(4,9)] = gg_rct_pick_9_Copy_3
set udg_PickedUnitRegions[Index2d(5,9)] = gg_rct_pick_9_Copy_4
set udg_PickedUnitRegions[Index2d(6,9)] = gg_rct_pick_9_Copy_5
set udg_PickedUnitRegions[Index2d(7,9)] = gg_rct_pick_9_Copy_6
set udg_PickedUnitRegions[Index2d(8,9)] = gg_rct_pick_9_Copy_7
set udg_PickedUnitRegions[Index2d(1,10)] = gg_rct_pick_10
set udg_PickedUnitRegions[Index2d(2,10)] = gg_rct_pick_10_Copy
set udg_PickedUnitRegions[Index2d(3,10)] = gg_rct_pick_10_Copy_2
set udg_PickedUnitRegions[Index2d(4,10)] = gg_rct_pick_10_Copy_3
set udg_PickedUnitRegions[Index2d(5,10)] = gg_rct_pick_10_Copy_4
set udg_PickedUnitRegions[Index2d(6,10)] = gg_rct_pick_10_Copy_5
set udg_PickedUnitRegions[Index2d(7,10)] = gg_rct_pick_10_Copy_6
set udg_PickedUnitRegions[Index2d(8,10)] = gg_rct_pick_10_Copy_7
set udg_ArenaStartA[1] = gg_rct_Arena1A
set udg_ArenaStartB[1] = gg_rct_Arena1B
set udg_ArenaStartA[2] = gg_rct_Arena2A
set udg_ArenaStartB[2] = gg_rct_Arena2B
set udg_ArenaStartA[3] = gg_rct_Arena3A
set udg_ArenaStartB[3] = gg_rct_Arena3B
set udg_ArenaStartA[4] = gg_rct_Arena4A
set udg_ArenaStartB[4] = gg_rct_Arena4B
set udg_ArenaCenter[1] = gg_rct_Arena1Center
set udg_ArenaCenter[2] = gg_rct_Arena2Center
set udg_ArenaCenter[3] = gg_rct_Arena3Center
set udg_ArenaCenter[4] = gg_rct_Arena4Center
set udg_WinnerSpot[1] = gg_rct_Winner1
set udg_WinnerSpot[2] = gg_rct_Winner2
set udg_WinnerSpot[3] = gg_rct_Winner3
set udg_WinnerSpot[4] = gg_rct_Winner4
set udg_WinnerSpot[5] = gg_rct_Winner5
set udg_WinnerSpot[6] = gg_rct_Winner6
set udg_WinnerSpot[7] = gg_rct_Winner7
set udg_WinnerSpot[8] = gg_rct_Winner8
set udg_WinnerSpot[9] = gg_rct_Winner9
set udg_WinnerSpot[10] = gg_rct_Winner10
endfunction
//===========================================================================
function InitTrig_Initialize_Region_Variables takes nothing returns nothing
set gg_trg_Initialize_Region_Variables = CreateTrigger( )
call TriggerAddAction( gg_trg_Initialize_Region_Variables, function Trig_Initialize_Region_Variables_Actions )
endfunction
function Trig_Initialize_Neutral_Upgrades_Actions takes nothing returns nothing
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhme', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhra', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhar', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhhb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhgb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhac', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhde', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhan', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhpt', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhst', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhla', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhri', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhlh', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhse', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhfl', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhss', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhrt', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhpm', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhfc', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhfs', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rhcd', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rome', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rora', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Roar', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rwdm', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Ropg', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Robs', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rows', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Roen', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rovs', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rowd', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rost', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rosp', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rotr', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rolf', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rowt', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rorb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Robk', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Ropm', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Robf', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rume', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rura', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Ruar', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Ruac', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rugf', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Ruwb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rusf', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rune', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Ruba', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rufb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rusl', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rucr', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rupc', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rusm', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rubu', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rusp', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Ruex', 0 ) //exhume corpses must be unresearched by neutral
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rupm', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Resm', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Resw', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rema', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rerh', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Reuv', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Renb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Resc', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Remg', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Reib', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Remk', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Redt', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Redc', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Resi', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Recb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Reht', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Repb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rers', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rehs', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Reeb', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Reec', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rews', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Repm', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rnen', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rnsw', 2 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rnsi', 1 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rnat', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rnam', 3 )
call SetPlayerTechResearched( Player(PLAYER_NEUTRAL_PASSIVE), 'Rnsb', 1 )
call SetPlayerTechResearched( Player(bj_PLAYER_NEUTRAL_EXTRA), 'Rnen', 1 )
call SetPlayerTechResearched( Player(bj_PLAYER_NEUTRAL_EXTRA), 'Rnsw', 2 )
call SetPlayerTechResearched( Player(bj_PLAYER_NEUTRAL_EXTRA), 'Rnsi', 1 )
call SetPlayerTechResearched( Player(bj_PLAYER_NEUTRAL_EXTRA), 'Rnat', 3 )
call SetPlayerTechResearched( Player(bj_PLAYER_NEUTRAL_EXTRA), 'Rnam', 3 )
call SetPlayerTechResearched( Player(bj_PLAYER_NEUTRAL_EXTRA), 'Rnsb', 1 )
endfunction
//===========================================================================
function InitTrig_Initialize_Neutral_Upgrades takes nothing returns nothing
set gg_trg_Initialize_Neutral_Upgrades = CreateTrigger( )
call TriggerAddAction( gg_trg_Initialize_Neutral_Upgrades, function Trig_Initialize_Neutral_Upgrades_Actions )
endfunction
function Trig_Check_for_dropped_players_Actions takes nothing returns nothing
call ConditionalTriggerExecute( gg_trg_Player_Leaves_Game )
endfunction
//===========================================================================
function InitTrig_Check_for_dropped_players takes nothing returns nothing
set gg_trg_Check_for_dropped_players = CreateTrigger( )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(0), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(1), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(2), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(3), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(4), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(5), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(6), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(7), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(8), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(9), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(10), EVENT_PLAYER_LEAVE )
call TriggerRegisterPlayerEvent( gg_trg_Check_for_dropped_players, Player(11), EVENT_PLAYER_LEAVE )
call TriggerAddAction( gg_trg_Check_for_dropped_players, function Trig_Check_for_dropped_players_Actions )
endfunction
function Trig_BJ_CineSkip_Override_Actions takes nothing returns nothing
endfunction
//===========================================================================
function InitTrig_BJ_CineSkip_Override takes nothing returns nothing
set gg_trg_BJ_CineSkip_Override = CreateTrigger( )
//setting this variable prevents Warcraft from registering the internal transmission skip trigger.
set bj_cineSceneBeingSkipped = gg_trg_BJ_CineSkip_Override
call TriggerAddAction( gg_trg_BJ_CineSkip_Override, function Trig_BJ_CineSkip_Override_Actions )
endfunction