Set quest.isComplete when IsComplete==1 in GetAllQuestIds
QuestieArrow._CollectQuestTargets checks quest.isComplete (the quest object field) to decide whether to collect finisher spawns or objective spawns. Without setting this field, the arrow fell through to objective collection and picked up the stale Cold Iron Key fake objective (CheckQuestSourceItem) which resolves to NPC 29323 at 39.8, 72.7. Now when QuestieDB.IsComplete returns 1, set quest.isComplete = true and quest.WasComplete = true before PopulateObjectiveNotes, so the arrow correctly routes to the finisher (Gretchen Fizzlespark) instead.
This commit is contained in:
@@ -781,7 +781,13 @@ function QuestieQuest:GetAllQuestIds()
|
||||
-- Only draw the source item objective when the quest is not yet complete.
|
||||
-- If the quest is complete (complete == 1), the source item was consumed during
|
||||
-- the quest (e.g. Cold Iron Key for quest 12843) and should not draw its drop NPC.
|
||||
if complete ~= 1 then
|
||||
if complete == 1 then
|
||||
-- Mark the quest object as complete so QuestieArrow collects finisher spawns
|
||||
-- instead of objective spawns. Without this, the arrow falls through to the
|
||||
-- objective collection path and picks up any stale fake item objectives.
|
||||
quest.isComplete = true
|
||||
quest.WasComplete = true
|
||||
else
|
||||
QuestieQuest:CheckQuestSourceItem(questId, true)
|
||||
end
|
||||
QuestieQuest:PopulateQuestLogInfo(quest)
|
||||
|
||||
Reference in New Issue
Block a user