diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index a04616cbe..5364e98d2 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2524,6 +2524,11 @@ void Player::GiveLevel(uint8 level) sScriptMgr->OnPlayerLevelChanged(this, oldLevel); } +bool Player::IsMaxLevel() const +{ + return GetLevel() >= GetUInt32Value(PLAYER_FIELD_MAX_LEVEL); +} + void Player::InitTalentForLevel() { uint32 talentPointsForLevel = CalculateTalentsPoints(); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index e5606b037..48474ce99 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1686,6 +1686,7 @@ public: void SetFreeTalentPoints(uint32 points); bool resetTalents(bool noResetCost = false); [[nodiscard]] uint32 resetTalentsCost() const; + bool IsMaxLevel() const; void InitTalentForLevel(); void BuildPlayerTalentsInfoData(WorldPacket* data); void BuildPetTalentsInfoData(WorldPacket* data); diff --git a/src/server/game/Entities/Player/PlayerQuest.cpp b/src/server/game/Entities/Player/PlayerQuest.cpp index 659e84c72..ea7a0b2a9 100644 --- a/src/server/game/Entities/Player/PlayerQuest.cpp +++ b/src/server/game/Entities/Player/PlayerQuest.cpp @@ -2348,7 +2348,7 @@ void Player::SendQuestReward(Quest const* quest, uint32 XP) WorldPacket data(SMSG_QUESTGIVER_QUEST_COMPLETE, (4 + 4 + 4 + 4 + 4)); data << uint32(questid); - if (GetLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) + if (!IsMaxLevel()) { data << uint32(XP); data << uint32(quest->GetRewOrReqMoney(GetLevel())); diff --git a/src/server/game/Handlers/LFGHandler.cpp b/src/server/game/Handlers/LFGHandler.cpp index a78b88644..4599347f8 100644 --- a/src/server/game/Handlers/LFGHandler.cpp +++ b/src/server/game/Handlers/LFGHandler.cpp @@ -188,7 +188,10 @@ void WorldSession::HandleLfgPlayerLockInfoRequestOpcode(WorldPacket& /*recvData* uint8 playerLevel = GetPlayer() ? GetPlayer()->GetLevel() : 0; data << uint8(done); data << uint32(quest->GetRewOrReqMoney(playerLevel)); - data << uint32(quest->XPValue(playerLevel)); + if (!GetPlayer()->IsMaxLevel()) + data << uint32(quest->XPValue(playerLevel)); + else + data << uint32(0); data << uint32(0); data << uint32(0); data << uint8(quest->GetRewItemsCount());