diff --git a/src/game/Entities/Unit/StatSystem.cpp b/src/game/Entities/Unit/StatSystem.cpp index 3518124e2..d1fb06a87 100644 --- a/src/game/Entities/Unit/StatSystem.cpp +++ b/src/game/Entities/Unit/StatSystem.cpp @@ -312,6 +312,7 @@ void Player::UpdateAttackPowerAndDamage(bool ranged) { float val2 = 0.0f; float level = float(getLevel()); + sScriptMgr->OnBeforeUpdateAttackPowerAndDamage(this, level, ranged); UnitMods unitMod = ranged ? UNIT_MOD_ATTACK_POWER_RANGED : UNIT_MOD_ATTACK_POWER; diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp index 7cf49a127..e0e770c4a 100644 --- a/src/game/Scripting/ScriptMgr.cpp +++ b/src/game/Scripting/ScriptMgr.cpp @@ -1555,6 +1555,11 @@ void ScriptMgr::OnAfterUpdateMaxHealth(Player* player, float& value) FOREACH_SCRIPT(PlayerScript)->OnAfterUpdateMaxHealth(player, value); } +void ScriptMgr::OnBeforeUpdateAttackPowerAndDamage(Player* player, float& level, bool ranged) +{ + FOREACH_SCRIPT(PlayerScript)->OnBeforeUpdateAttackPowerAndDamage(player, level, ranged); +} + AllMapScript::AllMapScript(const char* name) : ScriptObject(name) { diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h index 2750a0c5e..c204cd16f 100644 --- a/src/game/Scripting/ScriptMgr.h +++ b/src/game/Scripting/ScriptMgr.h @@ -894,6 +894,8 @@ class PlayerScript : public ScriptObject virtual void OnAfterUpdateMaxHealth(Player* /*player*/, float& /*value*/) { } + virtual void OnBeforeUpdateAttackPowerAndDamage(Player* /*player*/, float& /*level*/, bool /*ranged*/) { } + }; class GuildScript : public ScriptObject @@ -1207,6 +1209,7 @@ class ScriptMgr 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); + void OnBeforeUpdateAttackPowerAndDamage(Player* player, float& level, bool ranged); public: /* GuildScript */