Jass:MeleeCheckForLosersAndVictors
Aus Mappedia
| Funktion: MeleeCheckForLosersAndVictors | |
|---|---|
| Parameter: | nothing |
| Rückgabewert: | nothing |
| Autor: | Blizzard |
| Quelle: | Blizzard.j |
| Synchron: | Unbekannt |
Code
function MeleeCheckForLosersAndVictors takes nothing returns nothing local integer playerIndex local player indexPlayer local force defeatedPlayers = CreateForce() local force victoriousPlayers local boolean gameOver = false // If the game is already over, do nothing if (bj_meleeGameOver) then return endif // If the game was disconnected then it is over, in this case we // don't want to report results for anyone as they will most likely // conflict with the actual game results if (GetIntegerGameState(GAME_STATE_DISCONNECTED) != 0) then set bj_meleeGameOver = true return endif // Check each player to see if he or she has been defeated yet. set playerIndex = 0 loop set indexPlayer = Player(playerIndex) if (not bj_meleeDefeated[playerIndex] and not bj_meleeVictoried[playerIndex]) then //call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 60, "Player"+I2S(playerIndex)+" has "+I2S(MeleeGetAllyStructureCount(indexPlayer))+" ally buildings.") if (MeleeGetAllyStructureCount(indexPlayer) <= 0) then // Keep track of each defeated player so that we can give // them a defeat later. call ForceAddPlayer(defeatedPlayers, Player(playerIndex)) // Set their defeated flag now so MeleeCheckForVictors // can detect victors. set bj_meleeDefeated[playerIndex] = true endif endif set playerIndex = playerIndex + 1 exitwhen playerIndex == bj_MAX_PLAYERS endloop // Now that the defeated flags are set, check if there are any victors set victoriousPlayers = MeleeCheckForVictors() // Defeat all defeated players call ForForce(defeatedPlayers, function MeleeDoDefeatEnum) // Give victory to all victorious players call ForForce(victoriousPlayers, function MeleeDoVictoryEnum) // If the game is over we should remove all observers if (bj_meleeGameOver) then call MeleeRemoveObservers() endif endfunction
