diff options
| author | tobmaps <spambot42@yandex.ru> | 2011-05-10 18:52:28 +0700 | 
|---|---|---|
| committer | tobmaps <spambot42@yandex.ru> | 2011-05-10 18:52:28 +0700 | 
| commit | bd6750b4d035059adad300460bea6ac1a989000f (patch) | |
| tree | 4307c2c1410727f9a02a560f4f9e56ecfdf5e65f /src | |
| parent | f3a12453a00ccb2303e894a0c5c43890c0dc4861 (diff) | |
Core/Player: Fix old issue with creating a character if using declined names. Thx to someone, whose name was lost on old forums
Diffstat (limited to 'src')
| -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; | 
