function picknumber takes integer x, integer y returns integer
local boolean b = false
local integer a
local integer m
loop
exitwhen b == true
set a = GetRandomInt(x,y)
if (udg_picked[a] == false ) then
set m = a
set udg_picked[m] = true
set b = true
endif
endloop
return m
endfunction
Name | Type | is_array | initial_value |
amountplayers | integer | No | |
areSettingsComplete | boolean | No | |
bannedPlayers | integer | Yes | |
banNumber | integer | No | |
banPlayer | integer | No | |
bestRoundTime | real | No | |
byePlayer | player | No | |
byeSwitchIndex | integer | No | |
CastingPlayer | force | No | |
currentRound | integer | No | |
hasSelectionFinished | boolean | No | |
heroesChosenSoFar | integer | Yes | |
inPlayer | player | No | |
inUnit | unit | No | |
inUnitType | unitcode | No | |
leftShop | unit | No | |
losers | force | No | |
MEDIUM_GRID_SIZE | real | No | 128.00 |
miniArena | fogmodifier | No | |
newWinner | player | No | |
num | integer | No | |
numArmiesTrained | integer | No | |
opponentLeft | player | No | |
opponentRight | player | No | |
outCount | integer | No | |
outHasLossOccurred | boolean | No | |
outUnitTypeCheck | boolean | No | |
picked | boolean | Yes | |
PlayerNumber | integer | No | |
raceChosen | integer | Yes | |
rightShop | unit | No | |
roundInProgress | boolean | No | |
roundTime | real | No | |
shopType | unitcode | Yes | |
shuffleFrom | integer | No | |
shuffleTo | integer | No | |
storedWinner | player | No | |
taurenChieftainLeft | group | No | |
taurenChieftainRight | group | No | |
tempIndex | integer | No | |
tempOffset | integer | No | |
tempPlayer | player | No | |
totalRounds | integer | No | |
trueFoodUsed | integer | No | |
xxxInt_A | integer | No | |
xxxSuddenDeathOFF | boolean | No | |
zc_ARE_FLYERS_ALLOWED | boolean | No | |
zc_ARENA_MASTER | player | No | Player08 |
zc_BASE_REGIONS | rect | Yes | |
zc_BRACKETS | player | Yes | |
zc_DB_FLYERS | button | Yes | |
zc_DB_HEROES | button | Yes | |
zc_DB_LEVELS | button | Yes | |
zc_DB_RESTART | button | Yes | |
zc_DB_SUPPLY | button | Yes | |
zc_DI_FLYERS | integer | No | 2 |
zc_DI_HEROES | integer | No | 3 |
zc_DI_LEVELS | integer | No | 4 |
zc_DI_RESTART | integer | No | 5 |
zc_DI_SUPPLY | integer | No | 1 |
zc_DIALOGS | dialog | Yes | |
zc_EATEN_UNITS | group | No | |
zc_HERO_LEVEL | integer | No | |
zc_HEROES_ALLOWED | integer | No | |
zc_MAX_HEROES_PER_SUPPLY | integer | No | |
zc_ROUND_TIMER | timer | No | |
zc_ROUND_WINDOW | timerdialog | No | |
zc_SLOWPOKE_TIME | real | No | 20.00 |
zc_SLOWPOKE_TIMER | timer | No | |
zc_SLOWPOKE_WINDOW | timerdialog | No | |
zc_STATUS_BOARD | leaderboard | No | |
zc_STATUS_COMPETE | string | No | In the Arena |
zc_STATUS_CREATE | string | No | Training an Army |
zc_STATUS_DEAD | string | No | Eliminated |
zc_STATUS_OBS | string | No | Watching |
zc_STATUS_WIN | string | No | Winner! |
zc_SUPPLY_HUGE | integer | No | 85 |
zc_SUPPLY_LARGE | integer | No | 50 |
zc_SUPPLY_LIMIT | integer | No | |
zc_SUPPLY_MID | integer | No | 21 |
zc_SUPPLY_SMALL | integer | No | 12 |
zc_SUPPLY_TINY_Copy | integer | No | 5 |
zc_TIMER_HUGE | real | No | 338.00 |
zc_TIMER_LARGE | real | No | 288.00 |
zc_TIMER_MAX | real | No | 1800.00 |
zc_TIMER_MID | real | No | 228.00 |
zc_TIMER_SMALL | real | No | 138.00 |
zc_TIMER_TINY_Copy | real | No | 120.00 |
//TESH.scrollpos=0
//TESH.alwaysfold=0
This map was originally made by CattleBruiser
Some people have claimed to have edited it, but I honestly have no idea what they did to the map.
The map has been redesigned by NEE.
It has been recoded according to the design by NEE by SanKakU.
//TESH.scrollpos=0
//TESH.alwaysfold=0
This map was created from scratch by ~CattleBruiser~.
Testing was aided by Fox.1, necrosausage, Roaddog, Jaood, TheAngel, and the denizens of clan halpmeh.
You may create variations upon this map (I'm going to regret saying this), but please obey the following guidelines:
- Do not delete this readme file. Add to it if you make changes.
- Change the map filename and the Map Description map name so your variation is not confused with the original copy.
- Do not steal my work wholesale. Credit is always nice!
In fact, if there is one feature that's missing, please let me know. I might even put it in the official version to
prevent millions of useless versions from flying around battle.net.
I always welcome feedback and bug reports. You can contact me at [email protected].
------------
Description:
------------
- Train your dream army and then choose "Tournament Registration" at the Tournament Office.
- Battle opponents one-on-one in the arena until there is a victor.
- When the tournament is over, you can train a new army and try again, so don't quit when you've lost!
---------
Features:
---------
- Every unit from all four races is available, including a few special ones from the Goblin Lab.
- Rounds are single elimination with 3-8 players and best two out of three for 2 players.
- When a round goes on too long without a victor, the villagers declare a Sudden Death Match.
- Basic support provided for computer opponents, which will be expanded in future versions.
----------------
Version History:
----------------
1.12:
* Fixed issues with Patch 1.13 game data.
* Upped Druid of the Talon food to 3 for balance reasons.
* Reduced banshee food from 4 to 3, since posession is now reworked.
* Fixed bug where players could uproot the Ancients.
1.11:
* Fixed bug where slowpoke player's units would remain in the training area.
* Made computer players much easier.
1.1:
* Totally rewrote triggers to lessen the probability of bugs and hang points.
* Made debug forces commands available to all players. Any player can type "check" during a round to force a check of loss
conditions. This does not allow any cheating -- it just makes the game recount the units in the arena to see if someone has
lost.
* Players can also type "surrender" if they realize they have no hopes of winning.
* Fixed bug where kodo stomach contents would regurgitate into the next round.
* Added trigger to check loss conditions periodically, to catch uncaught loss events.
* Added game loop that resets the entire game after a winner is declared.
* Streamlined and improved the army selection process.
* Reduced file size by 30%.
* Added basic support for computer opponents (This will be improved in future versions).
1.02:
* Added Ping on Tournament Offices to aid clueless players.
* Added descriptive message when a training unit is rejected.
* Set banshee supply to 4 for balance purposes and removed old banshee limit.
* Shortened timers slightly. (2:30, 4:00, 5:00)
* Increased stability of a myriad of triggers.
* Revamped the dropped player triggers logic.
* Fixed bugs where Summon Hawk, Crow Form, and Destroyer Form were available in games with Flying Units disabled.
* Fixed bug where TC would reincarnate during Sudden Death.
* Fixed bug where supply count was akimbo.
* Fixed bugs where game ending with Solo Shades, Charm, Doom, or Possess did not end.
* Fixed bug where players could attack or Blink to bases after round began.
* Fixed bug where flying units could hide along edge of arena.
* Fixed bug where player dropping during Army Training would corrupt brackets.
* Fixed bug where Arena Master quitting before choosing settings would hang game.
* Fixed bug where you could not train siege engines.
* Fixed bug where players with only summonables remaining would lose.
* Fixed bug where Kodo-eaten unit popped out in Sudden Death.
* Added debug forces. If game hangs, type forceLeftCheck or forceRightCheck to force a check of loss conditions on a player.
1.01:
* Added message when player leaves game and reminder for Registration.
* Added ability to limit banshees to 2.
* Disabled some triggers that caused known problems.
1.00:
* First public release (mistakenly labelled 0.99b in Map Description)
-------------
Known Issues:
-------------
* Round does not end if a unit dies while it is being healing waved or death coiled or rejuvinated. (reported by JopeJope,
but not yet reproduced)
* Are there still bracket issues when a player leaves?
--------------------
Drawing Board Ideas:
--------------------
* Some people want game settings to be chosen through voting. Would this make Training part of game last forever?
* Some people want choice between single elmination and best 2 of 3. This is not so important now that you can restart the game
without remaking.
* It might be nice if the game settings were displayed as floating text in the Selection Area so people don't have to ask.
function Trig_Output_Brackets_Actions takes nothing returns nothing
call DisplayTextToForce( GetPlayersAll(), ( "DEBUG: brackets[" + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[1])) + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[2])) + "," + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[3])) + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[4])) + "," + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[5])) + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[6])) + "," + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[7])) + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[8])) + "," + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[9])) + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[10])) + "," + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[11])) + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[12])) + "," + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[13])) + I2S(GetConvertedPlayerId(udg_zc_BRACKETS[14])) + "]") )
endfunction
//===========================================================================
function InitTrig_Output_Brackets takes nothing returns nothing
set gg_trg_Output_Brackets = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(0), "brackets", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(1), "brackets", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(2), "brackets", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(3), "brackets", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(4), "brackets", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(5), "brackets", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(6), "brackets", true )
call TriggerRegisterPlayerChatEvent( gg_trg_Output_Brackets, Player(7), "brackets", true )
call TriggerAddAction( gg_trg_Output_Brackets, function Trig_Output_Brackets_Actions )
endfunction