diff --git a/src/game/Entities/Unit/StatSystem.cpp b/src/game/Entities/Unit/StatSystem.cpp index fac97df16..3518124e2 100644 --- a/src/game/Entities/Unit/StatSystem.cpp +++ b/src/game/Entities/Unit/StatSystem.cpp @@ -283,6 +283,7 @@ void Player::UpdateMaxHealth() value += GetModifierValue(unitMod, TOTAL_VALUE) + GetHealthBonusFromStamina(); value *= GetModifierValue(unitMod, TOTAL_PCT); + sScriptMgr->OnAfterUpdateMaxHealth(this, value); SetMaxHealth((uint32)value); } diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp index 3d149dfe5..7cf49a127 100644 --- a/src/game/Scripting/ScriptMgr.cpp +++ b/src/game/Scripting/ScriptMgr.cpp @@ -1550,6 +1550,11 @@ void ScriptMgr::OnAfterUpdateMaxPower(Player* player, Powers& power, float& valu FOREACH_SCRIPT(PlayerScript)->OnAfterUpdateMaxPower(player, power, value); } +void ScriptMgr::OnAfterUpdateMaxHealth(Player* player, float& value) +{ + FOREACH_SCRIPT(PlayerScript)->OnAfterUpdateMaxHealth(player, value); +} + AllMapScript::AllMapScript(const char* name) : ScriptObject(name) { diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h index 5a5122fc3..2750a0c5e 100644 --- a/src/game/Scripting/ScriptMgr.h +++ b/src/game/Scripting/ScriptMgr.h @@ -891,6 +891,9 @@ class PlayerScript : public ScriptObject virtual void OnAfterStoreOrEquipNewItem(Player* /*player*/, uint32 /*vendorslot*/, uint32& /*item*/, uint8 /*count*/, uint8 /*bag*/, uint8 /*slot*/, ItemTemplate const* /*pProto*/, Creature* /*pVendor*/, VendorItem const* /*crItem*/, bool /*bStore*/) { }; virtual void OnAfterUpdateMaxPower(Player* /*player*/, Powers& /*power*/, float& /*value*/) { } + + virtual void OnAfterUpdateMaxHealth(Player* /*player*/, float& /*value*/) { } + }; class GuildScript : public ScriptObject @@ -1203,6 +1206,7 @@ class ScriptMgr void OnBeforeBuyItemFromVendor(Player * player, uint64 vendorguid, uint32 vendorslot, uint32 &item, uint8 count, uint8 bag, uint8 slot); void OnAfterStoreOrEquipNewItem(Player* player, uint32 vendorslot, uint32 &item, uint8 count, uint8 bag, uint8 slot, ItemTemplate const* pProto, Creature* pVendor, VendorItem const* crItem, bool bStore); void OnAfterUpdateMaxPower(Player* player, Powers& power, float& value); + void OnAfterUpdateMaxHealth(Player* player, float& value); public: /* GuildScript */