ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   General Authoring Discussion (https://www.esoui.com/forums/forumdisplay.php?f=174)
-   -   Linking questId and questName please? (https://www.esoui.com/forums/showthread.php?t=8000)

Drakanwulf 08/18/18 05:14 PM

Linking questId and questName please?
 
Can anyone tell me how this List of gameQuests table was generated? "http://wiki.esoui.com/Quests"

There has to be a quest name/quest id cross-reference table inside ESO somewhere but I cannot find it and I have been searching for it all day. The wiki table example is exactly what I need; however, it was created for APIVersion 100021 and I need one for Release 4.1, APIVersion 100024. I have searched and searched but I cannot find the program that generated the example table for 100021 and I don't have the time to run all the quests to get the quest name to id cross-references for every new zone, sub-zone, quest, and DLC released since Wrothgar.

Yes, I am trying to update Captain Blagbird's QuestMap addon program. I have gotten the program working for Wolfhunter, updated its Libraries to their current releases and updated the ## APIVersion: to 100024. However, none of that displays the quest pins for any of the Summerset quests because the reference information is not there in the addon's Data subvolume reference files.

I would appreciate any help, information, direction, or swift kicks that could possibly aid me in my "quest" to update the QuestMap reference file information.

Thanks everyone... and why do I suddenly feel like Don Quixote today??? :D

Kyoma 08/18/18 07:02 PM

Hmmm, I know of one way by iterating the completed quests. Of course this means you'll need a character that has completed them all, or combine it from multiple characters. Tho I don't think this is how it was collected back in the day.

Code:

GetNextCompletedQuestId(number:nilable lastQuestId)
        Returns: number:nilable nextQuestId

GetCompletedQuestInfo(number questId)
        Returns: string name, number QuestType questType

GetCompletedQuestLocationInfo(number questId)
        Returns: string zoneName, string objectiveName, number zoneIndex, number poiIndex


Drakanwulf 08/19/18 12:54 PM

Thanks for the info, Kyoma. Since all I am trying to do is to associate a quest Id with its description, as in this example,

Code:

local gameQuests = {
        [30] = "Dark Brotherhood Assassination",
        [31] = "TM01_OUTOFDATE",
        [35] = "Example Strings",
        [41] = "Thieving from Thieves",
        [45] = "Aldcroft Manor",
        ...
}

I am thinking that iterating through a for loop, using the iterator value for a pseudo-completed quest Id should get the job done... maybe. If I don't get the quest name back, the Id is not valid... What do you think?

Kyoma 08/19/18 01:46 PM

If you mean just iterating from 0 to x and check for valid quests it wouldn't really work as you expect. It still only gives you info on quests you've completed on that character, not if the questId is valid in general. You might as well loop with GetNextCompletedQuestId then.

Rhynchelma 08/19/18 02:22 PM

The latest coercion of Lorebooks has a more complete list in its Quesrdata.lua file.

Maybe ask the author where/how he got his list.

Drakanwulf 08/19/18 04:09 PM

Thanks, Rhynchelma. I will take a look at the Lorebook table(s) and if they're close enough to what I need, ask him if I can steal them for my own use... :D

I might look at some other addons too that I know use quest names and ids to get their jobs done to see if their xref tables can be adapted for my use.

Kyoma 08/19/18 04:29 PM

Quote:

Originally Posted by Rhynchelma (Post 35689)
The latest coercion of Lorebooks has a more complete list in its Quesrdata.lua file.

Maybe ask the author where/how he got his list.

That would be me :p And I got it with a loop of GetNextCompletedQuestId() on a character that had completed all of the the new Summerset quest. Just something like this:
Code:

    local questId = GetNextCompletedQuestId()
    while questId ~= nil do
        local questName, questType, <the rest> = GetCompletedQuestInfo(questId)
        --do stuff
        questId = GetNextCompletedQuestId(questId)
    end


Rhynchelma 08/19/18 04:43 PM

Thanks Kyoma.

It's a real pity that Zenimax don't publish a list, but apparently they don't wish to.

Drakanwulf 08/19/18 04:49 PM

Thanks, Kyoma. Hmmm... I have a magblade character, Drakanwulf Nb M, who has run Wrothgar, but not all of Summerset. I can try your for loop code on him to see what he finds.

May I steal your quest data, please, or if you find that offensive, may I borrow your quest data and forget to return it, please sir? I would like to use it to run a DIFF to cross check the returns from my magblade character against your en questnames file.

In return, for your assistance, you may "borrow" my quest Ids file after I sort it and update its table, if it would do you any good. I notice that there are similarities between your "additionnalInformation" table and my quest Ids table. Where you use bookIds, I use the quest name to return all the completed quest Ids for that quest.

Or anything else I code that you might find interesting... :)

Drakanwulf 08/19/18 05:02 PM

Word of warning though... :)

Because of my C++ OOP background, I tend to embed table maintenance functions inside the affected table; the intent being to keep people from clobbering the table data with their own code. It's a bad habit that I picked up while designing online applications for banks, NASA, Wall Street, etc. If you want to keep your data pure, make sure you write the access methods to add, delete, retrieve and update the table data... then make sure you embed access to those functions inside the table itself. Helps with todays security requirements too... :)


All times are GMT -6. The time now is 12:52 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI