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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user