Grail

3M Downloads

ShadowLands Beta, various infos and errors.

yoshimo opened this issue ยท 46 comments

commented

Message: Interface\AddOns\Grail\Grail.lua:1251: hooksecurefunc(): SelectGossipOption is not a function

commented

Other functions that error when you comment out and hack around in the code and should be looked at

self:GetQuestLogTitle(questIndex)
IsCampaignQuest(questID)
GetQuestTagInfo(v.questId)

other addons error out in GetQuestsCompleted

commented

I am not in the beta for some unlucky reason. Therefore, it will make debugging these issues a little problematic. :-(

commented

I am and have no desire to be. Well done Blizz.

commented

local GetQuestsCompleted = C_QuestLog.GetAllCompletedQuestIDs seems to get that part solved
https://github.com/ebonyfaye/9.0-Interface has the documentation files at least.
Still looking for the rest as a noob :)

commented

So does that routine return them in a table as expected by the rest of the code? I take it IsQuestFlaggedCompleted() does not exist any more and was causing the problem in beta.

commented

C_QuestLog.IsQuestFlaggedCompleted; is still mentioned in the repo I linked.
The questlog title thing is more annoying

commented

In game can you do:
/api QuestLog list
I would imagine we might be able to use C_QuestLog.GetInfo() to get the same information.

commented

Since my chat copy addon broke, here 2 pictures that show what the link would probably have shown in a weirder format:

1
2

commented

On a related note we now have a amber colored diamond that shows the location to the tracked quest as a 3d marker in the world.

commented

When you get that API list if you click on an item it should give you more information about it. I am assuming the C_QuestLog.GetInfo() will be usable by passing in the index from the quest log and its results will be the QuestInfo structure listed at the bottom of the API list (which should be clickable as well). I will have to rewrite Grail's GetQuestLogTitle() to make use of the new call, and what I assume to be the new order of return values, but I think it should be doable. I am going to try to get these changes into the GitHub repository to see if you can use them soonest.

commented

I should have mentioned that I am using that repo you mentioned earlier to look at the API to make guesses as to what to do. :-)

commented

Attached my hacked and broken version and the recordings it gives us.

Shadowlands_beta_hackjob27072020.zip

commented

After last nights updates we are at:

Message: ..\AddOns\Grail\Grail.lua line 1870:
   Usage: local isCampaignQuest = C_CampaignInfo.IsCampaignQuest(questID)
Message: ..\AddOns\Grail\Grail.lua line 9663:
   table index is nil
commented

I have updated in the latest push code for Shadowlands I hope. Can you tell me what is failing when you use the latest? Thanks.

commented
Message: ..\AddOns\Grail\Grail.lua line 1881:
   Usage: local isCampaignQuest = C_CampaignInfo.IsCampaignQuest(questID)

On the quest window sometimes i see a questid and sometimes i don't. Both times the questid is not recorded yet. Is this a wholly issue?

commented

Are you saying you sometimes see a message that basically says:

Grail: QuestId mismatch XXX accepted but log has YYY

I am guessing the IsCampaignQuest() is failing because it is being passed a nil value (which might appear as that XXX in the message).

Can you add a line of code at line 1853 that says:

			if self.GDE.debug then print("Grail QUEST_ACCEPTED: index:",questIndex,"event theQuestId:",theQuestId,"questId:",questId,"quest title:",questTitle) end

Hopefully this will give you a line of text for every quest you accept (assuming you have debug on). What I am looking for is whether "event theQuestId" actually has a value, and whether you get the "questId" and "quest title" with proper values as that would be using the new API to get quest information.

If you are seeing that "even theQuestId" is coming back as nil then you can change the line that says:

						isCampaign = C_CampaignInfo.IsCampaignQuest(theQuestId)

can be changed to:

						isCampaign = C_CampaignInfo.IsCampaignQuest(questId)

Hopefully this will get you past this issue. I really wish I had beta access to be able to better get this working.

commented

Something about a mismatch happened in early stages of me messing with the code. I think it was about GetQuestsCompleted in the end.

So what i wondered about with the questid is:
WoWScrnShot_073020_173248
Sometimes that id isn't shown and sometimes you only get an unknown. Not sure if Grail&wholly are to blame or IDTip.

Your debug line results in:
WoWScrnShot_073020_173325

Changing line 1882 gives


Message: ..\AddOns\Grail\Grail.lua line 1882:
   Usage: local isCampaignQuest = C_CampaignInfo.IsCampaignQuest(questID
commented

Ahh, that means the QUEST_ACCEPTED event seems to have changed, and no longer returns the index of the quest, but rather the questId. It means that Grail is not going to work properly noting quests that you accept until I can find a workaround.

commented

OK, I have made a change and pushed it. Can you test to see if this behaves better?

commented

grafik

commented

Got one more

Message: ..\AddOns\Grail\Grail.lua line 7353:
   attempt to call upvalue 'GetQuestGreenRange' (a nil value)
Debug:
   [string "@Grail\Grail.lua"]:7353: IsLowLevel()
   [string "@Grail\Grail.lua"]:10514: StatusCode()
   [string "@Grail\Grail.lua"]:7878: _MarkQuestComplete()
   [string "@Grail\Grail.lua"]:9350: _QuestCompleteProcess()
   [string "@Grail\Grail.lua"]:2138: ?()
   [string "@Grail\Grail.lua"]:10730: _Tooltip_OnEvent()
   [string "@Grail\Grail.lua"]:11316:
      Grail\Grail.lua:11316
commented

This should now be handled in commit b8a0084

commented

Blizzard deleted progress with this weekly reset so here is what i gathered so far to get us a start for the new leveling phase again.
Grail_PTR_beta_9.0_pre_wipe_4.8.2020.zip

commented

Sometimes quests are linked into story lines
https://shadowlands.wowhead.com/storyline/through-the-shattered-sky-1108
Is that something that is available from the api and could be used to group quests in Wholly/Grail?

commented

It is not something that is available to the API. However, during gameplay I manually take note of these things. I then add entries into Grail-Achievements.lua that look something like:
G[51712]={512496} -- Cycle of Hatred (Stormsong and Dance) G[51825]={512473} -- Enemies Within (A Sound Plan) -- Alliance G[51967]={512510} -- Nazmir Foothold (Ready for War) -- Alliance
where the item(s) for each are achievement IDs (added to 500000, so the first there would really be achievement ID 12496). So in Wholly if you look at an achievement it should list all the quests associated with it (starting with the one listed in this file, but then getting all the ones in the prerequisite chain).

commented

In case you didn't know, Blizz has opened Beta up to everyone.

https://shadowlands.wowhead.com/bluetracker?topic=172634&region=eu

I have seen a US page although can't find it right now.

commented

Yes, I have been on beta since last week, updating things periodically.

commented

Grail_PTR_beta_9.0_post_wipe_15_8_2020.zip

This is how far i've come today and supplements the open pull request.
Looks like both of us are in Maldraxxus right now

commented

Wouldn't 97a2824 break the ability to find quests that complete each other without being in the log?
https://shadowlands.wowhead.com/spell=338946/world-quests completes 57559 but never gets logged even though i always run /grail cb after a turn in.

commented

Grail_Beta_9.0.1_23_08_2020_1.zip
More Data with LVL 60 realm chars and the covenants

commented

Maybe we also need this:

C_PlayerChoice.SendPlayerChoiceResponse(responseID)
Replaces SendQuestChoiceResponse.

commented

Line8624 In Grail.lua needs to be
currentPhase = C_Garrison.GetGarrisonInfo(Enum.GarrisonType.Type_6_0)
otherwise we get an error in Draenor.

Also expansions now scale differently . Spires of Arak has lvl 40 enemies for a lvl 60 character. So almost all quests are officially "too high".

commented

Grail_beta_9.0_18.08.2020.zip
Fresh Data including rares and treasures in Spires of Arak

commented

New update to go along with the Pull Request
Grail_SL_Beta_9.0.2_13.09.2020.zip

commented

Quite a few quests now are accepted on loot like
https://shadowlands.wowhead.com/quest=62187/satchel-of-culexwood
You can get position and object with GetLootSlotInfo(1) when looting the item that immediately starts the quest.
Maybe some improvement to the recording layer would help here.

On related notes, quite a few "treasures" in the Ardenweald immediately complete the quest and reward an item, no lootwindow pops up. Not sure if we can also record this somehow

An example is quest 61072 which is immediately completed when interacting with
Aerto (171156) 1565:55.97,21.04 and looting the pet.

commented

The Shards for https://shadowlands.wowhead.com/achievement=14339/shard-labor complete the quest after channeling a spell, no loot window, no object to grab.

Updated grail log with Revendreth (up to a broken quest):
Grail_SL_Beta_9.0.2_19.09.2020.zip

commented

@smaitch have you parsed all data uploaded here and the notes we made so we can close this meta-issue now?

commented

I suggest to look at the following additions to mark calling quests:

C_CovenantCallings.AreCallingsUnlocked()
C_CovenantCallings.RequestCallings()
C_QuestLog.IsQuestCalling(questID)
Event-CovenantCallings.CovenantCallingsUpdated

commented

Grail_SL_beta_9.0.2_01.10.2020_pre2wipe.zip

Blizzard decided to wipe all characters with this weeks reset. PullRequest and Data are from before that maintenance downtime

commented
commented

As a side comment I have just added support for "/grail treasures" which toggles the old LOOT_CLOSED ability to record information when looting treasures.

commented

final Data upload and then i think we can close this out as Shadowlands is live now:

Grail_retai_and_SLBeta_final_23.11.2020.zip