aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp6
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp2
-rw-r--r--src/server/game/Scripting/ScriptMgr.cpp4
-rw-r--r--src/server/game/Scripting/ScriptMgr.h4
-rw-r--r--src/server/game/Spells/SpellEffects.cpp2
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp2
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;
}