diff options
author | tartalo <none@none> | 2009-10-22 18:35:52 +0200 |
---|---|---|
committer | tartalo <none@none> | 2009-10-22 18:35:52 +0200 |
commit | 9e8961bc4cd9bb99b863031924f16c6306a1e35d (patch) | |
tree | 3705782864aa0c9129f2e9d9252bfd4286635b93 /src/game/MapManager.cpp | |
parent | 9c81b3e51dbf255435a8ac945ac018b809be2e83 (diff) |
Fix some problems with instance full conditions. BTW, Implement maxPlayers = -1 as unlimited access
--HG--
branch : trunk
Diffstat (limited to 'src/game/MapManager.cpp')
-rw-r--r-- | src/game/MapManager.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index 66fa5632d56..476426b8106 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -252,15 +252,19 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player) //Instance is full if (boundedMap) { - Map::PlayerList const &players = boundedMap->GetPlayers(); - uint8 count = 0; - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) - ++count; - if (count == player->GetDifficulty() ? instance->maxPlayersHeroic : instance->maxPlayers) + int8 maxPlayers = (player->GetDifficulty() == DIFFICULTY_HEROIC) ? instance->maxPlayersHeroic : instance->maxPlayers; + if (maxPlayers != -1) //-1: unlimited access { - sLog.outDebug("MAP: Player '%s' can't enter instance '%s' because it's full.", player->GetName(), mapName); - player->SendTransferAborted(mapid, TRANSFER_ABORT_MAX_PLAYERS); - return(false); + Map::PlayerList const &players = boundedMap->GetPlayers(); + uint8 count = 0; + for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) + ++count; + if (count >= maxPlayers) + { + sLog.outDebug("MAP: Player '%s' can't enter instance '%s' because it's full.", player->GetName(), mapName); + player->SendTransferAborted(mapid, TRANSFER_ABORT_MAX_PLAYERS); + return(false); + } } } } |