Script to ID Objectives / NPCs / Items without Locations / Containers / Dropped By IDs in the DB?
Gogo1951 opened this issue ยท 5 comments
That script for Objectives / NPCs / etc. without locations... it needs to be run against the Wrath Database.
I'm not exactly sure what you're suggesting here, but I can assure you that nothing under the hood is that simple. If these fixes were simple and broad, we would have done them already.
Aero / Muehe used to have a script for this... it's really not complex to identify items that don't have a "dropped by / sold by / contained in" and then just make sure all NPCs / Objects have a location.
@BreakBB can you clue @Yttrium-tYcLief in?
Aero / Muehe used to have a script for this... it's really not complex to identify items that don't have a "dropped by / sold by / contained in" and then just make sure all NPCs / Objects have a location.
The problem here is that that's not actually what's breaking in the vast majority of these quests. Starting with WotLK, Blizzard started using much more complex scripts under the hood, so for instance instead of a quest just having three kill objectives for specific NPC IDs, the quest literally just points at a dummy NPC like this one. We know that NPC exists, but knowing it exists doesn't tell us anything about what that script is doing under the hood, and there's no way for the game client to obtain that information. It's a process of trial and error to determine which mobs are eligible for the quest.
Another example would be Brains! Brains! Brains! - the database is correct here in knowing that we need 12x Deranged Explorer Brain. In Wowhead, we can see the link has been determined that while no mobs drop this item, it's created by a spell called Use Grick's Bonesaw. However... that spell calls a script, and we have no idea what's going on with that script. We don't know the eligible targets, only the server does. By trial and error (and reading the quest dialog) we know that there's only one eligible target, Deranged Explorer. At that point, we can hook that NPC up to the quest entry for Questie, and let it handle the rest; but there was literally no programmatic way we could have come to that conclusion. And it's a similar story for nearly every quest in the game.
Even Wowhead's database, despite their vast user collection capability with the Wowhead Looter addon, is broadly wrong in the exact same ways Questie's DB is.
Some NPCs are not listed as dropping certain items, some items are dropped by dummy NPCs that do not exist (and are instead dropped by scripts), and some are connected to NPCs but just literally the wrong NPCs, with no rhyme or reason. A script could be run to find all of the instances where data is missing, but with such a poorly maintained database (the wotlk private servers were nowhere near as well-maintained as the vanilla or even tbc ones), the number of false positives would actually make things harder, not easier, to fix, and it wouldn't tackle all of the issues where things are connected, but just incorrectly.
To quote @BreakBB:
Mate, nobody needs a wall of text. Just eats time that could be used for productive things.
I understand that there are a few "complex" quests, but you'd spot so many bugs with even the simple "is it the location missing" script. Pop up the old script we had, even if it catches 50% of the broken quests that'd be huge.
Also... validation on why I wanted to partner with WoWHead. Cmangoes is garbage data, always has been. Always will be. We never should have used it in the first place. But that's not something we can fix in a ticket.