diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 4 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_quest.cpp | 2 |
6 files changed, 15 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 0c75630ee51..c709db8f267 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14837,6 +14837,8 @@ void Player::AddQuest(Quest const* quest, Object* questGiver) // add to Quest Tracker CharacterDatabase.Execute(stmt); } + + sScriptMgr->OnQuestStatusChange(this, quest_id); } void Player::CompleteQuest(uint32 quest_id) @@ -15079,6 +15081,8 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, //lets remove flag for delayed teleports SetCanDelayTeleport(false); + + sScriptMgr->OnQuestStatusChange(this, quest_id); } void Player::FailQuest(uint32 questId) @@ -15739,7 +15743,7 @@ void Player::SetQuestStatus(uint32 questId, QuestStatus status, bool update /*= if (update) SendQuestUpdate(questId); - sScriptMgr->OnQuestStatusChange(this, questId, status); + sScriptMgr->OnQuestStatusChange(this, questId); } void Player::RemoveActiveQuest(uint32 questId, bool update /*= true*/) diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 64029596318..e2cb28000db 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -442,6 +442,8 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPacket& recvData) // add to Quest Tracker CharacterDatabase.Execute(stmt); } + + sScriptMgr->OnQuestStatusChange(_player, questId); } _player->SetQuestSlot(slot, 0); diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 75ab7c0d277..75f1e6f84ec 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -2115,9 +2115,9 @@ void ScriptMgr::OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newAre FOREACH_SCRIPT(PlayerScript)->OnUpdateZone(player, newZone, newArea); } -void ScriptMgr::OnQuestStatusChange(Player* player, uint32 questId, QuestStatus status) +void ScriptMgr::OnQuestStatusChange(Player* player, uint32 questId) { - FOREACH_SCRIPT(PlayerScript)->OnQuestStatusChange(player, questId, status); + FOREACH_SCRIPT(PlayerScript)->OnQuestStatusChange(player, questId); } // Account diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index ffe772b0666..a6cce299645 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -740,7 +740,7 @@ class TC_GAME_API PlayerScript : public UnitScript virtual void OnMapChanged(Player* /*player*/) { } // Called after a player's quest status has been changed - virtual void OnQuestStatusChange(Player* /*player*/, uint32 /*questId*/, QuestStatus /*status*/) { } + virtual void OnQuestStatusChange(Player* /*player*/, uint32 /*questId*/) { } }; class TC_GAME_API AccountScript : public ScriptObject @@ -1070,7 +1070,7 @@ class TC_GAME_API ScriptMgr void OnPlayerSave(Player* player); void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent, uint8 extendState); void OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newArea); - void OnQuestStatusChange(Player* player, uint32 questId, QuestStatus status); + void OnQuestStatusChange(Player* player, uint32 questId); public: /* AccountScript */ diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 7da64b4ecf9..d8feaf22c6f 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4800,6 +4800,8 @@ void Spell::EffectQuestClear(SpellEffIndex effIndex) player->RemoveActiveQuest(quest_id, false); player->RemoveRewardedQuest(quest_id); + + sScriptMgr->OnQuestStatusChange(player, quest_id); } void Spell::EffectSendTaxi(SpellEffIndex effIndex) diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp index be53304b8f8..22ac4b04816 100644 --- a/src/server/scripts/Commands/cs_quest.cpp +++ b/src/server/scripts/Commands/cs_quest.cpp @@ -143,6 +143,8 @@ public: player->RemoveActiveQuest(entry, false); player->RemoveRewardedQuest(entry); + sScriptMgr->OnQuestStatusChange(player, entry); + handler->SendSysMessage(LANG_COMMAND_QUEST_REMOVED); return true; } |