diff options
author | DJScias <djscias@gmail.com> | 2016-07-25 08:57:10 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-07-25 08:57:10 +0200 |
commit | bc467bb2618cc632edede5b00d8109177f075d16 (patch) | |
tree | ad69396abcd3c3a47fc1954bcd5e168753381f9c | |
parent | 766afbeacdc2d14ffc8e89a79e874b7c5075da76 (diff) |
Core/Players: Fix logic regarding HandleCharEnum and DHs (#17660)
* If CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_DEMON_HUNTER was set to 0 (disable in the config), it would still not allow you to create a DH in case there were no prior characters.
* If RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_DEMON_HUNTER was true (AKA allow DH creation always) it would not allow DH creation regardless of existing characters or not considering canAlwaysCreateDemonHunter was not checked for validity on charEnum.IsDemonHunterCreationAllowed.
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 044eb15dab7..d1f2c3d7563 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -266,6 +266,8 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result) { uint8 demonHunterCount = 0; // We use this counter to allow multiple demon hunter creations when allowed in config bool canAlwaysCreateDemonHunter = HasPermission(rbac::RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_DEMON_HUNTER); + if (sWorld->getIntConfig(CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_DEMON_HUNTER) == 0) // char level = 0 means this check is disabled, so always true + canAlwaysCreateDemonHunter = true; WorldPackets::Character::EnumCharactersResult charEnum; charEnum.Success = true; charEnum.IsDeletedCharacters = false; @@ -319,7 +321,7 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result) while (result->NextRow()); } - charEnum.IsDemonHunterCreationAllowed = (!charEnum.HasDemonHunterOnRealm && charEnum.HasLevel70OnRealm); + charEnum.IsDemonHunterCreationAllowed = (!charEnum.HasDemonHunterOnRealm && charEnum.HasLevel70OnRealm) || canAlwaysCreateDemonHunter; SendPacket(charEnum.Write()); } |