aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QuestHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-07-30 18:35:39 +0200
committerShauren <shauren.trinity@gmail.com>2025-07-30 18:35:39 +0200
commit2c9b67f00be95bd816dbaa9db43838a67e187753 (patch)
tree32da7cfefc4a27343e811954171e7f384ce8d663 /src/server/game/Handlers/QuestHandler.cpp
parente203a3bad75432ef0b067b9a4c10844f6dad77df (diff)
Core/Quests: Fixed QuestScript::OnQuestStatusChange incorrectly triggering with QUEST_STATUS_INCOMPLETE when removing items from quest objectives on rewarding quest
Closes #31181
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 085ec2e1ff9..7c212046640 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -416,6 +416,8 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemove
Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
QuestStatus oldStatus = _player->GetQuestStatus(questId);
+ _player->RemoveActiveQuest(questId);
+
if (quest)
{
if (quest->HasFlagEx(QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN))
@@ -434,10 +436,8 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemove
}
_player->SendForceSpawnTrackingUpdate(questId);
- _player->SetQuestSlot(packet.Entry, 0);
_player->TakeQuestSourceItem(questId, true); // remove quest src item from player
_player->AbandonQuest(questId); // remove all quest items player received before abandoning quest. Note, this does not remove normal drop items that happen to be quest requirements.
- _player->RemoveActiveQuest(questId);
_player->DespawnPersonalSummonsForQuest(questId);
TC_LOG_INFO("network", "Player {} abandoned quest {}", _player->GetGUID().ToString(), questId);