diff options
author | Sebastian Valle Herrera <subv2112@gmail.com> | 2014-06-07 11:46:37 -0500 |
---|---|---|
committer | Sebastian Valle Herrera <subv2112@gmail.com> | 2014-06-07 11:46:37 -0500 |
commit | 906abd7956bcd83c9c2bf39273db9024715f2b73 (patch) | |
tree | 6829578e269ccb83c0b971b2638dc34461ae6d9f | |
parent | fd7589617d2357f34f901b5b36695467505ac2a4 (diff) | |
parent | 18868f5cbdd55baa95cd5d5c56d77926ae7f1f9c (diff) |
Merge pull request #12204 from Trisjdc/map_enter
Core/Maps: Allow logging players to enter in instances that have an encounter in progress
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 7 |
3 files changed, 10 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index fdb0b526363..ba5f4439838 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -26759,3 +26759,8 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy return pet; } + +bool Player::IsLoading() const +{ + return GetSession()->PlayerLoading(); +} diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 52674032c0a..94175834969 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2303,6 +2303,8 @@ class Player : public Unit, public GridObject<Player> std::string GetMapAreaAndZoneString(); std::string GetCoordsMapAreaAndZoneString(); + bool IsLoading() const; + protected: // Gamemaster whisper whitelist WhisperListContainer WhisperList; diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index ba271235330..d3be33cb441 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2854,10 +2854,9 @@ bool InstanceMap::CanEnter(Player* player) return false; } - // cannot enter while an encounter is in progress on raids - /*Group* group = player->GetGroup(); - if (!player->IsGameMaster() && group && group->InCombatToInstance(GetInstanceId()) && player->GetMapId() != GetId())*/ - if (IsRaid() && GetInstanceScript() && GetInstanceScript()->IsEncounterInProgress()) + // cannot enter while an encounter is in progress + // allow if just loading + if (!player->IsLoading() && IsRaid() && GetInstanceScript() && GetInstanceScript()->IsEncounterInProgress()) { player->SendTransferAborted(GetId(), TRANSFER_ABORT_ZONE_IN_COMBAT); return false; |