fix(Core/LFG): Hide XP from max players (#18103)

* Cherry-pick Player::IsMaxLevel from TrinityCore
* Correctly hide XP reward for max level players in LFG
* Closes #18101
This commit is contained in:
Kitzunu
2024-01-03 19:47:26 +01:00
committed by GitHub
parent da6ff31056
commit 6202835cff
4 changed files with 11 additions and 2 deletions

View File

@@ -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();

View File

@@ -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);

View File

@@ -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()));