diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index af598409f91..a9cfef36135 100755 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -494,21 +494,7 @@ void WorldSession::HandleCharCreateCallback(PreparedQueryResult result, Characte bool allowTwoSideAccounts = !sWorld->IsPvPRealm() || sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_ACCOUNTS) || GetSecurity() > SEC_PLAYER; uint32 skipCinematics = sWorld->getIntConfig(CONFIG_SKIP_CINEMATICS); - uint32 heroicReqLevel = sWorld->getIntConfig(CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_HEROIC_CHARACTER); - - // if 0 then allowed creating without any characters - bool hasHeroicReqLevel = (heroicReqLevel == 0); - if (GetSecurity() == SEC_PLAYER && createInfo->Class == CLASS_DEATH_KNIGHT && !hasHeroicReqLevel) - { - WorldPacket data(SMSG_CHAR_CREATE, 1); - data << uint8(CHAR_CREATE_LEVEL_REQUIREMENT); - SendPacket(&data); - delete createInfo; - _charCreateCallback.SetParam(NULL); - _charCreateCallback.FreeResult(); - return; - } - + _charCreateCallback.FreeResult(); if (!allowTwoSideAccounts || skipCinematics == 1 || createInfo->Class == CLASS_DEATH_KNIGHT) @@ -632,6 +618,17 @@ void WorldSession::HandleCharCreateCallback(PreparedQueryResult result, Characte } } + if (GetSecurity() == SEC_PLAYER && createInfo->Class == CLASS_DEATH_KNIGHT && !hasHeroicReqLevel) + { + WorldPacket data(SMSG_CHAR_CREATE, 1); + data << uint8(CHAR_CREATE_LEVEL_REQUIREMENT); + SendPacket(&data); + delete createInfo; + _charCreateCallback.SetParam(NULL); + _charCreateCallback.FreeResult(); + return; + } + if (createInfo->Data.rpos() < createInfo->Data.wpos()) { uint8 unk; |