cmangos / wotlk-db

A content database for mangos-wotlk, and World of Warcraft Client Patch 3.3.5
GNU General Public License v3.0
112 stars 99 forks source link

Starting zones - Auto complete Quests - Not Working #1322

Closed al3xc1985 closed 2 months ago

al3xc1985 commented 2 months ago

For example Draenei Starting zones:

https://www.wowhead.com/wotlk/quest=9371/botanist-taerix https://www.wowhead.com/wotlk/quest=9279/you-survived

If u want to complete the quest u can't

al3xc1985 commented 2 months ago

I tested also the human zones for reference and same problem.

insunaa commented 2 months ago

What does "not working" mean

al3xc1985 commented 2 months ago

If u press the complete button on the quest nothing happends

How to reproduce:

  1. Createa a Draenei
  2. Take the first quest " You survived"
  3. Try to complete the quest at the npc
  4. Impossible

Maybe the autocomplete quests like talk to x npc, should have a different flag.. Dunno just my 2 cents

insunaa commented 2 months ago
UPDATE `quest_template` SET `QuestFlags`=`QuestFlags`|0x00010000 WHERE `entry`=9279;

Fixes the issue for this quest, but that would require further investigation. It's possible that "auto-accept" quests are implicitly also Auto-Complete, but I don't know, I don't have the sniff data for this

Edit: Checking the DB with

SELECT entry,Title,QuestFlags FROM quest_template WHERE QuestFlags&0x00080000;

shows that many of the quests that have Auto-Accept flags should not imply Auto-Complete

al3xc1985 commented 2 months ago

We need a summon to make @Grz3s

Grz3s commented 2 months ago

your fix removes yellow complete question mark "?" from quest ending npc.

insunaa commented 2 months ago

Without the fix he doesn't have it either, but the quest is not completeable

Grz3s commented 2 months ago

Yes - Your core update made it like that https://github.com/cmangos/mangos-wotlk/pull/523/files

heres without it: image

insunaa commented 2 months ago

Is AddQuest() the wrong function for this task?

Grz3s commented 2 months ago

im not sain that smth is wrong.. Simply smth isnt right or still missing and need to be fixed.

Grz3s commented 2 months ago

3.3.5a data for simmilar quest (1st human quest - same issue)

ServerToClient: SMSG_QUEST_GIVER_QUEST_DETAILS (0x0188) Length: 693 ConnIdx: 0 Time: 09/19/2010 22:48:39.000 Number: 146894
QuestGiverGUID: Full: 0xF130000337000B0D Type: Creature Entry: 823 Low: 2829
InformUnit: 0x0
Quest ID: 783 (783)
Title: A Threat Within
Details: I hope you strapped your belt on tight, young $c, because there is work to do here in Northshire.$B$BAnd I don't mean farming.$B$BThe Stormwind guards are hard pressed to keep the peace here, with so many of us in distant lands and so many threats pressing close.  And so we're enlisting the aid of anyone willing to defend their home.  And their alliance.$B$BIf you're here to answer the call, then speak with my superior, Marshal McBride.  He's inside the abbey behind me.
Objectives: Speak with Marshal McBride.
Auto Accept: true
Quest Flags: 524296 (Sharable, AutoAccept)
Suggested Players: 0
Unknown byte: 0
Choice Item Count: 0
Reward Item Count: 0
Money: 0
XP: 40
Honor Points: 0
Honor Multiplier: 0
Spell Id: 0 (0)
Spell Cast Id: 0 (0)
Title Id: 0
Bonus Talents: 0
Arena Points: 0
Unk UInt32: 1

no other flag involved

insunaa commented 2 months ago

I could successfully hand the quest in during testing when I did .quest complete <id> so the quest wasn't counted as completed from the start, but I don't know from what data I should conclude that a specific auto-accepted quest also needs to be auto-completed, because having checked the DB for quests with the Auto-Accept flag I found many that do have actual objectives such as looting specific items; so I can't just say any quest with Auto-Accept should also be automatically completed

kelbren commented 2 months ago

I don't know if this is helpful, but the original m_QuestFlags was getting the value as a uint16 and the change to uint32 seems to have caused the issue. If I limit it to the lower 15 bits.. the quest works again. the wiki indicates that the field is only the first 15 bits as flag values. Perhaps there is some other logic somewhere that is using values out of this range? I dunno.. for now I am limiting the m_QuestFlags value to 16 bits and it seems to work properly.

insunaa commented 2 months ago

Not helpful, because limiting the questflags to 16 bits is just incorrect. I changed it to 32 bit for a reason, that is because WotLK uses 32 bit for quest flags, otherwise these 4 flags are cut off:

    QUEST_FLAGS_AUTOCOMPLETE   = 0x00010000,                // auto complete
    QUEST_FLAGS_DISPLAY_IN_TRACKER = 0x00020000,            // has something to do with ReqItemId and SrcItemId
    QUEST_FLAGS_OBJ_TEXT       = 0x00040000,                // use Objective text as Complete text
    QUEST_FLAGS_AUTO_ACCEPT    = 0x00080000,                // quests in starting areas
kelbren commented 2 months ago

I should have looked in QuestDef.h, my bad. I assumed the wiki was up to date. ok, so there is something else afoot.