diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-10-12 21:17:28 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-10-12 21:17:28 +0200 |
commit | 322a71dfb284b62b376e15a2f4dc3ecc89cb5b81 (patch) | |
tree | 2e23eb2484364998a7e66711b1e07161fbc74cd4 /src | |
parent | c093ec3b1051e65240ec8cd66b6e5481a7873a96 (diff) |
Core/Players: Allow disabling creating characters in Exile's Reach by disabling map 2175
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Conditions/DisableMgr.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Handlers/AuthHandler.cpp | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp index f1dbec72ba0..c0d4e9b8225 100644 --- a/src/server/game/Conditions/DisableMgr.cpp +++ b/src/server/game/Conditions/DisableMgr.cpp @@ -327,6 +327,8 @@ bool IsDisabledFor(DisableType type, uint32 entry, WorldObject const* ref, uint8 } case DISABLE_TYPE_MAP: case DISABLE_TYPE_LFG_MAP: + if (!ref) + return true; if (Player const* player = ref->ToPlayer()) { MapEntry const* mapEntry = sMapStore.LookupEntry(entry); diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp index cd78c2afe4a..0166ae3201b 100644 --- a/src/server/game/Handlers/AuthHandler.cpp +++ b/src/server/game/Handlers/AuthHandler.cpp @@ -20,6 +20,7 @@ #include "BattlenetRpcErrorCodes.h" #include "CharacterTemplateDataStore.h" #include "ClientConfigPackets.h" +#include "DisableMgr.h" #include "GameTime.h" #include "ObjectMgr.h" #include "RBAC.h" @@ -49,6 +50,10 @@ void WorldSession::SendAuthResponse(uint32 code, bool queued, uint32 queuePos) response.SuccessInfo->Templates.push_back(&templ.second); response.SuccessInfo->AvailableClasses = &sObjectMgr->GetClassExpansionRequirements(); + + // TEMPORARY - prevent creating characters in uncompletable zone + // This has the side effect of disabling Exile's Reach choice clientside without actually forcing character templates + response.SuccessInfo->ForceCharacterTemplate = DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, 2175 /*Exile's Reach*/, nullptr); } if (queued) |