Aller au contenu
Afficher dans l'application

Une meilleure façon de naviguer. En savoir plus.

Asterobot

Une application plein écran sur votre écran d'accueil avec notifications push, badges et plus encore.

Pour installer cette application sur iOS et iPadOS
  1. Appuyez sur Icône de partage dans Safari
  2. Faites défiler le menu et appuyez sur Ajouter à l'écran d'accueil.
  3. Appuyez sur Ajouter dans le coin supérieur droit.
Pour installer cette application sur Android
  1. Appuyez sur le menu à trois points (⋮) dans le coin supérieur droit du navigateur.
  2. Appuyez sur Ajouter à l'écran d'accueil ou Installer l'application.
  3. Confirmez en appuyant sur Installer.

Smooth

Administrateurs

Tout ce qui a été publié par Smooth

  1. Smooth a posté un record dans Types
    Where an entity stands and which way it faces, optionally naming who is carrying it. Kind structArea Game.CommonNamed by beta, gamemapping The positional half of ActorPositionInformation, and also sent on its own - as a bare list - to reposition entities already on the map. cell_id IS A SINGLE GRID INDEX, NOT A COORDINATE PAIR. Everything in the map protocol addresses cells this way. THREE OF THE FOUR MEMBERS HAVE EXPLICIT PRESENCE, SO ABSENT AND ZERO ARE DIFFERENT. Absent means unchanged; zero means cell 0, entity 0, or nobody. When this record arrives in a bare repositioning list, an absent member is the normal case, not an error. entity_id is what makes a bare disposition addressable at all - it is the only thing saying which entity the list entry is about. NOTHING ABOUT THE LAYOUT IS STABLE. Every member's field number moves across the dumped builds, and one build declares a SECOND field of the Direction enum beside the real one. Read by name. Not sent on its own — it travels inside ActorPositionInformation or as an element of a bare disposition list. proven Used by ActorPositionInformation Fields #FieldTypeMeaningYou set it 1entity_idint64Which entity this position describes. Explicit presence: absent is not the same as zero. (entity id) It is what identifies the entry when the record travels in a bare list.never 2directionDirectionThe entity's eight-way facing. A Direction value. One dumped build declares a second field of the same enum beside this one.never 3carrying_character_idint64The character carrying this entity, when one entity is being carried by another. Explicit presence: absent is not the same as zero. (actor id) Absent means nobody is carrying it.never 4cell_idint32The map cell the entity occupies. Explicit presence: absent is not the same as zero. (map cell id) A single grid index, not an x/y pair. Absent means unchanged.never Recovered with score 285, confidence 0.93, margin 285 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 4 of 4.
  2. Smooth a posté un record dans Events
    The complete list of emotes you know. A replacement, not an addition. Kind eventArea Game.EmoteNamed by beta, gamemapping 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: one message adds a single emote and another removes one, so after this arrives you maintain the set yourself. WHAT THE IDS ARE EMOTE IDS FROM THE GAME DATA, not indexes into this list. The client looks each one up by id in its emoticon data and drops any it cannot resolve, so an id you do not recognise is a data-version mismatch, not a protocol error - and the order they arrive in is not a display order. An id in this list is what you may send to play that emote. One that is not in it will be refused. READ IT AS A SET. Nothing in the protocol promises the order is stable or meaningful, and the client does not rely on it either. When you may send it Requires context_ready observed Related messages Unsolicited - nothing you send causes this the server sends it when the character loads; nothing requests it Fields #FieldTypeMeaningYou set it 3emotes_idrepeated int32Every emote you know, by id.never Recovered with score 195, confidence 0.93, margin 195 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 3.
  3. Smooth a posté un record dans Types
    The eight-way compass facing shared by the map, movement and fight message families. Kind enumArea Game.CommonNamed by beta Every roleplay and fight entity faces one of eight directions on the isometric grid. Facing decides which sprite and animation set is drawn, and it matters mechanically: backstab bonuses depend on the relative facing of attacker and target. The eight values run CLOCKWISE FROM EAST: 0 EAST 1 SOUTH_EAST 2 SOUTH 3 SOUTH_WEST 4 WEST 5 NORTH_WEST 6 NORTH 7 NORTH_EAST ON THE ISOMETRIC GRID THE EVEN VALUES ARE THE DIAGONAL SCREEN DIRECTIONS and are the ones ordinary walking between adjacent cells uses; the odd values are the orthogonal ones. This trips people up because the compass names suggest the opposite. The numbering is unchanged across every build in the dump set, and it was checked rather than assumed - an enum can be renumbered between builds while keeping its member set, and that exact trap has been hit before on this protocol. Not sent on its own — an enum is never sent on its own. proven Used by EntityDisposition MapChangeOrientationEvent MapChangeOrientationRequest Values ValueNumberMeaning DIRECTION_EAST0Facing east. A diagonal screen direction, used for ordinary walking. DIRECTION_SOUTH_EAST1Facing south-east. An orthogonal screen direction. DIRECTION_SOUTH2Facing south. A diagonal screen direction, used for ordinary walking. DIRECTION_SOUTH_WEST3Facing south-west. An orthogonal screen direction. DIRECTION_WEST4Facing west. A diagonal screen direction, used for ordinary walking. DIRECTION_NORTH_WEST5Facing north-west. An orthogonal screen direction. DIRECTION_NORTH6Facing north. A diagonal screen direction, used for ordinary walking. DIRECTION_NORTH_EAST7Facing north-east. An orthogonal screen direction. Recovered with score 160, confidence 0.89, margin 160 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 8 of 8.
  4. Smooth a posté un record dans Types
    Which kind of dialog a dialog-lifecycle message is talking about. Kind enumArea Game.CommonNamed by beta WHICH DIALOG. It is the only member of DialogLeaveEvent and the value you switch on to decide whether an announcement is about your dialog or someone else's. SWITCH ON THE NUMBER, NEVER ON POSITION, and ignore a value you do not recognise the way the client does - six services listen to the same event and each acts on its own handful of values, so "not mine" is the normal case, not an error. ALL SIXTEEN NAMES ARE ANKAMA'S, from the unobfuscated reference build, and the count has been sixteen in every build examined. What each NUMBER does is proven for a handful of them by client behaviour; the rest carry the reference name at the reference number and nothing more. The per-value notes say which is which - read them before treating a label as a fact about the current server. Not sent on its own — an enum is never sent on its own. inferred Used by DialogLeaveEvent Values ValueNumberMeaning DIALOG_BOOK0The proto3 zero value, named BOOK by the reference build. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_DIALOG1An NPC dialogue. Corroborated on 3.6.10.10: A service that also handles marriage and dungeon-assembly values tests this one. DIALOG_LOCKABLE2A code-locked container or door. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_PURCHASABLE3A purchase dialog. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_GUILD_INVITATION4A guild invitation. Corroborated on 3.6.10.10: A consumer switches from this number, and the three guild values are consecutive from it. DIALOG_GUILD_CREATE5Guild creation. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_GUILD_RENAME6Guild renaming. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_MARRIAGE7A marriage dialog. Corroborated on 3.6.10.10: Tested by the same service that tests the dialogue and dungeon-assembly values. DIALOG_DUNGEON_MEETING8The dungeon-assembly dialog. Corroborated on 3.6.10.10: Two services test this value; one of them exists only to run a small meeting feature and disables itself when it sees it. DIALOG_SPELL_FORGET9Spell forgetting. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_TELEPORTER10A teleporter, such as a zaap. Corroborated on 3.6.10.10: Tested by the service that reads the world's sub-area data - the data a teleporter destination list is built from. DIALOG_EXCHANGE11A trade or exchange window. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_ALLIANCE_INVITATION12An alliance invitation. Corroborated on 3.6.10.10: A consumer switches from this number, and the three alliance values are consecutive from it. DIALOG_ALLIANCE_CREATE13Alliance creation. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_ALLIANCE_RENAME14Alliance renaming. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. DIALOG_HAVENBAG_MEETING15A haven-bag meeting. The name is the reference build's; no dumped client distinguishes this value from its neighbours, so only its NUMBER is proven here. Recovered with score 230, confidence 0.83, margin 230 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 16 of 16.
  5. Smooth a posté un record dans Events
    Announces that a dialog has closed, and which kind it was. Broadcast, not an acknowledgement. Kind eventArea Game.DialogNamed by beta, gamemapping 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 independent services listening to this one event, and each does nothing unless the type is one of its own - the teleporter service ignores everything but the teleporter value, the meeting service ignores everything but its own. Copy that: match on the type, ignore the rest, and never assume the event that just arrived belongs to the dialog you were in. WHAT IT MEANS FOR YOUR STATE THE DIALOG IS ALREADY GONE. This is not permission to close, it is notice that it is closed. Anything you were going to send into that dialog is now too late, and the server will refuse it. ONE OF THE SERVICES SHUTS ITSELF DOWN when its type arrives, which is a good model: treat the matching type as "tear down whatever I was tracking for that dialog", not as "ask what happened". IT IS UNCORRELATED. Envelope uid -1, matched by type, with nothing tying it to the request that may or may not have caused it. THE SECOND DECLARED MEMBER IS PADDING. No dumped client has ever read it. When you may send it Requires context_ready observed Related messages Arrives after DialogLeaveRequest Fields #FieldTypeMeaningYou set it 1dialog_typeDialogTypeWhich kind of dialog closed.never Recovered with score 240, confidence 0.90, margin 240 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
  6. Smooth a posté un record dans Events
    One element has left the current context. This is the despawn message. Kind eventArea Game.ContextNamed by beta, gamemapping 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 players who left the map. It is the cheapest message in the protocol to handle and the most expensive one to ignore. When you may send it Requires context_ready inferred Related messages Unsolicited - nothing you send causes this the server announces departures as they happen Fields #FieldTypeMeaningYou set it 1element_idint64The context element that left: a player, monster, NPC or interactive object. (element id)never Recovered with score 235, confidence 0.93, margin 235 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
  7. Smooth a posté un record dans Events
    The community channel the server has actually placed this character on. Kind eventArea Game.SocialNamed by beta, gamemapping 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_loaded observed Related messages Arrives after SetCommunityChannelRequest Fields #FieldTypeMeaningYou set it 2communityint32The community the server has placed the character on. Range: -1 to 4 -1 unset, 0 French, 1 English/international, 2 Spanish, 3 Portuguese, 4 German.never Recovered with score 155, confidence 0.86, margin 155 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 2.
  8. Smooth a posté un record dans Types
    One set of packed RGB colours applied to a character. Kind structArea Game.CosmeticNamed by gamemapping A palette is a list of PACKED RGB INTEGERS - 8025436 is 0x7A75DC, so red is (v >> 16) & 0xFF, green (v >> 8) & 0xFF, blue v & 0xFF. A character uses six colours. A palette may carry fewer, or none: the client fills whatever is missing from the character's BREED DEFAULTS, looking the breed up in its game data. So an empty palette means "the breed's own colours", not "no colours", and you should apply the same fallback rather than rendering a gap. The order is positional - colour 1 through colour 6 - not a set. Not sent on its own — it is a record carried by other messages, never sent alone. proven Used by CharacterColors Fields #FieldTypeMeaningYou set it 1colorsrepeated int32The palette's colours, packed RGB, in slot order.never Recovered with score 150, confidence 0.84, margin 150 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
  9. Smooth a posté un record dans Types
    Which measurement a file check asks for: the file's byte length, or a checksum of its contents. Kind enumArea Game.Client.VerificationNamed by beta The algorithm selector shared by FileCheckEvent and FileCheckRequest. The two values are proven by what the client's own branches do: one reads the byte array's length and formats it as a decimal string, the other calls the checksum helper. Both results travel as a string. Not sent on its own — an enum is never sent on its own. inferred Used by FileCheckEvent FileCheckRequest Values ValueNumberMeaning LENGTH0Report the file's byte length, formatted as a decimal string. HASH_SUM1Report a checksum computed over the file's bytes. Recovered with score 100, confidence 0.99, margin 100 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 2.
  10. Smooth a posté un record dans Events
    The server telling the client which chat channels to switch on and which to switch off. Kind eventArea Game.ChatNamed by beta, gamemapping 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 availability, not preference: it says what the server permits, which is not necessarily what you asked for. When you may send it Requires character_loaded observed Related messages Unsolicited - nothing you send causes this the server states channel availability on its own schedule, not only in reply to a subscription Fields #FieldTypeMeaningYou set it 1disabled_channelsrepeated ChannelChannels to switch off. Element type Channel. Applied AFTER the active list, so a channel in both ends up off.never 2active_channelsrepeated ChannelChannels to switch on. Element type Channel. Applied first.never Recovered with score 175, confidence 0.89, margin 175 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 2.
  11. Smooth a posté un record dans Events
    Somebody said something on a chat channel, including your own lines echoed back. Kind eventArea Game.ChatNamed by beta, gamemapping Everything said on every channel you are subscribed to, including your own lines coming back after ChatChannelMessageRequest. TWO SENDER IDS, TWO DIFFERENT PURPOSES. sender_character_id is the CHARACTER speaking - use it to address them or open a menu on them. sender_account_id is the ACCOUNT behind that character - use it to ignore a PERSON, who can otherwise come back on another character. They are both 64-bit and they are not interchangeable. date IS AN ISO-8601 STRING WITH OFFSET, NOT A UNIX TIME. It looks like "2026-08-26T21:51:44+02:00". Parse it; do not cast it. content is the words only. Anything shift-clicked into the line - items, monster groups - rides in metadata as structured links, and the client merges the two before display. A script reading only content sees the sentence with the links missing. origin_server_id HAS EXPLICIT PRESENCE and is only meaningful when present, which happens on the cross-server community channels. Absent means "this server". channel has no explicit presence: absent reads as the zero value, Channel.GLOBAL. When you may send it Requires character_loaded observed Related messages Arrives after ChatChannelMessageRequest Fields #FieldTypeMeaningYou set it 1contentstringThe spoken text, without the rich-link content. The client merges this with the metadata links before displaying the line.never 2sender_prefixstringDecoration shown in front of the speaker's name. Empty for an ordinary player.never 3origin_server_idint32Which server the speaker is on. Explicit presence: absent is not the same as zero. (server id) Only meaningful when present - it appears on the cross-server community channels.never 4sender_account_idint64The speaking character's account id - use it to ignore a person rather than a character. (account id) A person can return on another character; the account id follows them.never 5sender_namestringThe speaker's character name, as displayed.never 6sender_character_idint64The speaking character's id - use it to address or open a menu on the speaker. (character id)never 7from_adminboolWhether this is a staff line. The client passes it to its mute predicate, which is what stops staff lines being muted.never 8datestringWhen the line was said. Observed: 2026-08-26T21:51:44+02:00 An ISO-8601 string with offset. NOT a unix timestamp.never 9channelChannelWhich channel the line was said on. A Channel value. No explicit presence: absent reads as Channel.GLOBAL.never 10metadataMetadataRich content attached to the line. See Metadata. Present but empty for an ordinary line.never Recovered with score 340, confidence 0.89, margin 340 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 10 of 10.
  12. Smooth a posté un record dans Types
    A character's availability state, plus the player's own optional away message. Kind structArea Game.CommonNamed by beta The shared availability carrier, used everywhere a character's presence is shown - PlayerStatusUpdateRequest, friend, guild and party listings. message IS PLAYER-CONTROLLED TEXT. TREAT IT AS UNTRUSTED. It is whatever another person typed into their status, it is usually absent, and it reaches your script exactly as they wrote it. Never interpolate it into anything that executes, and escape it before display. status is the machine-readable half; see Status. Not sent on its own — it is embedded in a dozen messages and never sent on its own. inferred Used by PlayerStatusUpdateRequest PlayerStatusUpdatedEvent Fields #FieldTypeMeaningYou set it 2statusStatusThe character's availability state. A Status value.required when you set your own status 3messagestringThe player's own away or custom text. Explicit presence: absent is not the same as zero. Usually absent. UNTRUSTED - it is free text another player wrote. Escape it before display.optional Recovered with score 160, confidence 0.92, margin 160 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 3.
  13. Smooth a posté un record dans Events
    Whether the selection was accepted, and which character was entered. Kind eventArea Game.Character.ManagementNamed by beta, gamemapping Answers CharacterSelectionRequest with one of two outcomes, carried in a oneof: success with the selected character, or an error with no payload. CHECK WHICH BRANCH IS SET BEFORE READING EITHER. The failure branch is empty, so a client that reads the success branch unconditionally sees a zeroed character rather than an error. When you may send it Requires authenticated observed State it changes Establishes character_selected observed — a successful selection is what makes later character and world messages legal Related messages Arrives after CharacterSelectionRequest Fields #FieldTypeMeaningYou set it 1successSuccessSet when the selection was accepted; carries the character now being played.never 3errorErrorSet when the selection was rejected. Carries no detail - the branch itself is the message.never Recovered with score 95, confidence 0.96, margin 95 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 3.
  14. Smooth a posté un record dans Types
    The whole appearance of a character - name, class, gender, colours, head - used both to create one and to remodel one. Kind structArea Game.Character.ManagementNamed by beta THIS IS THE PAYLOAD OF CHARACTER CREATION, despite the name. The same type carries a character you are creating, a character you are remodelling, and the alternative branch of Character for someone mid-remodelling. Its name comes from the last of those; its most common use is the first. FILLING IT IN NAME, CLASS, GENDER, COLOURS, HEAD. That is the whole payload for a creation. SEND SIX COLOURS. The real client builds the list to six entries before it will construct the request, and -1 in a slot means "leave this one at the class default". Sending fewer is not something the client ever does. THE CLASS IS AN ID, NOT AN INDEX. The client stores it in its own class enum and writes that value straight out, so it is the class id you would recognise, not a position in a menu. THE HEAD IS YOUR CHOICE; THE OTHER NUMBER IS NOT. Beside the head there is a second small integer the client does not ask the player about - it looks it up from the class and gender and sends it along. It is recovered as a member but deliberately left unnamed here, because no reference build ever named it. If you are replaying a capture, send back what the client sent; if you are building a request from scratch, that value is derived, not chosen. WHAT YOU LEAVE EMPTY THE REMODELLING BLOCK IS NOT YOURS TO FILL. One member describes what an existing character may and must change. The client never populates it on the creation path - the server sends it when it offers a remodelling - so leave it absent. READ AND WRITE BY ROLE, NOT BY NUMBER. Every member of this message has moved field number between builds, and the padding around them changes too: three same-typed integers side by side is normal here. Not sent on its own — it is a payload type, never sent on its own. inferred Used by Character CharacterCreationRequest Fields #FieldTypeMeaningYou set it 1breed_idint32The class. The client sends its own breed enum here, so the value is a class id, not an index.required 2cosmetic_idint32The head you picked. It comes straight from the player's choice, not from the class.required 3genderGenderMale or female. The client holds it as a bool and converts it to this two-valued enum on the way out.required 4colorsrepeated int32The colour choices, in slot order. -1 means "leave this slot at the class default". The client refuses to build the request until the list holds six entries, so send six.required 6namestringThe character's name.required 7character_to_remodel_informationtype not documented yetWhich parts of an existing character a remodelling is allowed, and required, to change. Absent when creating.never on the creation path Recovered with score 346, confidence 0.94, margin 346 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 6 of 7.
  15. Smooth a posté un record dans Events
    A server-generated character name proposal. Kind eventArea Game.CharacterNamed by beta, gamemapping The answer to CharacterNameSuggestionRequest: one proposed name, which the client offers as the player's next candidate. IT IS A PROPOSAL, NOT A RESERVATION. Nothing is held for you - the name can be taken between the suggestion and your creation request. When you may send it Requires authenticated observed Related messages Arrives after CharacterNameSuggestionRequest Fields #FieldTypeMeaningYou set it 1suggestionstringThe proposed character name.never Recovered with score 220, confidence 0.86, margin 220 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
  16. Smooth a posté un record dans Types
    A character's rendered appearance and breed, nested inside its basic information. Kind structArea Game.Character.ManagementNamed by beta The appearance layer of a Character. look is a full EntityLook - the same appearance record used everywhere else in the protocol, so whatever you already do with actor looks works here. breed_id is the class. It is the cheapest useful thing in this record: it tells you what the character IS without resolving any art. The record also carries strings and further branches that are not proven and are left with their obfuscated names rather than guessed at. Not sent on its own — it is only ever a branch of CharacterBasicInformation. inferred Used by CharacterBasicInformation Fields #FieldTypeMeaningYou set it 3lookEntityLookThe character's appearance. An EntityLook.never 6breed_idint32The character's class. (breed id)never 7base_informationCharacterBaseInformationThe base-information branch read by the client's character projection. See CharacterBaseInformation.never Recovered with score 115, confidence 0.96, margin 115 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 3 of 7.
  17. Smooth a posté un record dans Events
    The selected character has finished loading; the world-entry burst starts here. Kind eventArea Game.ContextNamed by beta, gamemapping Carries no payload. Arrival is the server's "you are in" signal, closing the long inbound burst that follows CharacterSelectionRequest. IT DOES NOT CREATE THE GAME CONTEXT. That is ContextCreationRequest, which the real client sends about 1.4 seconds later as step 5 of a seven-step burst: sequence number, the contact and warning settings, the guild requests, context creation, then the api-token and channel requests. NONE OF THAT BURST IS OBLIGATORY. A bot that skips it stays connected and simply never learns the data those requests fetch. When you may send it Requires character_selected observed State it changes Establishes character_loaded observed — the client begins its world-entry request burst on this cue Related messages Arrives after CharacterSelectionRequest No fields you may set. Recovered with score 225, confidence 0.88, margin 225 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 0 of 2.
  18. Smooth a posté un record dans Events
    The account's characters on this server, with everything needed to select one. Kind eventArea Game.Character.ManagementNamed by beta, gamemapping Answers CharacterListRequest. THIS IS THE ONLY SOURCE OF A CHARACTER ID. The id you put in CharacterSelectionRequest must come from here - an id from another account, another server, or an earlier session is rejected. Each entry carries the character's look and level as well as its id, so the list is enough to choose without any further request. When you may send it Requires authenticated observed Related messages Arrives after CharacterListRequest Fields #FieldTypeMeaningYou set it 1charactersrepeated CharacterOne entry per character on the account for this server.never Recovered with score 121, confidence 0.98, margin 121 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
  19. Smooth a posté un record dans Events
    Whether the played character is alive, dead or a phantom, and where its phoenix statue stands. Kind eventArea Game.CharacterNamed by beta, gamemapping, stringtable THE MESSAGE THAT TELLS YOU YOU ARE DEAD. Any script that fights needs to handle it: after a death the character is still connected, still receives events, and can still be told to walk - it just cannot do anything useful. It arrives once during the connection state burst, so the first one you see is not a death; it is the current state. Every later one is a real transition. phoenix_map_id is where the character would revive - the map holding its phoenix statue. It is meaningful whether or not you are currently dead, and it is a map id in the same space as MapInformationRequest.map_id. When you may send it Requires character_selected observed Related messages Unsolicited - nothing you send causes this sent in the connection burst and again on every death and resurrection Fields #FieldTypeMeaningYou set it 1statetype not documented yetWhether the character is alive, dead or a phantom.never 2phoenix_map_idint64The map holding the phoenix statue this character would revive at. (map id)never Recovered with score 380, confidence 0.92, margin 380 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 2.
  20. Smooth a posté un record dans Events
    Your character reached a new level; this is that level. Kind eventArea Game.CharacterNamed by beta, gamemapping Your character just levelled up. The value is the NEW level, not an increment. WHAT THE CLIENT DOES WITH IT. It stores the new level on the played character, works out the rewards unlocked for your class at that level, and opens the level-up window. IF YOU TRACK LEVEL YOURSELF, overwrite it with this value. Experience figures arrive separately in CharacterCharacteristicsEvent and CharacterExperienceGainEvent. When you may send it Requires character_selected inferred Related messages Unsolicited - nothing you send causes this the client reacts to it without having asked for anything Fields #FieldTypeMeaningYou set it 1new_levelint32The level the character has just reached. The new level itself, not a number of levels gained.never Recovered with score 260, confidence 0.90, margin 260 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
  21. Smooth a posté un record dans Events
    Experience the played character just earned, on a kill, quest turn-in, harvest or craft. Kind eventArea Game.CharacterNamed by beta, gamemapping A gain notification, so the client can animate the experience bar. It is a DELTA, not a total - the totals live in CharacterCharacteristics. THE CURRENT MESSAGE CARRIES ONLY THE CHARACTER'S OWN EXPERIENCE. The reference build declared mount and guild experience alongside it and the current build does not: that is a real schema reduction, confirmed by the client's own localisation strings, not a gap in recovery. Do not go looking for the other two. Useful as an activity signal: it fires on kills, quest turn-ins, harvests and crafts, which makes it a cheap way to tell that something you did actually worked. When you may send it Requires character_selected observed Related messages Unsolicited - nothing you send causes this the server reports gains as they happen Fields #FieldTypeMeaningYou set it 2character_experienceint64The experience the played character just earned. (experience points) A delta, not a total. The reference build declared mount and guild amounts beside it; the current schema has dropped them.never Recovered with score 280, confidence 0.91, margin 280 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 2.
  22. Smooth a posté un record dans Events
    The server naming the character about to be destroyed and stating whether a secret answer is required. Kind eventArea Game.CharacterNamed by beta, gamemapping STEP 2 OF 3. Read need_secret_answer before doing anything else: it decides whether CharacterDeletionRequest must carry a hash, and it is per character. character_id IS GONE FROM THIS MESSAGE. The reference build declared one and NO dumped build carries it - the client already knows which character it asked about. Do not expect it and do not treat its absence as a decode failure. THE TWO STRINGS ARE DELIBERATELY UNNAMED. One is the character's NAME and the other is the SECRET QUESTION, and nothing available separates them: both are singular strings, so type says nothing; declaration order is untrustworthy throughout this protocol; and the client's read order was measured and does not settle it either. They stand with their obfuscated names rather than being guessed - which matters here, because showing the player the wrong string in a deletion confirmation is worse than showing none. When you may send it Requires authenticated observed Related messages You must then send CharacterDeletionRequest inferred — the flow is left open until the client either confirms or abandons it Arrives after PrepareCharacterDeletionRequest Sequence Step character_deletion.2 inferred — of 3 steps; the flow is a fixed ask / terms / confirm exchange Fields #FieldTypeMeaningYou set it 3need_secret_answerboolWhether confirming the deletion must carry a hashed secret answer. Decided per character. Read it before building step 3.never Recovered with score 155, confidence 0.85, margin 155 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 3.
  23. Smooth a posté un record dans Events
    Says whether the character was created, and when the name was the problem, exactly what was wrong with it. Kind eventArea Game.Character.ManagementNamed by beta, gamemapping Answers CharacterCreationRequest - success and every kind of refusal arrive through this one message. READ THE RESULT FIRST, THE REASON SECOND TWO MEMBERS, AND ONLY ONE OF THEM ALWAYS MEANS SOMETHING. The result says what happened. The reason describes the NAME, and it is meaningful only when the result says the name was the problem - on every other outcome it is whatever the server left it at, usually the zero value, and reading it will tell you the name was fine while the creation failed for some other reason entirely. SUCCESS IS THE ZERO VALUE of the result. That is the client's own test: it treats zero as created and anything greater as a refusal, then switches on the refusal to choose what to show. The distinct refusals the 3.6.10.10 client recognises are, in its own words: no reason given, the name was invalid, you already have too many characters, and you are not allowed to - which its popup calls "not a subscriber". Newer values exist in the enum that the client does not handle individually. WHAT TO DO WITH IT ON SUCCESS, RE-READ THE CHARACTER LIST. The event carries no character: it does not tell you the id, the name or anything else about what was created. The real client marks the creation validated and moves on; the new character reaches it through the list, not through this message. ON AN INVALID NAME, THE REASON IS ACTIONABLE - it is the only refusal where you learn something you can fix without asking the player. IT ARRIVES BY TYPE. The request went out uncorrelated, so nothing links this event back to it by uid. Do not wait for a matching uid; wait for the event. BEWARE THE PADDING. The message is padded with a member of the SAME enum type as the result, and which member is padding changes between builds. Read by role, never by field number. When you may send it Requires authenticated observed Related messages Arrives after CharacterCreationRequest Fields #FieldTypeMeaningYou set it 2resultCharacterCreationResultWhether the character was created, and if not, which class of refusal it was.never 3reasonNameComplianceWhat was wrong with the name. Only meaningful when the result says the name was rejected.never Recovered with score 190, confidence 0.89, margin 190 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 3.
  24. Smooth a posté un record dans Types
    Whether the character was created, and broadly why not. Kind enumArea Game.Character.ManagementNamed by beta THE OUTCOME OF A CHARACTER CREATION. Only CREATE_OK means the character exists. CREATE_ERROR_INVALID_NAME is the one that carries detail: the companion NameCompliance member says which naming rule was broken. Every other value is the whole story on its own. EXPECT VALUES YOU DO NOT KNOW. This enum has grown twice since the reference build - six values became eight, then nine - and the newer ones have no published names. Treat any value other than CREATE_OK as a refusal, show the server's own message if you have one, and do not switch exhaustively on it. Not sent on its own — it is a member type of CharacterCreationResultEvent, never sent alone. proven Used by CharacterCreationResultEvent Values ValueNumberMeaning CREATE_OK0The character was created. The name is the reference build's, matched by NUMBER. Values 0-5 are present on every dumped build; the enum has only ever GROWN (6 values through 3.4.18.19, 8 from 3.5.3.1, 9 from 3.6.10.10), which is what makes the low numbers safe to carry across. No dumped client distinguishes one value from another, so only the NUMBER is proven. CREATE_ERROR_NO_REASON1Refused, and the server gives no reason. The name is the reference build's, matched by NUMBER. Values 0-5 are present on every dumped build; the enum has only ever GROWN (6 values through 3.4.18.19, 8 from 3.5.3.1, 9 from 3.6.10.10), which is what makes the low numbers safe to carry across. No dumped client distinguishes one value from another, so only the NUMBER is proven. CREATE_ERROR_INVALID_NAME2Refused because of the name; read the companion reason for which rule it broke. The name is the reference build's, matched by NUMBER. Values 0-5 are present on every dumped build; the enum has only ever GROWN (6 values through 3.4.18.19, 8 from 3.5.3.1, 9 from 3.6.10.10), which is what makes the low numbers safe to carry across. No dumped client distinguishes one value from another, so only the NUMBER is proven. CREATE_ERROR_TOO_MANY_CHARACTERS3You already hold as many characters as this account allows. The name is the reference build's, matched by NUMBER. Values 0-5 are present on every dumped build; the enum has only ever GROWN (6 values through 3.4.18.19, 8 from 3.5.3.1, 9 from 3.6.10.10), which is what makes the low numbers safe to carry across. No dumped client distinguishes one value from another, so only the NUMBER is proven. CREATE_ERROR_NOT_ALLOWED4Creation is not permitted for this account right now. The name is the reference build's, matched by NUMBER. Values 0-5 are present on every dumped build; the enum has only ever GROWN (6 values through 3.4.18.19, 8 from 3.5.3.1, 9 from 3.6.10.10), which is what makes the low numbers safe to carry across. No dumped client distinguishes one value from another, so only the NUMBER is proven. CREATE_ERROR_NEW_PLAYER_NOT_ALLOWED5Creation is not permitted for a new player on this server. The name is the reference build's, matched by NUMBER. Values 0-5 are present on every dumped build; the enum has only ever GROWN (6 values through 3.4.18.19, 8 from 3.5.3.1, 9 from 3.6.10.10), which is what makes the low numbers safe to carry across. No dumped client distinguishes one value from another, so only the NUMBER is proven. Recovered with score 205, confidence 0.88, margin 205 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 6 of 9.
  25. Smooth a posté un record dans Types
    The palettes a character owns, plus the slot counts that bound them. Kind structArea Game.CosmeticNamed by gamemapping The owned palettes, plus how many palette slots exist. The list is a REPLACEMENT of what you held before, not an addition. Alongside the list this record carries small integers describing the slot budget - in a captured trace, one owned palette against a total of sixteen slots. Which integer is which is NOT named here; see the signature notes. Not sent on its own — it is the payload of CharacterAppearanceCollectionEvent.colors, never sent alone. proven Used by CharacterAppearanceCollectionEvent Fields #FieldTypeMeaningYou set it 1palettesrepeated ColorPaletteEvery colour palette the character owns.never Recovered with score 140, confidence 0.86, margin 140 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 3.

Compte

Navigation

Recherche

Recherche

Configurer les notifications push du navigateur

Chrome (Android)
  1. Appuyez sur l'icône de cadenas à côté de la barre d'adresse.
  2. Tap Autorisations → Notifications.
  3. Ajustez vos préférences.
Chrome (Desktop)
  1. Cliquez sur l'icône représentant un cadenas dans la barre d'adresse..
  2. Select Paramètres du site.
  3. Find Notifications et ajustez vos préférences.