diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/MapManager.cpp | 39 | ||||
-rw-r--r-- | src/game/Player.cpp | 8 |
2 files changed, 3 insertions, 44 deletions
diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index 6ff38ea9c21..55d20c3f762 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -30,7 +30,6 @@ #include "Transports.h" #include "GridDefines.h" #include "MapInstanced.h" -#include "InstanceData.h" #include "DestinationHolderImp.h" #include "World.h" #include "CellImpl.h" @@ -230,48 +229,10 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player) } } - //Get instance where player is bound - InstancePlayerBind* boundedInstance = player->GetBoundInstance(mapid, player->GetDifficulty()); - Map *boundedMap; - - //Search player's instance map - for(MapMapType::iterator itr = i_maps.find(mapid); itr != i_maps.end(); ) - { - Map *map = itr->second; - if(!map->Instanceable()) - break; - MapInstanced::InstancedMaps &maps = ((MapInstanced *)map)->GetInstancedMaps(); - for(MapInstanced::InstancedMaps::iterator mitr = maps.begin(); mitr != maps.end(); ++mitr) - if (boundedInstance->save->GetInstanceId() == mitr->first) - boundedMap = map; - } - //Encounters in progress - if (boundedMap && ((InstanceMap*)boundedMap)->GetInstanceData() && ((InstanceMap*)boundedMap)->GetInstanceData()->IsEncounterInProgress()) - { - sLog.outDebug("MAP: Player '%s' can't enter instance '%s' while an encounter is in progress.", player->GetName(), mapName); - player->SendTransferAborted(mapid, TRANSFER_ABORT_ZONE_IN_COMBAT); - return(false); - } - // Requirements InstanceTemplate const* instance = objmgr.GetInstanceTemplate(mapid); if(!instance) return false; - - //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) - { - 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); - } - } return player->Satisfy(objmgr.GetAccessRequirement(instance->access_id), mapid, true); } diff --git a/src/game/Player.cpp b/src/game/Player.cpp index ccbaf8f5b53..18ffff3a0b2 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -19466,8 +19466,6 @@ void Player::SendTransferAborted(uint32 mapid, uint8 reason, uint8 arg) case TRANSFER_ABORT_INSUF_EXPAN_LVL: case TRANSFER_ABORT_DIFFICULTY: case TRANSFER_ABORT_UNIQUE_MESSAGE: - case TRANSFER_ABORT_ZONE_IN_COMBAT: - case TRANSFER_ABORT_MAX_PLAYERS: data << uint8(arg); break; } @@ -20291,9 +20289,9 @@ bool Player::RewardPlayerAndGroupAtKill(Unit* pVictim) void Player::RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewardSource) { - if (!pRewardSource || pRewardSource->GetTypeId() != TYPEID_UNIT) + if (!pRewardSource) return; - uint64 creature_guid = pRewardSource->GetGUID(); + uint64 creature_guid = (pRewardSource && pRewardSource->GetTypeId()==TYPEID_UNIT) ? pRewardSource->GetGUID() : uint64(0); // prepare data for near group iteration if(Group *pGroup = GetGroup()) @@ -20319,7 +20317,7 @@ void Player::RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewar bool Player::IsAtGroupRewardDistance(WorldObject const* pRewardSource) const { if (!pRewardSource) - return false; + return; const WorldObject* player = GetCorpse(); if(!player || isAlive()) player = this; |