failed quests and reaccepting the same quest without abandoning it - further issues
Cabro opened this issue ยท 31 comments
1 - Blizzard allows you to just accept a quest again if you have it already in your quest log as failed.
With Questie's code, extraobjectives are simply not redrawn when you accept a quest in that situation.
Issue observed on escort quests (but most likely failed timed quests will reveal same bug also). Example https://www.wowhead.com/wotlk/quest=945/therylunes-escape
2 - the quest that you reaccepted is not tracked anymore. It's completely missing from tracker.
3 - the quest still shows as available to be taken on the map and NPC/tooltips even after you reaccepted it.
It is my impression that all these bugs are caused because Questie does not detect that you accepted the quest and all the issues would be solved if the addon will detect quest accept in that situation.
Turn on DEBUG_DEVELOP and tell me if you see this debug fire:
[QuestieQuest:UpdateQuest] Quest failed
Actually, I'd love to see an output when it fails so I can see what fires and in what order. I have a theory as to what is going on here.
Taking quest first time:
[23:38:13] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[23:38:13] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[23:38:14] Quest accepted: Therylune's Escape
[23:38:14] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[23:38:14] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[23:38:14] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[23:38:14] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[23:38:14] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[23:38:14] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:38:14] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[23:38:14] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:38:14] Questie: [DEVELOP] QuestieTracker:Update
[23:38:14] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[23:38:14] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[23:38:14] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedLines
[23:38:14] Questie: [INFO] [QuestieQuest] Accepted Quest: 945
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[23:38:14] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[23:38:14] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[23:38:14] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[23:38:14] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[23:38:14] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[23:38:14] Questie: [DEVELOP] [QuestieQuest:PopulateObjectiveNotes] Populating objectives for: 945
[23:38:14] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[23:38:14] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[23:38:14] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 21
[23:38:14] Questie: [DEVELOP] QuestieTracker:Update
[23:38:14] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[23:38:14] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[23:38:14] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedLines
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[23:39:33] Therylune's Escape failed.
[23:39:33] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:39:33] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[23:39:33] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:39:33] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[23:39:33] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[23:39:33] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[23:39:33] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[23:39:33] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[23:39:33] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[23:39:33] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[23:39:33] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[23:39:34] Questie: [DEVELOP] QuestieTracker:Update
[23:39:34] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
Quest is now available on Map with yellow exclamation mark, triggerend is removed, shows "quest failed" with red text in tracker.
Taking quest while failed in quest log:
[23:45:28] Therylune hides among the bushes.
[23:45:57] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[23:46:04] [S] [Cheeqey]: acceping quest while failed in log
[23:46:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[23:46:04] Quest accepted: Therylune's Escape
[23:46:04] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[23:46:04] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[23:46:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[23:46:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[23:46:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[23:46:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:46:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[23:46:04] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:46:05] Questie: [DEVELOP] QuestieTracker:Update
[23:46:05] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[23:46:32] Therylune's Escape failed.
[23:46:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:46:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[23:46:32] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:46:32] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[23:46:32] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[23:46:32] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[23:46:32] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[23:46:32] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[23:46:32] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[23:46:32] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[23:46:32] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[23:46:33] Questie: [DEVELOP] QuestieTracker:Update
[23:46:33] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
So, in both instances Questie is handling everything correctly AFTER receiving the Therylune's Escape failed.
event.
But there is a huge chunk that is missing from the log that should be there after accepting the Quest a second time (from a failed state). Unfortunately, the strings I need are in the SPAM channel. :( I need to know how far down in the function calls it goes before bailing out. Can you run this test case again with the SPAM channel on? ducks
First accept:
[12:09:01] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[12:09:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[12:09:04] Quest accepted: Therylune's Escape
[12:09:04] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[12:09:04] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[12:09:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[12:09:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[12:09:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[12:09:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:09:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[12:09:04] Questie: [SPAM] Skipping UnitQuestLogChanged
[12:09:04] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:09:04] Questie: [DEVELOP] QuestieTracker:Update
[12:09:04] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:09:04] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:09:04] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:09:04] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[12:09:04] Questie: [INFO] [QuestieQuest] Accepted Quest: 945
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[12:09:04] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[12:09:04] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[12:09:04] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[12:09:04] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:09:04] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:09:04] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[12:09:04] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[12:09:04] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[12:09:04] Questie: [DEVELOP] [QuestieQuest:PopulateObjectiveNotes] Populating objectives for: 945
[12:09:04] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[12:09:04] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[12:09:04] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 21
[12:09:04] Questie: [DEVELOP] QuestieTracker:Update
[12:09:04] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:09:04] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:09:04] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[12:10:07] Therylune's Escape failed.
[12:10:07] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:10:07] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[12:10:07] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:10:07] Questie: [SPAM] Running full questlog check
[12:10:07] Questie: [SPAM] Quest: 945 will be updated
[12:10:07] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[12:10:07] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[12:10:07] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[12:10:07] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[12:10:07] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[12:10:07] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[12:10:07] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[12:10:07] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[12:10:07] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[12:10:08] Questie: [DEVELOP] QuestieTracker:Update
[12:10:08] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:10:08] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:10:08] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:10:08] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:10:08] Questie: [INFO] TrackerLinePool: HideUnusedButtons
Accept while failed:
[12:18:24] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[12:18:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[12:18:26] Quest accepted: Therylune's Escape
[12:18:26] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[12:18:26] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[12:18:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[12:18:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[12:18:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[12:18:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:18:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[12:18:26] Questie: [SPAM] Skipping UnitQuestLogChanged
[12:18:26] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:18:26] Questie: [DEVELOP] QuestieTracker:Update
[12:18:26] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:18:26] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:18:26] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:18:26] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:18:26] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[12:18:26] Questie: [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0
[12:18:26] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[12:19:35] Therylune's Escape failed.
[12:19:35] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:19:35] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[12:19:35] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:19:35] Questie: [SPAM] Running full questlog check
[12:19:35] Questie: [SPAM] Quest: 945 will be updated
[12:19:35] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[12:19:35] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[12:19:35] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[12:19:35] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:19:35] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:19:35] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[12:19:35] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[12:19:35] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[12:19:35] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[12:19:35] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[12:19:35] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[12:19:35] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[12:19:35] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[12:19:35] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[12:19:36] Questie: [DEVELOP] QuestieTracker:Update
[12:19:36] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:19:36] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:19:36] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:19:36] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:19:36] Questie: [INFO] TrackerLinePool: HideUnusedButtons
Maybe this [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0
is what causes to not redraw tooltips/extraobjectives/whatnot?
LE: point 2 in original post might be related to being in combat when reaccept/fail 2nd time, i was out of combat both times when i tested and didn't notice that happening.
Ahhhh... I'm surprised this bug hasn't come up before. I'd like to make a small change to see what effect it'll have. I think my code comment says it all. Can you make the code change on your local files and retest? Don't worry about the code comment. I can check that in once we confirm this'll fix it. It will take care of point #2
. And AQW_Insert calls QuestieQuest:PopulateObjectiveNotes(quest) and should trigger all the correct flags solving point #3
.
I'd still like to see a debug output because I suspect I might have to insert some additional calls to get the COMMS working for this state. Perhaps even the tooltips? Not sure yet. I don't want to drop a sledgehammer out of the gate. Let's fix one layer at a time. ;)
whats with the language in the last print call there? "quest already existed?" that sounds wrong..
Sigh... Squirrel! :D I didn't write that string. You're right though, the grammar is wrong. It should be " Warning: Quest already exists, not adding"
I'll fix that...
First time accepting:
[19:15:27] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[19:15:29] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[19:15:29] Quest accepted: Therylune's Escape
[19:15:29] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[19:15:29] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[19:15:29] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[19:15:29] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[19:15:29] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[19:15:29] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:15:29] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[19:15:29] Questie: [SPAM] Skipping UnitQuestLogChanged
[19:15:29] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:15:29] Questie: [DEVELOP] QuestieTracker:Update
[19:15:29] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:15:29] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:15:29] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:15:29] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[19:15:29] Questie: [INFO] [QuestieQuest] Accepted Quest: 945
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[19:15:29] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[19:15:29] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[19:15:29] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[19:15:29] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:15:29] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:15:29] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[19:15:29] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[19:15:29] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[19:15:29] Questie: [DEVELOP] [QuestieQuest:PopulateObjectiveNotes] Populating objectives for: 945
[19:15:29] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[19:15:29] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[19:15:29] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 22
[19:15:29] Questie: [DEVELOP] QuestieTracker:Update
[19:15:29] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:15:29] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:15:29] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[19:15:29] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 6
... -- a ton of these. Only present the first time accepting. These are missing when accepting while failed
[19:15:35] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 11891
[19:16:48] Therylune's Escape failed.
[19:16:48] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:16:48] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[19:16:48] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:16:48] Questie: [SPAM] Running full questlog check
[19:16:48] Questie: [SPAM] Quest: 945 will be updated
[19:16:48] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[19:16:48] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[19:16:48] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[19:16:48] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:16:48] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:16:48] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[19:16:48] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[19:16:48] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[19:16:48] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[19:16:48] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[19:16:48] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[19:16:48] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[19:16:48] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[19:16:48] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[19:16:49] Questie: [DEVELOP] QuestieTracker:Update
[19:16:49] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:16:49] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:16:49] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:16:49] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:16:49] Questie: [INFO] TrackerLinePool: HideUnusedButtons
Accepting while failed:
[19:23:31] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[19:23:32] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[19:23:32] Quest accepted: Therylune's Escape
[19:23:32] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[19:23:32] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[19:23:32] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[19:23:32] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[19:23:32] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[19:23:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:23:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[19:23:32] Questie: [SPAM] Skipping UnitQuestLogChanged
[19:23:32] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:23:32] Questie: [DEVELOP] QuestieTracker:Update
[19:23:32] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:23:32] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:23:32] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:23:32] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:23:32] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[19:23:32] Questie: [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0
[19:23:32] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[19:23:32] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[19:23:32] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[19:23:33] Questie: [SPAM] [QuestieTooltips:GetTooltip] m_3584
[19:23:45] Questie: [SPAM] [QuestieNameplate:DrawTargetFrame]
[19:24:07] Questie: [SPAM] [QuestieNameplate:NameplateCreated]
[19:24:15] Questie: [SPAM] [QuestieNameplate:DrawTargetFrame]
[19:24:42] Therylune's Escape failed.
[19:24:42] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:24:42] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[19:24:42] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:24:42] Questie: [SPAM] Running full questlog check
[19:24:42] Questie: [SPAM] Quest: 945 will be updated
[19:24:42] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[19:24:42] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[19:24:42] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[19:24:42] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:24:42] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:24:42] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[19:24:42] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[19:24:42] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[19:24:42] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[19:24:42] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[19:24:42] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[19:24:42] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[19:24:42] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[19:24:42] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[19:24:43] Questie: [DEVELOP] QuestieTracker:Update
[19:24:43] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:24:43] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:24:43] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:24:43] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:24:43] Questie: [INFO] TrackerLinePool: HideUnusedButtons
OK, sledgehammer it is! :(
Try this... I had to rewrite the whole AcceptQuest() function.
---@param questId number
function QuestieQuest:AcceptQuest(questId)
local quest = QuestieDB:GetQuest(questId)
local complete = quest:IsComplete()
if not QuestiePlayer.currentQuestlog[questId] then
Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest] Accepted Quest:", questId)
QuestiePlayer.currentQuestlog[questId] = quest
TaskQueue:Queue(
--Get all the Frames for the quest and unload them, the available quest icon for example.
function() QuestieMap:UnloadQuestFrames(questId) end,
function() QuestieTooltips:RemoveQuest(questId) end,
function()
-- Re-accepted quest can be collapsed. Expand it. Especially dailies.
if Questie.db.char.collapsedQuests then
Questie.db.char.collapsedQuests[questId] = nil
end
-- Re-accepted quest can be untracked. Clear it. Especially timed quests.
if Questie.db.char.AutoUntrackedQuests[questId] then
Questie.db.char.AutoUntrackedQuests[questId] = nil
end
end,
function() QuestieQuest:PopulateQuestLogInfo(quest) end,
function()
-- This needs to happen after QuestieQuest:PopulateQuestLogInfo because that is the place where quest.Objectives is generated
Questie:SendMessage("QC_ID_BROADCAST_QUEST_UPDATE", questId)
end,
function() QuestieQuest:PopulateObjectiveNotes(quest) end,
function()
QuestieCombatQueue:Queue(function()
QuestieTracker:Update()
end)
end,
QuestieQuest.CalculateAndDrawAvailableQuestsIterative
)
elseif complete == 1 or complete == 0 then
Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest] Accepted Quest:", questId, " Warning: Quest was once accepted. IsComplete = ", complete)
-- AutoQuestWatch_Insert is a "Toggle" that we hook into to Track and Untrack Quests. QuestieTracker:AQW_Insert() is hooked into this Blizzard
-- API and must also be a "Toggle" function. So, the first time it's called, it adds the Quest and the second time it's called, it untracks the
-- Quest. This is why re-accepted quests can be untracked from the Tracker. To get things back to the correct state we call AQW_Insert directly.
if (Questie.db.global.autoTrackQuests and not Questie.db.char.AutoUntrackedQuests[questId]) or Questie.db.char.TrackedQuests[questId] == true then
QuestieTracker:AQW_Insert(questId)
end
TaskQueue:Queue(
--Get all the Frames for the quest and unload them, the available quest icon for example.
function() QuestieMap:UnloadQuestFrames(questId) end,
function() QuestieTooltips:RemoveQuest(questId) end,
function()
-- Re-accepted quest can be collapsed. Expand it. Especially dailies.
if Questie.db.char.collapsedQuests then
Questie.db.char.collapsedQuests[questId] = nil
end
-- Re-accepted quest can be untracked. Clear it. Especially timed quests.
if Questie.db.char.AutoUntrackedQuests[questId] then
Questie.db.char.AutoUntrackedQuests[questId] = nil
end
end,
function() QuestieQuest:PopulateQuestLogInfo(quest) end,
function()
-- This needs to happen after QuestieQuest:PopulateQuestLogInfo because that is the place where quest.Objectives is generated
Questie:SendMessage("QC_ID_BROADCAST_QUEST_UPDATE", questId)
end,
function() QuestieQuest:PopulateObjectiveNotes(quest) end,
function()
QuestieCombatQueue:Queue(function()
QuestieTracker:Update()
end)
end,
QuestieQuest.CalculateAndDrawAvailableQuestsIterative
)
else
Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest] Accepted Quest:", questId, " Warning: Quest already exists, not adding")
end
end
What i posted is for the accept in failed state.
The first time works without a problem, it adds map icon for triggerEnd just fine
With or without the code in brackets, the outcomes are exactly the same:
[15:56:24] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[15:56:24] Questie: [SPAM] [QuestieTooltips:GetTooltip] o_1622
[15:56:24] Questie: [SPAM] [QuestieTooltips:GetTooltip] o_3730
[15:56:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[15:56:26] Quest accepted: Therylune's Escape
[15:56:26] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[15:56:26] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[15:56:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[15:56:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[15:56:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[15:56:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[15:56:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[15:56:26] Questie: [SPAM] Skipping UnitQuestLogChanged
[15:56:26] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[15:56:26] Questie: [DEVELOP] QuestieTracker:Update
[15:56:26] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[15:56:26] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[15:56:26] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedLines
[15:56:26] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[15:56:26] Questie: [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[15:56:26] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[15:56:26] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[15:56:26] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[15:56:26] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[15:56:26] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 22
[15:56:26] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 6
[15:56:26] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 7
.
.
.
[15:56:26] Questie: [DEVELOP] QuestieTracker:Update
[15:56:26] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[15:56:26] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[15:56:26] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedLines
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedButtons
.
.
.
[15:57:06] Therylune's Escape failed.
[15:57:06] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[15:57:06] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[15:57:06] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[15:57:06] Questie: [SPAM] Running full questlog check
[15:57:06] Questie: [SPAM] Quest: 945 will be updated
[15:57:06] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[15:57:06] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[15:57:06] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[15:57:06] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[15:57:06] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[15:57:06] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[15:57:06] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[15:57:06] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[15:57:06] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[15:57:06] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[15:57:06] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[15:57:06] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[15:57:07] Questie: [DEVELOP] QuestieTracker:Update
[15:57:07] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[15:57:07] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[15:57:07] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[15:57:07] Questie: [INFO] TrackerLinePool: HideUnusedLines
[15:57:07] Questie: [INFO] TrackerLinePool: HideUnusedButtons
Everything seems to work, EXCEPT for redrawing the map icons for triggerEnd
And it works the very first time you pick up the quest?
How can the debug output be the same for both test cases then? Something MUST be missing.
I did a quick test of a timed quest: https://www.wowhead.com/wotlk/quest=3364/scalding-mornbrew-delivery. Both test cases are exactly the same.
Are you sure you merged all the code changes correctly? The whole function I posted above?
Points 2) and 3) seem to be fixed. Only 1) is missing now.
In both test cases? I'm still a little confused on that point. :D You do suggest that it does work in the first test case if I'm understanding this correctly:
With Questie's code, extraobjectives are simply not redrawn when you accept a quest in that situation.
When i say both cases, i mean with and without the code in the brackets.
Yes, that is the situation, yes. The map icon for escort end is shown correctly when you first accept the quest, it is correctly removed on quest fail, but it's not redrawn when you accept the quest while failed.
The icon is from a triggerEnd
Yes. The "finisher" showed in both cases. I found a toon that hasn't done this quest you were testing with. Going to check it now.
My logs for https://www.wowhead.com/wotlk/quest=945/therylunes-escape. they are identical save for one line. And you can see that the Magnifying Glass Icon isn't present in the second test case. So, it must be failing in an area we don't have a debug string for. But it certainly narrows down the areas I need to look at!
Yep... confirmed. I don't think that is the root cause though for the Magnifier Icon to not show. This new debug string appears after the quest fails during the second test case. I just wanted to confirm that it was failing that one check.
------------------------------------------------
[13:52:39] Therylune's Escape failed.
------------------------------------------------
[Quest is in log in a failed state. ReloadUI NOT done after Quest failed.]
1. Quest Starter Icon IS present
2. NPC "path" line is NOT present.
3. Magnifying Glass Icon is NOT present.
[13:52:40] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[13:52:40] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[13:52:40] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[13:52:40] Questie: [SPAM] Running full questlog check
[13:52:40] Questie: [SPAM] Quest: 945 will be updated
[13:52:40] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[13:52:40] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[13:52:40] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[13:52:40] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[13:52:40] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[13:52:40] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[13:52:40] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[13:52:40] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[13:52:40] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[13:52:40] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
-----------------------------------------------------------------------------------
[13:52:40] Questie: [DEVELOP] [QuestieMap] QuestieMap.questIdFrames[945] was not found! <----
-----------------------------------------------------------------------------------
[13:52:40] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[13:52:40] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[13:52:40] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[13:52:41] Questie: [DEVELOP] [QuestieTracker:Update]
[13:52:41] Questie: [DEVELOP] [QuestieTracker:UpdateFormatting]
Oh... I missed this: 2. NPC "path" line is NOT present.
in the second test case. Might be a clue...
@Cabro this one too... not sure why it wasn't closed. But again, let's make double sure. :)