S>C 0x28 D2GS_UPDATEQUESTSINFOS

Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Diablo II In-Game Messages (D2GS)
Message Id:0x28
Message Name:D2GS_UPDATEQUESTSINFOS
Direction:Server to Client
Options: In Research Draft
Used By:Diablo II, Diablo II Lord of Destruction
Message Format:
(does not include protocol header)
 (UINT8)     UpdateType
(UINT32)     Unit Id
 (UINT8)     Timer
(UINT16)[48] Array of quest state flags

Remarks

Update type:

Id Description
1 for a NPC
6 global

Unit id:
Id of the NPC or 0.

Timer:
Always 0.

Quests are state-machine, with up to 16 states whose with up-to 16 binary states. States are identified by an ID that takes value in [0,15].

Quest states flag - indexes:

Id Quest
0 Spoke to Warriv
1 Den of Evil
2 Sisters' Burial Grounds
4 The Search for Cain
5 Forgotten Tower
3 Tools of the Trade
6 Sisters to the Slaughter
7 Able to go to Act II
8 Spoke to Jerhyn
9 Radament's Lair
10 The Horadric Staff
11 The Tainted Sun
12 The Arcane Sanctuary
13 The Summoner
14 The Seven Tombs
15 Able to go to Act III
16 Spoke to Hratli
20 The Golden Bird
19 Blade of the Old Religion
18 Khalim's Will
17 Lam Esen's Tome
21 The Blackened Temple
22 The Guardian
23 Able to go to Act IV
24 Spoke to Tyrael
25 The Fallen Angel
27 Hell's Forge
26 Terror's End
28 Able to go to Act V
32 Spoke to Cain
35 Siege on Haggorath
36 Rescue on Mount Arreat
37 Prison of Ice
38 Betrayal of Haggorath
39 Rite of Passage
40 Eve of Destruction
41 Secret Cow Level

Quest states flag - value:

Each bit represents 1 of the 16 possible states:

  • State 0: 1st bit (use 00000000 00000001 or 0x0001 filter)
  • State 1: 2nd bit (use 00000000 00000010 or 0x0002 filter)
  • ...
  • State 15: 16st bit (use 10000000 00000000 or 0x8000 filter)

IMPORTANT: indexes & states are the same as with the D2BS API function me.getQuest(questId, state).

States 0, 1, 13, 14 and 15 have the same meaning for all quests:

  • 0: quest completed (both requirements & thanks by NPC & reward used)
  • 1: quest requirements completed, must go town validate quest by NPC(s) or use the reward
  • 12: box in quest menu is greyed. Just requires that at least one member of the party has reached state 0 ?
  • 13: quest requirements cleared for/by the party in this game
  • 14: Another party completed the requirements in this game. if not 13, I cannot complete this quest in this game. If 13 (ex: Forgotten tower completed by a teamate), ignore
  • 15: I completed the quest requirements in a previous game & there was a reward & reward had not been used in the same game but later or not yet.

State 2, 3, 4, 5, 6, 7, 8 , 9, 10, 11 and 12 have different meaning for each quest.

| Edited: Ricola3D

Comments

Ricola3D

This packet is received:

  • On game join (with Kolbot, between "Heartbeat loaded" & "Starting default.dbj"), probably as an response to sent packet 0x67 D2GS_GAMECREATE or 0x78 0x68 D2GS_GAMELOGON.
  • On response to sent packet 0x40 D2GS_REQUESTQUESTDATA
  • When interacting with a NPC
dzik

Quest id 41 is Respec from Akara