Syling Tracker

Syling Tracker

28.6k Downloads

Quests not automatically tracking

RyadaProductions opened this issue ยท 11 comments

commented

Syling Tracker version: 0.3.4

Percieved faulty behavior:
Syling Tracked doesn't automatically track quests upon accepting.
This is most likely caused by the usage of ElvUI in combination with Syling Tracker.

Expected behavior:
The behavior that I expect would be that it automatically starts tracking newly accepted quests.

Current workaround:

  • Use command /slt bot
  • Minimize the default Objective Tracker

If more information is needed please let me know and I will do my best to gather all the information needed.

commented

Can you confirm me the quests accepted aren't added to the bottom of the quests tracker instead ?

After checking, i notice there is an issue with the distance used by the quests. In many cases, quests in other continents are displayed first compared to quests that are in the same area as the player. This may cause the illusion the new quests are not automatically tracked.

I'd like also to know the value of "AUTO_QUEST_WATCH" you have. You can retrieve it in typing:
/dump AUTO_QUEST_WATCH

commented

Newly accepted quests do not appear at all. If i open the QuestLog and select the quests they are not tracked, and can be tracked manually.

The value of AUTO_QUEST_WATCH is 1

commented

I am going to try and see if I can find out some more information about why and how this behavior is caused.
I will update this issue accordingly.

commented

In the recent release (0.3.5), i put some trace/debug information for helping us to see on how the addon behaves.
You can display them with:
/slt log 1 (it doesn't persist between each reload)

commented

To be honest with what you have said, i don't know why the quests are not automatically tracked from your side.
I need more information. I'm thinking to add some debug/trace in the next release for seeing how the addons behaves.

commented

With the trace enabled there is not much being logged from what I can see.
Here is a screenshot of the chat when I changed the log to 1 and accepted a quest.
image

After playing around a bit I did notice that sometimes it does start tracking properly. But the same scenario as the one in the screenshot does appear from time to time. I haven't found any clues so far as to what caused it to suddenly start working/breaking. I will keep looking further.

As an addition to this. Whenever this behavior is percieved there are no errors generated at the same time.

commented

Having the same issue and i am also using elvui. The quests start tracking properly as soon as i interact with a quest mob or other quest related stuff.

commented

@RyadaProductions Can you edit the file "Contents/Quests/Quests.lua" for adding some print at the beginning of functions QUEST_ACCEPTED and QUEST_WATCH_LIST_CHANGED ? As you have got no log, i'd like to know if these functions are at least called.

function QUEST_ACCEPTED(questID)

__SystemEvent__()
function QUEST_ACCEPTED(questID)
  if Log.LogLevel == 1 then 
    print("SLT:QUEST_ACCEPTED is triggered", questID)
  end
  -- ...
end

function QUEST_WATCH_LIST_CHANGED(questID, isAdded)

__Async__()
__SystemEvent__()
function QUEST_WATCH_LIST_CHANGED(questID, isAdded)
  if Log.LogLevel == 1 then 
    print("SLT:QUEST_WATCH_LIST_CHANGED is triggered", questID, isAdded)
  end
  -- ...
end

Little reminder : don't forget to type a "/slt log 1" before checking

commented

I will try and reproduce the issue with the added logging. I haven't been able to reproduce it for a while now sadly. So hopefully i will have some luck tonight.

commented

Syling Tacker version 0.3.6
Quests.lua edited
AUTO_QUEST_WATCH=1
/slt log 1 done

I don't use ElvUI, but I ran into the same issue as described.
New quests in the same region I'm playing in right now (Wandering Isle) don't get automatically added to the tracker, both listed events are not triggering/outputting logs on accepting a new quest. As seen in the screenshot.
SylingTracker_noTrackingError_note

commented

Good news,

With the logs of @elrontur , i have noticed as soon as the Quests module become inactive, it remains in this state for forever.

In Syling Tracker, the modules become inactive and active under their own criteria. For example, the Scenario module become active when you are in scenario and inactive when you are outside of it. This system allows to do some tasks at specific moments (OnActive and OnInactive) and an inactive module ignore all the WoW events.

If we come back to case of our quests.

__ActiveOnEvents__ "PLAYER_ENTERING_WORLD" "QUEST_WATCH_LIST_CHANGED"
function ActivateOn(self, event, ...)
return GetNumQuestWatches() > 0
end

The module checks on every "PLAYER_ENTERING_WORLD and "QUEST_WATCH_LIST_CHANGED" events if this needs to be active or inactive.

  • When you unwatch your last quests, a checking is triggered by "QUEST_WATCH_LIST_CHANGED" and as the GetNumQuestWatches() > 0 condition returns false, the module become inactive so will ignore all next WoW events. This behavior works as intended.
  • Being inactive, the module ignore the "QUEST_ACCEPTED" so at this point, the module can't watch the quest by itself. This is the origin of problem. The reason on why when you enable the "Blizzard Objective Tracker" with /slt bot, the issues goes away is because the quests watching is also done by this last.

I'll prepare a fix.

Thanks for all the information you have provided, this was very helpful.