diff options
| -rwxr-xr-x | src/server/game/Globals/ObjectMgr.cpp | 16 | ||||
| -rwxr-xr-x | src/server/game/Globals/ObjectMgr.h | 2 | ||||
| -rwxr-xr-x | src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp | 2 | ||||
| -rwxr-xr-x | src/server/game/Server/Protocol/Handlers/PetHandler.cpp | 2 |
4 files changed, 16 insertions, 6 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index bac8466cec2..ec388ab0719 100755 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -8003,8 +8003,15 @@ void ObjectMgr::LoadFishingBaseSkillLevel() sLog->outString(); } -bool ObjectMgr::CheckDeclinedNames(std::wstring mainpart, DeclinedName const& names) +bool ObjectMgr::CheckDeclinedNames(std::wstring w_ownname, DeclinedName const& names) { + // get main part of the name + std::wstring mainpart = GetMainPartOfName(w_ownname, 0); + // prepare flags + bool x = true; + bool y = true; + + // check declined names for (uint8 i =0; i < MAX_DECLINED_NAME_CASES; ++i) { std::wstring wname; @@ -8012,9 +8019,12 @@ bool ObjectMgr::CheckDeclinedNames(std::wstring mainpart, DeclinedName const& na return false; if (mainpart != GetMainPartOfName(wname, i+1)) - return false; + x = false; + + if (w_ownname != wname) + y = false; } - return true; + return (x || y); } uint32 ObjectMgr::GetAreaTriggerScriptId(uint32 trigger_id) diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 736e1b0b60e..ea19cbbdd06 100755 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1135,7 +1135,7 @@ class ObjectMgr static PetNameInvalidReason CheckPetName(const std::string& name); static bool IsValidCharterName(const std::string& name); - static bool CheckDeclinedNames(std::wstring mainpart, DeclinedName const& names); + static bool CheckDeclinedNames(std::wstring w_ownname, DeclinedName const& names); GameTele const* GetGameTele(uint32 id) const { diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index 9f5eddc4bbe..bbdc0cd8523 100755 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -1150,7 +1150,7 @@ void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recv_data) } } - if (!ObjectMgr::CheckDeclinedNames(GetMainPartOfName(wname, 0), declinedname)) + if (!ObjectMgr::CheckDeclinedNames(wname, declinedname)) { WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); data << uint32(1); diff --git a/src/server/game/Server/Protocol/Handlers/PetHandler.cpp b/src/server/game/Server/Protocol/Handlers/PetHandler.cpp index fde83d0ffeb..9dfac0e1b7c 100755 --- a/src/server/game/Server/Protocol/Handlers/PetHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/PetHandler.cpp @@ -628,7 +628,7 @@ void WorldSession::HandlePetRename(WorldPacket & recv_data) std::wstring wname; Utf8toWStr(name, wname); - if (!ObjectMgr::CheckDeclinedNames(GetMainPartOfName(wname, 0), declinedname)) + if (!ObjectMgr::CheckDeclinedNames(wname, declinedname)) { SendPetNameInvalid(PET_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME, name, &declinedname); return; |
