Thread Tools Display Modes
08/24/17, 06:19 PM   #1
Enodoc
AddOn Author - Click to view addons
Join Date: Aug 2014
Posts: 52
[open] More quest info for more quests

We already have GetCompletedQuestInfo(questId) and GetCompletedQuestLocationInfo(questId). Is there a reason this is only available for completed quests? All quests have an (invariable) unique Id, and their name, questType, zoneName, objectiveName, zoneIndex and poiIndex do not change on completion.

Can these functions be changed to GetQuestInfo(questId) and GetQuestLocationInfo(questId), which would return the results for any questId, complete or otherwise? An additional return from this would logically be boolean isCompleted, or alternatively number questState, which would take values 0, 1 or 2 depending on whether the quest is not started, active, or complete.

I would also like to request two additional returns from GetCompletedQuestInfo (or GetQuestInfo if it can be implemented), namely repeatType, taking from the global QuestRepeatableType (self-explanatory), and questDifficulty, taking from the global DifficultyCon, where the quest's internal difficulty (which determines the XP multiplier, as explained by Jess Folsom) is exposed:
Originally Posted by ZOS_JessicaFolsom
We add experience multipliers to quests, usually depending on the time taken and relative difficulty. Those experience multipliers look like this:
  • Very Easy = .1 (this would be CON_TRIVIAL)
  • Easy = .75 (this would be CON_EASY)
  • Standard = 1 (this would be CON_APPROPRIATE)
  • Hard = 1.5 (this would be CON_DIFFICULT)
  • Very Hard = 2.25 (this would be CON_IMPOSSIBLE)
Repeatability and Difficulty are clearly defined internally per-quest, so hopefully can easily be exposed to the API.

Thanks!
  Reply With Quote
08/25/17, 03:12 AM   #2
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
I do agree that for now, in order to get all quests ID & names of the game, we need to use the lang files from an extraction of the whole game.
  Reply With Quote
08/25/17, 03:07 PM   #3
Enodoc
AddOn Author - Click to view addons
Join Date: Aug 2014
Posts: 52
Originally Posted by Ayantir View Post
I do agree that for now, in order to get all quests ID & names of the game, we need to use the lang files from an extraction of the whole game.
Indeed, and that can only link IDs to names, not types and zones as well.
  Reply With Quote
10/22/17, 05:34 AM   #4
manavortex
 
manavortex's Avatar
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 138
On DailyAutoShare, I've had some headache with quests and quest names. I agree that it would be awesome, and much easier, to just deal with quest IDs instead of having to localise all the quest names.

My use case:
DAS holds a list of dailies in a zone. That list is right now hardcoded via internal quest name codes that get resolved via localisation files.
It would make my life far easier if I could simply match on quest IDs instead.

Functions I'd like for that:
Lua Code:
  1. -- returns unique quest ID from a journal quest index
  2. GetJournalQuestId(journalQuestId)
  3.  
  4. -- returns unique quest ID from quest name (part)
  5. GetQuestId(questName) or even GetQuestId(questNamePart)
  6.  
  7. -- returns the quest name from a quest ID, defaults to client language
  8. GetQuestName(questId, language)

I would also love it if the quest IDs would be part of the EVENT_QUEST_... anything, which right now just features the journalIndex.

As far as
Lua Code:
  1. param1, ..., param999 = GetQuestInfo(questId)
is concerned, that's probably easier internally than more specific API calls that return just one or two parameters? Whatever's easier on the API, I'd hate to run into any run-time performance issues.

Last edited by manavortex : 10/22/17 at 06:33 AM.
  Reply With Quote
10/23/17, 07:56 AM   #5
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
An id based API for quests should be possible in addition to the existing API. Steps and conditions would probably be harder to reference this way.
  Reply With Quote
10/23/17, 07:59 AM   #6
manavortex
 
manavortex's Avatar
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 138
Awesome! Looking forward to it.
  Reply With Quote
10/28/17, 07:45 AM   #7
Enodoc
AddOn Author - Click to view addons
Join Date: Aug 2014
Posts: 52
Originally Posted by ZOS_ChipHilseberg View Post
An id based API for quests should be possible in addition to the existing API. Steps and conditions would probably be harder to reference this way.
That's great, thanks! Steps and conditions aren't as important for what I was looking for anyway; it's name, type, zone, objective, completion state, repeatability, and difficulty that I'm mostly interested in. This way, we should be able to get both a list of completed quests, and a list of not completed quests, for each zone and guild.
  Reply With Quote
11/05/17, 10:13 AM   #8
Kyoma
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 125
I would also like to get another parameter to GetCompletedQuestInfo which returns if it has been completed today (if it was a daily).
  Reply With Quote
02/09/18, 02:20 PM   #9
fritzOSU03
 
fritzOSU03's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2016
Posts: 19
I think this thread is overdue for a bump. Unless this has happened and I missed it, it would be quite helpful.
  Reply With Quote
04/19/18, 08:36 AM   #10
Enodoc
AddOn Author - Click to view addons
Join Date: Aug 2014
Posts: 52
Originally Posted by fritzOSU03 View Post
I think this thread is overdue for a bump. Unless this has happened and I missed it, it would be quite helpful.
Nothing's happened yet that I've noticed. Currently waiting for the API notes for Summerset (don't think they're out yet?); hopefully there's something new in there.
  Reply With Quote
04/19/18, 02:11 PM   #11
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,912
Check the ESOUIDocumentation 18_2.txt file in this thread, maybe some functions or events got chnaged or got added parameters?
http://www.esoui.com/forums/showthread.php?t=7728
  Reply With Quote
04/19/18, 05:37 PM   #12
calia1120
 
calia1120's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 62
There's several functions already on live that could be used:
Code:
GetJournalQuest****
GetJournalQuestLocationInfo
GetJournalQuestStepInfo
QUEST_STEP_TYPE_
QUEST_REPEAT_DAILY
QUEST_REPEAT_NOT_REPEATABLE
QUEST_REPEAT_REPEATABLE
And a handful of others.
  Reply With Quote
04/20/18, 07:46 AM   #13
Enodoc
AddOn Author - Click to view addons
Join Date: Aug 2014
Posts: 52
Originally Posted by Baertram View Post
Check the ESOUIDocumentation 18_2.txt file in this thread, maybe some functions or events got chnaged or got added parameters?
http://www.esoui.com/forums/showthread.php?t=7728
Thanks for the link! Nothing new that I can see though unfortunately.


Originally Posted by calia1120 View Post
There's several functions already on live that could be used:
Code:
GetJournalQuest****
GetJournalQuestLocationInfo
GetJournalQuestStepInfo
QUEST_STEP_TYPE_
QUEST_REPEAT_DAILY
QUEST_REPEAT_NOT_REPEATABLE
QUEST_REPEAT_REPEATABLE
And a handful of others.
Anything with JournalQuest in the function only works for active quests.
  Reply With Quote
04/20/18, 08:41 AM   #14
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
We added:

DoesItemLinkFulfillJournalQuestCondition(itemLink, questIndex, stepIndex, conditionIndex)

We changed:

GetJournalQuestConditionInfo now also returns the condition type.
  Reply With Quote
04/20/18, 09:39 PM   #15
Dolgubon
 
Dolgubon's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2016
Posts: 408
Originally Posted by ZOS_ChipHilseberg View Post
We added:

DoesItemLinkFulfillJournalQuestCondition(itemLink, questIndex, stepIndex, conditionIndex)
.
Woot! That is awesome! I just need to rewrite this and that and... *Looks at jewelry writs* ... Oh fun...

But seriously this is great. It'll let me do validation on writ items, and make sure that the item will actually fulfill the writ. Moreover, it'll let me do a brute force check for the correct item when the normal stuff fails. That will prevent bugs which occur when there are translation errors, which will decrease maintenance required for each patch.
  Reply With Quote
04/21/18, 04:56 AM   #16
manavortex
 
manavortex's Avatar
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 138
That's awesome already, thank you Chip!

Any chance that we can get
Lua Code:
  1. GetQuestName(questId)
?
  Reply With Quote
04/21/18, 05:18 PM   #17
Enodoc
AddOn Author - Click to view addons
Join Date: Aug 2014
Posts: 52
Originally Posted by ZOS_ChipHilseberg View Post
We added:
DoesItemLinkFulfillJournalQuestCondition(itemLink, questIndex, stepIndex, conditionIndex)

We changed:
GetJournalQuestConditionInfo now also returns the condition type.
Oh nice! I notice those are just for active quests; any progress on the proposed GetQuestInfo(questId) and GetQuestLocationInfo(questId) for any quest (complete or otherwise)?
  Reply With Quote
04/23/18, 10:00 AM   #18
eventHandler
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 12
Originally Posted by ZOS_ChipHilseberg View Post
We added:

DoesItemLinkFulfillJournalQuestCondition(itemLink, questIndex, stepIndex, conditionIndex)

We changed:

GetJournalQuestConditionInfo now also returns the condition type.
Is there a way to get the decisions a player made for a completed quest?

That information has to be stored in some form, so it would be great if we could do something like:
Code:
local decisions = GetCompletedQuestDecisions(questId)

if not decisions then return end

local choices = { }
local i = 0
for key, val in pairs(decisions) do
    choices[i].text = key -- string of the wording for the choice
    choices[i].chosen = val -- boolean true/false this choice was chosen
    i += 1
end
Where GetCompletedQuestDecisions(questId) returns an array of the possible decisions or nil if N/A.

Even getting the information in a raw form would be useful, like return values of {0,1,2,3} where those are the choice numbers associated with that quest, and the number returned is the one chosen. We would need to do work on our end to translate it to data mined quest information, which is a lot of work, but doable.

The details really depend on how the data is saved to the character, but we know it has to be saved in some form, or the game couldn't react to past quest decisions.
  Reply With Quote
04/22/19, 08:39 AM   #19
Enodoc
AddOn Author - Click to view addons
Join Date: Aug 2014
Posts: 52
Originally Posted by ZOS_ChipHilseberg
An id based API for quests should be possible in addition to the existing API.
It's been about a year since the last update, so I'd like to check whether there has been any further developments on an id-based API for all quests (not just completed quests or active quests, which already exist with GetCompletedQuestInfo(questId) and GetJournalQuestInfo(questIndex)).

Summary of the request:
  • GetQuestInfo(questId) - string name, number QuestType questType, boolean isCompleted, number QuestRepeatableType repeatType, number DifficultyCon questDifficulty
  • GetQuestLocationInfo(questId) - string zoneName, string objectiveName, number zoneIndex, number poiIndex
  Reply With Quote
06/02/21, 12:28 AM   #20
Calamath
AddOn Author - Click to view addons
Join Date: Aug 2019
Posts: 36
In update 30, we got the following new APIs

* GetQuestName(*integer* _questId_)
** _Returns:_ *string* _name_

* GetQuestZoneId(*integer* _questId_)
** _Returns:_ *integer* _zoneId_

I have confirmed that GetQuestName returns a localized string for all quest names in the game, and an empty string for any questId that does not exist in the master table.

And, in the quest master table there are entries for quests that can no longer actually be seen in-game (e.g. questId = 31), and for these GetQuestZoneId seems to return 0.
  Reply With Quote

ESOUI » Developer Discussions » Wish List » [open] More quest info for more quests

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off