Thread Tools Display Modes
06-13-09, 11:43 AM   #1
jaliborc
A Chromatic Dragonspawn
 
jaliborc's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2007
Posts: 196
Quest API Suggestions

This are some quest API suggestions I have, which were based in the currently avaiable gossip and achievements API functions:
  • GetSelectedQuestLink() - returns quest link for the currently selected quest in the gossip or quest log
  • GetAvaiableQuestLink(i) - returns the quest link for the given gossip avaiable quest
  • GetActiveQuestLink(i) - returns the quest link for the given gossip active quest
  • GetQuestInfo(id) - returns quest information (name, level, summary, description) for the given quest id (saw this somewhere, sounds like a good idea)
  • GetNumQuestRequirements(id) - returns number of quest requirements for the given quest id
  • GetQuestRequirement(id, index) - returns quest requirement description for the given qiest id and requirement index (from 1 to GetNumQuestRequirements)
  • QueryQuestsCompleted() - implemented by blizzard in patch 3.3

Last edited by jaliborc : 10-16-09 at 09:36 AM.
  Reply With Quote
06-13-09, 01:11 PM   #2
Syzgyn
An Aku'mai Servant
 
Syzgyn's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2006
Posts: 37
I think most of us would be happy with just IsQuestCompleted(id).
  Reply With Quote
06-13-09, 01:39 PM   #3
Selite
A Fallenroot Satyr
AddOn Author - Click to view addons
Join Date: Aug 2008
Posts: 20
Yeah, a IsQuestCompleted(id) would be fantastic. *Looks at reams of paper with lists of quests on them* Although not strictly necessary.
  Reply With Quote
06-13-09, 02:56 PM   #4
jaliborc
A Chromatic Dragonspawn
 
jaliborc's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2007
Posts: 196
Originally Posted by Syzgyn View Post
I think most of us would be happy with just IsQuestCompleted(id).
I'm developing an addon which wouldn't require an huge database if blizzard provided GetAvaiableQuestLink. Some may find IsQuestCompleted more usefull, some will find GetQuestInfo, others GetQuestRequirements. In fact, I never felt necessity for a IsQuestCompleted function, but that's just me.
This is why I suggested all of them. We should not say to Blizzard "we would be happy just if you had x", we should say "we have the following ideas, can you implement them?".

P.S: Added IsQuestCompleted to the list

Last edited by jaliborc : 06-14-09 at 09:38 AM.
  Reply With Quote
06-14-09, 04:04 AM   #5
orionshock
A Wyrmkin Dreamwalker
 
orionshock's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 50
To add my 2c in.

[true|false on Completion]= GetQuestStatus(id)
GetHistoricQuestLog()

The various query functions prolly will never be implemented due to server load. However All that we really need to know can be sumed up in these 2 api functions that work similar to the guild roster. Where one calls GetHistoricQuestLog() and it fires an event for when the client has all of the quest that are completed. Anything that isn't completed is either available or not applicable (faction/race specific ones). That's about all I foresee blizzard giving us.

Tho I'd have to agree with the Gossip API request, those would be nice.
__________________
"I was there in the beginning... and things were very different back then" --An Echo from a time before.
  Reply With Quote
06-14-09, 06:36 AM   #6
Recluse
A Cliff Giant
 
Recluse's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 70
Well, you do have the one I am most interested in already: IsQuestCompleted(id). If I had that function available, I would be tremendously happy.
__________________
We'd be together, but only diamonds last forever...
  Reply With Quote
06-14-09, 09:38 AM   #7
jaliborc
A Chromatic Dragonspawn
 
jaliborc's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2007
Posts: 196
Originally Posted by orionshock View Post
The various query functions prolly will never be implemented due to server load.
I don't understand nothing about server querying, so this may seem stupid, but I though that the client already queried the server for completed quests, to know if the quest givers can offer us such quests.
As a second thought, the server already has to provide a lot of information about completed achievements, would this not cause also an overload?

EDIT: But I think that the event is also a good idea (added it to the list). And the gossip functions wouldn't cause any overload, am I right?

Last edited by jaliborc : 06-14-09 at 09:45 AM.
  Reply With Quote
06-15-09, 12:33 PM   #8
Nafe
A Deviate Faerie Dragon
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 17
Originally Posted by jaliborc View Post
I don't understand nothing about server querying, so this may seem stupid, but I though that the client already queried the server for completed quests, to know if the quest givers can offer us such quests.
More likely is that the server only sends the client information about nearby quests when necessary (and applicable).

This makes a LOT more sense when you also factor in pre-reqs, level ranges, class-only quests, etc.
Just have the server do the calculation (since it has all the data) and return what the client needs to know, rather than send all the data to the client and have it do the calculations.

Originally Posted by jaliborc View Post
EDIT: But I think that the event is also a good idea (added it to the list). And the gossip functions wouldn't cause any overload, am I right?
I wouldn't consider this to be much overload. In addition to simply passing the gossip text and type (note how it's !/? mark?), the server also sends the quest id, and that's enough to generate a link from.

Last edited by Nafe : 06-15-09 at 12:38 PM.
  Reply With Quote
06-18-09, 11:50 AM   #9
jaliborc
A Chromatic Dragonspawn
 
jaliborc's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2007
Posts: 196
Originally Posted by Nafe View Post
More likely is that the server only sends the client information about nearby quests when necessary
That makes sense... so give us an event, Blizzard!
  Reply With Quote
06-22-09, 12:41 AM   #10
Bluspacecow
Giver of walls of text :)
 
Bluspacecow's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2006
Posts: 770
Originally Posted by jaliborc View Post
I don't understand nothing about server querying, so this may seem stupid, but I though that the client already queried the server for completed quests, to know if the quest givers can offer us such quests.
It really depends on what sort of data is gotten from the server , how big it is and how often it's queried.

With Millions of players I think you can understand that even the smallest amount of data transferred can quickly add up to a lot of data to be transferred.

You'd want it designed in such a way as it doesn't bring a server to it's knees when the entire wow population of a server all logon and click their "check quests complete" button. Even worse if they decide to do it every 5-10 minutes or so.

Maybe a system where you have to request a token from the server before running the query. And the query just sends up a list of quest ids and gets an array of boolen values back. The token you get from the server could be pretty much a "yes you can ask me now" or a "no i'm busy" sort of thing.
__________________
tuba_man on Apple test labs : "I imagine a brushed-aluminum room with a floor made of keyboards, each one plugged into a different test box somewhere. Someone is tasked with tossing a box full of cats (all wearing turtlenecks) into this room. If none of the systems catch fire within 30 minutes, testing is complete. Someone else must remove the cats. All have iPods." (http://community.livejournal.com/tec...t/2018070.html)
  Reply With Quote
06-22-09, 06:38 AM   #11
jaliborc
A Chromatic Dragonspawn
 
jaliborc's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2007
Posts: 196
Originally Posted by honem View Post
It really depends on what sort of data is gotten from the server , how big it is and how often it's queried.

With Millions of players I think you can understand that even the smallest amount of data transferred can quickly add up to a lot of data to be transferred.

You'd want it designed in such a way as it doesn't bring a server to it's knees when the entire wow population of a server all logon and click their "check quests complete" button. Even worse if they decide to do it every 5-10 minutes or so.

Maybe a system where you have to request a token from the server before running the query. And the query just sends up a list of quest ids and gets an array of boolen values back. The token you get from the server could be pretty much a "yes you can ask me now" or a "no i'm busy" sort of thing.
"That makes sense... so give us an event, Blizzard!"
  Reply With Quote
07-08-09, 11:34 PM   #12
orionshock
A Wyrmkin Dreamwalker
 
orionshock's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 50
To kinda bump this again.

imo it would be more like you request all the data for your toon from the server. the client then keeps track of that request / server keeps track of that request. Then it only gives you information current from last server reset / restart, and only let's you quiry it once. from there the client caches all that information on a per account / per toon bassis and lets the client interact with it as needs be.

so you'd login, and request the historical data. if it's not available, the client downloads it from the server, when it's done then we throw an event. If it's already got the cache sense last reset it imidately throws an event.

that could lessen the load by only allowing the client to cache upto the last reset and make it a persistant cache between sessions like the item cache.
__________________
"I was there in the beginning... and things were very different back then" --An Echo from a time before.
  Reply With Quote
10-14-09, 10:50 AM   #13
front243
Premium Member
Premium Member
Join Date: Jul 2008
Posts: 29
One of your wishes granted in latest PTR patch:

You can now query for a list of completed quests with "QueryQuestsCompleted()" then wait for the "QUEST_QUERY_COMPLETE" event, and call "GetQuestsCompleted(<luatable>)".
  Reply With Quote
10-14-09, 12:50 PM   #14
jaliborc
A Chromatic Dragonspawn
 
jaliborc's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2007
Posts: 196
Originally Posted by front243 View Post
One of your wishes granted in latest PTR patch:
Hip, hip, hurray!
Anyway, where did you find that information?

EDIT: Found it at http://forums.worldofwarcraft.com/th...37376853&sid=1

Last edited by jaliborc : 10-14-09 at 12:57 PM.
  Reply With Quote
10-14-09, 03:03 PM   #15
front243
Premium Member
Premium Member
Join Date: Jul 2008
Posts: 29
Originally Posted by jaliborc View Post
Hip, hip, hurray!
Anyway, where did you find that information?

EDIT: Found it at http://forums.worldofwarcraft.com/th...37376853&sid=1
I saw it at wow.com where they posted the full patch notes. I suppose they are also at mmo-champion, etc. But you found it too
  Reply With Quote
10-19-09, 03:48 PM   #16
CalciumIRL
A Deviate Faerie Dragon
AddOn Compiler - Click to view compilations
Join Date: Oct 2008
Posts: 15
Anyone got an idea of an AddOn to help with the Loremaster achievement then? It would be quite a challenge but now we are given the resources, has anyone got an idea or are willing to attempt this AddOn?
  Reply With Quote
10-19-09, 04:28 PM   #17
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Mod
Featured
Join Date: Oct 2006
Posts: 10,860
http://www.wowinterface.com/download...tedQuests.html
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

  Reply With Quote
10-21-09, 01:27 AM   #18
front243
Premium Member
Premium Member
Join Date: Jul 2008
Posts: 29
I saw a post in the Carbonite forums that the carbonite devs wants to do something similar with its database.
  Reply With Quote
10-21-09, 01:44 AM   #19
wurmfood
A Flamescale Wyrmkin
AddOn Author - Click to view addons
Join Date: Apr 2009
Posts: 122
The API is very easy to use, though the table returned on the PTR is a little strange and has to be compensated for (which is easy). I would be surprised if most of the quest addons didn't incorporate it. The hardest part of getting it to work with EveryQuest was understanding the import function and overriding it without making CompeltedQuests an ACE3 addon.
  Reply With Quote
08-17-10, 12:31 PM   #20
xelepart
A Deviate Faerie Dragon
AddOn Author - Click to view addons
Join Date: Mar 2005
Posts: 18
Has anyone suggested (and has Blizzard responded) to an idea for "GetAvailableQuests()" -- nearly the opposite of get completed quests, but this would only return a list of quests which the quest givers would give you right now. No description of what prereqs you're missing or where to get them or anything, just a list of ids that are quests you could pick up, if you knew where to get 'em. This seems to go along nicely with the GetCompletedQuests() function, in my mind, and would allow quest-assist mods some very nice (and much needed, in my opinion) cleanup...
  Reply With Quote

WoWInterface » Developer Discussions » Wish List » Quest API Suggestions

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