Core/Quests: Fixed QuestScript::OnQuestStatusChange incorrectly triggering with QUEST_STATUS_INCOMPLETE when removing items from quest objectives on rewarding quest

Port From (https://github.com/TrinityCore/TrinityCore/commit/2c9b67f00be95bd816dbaa9db43838a67e187753)
This commit is contained in:
Hondacrx
2025-08-20 22:30:52 -04:00
parent 846daa3891
commit 06030a7ce8
5 changed files with 53 additions and 75 deletions
+2 -2
View File
@@ -381,6 +381,8 @@ namespace Game
Quest quest = Global.ObjectMgr.GetQuestTemplate(questId);
QuestStatus oldStatus = _player.GetQuestStatus(questId);
_player.RemoveActiveQuest(questId);
if (quest != null)
{
if (quest.HasFlagEx(QuestFlagsEx.NoAbandonOnceBegun))
@@ -401,10 +403,8 @@ namespace Game
}
GetPlayer().SendForceSpawnTrackingUpdate(questId);
GetPlayer().SetQuestSlot(packet.Entry, 0);
GetPlayer().TakeQuestSourceItem(questId, true); // remove quest src item from player
GetPlayer().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.
GetPlayer().RemoveActiveQuest(questId);
GetPlayer().DespawnPersonalSummonsForQuest(questId);
Log.outInfo(LogFilter.Network, "Player {0} abandoned quest {1}", GetPlayer().GetGUID().ToString(), questId);