Hmm, do we really have 8K quests that can't be started or finished (turned in)?

Update: The answer is NO. See new numbers from correct SQL [B]here[/B]

I ran these (Update: wrong) queries after running into a few quests that couldn’t be completed and was quite surprised:

-- Quests with no START SELECT COUNT(`id`) FROM `quest_template` WHERE `id` NOT IN (SELECT `id` FROM `gameobject_questrelation`) AND `id` NOT IN (SELECT `id` FROM `creature_questrelation`) AND `id` NOT IN (SELECT `entry` FROM `disables` WHERE `sourceType`=1); [/SQL]
Result: 8523

[SQL]
– Quests with no END (turn in)
SELECT COUNT(id) FROM quest_template WHERE
id NOT IN (SELECT id FROM gameobject_involvedrelation) AND
id NOT IN (SELECT id FROM creature_involvedrelation) AND
id NOT IN (SELECT entry FROM disables WHERE sourceType=1);
[/SQL]
Result: 8588

[SQL]
– Quests with no START and END
SELECT COUNT(id) FROM quest_template WHERE
id NOT IN (SELECT id FROM gameobject_questrelation) AND
id NOT IN (SELECT id FROM creature_questrelation) AND
id NOT IN (SELECT id FROM gameobject_involvedrelation) AND
id NOT IN (SELECT id FROM creature_involvedrelation) AND
id NOT IN (SELECT entry FROM disables WHERE sourceType=1);
[/SQL]
Result: 8465

I removed the COUNT() from the “quest end” and looked up a few of the results on Wowhead and they are valid quests. Some of them are starting-zone quests that I don’t recognize so I’m not sure if they’re actually WotLK quests or Cata but there are a few that I do remember from live.

Anyway, if we don’t have WDB data for these, can we use Wowhead? We could post this as a bug report and anyone who wants to fix a few can just post replies with their SQL.

Edit:

  • Clarify title

  • Updated SQL to account for quests in the disables table


SELECT COUNT(*) FROM item_template WHERE startquest > 0;

~ 360 quests from items that you didn’t count, but that still leaves a lot of missing quests. Something isn’t adding up.

BTW, you might want to start using [/URL][URL=“http://www.openwow.com/”]Private Server Database - Open WoW. Wowhead is getting increasingly unreliable for WotLK data.

Anyway, if we don’t have WDB data for these, can we use Wowhead? We could post this as a bug report and anyone who wants to fix a few can just post replies with their SQL.

Yes, wowhead, openwow or wowwiki are valid source of information for quest relations.

WDB doesn’t have anything related to quest relations and sniff doesn’t show them “directly”.

We need active DB developers with push access that now what they are doing.

There are 300 patch/fixes in the issue tracker (some related to q. relations) but no one to verify and push them (I can’t do everything.).

Edit: Actually sniffs/wdbs got NextQuestId for some quests but that doesn’t define who starts or ends the quests and we already have that info (nextquest).

Edit2: Could you remove the quests that are in the disables table from the count? (… and not in (select id from disables blabla)

Ummm, you are using AND, you should be using OR /emoticons/default_tongue.png

– Brian

Or makes it worse, You are pulling his leg, right?

No, I mean OR. You want to select the id of quests that are not in gameobject OR creature_questrelation. Of course they aren’t going to be in BOTH. Did you forget how AND works?

– Brian

Brian: since you didn’t answer on IRC, I’ll explain here:

You want quests that are not in creature_qr and not in gameobject_qr and that means that the quests can’t be ended anywhere.

Brian, I know you should know this…

The two tables: creature_involvedrelation, gameobject_involvedrelation determine who or what ends a quest.

If a quest is not in both tables (AND) then that means we have a quest that can never be finished.

If a quest is in one of the tables but not the other (OR) then that quest can be finished which we don’t care about.

The same goes for creature_questrelation, gameobject_questrelation for starting quests. The queries I posted show that we have quests in quest_template that can’t be started anywhere and some that can’t be finished anywhere.

Alright fine, I had a brain fart. But you are still forgetting a lot of things that can end quests: spell effect quest complete, SAI action, *_scripts tables, etc…etc…

There is no way that we have 8k+ quests that can not be started or finished. Granted there are a LOT of deprecated templates around, but not THAT many.

– Brian

Sure, see updated SQL in the OP

I figured there might be things I’d overlooked which is why I started the discussion rather than just blindly grabbing data from wowhead.

That said, I don’t remember any quest that didn’t require you to press “Complete Quest” on either an NPC or object. Those things you mentioned might mark the quest completed in your log but they aren’t turn-ins.

Ultimately you need an entry in the *_involvedrelation tables in order to hand in your quest. Maybe I should’ve used “can’t be turned in” instead of “finished”.

Curiously, I compared your results with YTDB, 8727, 8775, 8663 were my numbers, so it seems we’re around 8k missing quests /emoticons/default_tongue.png

select count (`id) from quest_template where Flags & 128; [/sql]

3962 quests are deprecated, so they can be ignored as well…

Also, you are forgetting areatrigger_involvedrealation /emoticons/default_smile.png

– Brian

A whole lot nonetheless.

If Wowhead/Openwow could be used, then, manually this would still be quite a pain, 4 thousand… is a large number

Perhaps a parser to do this automatically? https://github.com/Lordron/WoWHead-data-parser

This one obviously doesn’t have the support, but just a thought

It’s not that many quests missing. Most are deprecated even if it isn’t in the disables table or got deprecated flag.

Fix actual bugs (like that quest in sholozar).

If we had 8000 quests missing wouldn’t it be noticeable?

Quests that can’t be completed are actual bugs.

When you spend time gathering the required quest items only to go to the NPC to turn it in and there’s no “?” over their head it’s pretty frustrating. For someone like you or me it’s simple enough to just add the relevant record and reboot the server but still…

Besides, this is the perfect opportunity for someone who wants to help but might only have a minimal amount of knowledge to look up the quests on whatever site and then create the SQL for it. This would be a great beginner project.

I might get to write a parser once we get the correct sql requests to run to get quests that can’t be taken or given back to an npc / gob.

Those are what I posted in the OP. They deal strictly with quests that have no NPC or GO to turn them in when they’re complete. The other stuff being discussed deals with completing the quest but not actually turning it in.

This is an example of an areatrigger_involvedrelation:

[ul][li]“The Fargodeep Mine” (id 62) - Explore the Fargodeep Mine, then return to Marshal Dughan in Goldshire[/li]
When you get far enough into the mine, you will get a message on your screen “Explore the fargodeep Mine - Complete” ← that is the areatrigger

[/ul]

Now, if this had no creature_involvedrelation for Marshal Dughan, it would be included in the results from my SQL above. If it had no areatrigger_involvedrelation it would not because (again) I’m dealing solely with quests that can’t be handed in because of no NPC or GO.

Fine, I’ll start it tonight, going to theaters in an hour to see TDKR /emoticons/default_smile.png

Keep an eye out for deranged gunmen.

You are so going to hell for this.