From cf7959238ad3a375a3549f4087ee18a35df0776b Mon Sep 17 00:00:00 2001 From: gontrannopier <66059606+gontrannopier@users.noreply.github.com> Date: Sun, 1 Dec 2024 21:09:26 +0100 Subject: [PATCH] fix(Core/Players): don't set full heath/mana/rage while Dead (#20723) fix level up while dead -> check if player is not dead, then update health/mana/rage/.. Co-authored-by: gontrannopier --- src/server/game/Entities/Player/Player.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 30bc269ff..b16b5a253 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2507,14 +2507,17 @@ void Player::GiveLevel(uint8 level) _ApplyAllLevelScaleItemMods(true); - // set current level health and mana/energy to maximum after applying all mods. - SetFullHealth(); - SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); - SetPower(POWER_ENERGY, GetMaxPower(POWER_ENERGY)); - if (GetPower(POWER_RAGE) > GetMaxPower(POWER_RAGE)) - SetPower(POWER_RAGE, GetMaxPower(POWER_RAGE)); - SetPower(POWER_FOCUS, 0); - SetPower(POWER_HAPPINESS, 0); + if (!isDead()) + { + // set current level health and mana/energy to maximum after applying all mods. + SetFullHealth(); + SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); + SetPower(POWER_ENERGY, GetMaxPower(POWER_ENERGY)); + if (GetPower(POWER_RAGE) > GetMaxPower(POWER_RAGE)) + SetPower(POWER_RAGE, GetMaxPower(POWER_RAGE)); + SetPower(POWER_FOCUS, 0); + SetPower(POWER_HAPPINESS, 0); + } // update level to hunter/summon pet if (Pet* pet = GetPet())