- summary: The destinations a zaap, zaapi or prism offers you, sent when you use one. Pick one and send TeleportRequest.
- area: Game.Teleportation
The destinations a zaap, zaapi or prism offers you, sent when you use one. Pick one and send TeleportRequest.
Kind event · Area Game.Teleportation
The server's list of where the teleporter you just used can take you. It
arrives when you use a zaap, a zaapi (subway) or a prism with
InteractiveUseRequest, right after InteractiveUsedEvent accepts the
use. From then on you are IN THE TELEPORTER DIALOG until it closes.
WHAT TO DO WHEN YOU RECEIVE IT
1. NOTE THE LIST KIND. type says which picker the server opened - ZAAP,
SUBWAY or PRISM (see Teleporter). Keep it: it is the
source_type you send back in TeleportRequest.
2. READ THE DESTINATIONS. Each TeleportDestination gives a map_id,
its subarea_id, a cost in kamas, a level, its own type, and for
an anomaly the anomaly details.
3. FIND YOUR RESPAWN POINT. The destination whose map_id equals
spawn_map_id is the zaap you saved as respawn. The client marks it.
4. ACT, THEN LEAVE. Teleport with TeleportRequest, save the current
zaap as respawn with ZaapRespawnSaveRequest, or close with
DialogLeaveRequest.
WHAT THE OFFICIAL CLIENT DOES WITH IT
- It builds one entry per destination, in list order, and shows them in
the zaap window, titled by the list kind (ui.zaap.zaap / ui.zaap.zaapi /
ui.zaap.prism).
- It compares every destination's map_id with spawn_map_id and flags
the match as your respawn point. It also remembers spawn_map_id in the
zaap service, the same member ZaapRespawnUpdatedEvent later updates.
- For a SUBWAY list it also looks up the map hints of each destination,
to show the district names.
- For an ANOMALY destination it reads the anomaly details (bonus, time
left) and shows them in the entry's tooltip.
The list includes the teleporter you are standing at: in the capture below the first destination is your own map, with no cost.
LIVE CAPTURE (3.7.4.4): InteractiveUseRequest {element_id 538794,
skill_instance_uid 17447} on a zaap, then InteractiveUsedEvent (skill
114) and this event in the same millisecond: no type (ZAAP),
spawn_map_id 192416776, six destinations - two zaaps (one is the current
map, cost absent; the other costs 7 kamas) and four anomalies costing 1300
to 1850 kamas, each with a 120% bonus and 12 to 77 minutes left.
Builds pad this message with an unread second repeated TeleportDestination, a second int64, a string, a bool or a nested decoy; the client reads only the three members above.
When you may send it
- Requires
roleplay_contextinferred
State it changes
- Establishes
teleport_dialog_openinferred — the client opens its destination picker; choosing, saving and closing all happen while it is open
Related messages
- Arrives after
InteractiveUseRequest
Fields
| # | Field | Type | Meaning | You set it |
|---|---|---|---|---|
| 1 | spawn_map_id | int64 | The map of the zaap you saved as respawn point; the destination with this map_id is your respawn. Explicit presence: absent is not the same as zero. (map id) proto3 optional: may be absent. The same state ZaapRespawnUpdatedEvent.map_id updates. | never |
| 2 | type | Teleporter | Which teleporter you used: ZAAP, SUBWAY or PRISM. Echo it as source_type in TeleportRequest. Absent on the wire for ZAAP (value 0). Echoed as TeleportRequest.source_type; the client copies it into the picker and sends it back unchanged. | never |
| 4 | destinations | repeated TeleportDestination | Every place this teleporter can send you, one TeleportDestination each. Includes the teleporter you stand at (cost absent). | never |