- summary: Which NPCs have quests for the character, map by map. It drives the quest markers over NPCs and on the world map; nothing is sent back.
- area: Game.Npc
Which NPCs have quests for the character, map by map. It drives the quest markers over NPCs and on the world map; nothing is sent back.
Kind event · Area Game.Npc
WHAT TO DO WHEN YOU RECEIVE IT
1. Replace every quest marker you hold, on the current map and on the world map,
with what this message says. Anything it does not list has no marker.
2. SEND NOTHING BACK. No handler of this message builds a request, and a static walk
through the notifications it raises reaches none.
3. To act on a marked NPC you still use the ordinary NPC actions
(NpcGenericActionRequest); this message only tells you which NPCs are worth
talking to, and for which quests.
The quest markers the client shows: over the NPCs of the current map, and on the
world map for every map listed. One entry per map, each listing that map's NPCs and,
for each NPC, the quests it can give (NpcWithQuest.quests_to_start) and the quests
it can take back (NpcWithQuest.quests_to_validate).
TREAT IT AS A REPLACEMENT. On arrival the client first removes every quest marker from every entity on the current map, then applies this message, and it rebuilds its world-map markers from this message alone. An NPC or a map the message leaves out has no marker afterwards.
ONLY THE CURRENT MAP'S ENTRY TOUCHES VISIBLE NPCS. The client compares each
MapNpcQuest.map_id with the map the character is on and marks NPCs from that entry
only. Every other entry is used for the world map, where a map gets a marker at its
world coordinates when one of its NPCs has a quest to start that the client's quest
table knows. Quests to validate never reach the world map.
A QUEST TO HAND IN WINS. When the client picks the marker for an NPC it looks at
NpcWithQuest.quests_to_validate before NpcWithQuest.quests_to_start.
ONE DECLARED LIST IS REAL. Several builds declare a second list of the same entry type
beside NpcsMapQuestStatusUpdateEvent.map_information, and some add a string, an
int32 or a decoy message; the client reads only the one list.
When you may send it
- Requires
context_readyinferred
Related messages
- Reply not yet recovered: no request asks for it - the NPC area declares none - so the server pushes it. When it does (world entry, map changes, quest changes) is not established by any signature here.
Fields
| # | Field | Type | Meaning | You set it |
|---|---|---|---|---|
| 1 | map_information | repeated MapNpcQuest | One entry per map that has NPCs with quests for the character. A list of MapNpcQuest. Some builds declare a second list of the same type beside it; the client never reads that one and it stays unnamed. | never |