Questie

Questie

116M Downloads

Down the Violet Path still showing

dabachel0r opened this issue ยท 3 comments

commented

Description

The Quest "Down the Violet Path" is still showing although completed.
The command /run print(C_QuestLog.IsQuestFlaggedCompleted(10733)) returns true

Wowhead link

https://tbc.wowhead.com/quest=10733/down-the-violet-path

Screenshots

The image shows the quest "Down the Violet Path", which I already completed.
Down_the_Violet_Path

For a prove I can show the ring.
Violet_Signet

Questie version

6.5.1

commented

Hey @dabachel0r could you enable "Show Quest IDs" in the advanced section of the Questie settings and post another screenshot of the quests showing up for you?

Could you also run the following command and report the output?

/dump C_QuestLog.IsQuestFlaggedCompleted(10733) and also with the ID that is showing when you enabled the quest IDs (if it is different to 10733).

commented

Thanks for the reply. Here is the required information.

Screenshots

Questie with "Show Quest IDs" enabled.
Down_the_Violet_Path_With_Quest_IDs

Dump of the Quest with Quest ID 10733
Dump_10733

Dump of the Quest with Quest IDs 10734, 10735, 10736
Dump_10734_10735_10736

Interestingly I get 3 Quests showing when I enable "Show Quest IDs", but only 1 Quest when I disable "Show Quest IDs".

commented

This is not a bug in data we have. This is bug how we use the data we have.

---@param preQuestSingle table<number, number>
---@return boolean
function QuestieDB:IsPreQuestSingleFulfilled(preQuestSingle)
if not preQuestSingle or not next(preQuestSingle) then
return true
end
for _, preQuestId in pairs(preQuestSingle) do
-- If a quest is complete the requirement is fulfilled
if Questie.db.char.complete[preQuestId] then
return true
-- If one of the quests in the exclusive group is complete the requirement is fulfilled
else
local preQuestExclusiveQuestGroup = QuestieDB.QueryQuestSingle(preQuestId, "exclusiveTo")
if preQuestExclusiveQuestGroup then
for _, v in pairs(preQuestExclusiveQuestGroup) do
if Questie.db.char.complete[v] then
return true
end
end
end
end
end
-- No preQuest is complete
return false
end

@BreakBB We should stop checking also exclusiveTo when checking preQuestSingle completed?

Here is current situation:
Quests 1,2,3,4 are exclusiveTo each other. When you accept one of these, you decide which quest chain you start to do. If these wouldn't be exclusiveTo each other, questie would show quests 2,3,4 still available once you accept quest 1.
--> 1,2,3,4 must be set exclusiveTo each other

Everyone of those quests 1,2,3,4 leads to one new quest: 1->5, 2->6, 3->7, 4->8.

Setting 5,6,7,8 exclusiveTo each other won't help because after quest 1 is completed it would still show all 5,6,7,8 available with current code - even only quest 5 is available.

This is easy fix to make in code, BUT what will it break if some quests are now (wrongly) using this current wrong behavior as benefit?