diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ab9319e16..9e5347b4a 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15985,6 +15985,8 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, // Xinef: area auras may change on quest completion! UpdateZoneDependentAuras(GetZoneId()); UpdateAreaDependentAuras(GetAreaId()); + + sScriptMgr->OnPlayerCompleteQuest(this, quest); } void Player::FailQuest(uint32 questId) diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 2ad9bad1e..52bf64647 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1374,6 +1374,12 @@ bool ScriptMgr::OnCriteriaCheck(uint32 scriptId, Player* source, Unit* target, u } // Player + +void ScriptMgr::OnPlayerCompleteQuest(Player* player, Quest const* quest) +{ + FOREACH_SCRIPT(PlayerScript)->OnPlayerCompleteQuest(player, quest); +} + void ScriptMgr::OnPlayerReleasedGhost(Player* player) { FOREACH_SCRIPT(PlayerScript)->OnPlayerReleasedGhost(player); diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 7d078671b..34836eaec 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -777,6 +777,9 @@ class PlayerScript : public ScriptObject public: virtual void OnPlayerReleasedGhost(Player* /*player*/) { } + + // Called when a player completes a quest + virtual void OnPlayerCompleteQuest(Player* /*player*/, Quest const* /*quest_id*/) { } // Called when a player kills another player virtual void OnPVPKill(Player* /*killer*/, Player* /*killed*/) { } @@ -1328,6 +1331,7 @@ class ScriptMgr void OnAfterUpdateAttackPowerAndDamage(Player* player, float& level, float& base_attPower, float& attPowerMod, float& attPowerMultiplier, bool ranged); void OnBeforeInitTalentForLevel(Player* player, uint8& level, uint32& talentPointsForLevel); void OnFirstLogin(Player* player); + void OnPlayerCompleteQuest(Player* player, Quest const* quest); public: /* GuildScript */