Events
253 archives dans cette catégorie
-
The server telling the client which chat channels to switch on and which to switch off. Kind event · Area Game.Chat The server-side counterpart of SubscribeMultipleChannelRequest: two lists applied to your channel mask. ORDER MATTERS AND IT IS NOT OBVIOUS. The client ORs active_channels in FIRST, then AND-NOTs disabled_channels out. So A CHANNEL PRESENT IN BOTH LISTS ENDS UP OFF. Apply them in that order or you will disagree with the client about what you are subscribed to. This is availabil
- summary: The server telling the client which chat channels to switch on and which to switch off.
- area: Game.Chat
- 72 vues
-
The community channel the server has actually placed this character on. Kind event · Area Game.Social The server's acknowledgement of SetCommunityChannelRequest, carrying the community it accepted. TAKE THIS VALUE, NOT THE ONE YOU SENT. The two can differ, and everything about which community channel you can read depends on this one. The ChannelUpdateEvent volley that actually re-states your subscriptions follows immediately after this message. When you may send it Requires character_loa
- summary: The community channel the server has actually placed this character on.
- area: Game.Social
- 63 vues
-
One element has left the current context. This is the despawn message. Kind event · Area Game.Context THE DESPAWN. Process this or your world model only ever grows. element_id is the same id space as ActorPositionInformation.actor_id and InteractiveElement.element_id - a player, a monster, an NPC or an interactive object. Remove whatever you are holding under that id. A script that skips this will keep attacking monsters that are dead, walking to resources someone else took, and following pl
- summary: One element has left the current context. This is the despawn message.
- area: Game.Context
- 73 vues
-
Announces that a dialog has closed, and which kind it was. Broadcast, not an acknowledgement. Kind event · Area Game.Dialog IT IS A BROADCAST, NOT AN ACKNOWLEDGEMENT. It says "a dialog of this kind has closed" - and the server sends it whether YOU closed the dialog or something else did: you walked away, the NPC ended it, it timed out. Do not treat it as the receipt for your DialogLeaveRequest. READ THE TYPE AND DECIDE IF IT IS YOURS. One member, a DialogType. The real client has six independ
- summary: Announces that a dialog has closed, and which kind it was. Broadcast, not an acknowledgement.
- area: Game.Dialog
- 66 vues
-
The complete list of emotes you know. A replacement, not an addition. Kind event · Area Game.Emote THE WHOLE LIST, EVERY TIME. This is not "you learned an emote" - it is the complete set of emotes you know, sent as a replacement. Overwrite your state with it rather than merging into it. WHEN IT ARRIVES Once, unprompted, when your character loads. There is no request for it. Its siblings handle the deltas afterwards: EmoteAddedEvent adds a single emote and EmoteRemovedEvent removes one, so af
- summary: The complete list of emotes you know. A replacement, not an addition.
- area: Game.Emote
- 65 vues
-
The ceiling on how much money you may move in one exchange. Sent once, kept for the session. Kind event · Area Game.Exchange A CEILING, NOT A BALANCE. It tells you the most money a single exchange may move. It says nothing about what you have. WHEN IT ARRIVES Once, early, unprompted. There is no request for it - the server volunteers it and the client stores it for the session. If you never see it, you have no limit information, not an unlimited one. WHAT TO DO WITH IT REMEMBER IT AND CHEC
- summary: The ceiling on how much money you may move in one exchange. Sent once, kept for the session.
- area: Game.Exchange
- 67 vues
-
An integrity challenge: the server names a game file and asks the client to measure it. Kind event · Area Game.Client.Verification AN INTEGRITY CHECK. The server names a file and an algorithm; the client measures that file and answers with FileCheckRequest. What the client actually does, in order: it sanitises file_name with a regular expression, resolves it BENEATH THE APPLICATION DATA DIRECTORY, checks the file exists, reads its bytes, and then either reports the byte length as a decimal st
- summary: An integrity challenge: the server names a game file and asks the client to measure it.
- area: Game.Client.Verification
- 64 vues
-
Items the server hands the character as the result of an action - a reward, a gift, a craft outcome. Kind event · Area Game.Inventory Announces items the character has just been given, with a caption describing why. The client renders it as the "you received" panel. IT IS AN ANNOUNCEMENT, NOT AN INVENTORY UPDATE. The items listed here are minimal descriptions meant for display - see GameActionItemObject, whose quantity and template id are NOT recovered and must not be guessed at. Treat this m
- summary: Items the server hands the character as the result of an action - a reward, a gift, a craft outcome.
- area: Game.Inventory
- 68 vues
-
One or more actors have become visible on the current map. Kind event · Area Game.Roleplay The spawn message. Each entry is an ActorPositionInformation: who the actor is, where it stands, and what it looks like. IT IS ADDITIVE, NOT A SNAPSHOT. Unlike the map element events, this one adds to what you already know rather than replacing it - it is sent again whenever somebody walks into view. Add or update by ActorPositionInformation.actor_id and leave everything else alone. THE MATCHING REMOVA
- summary: One or more actors have become visible on the current map.
- area: Game.Roleplay
- 69 vues
-
Authentication against Ankama's web platform failed. The message carries no payload. Kind event · Area Game.Haapi THE FACT THAT IT ARRIVED IS THE WHOLE MESSAGE. It carries nothing: no code, no reason, no text. It is the failure counterpart of the shop-key family - the client logs it as an error during the API-key request - so it arrives on the path that would otherwise have produced BakApiKeyEvent or HaapiSessionEvent. TREAT IT AS A FAILURE OF THE WEB-PLATFORM INTEGRATIONS, NOT OF YOUR GAME
- summary: Authentication against Ankama's web platform failed. The message carries no payload.
- area: Game.Haapi
- 64 vues
-
The session identifier for Ankama's account and authentication web platform. Kind event · Area Game.Haapi Pushed during session bring-up, on the same service that handles the shop API key. It is never requested and cannot be replied to. The client's handler does exactly one thing: it forwards the string into its API-key service. NOTHING IN GAMEPLAY IS GATED ON IT, and a script that ignores it entirely loses nothing on the game protocol. The identifier is opaque - it identifies your session o
- summary: The session identifier for Ankama's account and authentication web platform.
- area: Game.Haapi
- 61 vues
-
The rooms of the player's haven bag and the theme on each, sent either as a full list or as an amendment. Kind event · Area Game.Haven.Bag The player's haven bag is a private instanced house whose rooms each carry a theme. This event tells you what those rooms are, and it arrives in two quite different forms distinguished by one field. READ action FIRST - IT CHANGES WHAT THE LIST MEANS action = 0 the list is the COMPLETE set of rooms; replace what you hold action = 1 the list is an AMEND
- summary: The rooms of the player's haven bag and the theme on each, sent either as a full list or as an amendment.
- area: Game.Haven.Bag
- 71 vues
-
One interactive element re-published because its state changed - harvested, unlocked, become usable. Kind event · Area Game.Interactive The delta counterpart of InteractiveMapUpdateEvent: the server re-sending ONE element because something about it changed. RE-READ BOTH SKILL LISTS AND REPLACE THE ELEMENT WHOLESALE. The change is usually a skill MOVING between the enabled and disabled lists - a resource harvested, a door unlocking - so a script that only looks at InteractiveElement.enabled_sk
- summary: One interactive element re-published because its state changed - harvested, unlocked, become usable.
- area: Game.Interactive
- 71 vues
-
Every interactive element on the map, sent when the character arrives. The snapshot a harvest plan is built from. Kind event · Area Game.Interactive The map's interactive snapshot. Build your model of what is harvestable here, then keep it current by applying InteractiveElementUpdatedEvent on top. IT IS A SNAPSHOT, NOT A DELTA - REPLACE THE MAP'S ELEMENTS, DO NOT MERGE. It arrives once per map arrival, so treat each arrival as a fresh world. Drop any element whose InteractiveElement.on_curre
- summary: Every interactive element on the map, sent when the character arrives. The snapshot a harvest plan is built from.
- area: Game.Interactive
- 76 vues
-
An entity has started using an interactive element: the element, the skill, how long it takes, and whether it can still move. Kind event · Area Game.Interactive Announces the BEGINNING of an interaction - chopping a tree, mining an ore, opening a door, taking a zaap - not its result. Nothing here says whether the harvest succeeded or what it yielded. IT IS BOTH AN ANSWER AND A BROADCAST. When the actor is you, it is the server accepting your InteractiveUseRequest (a refusal comes as Interacti
- summary: An entity has started using an interactive element: the element, the skill, how long it takes, and whether it can still move.
- area: Game.Interactive
- 78 vues
-
The character's entire inventory and kamas balance, pushed by the server as a full snapshot. Kind event · Area Game.Inventory The whole inventory in one message: every item the character holds, plus the kamas balance. IT IS A SNAPSHOT, NOT A DELTA - REPLACE YOUR MODEL, DO NOT MERGE. An item that is absent from this message is an item the character no longer has. A script that merges keeps phantom stacks forever, most visibly after a trade, a bank withdrawal, or any server-side resynchronisati
- summary: The character's entire inventory and kamas balance, pushed by the server as a full snapshot.
- area: Game.Inventory
- 83 vues
-
How full your inventory is, and how full it can get. Both numbers, every time. Kind event · Area Game.Inventory BOTH NUMBERS, EVERY TIME. The server does not send "you gained 12 weight"; it sends the current weight and the ceiling together, so you can overwrite your state rather than accumulate into it. If you are tracking pods, this message IS your state - do not try to keep a running total from item pickups and drops. WHEN IT ARRIVES Whenever what you are carrying changes, and once when th
- summary: How full your inventory is, and how full it can get. Both numbers, every time.
- area: Game.Inventory
- 62 vues
-
How many kamas you are carrying. Kind event · Area Game.Inventory Your carried kamas. The inventory snapshot in InventoryContentEvent brings the first value; this message keeps it current afterwards. TREAT IT AS THE AMOUNT, NOT A CHANGE. The client hands the number unchanged to every open storage window as the kamas figure to display. Overwrite what you track rather than adding to it. ONLY THE WALLET YOU CARRY. The kamas held in the bank arrive in StorageKamasUpdateEvent; both messages move
- summary: How many kamas you are carrying.
- area: Game.Inventory
- 66 vues
-
Your character started regenerating life: one point every `regen_rate` tenths of a second. Kind event · Area Game.Character Your character's life now comes back on its own, one point every regen_rate tenths of a second, until UpdateLifePointsEvent stops it. TO TRACK LIFE THE WAY THE CLIENT DOES 1. When this arrives, note the time T0 and your current life L0. 2. Your life is then L0 + floor(milliseconds since T0 / (regen_rate x 100)), never above your maximum life. The client recompute
- summary: Your character started regenerating life: one point every `regen_rate` tenths of a second.
- area: Game.Character
- 71 vues
-
An actor on the current map has turned to face a new direction. Kind event · Area Game.Gamemap Broadcast whenever any actor in your current roleplay context changes orientation - including your own character, echoing back your MapChangeOrientationRequest. IT IS A FIRE-AND-FORGET STATE PATCH. No timestamp, no throttling, no correlation. Apply it straight to your entity table: set that actor's facing and move on. There is nothing to acknowledge. Track other actors' facing if you care about lin
- summary: An actor on the current map has turned to face a new direction.
- area: Game.Gamemap
- 72 vues
-
Everything on the map the character just loaded: actors, interactive and stated elements, running fights and the map's complement. Kind event · Area Game.Gamemap The contents of the map the character is on: who stands on it, its interactive and stated elements, the fights running on it, and one complement saying what kind of place it is. IT ARRIVES AFTER EVERY MAP LOAD. The client asks for it with MapInformationRequest each time a map finishes loading - teleport, zaap, map change, fight exit
- summary: Everything on the map the character just loaded: actors, interactive and stated elements, running fights and the map's complement.
- area: Game.Gamemap
- 116 vues
-
The path an actor will actually walk, broadcast to everyone on the map. Kind event · Area Game.Gamemap The server granting a movement. THIS IS THE AUTHORITATIVE PATH - walk cells, not what you requested. It may be shorter. CHECK character_id AGAINST YOUR OWN BEFORE ACTING ON IT. The event is broadcast for every actor that moves on the map, so most of the ones you receive are other players and monsters. A script that treats every arrival as its own move will walk phantom paths. For an actor t
- summary: The path an actor will actually walk, broadcast to everyone on the map.
- area: Game.Gamemap
- 101 vues
-
The player's complete set of notification flags - the markers behind the interface's "new" badges. Kind event · Area Game.Notification The persisted markers behind the little "new" badges on menus, tabs and features. IT IS THE COMPLETE SET, NOT AN ADDITION - REPLACE, DO NOT MERGE. A flag missing from this message is a flag the player no longer has. There is a separate canonical sibling that REMOVES notifications and it carries an identical payload shape, so if you are matching messages by sha
- summary: The player's complete set of notification flags - the markers behind the interface's "new" badges.
- area: Game.Notification
- 62 vues
-
Your NPC action was refused. It carries no reason. Kind event · Area Game.Npc THE NEGATIVE ANSWER TO NpcGenericActionRequest, AND IT IS EMPTY. It tells you THAT the action was refused and never why. There is no code, no reason string and no echo of what you asked for - so if you have more than one NPC action outstanding you cannot tell which one this refers to. SEND THEM ONE AT A TIME and treat this as the answer to the outstanding request. WHY IT MATTERS THAT IT IS EMPTY The success path d
- summary: Your NPC action was refused. It carries no reason.
- area: Game.Npc
- 67 vues
-
The market average price of every tradeable item, as one list of item-and-price pairs. Kind event · Area Game.Exchange The answer to ObjectAveragePricesRequest: one entry per tradeable item, carrying the item's template gid and its average market price. It is what the client shows in item tooltips and in the auction house. IT ARRIVES AS AN EVENT, NOT A RESPONSE. There is no correlation id to match on - match it by arrival after your request. THE LIST IS HUGE. The observed reply carried 9711
- summary: The market average price of every tradeable item, as one list of item-and-price pairs.
- area: Game.Exchange
- 72 vues