smaitch / Grail

World of Warcraft addon to provide a database of quest information.
31 stars 20 forks source link

Some factions updates #83

Closed NERON closed 4 years ago

NERON commented 4 years ago

I know, we can detect faction through NPC...But for now, we can fix quests in current way. For checking inconsistencies, i wrote mini-script that shows quests with wrong factions, and after manual check for correctness

smaitch commented 4 years ago

The problem is this will only be a temporary fix. When I do the automatic quest updating it will remove the faction markers. Therefore, it is better if we put the effort into updating the NPCs instead.

NERON commented 4 years ago

@smaitch How this automatic update work, whats the data source? If the only solution is moving faction info to NPC, we have a problem.. For example, we have this NPC in Desolace(https://www.wowhead.com/npc=36034/karnum-marshweaver), he is neutral for all factions, but he has quests only available fo horde(https://www.wowhead.com/quest=14338/ghost-walker-post, https://www.wowhead.com/quest=14337/shadowprey-village) and for alliance (https://www.wowhead.com/quest=14372/thargads-camp), and some neutral quests... Faction for this quests are missing in Grail, and you say it will be overwritten when you will do automatic update, how we can fix this?

smaitch commented 4 years ago

The automatic update is done by processing the quests from Blizzard's cache. This is basically the best source of truth regarding the quests I can get and easier to handle when there are changes in the system (like a new release). If the automatic update sees a faction marker on the quest (FA or FH) and it is not in the cache, it will remove it from the Grail file. However, because there are some situations where the cache seems to not match reality (meaning there is yet something unknown about how Blizzard decides a quest is available to someone), two faction markers (fA and fH) are used to not have the automatic process overwrite a "forced" faction. Basically it is assumed that lack of faction on the quest will be aided by faction on the NPC thus allowing Grail to behave as expected. Therefore, (1) we should mark NPCs with the proper faction (2) if there are quests that are faction specific that (a) have NPCs who are neutral and (b) do not have prerequisites that limit the faction, we can mark them with the fA or fH faction codes as appropriate. We will let the FA and FH codes be generated by the automatic process.

NERON commented 4 years ago

@smaitch If I'm understanding right, for permanent fixing we should set NPC faction, and if NPC is neutral - we should set fA or fH (registry sensitive)?

smaitch commented 4 years ago

Yes, set NPC faction with FA/FH or if neutral and you need to force quest faction use fA/fH in the quest where the code is case sensitive.

NERON commented 4 years ago

Thanks for your explanation, I will close current pull request for redo it in right way...