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.

Protocole Dofus

Le protocole Dofus actuellement pris en charge par Asterobot
The spell of a cast: spell id, spell level, and the portal cells it went through.
Kind struct · Area Game.Action
The spell half of TargetedAbility's fight oneof.
READ IT LIKE THIS
1. SpellCast.spell_id is the spell (the spells table id). 2. SpellCast.spell_level is the id of the spell LEVEL that was cast (a spell-levels table id, not a 1..6 grade): find it in the spell's list of level ids to know the grade. 3. SpellCast.portals_id lists the portal cells the spell travelled through, in order; empty without portals.
CAPTURE (3.7.10.10): spell_id 12718, spell_level 43038, no portals.
Not sent on its own — it travels inside TargetedAbility.spell_cast. proven
Used by
TargetedAbility Fields
#FieldTypeMeaningYou set it 1spell_levelint32The id of the spell level that was cast. (spell level id)
Observed: 43038
A spell-levels table id: its index in the spell's list of level ids is the grade.never 2spell_idint32The spell that was cast. (spell id)
Observed: 12718
Looked up in the spells table.never 3portals_idrepeated int32The portal cells the spell went through, in order. (cell ids)
Empty when no portal was used.never
  • summary: The spell of a cast: spell id, spell level, and the portal cells it went through.
  • area: Game.Action
  • 42 vues
A fighter is immune to the spell that hits it.
Kind struct · Area Game.Action
The spell_immunity branch of GameActionFightEvent: the spell had no effect on a fighter.
WHAT TO DO WHEN YOU RECEIVE IT
1. SpellImmunity.target_id is the immune fighter. Nothing about it changes. 2. SEND NOTHING BACK.
WHAT THE CLIENT DOES. Writes "no change" for that fighter in the fight log (ui.fight.noChange).
UNREAD MEMBER. Beta also carries the spell id (an int32). The client never reads it; on 3.4.18.19 a second int32 sits beside it, so it is left unnamed.
Not sent on its own — it travels inside GameActionFightEvent (spell_immunity). proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 3target_idint64The fighter that is immune. (fighter (entity) id)never
  • summary: A fighter is immune to the spell that hits it.
  • area: Game.Action
  • 37 vues
Every effect a given spell left on a fighter is removed.
Kind struct · Area Game.Action
The spell_remove action of GameActionFightEvent: the effects (buffs and debuffs) that one spell put on a fighter end, all at once.
READ IT LIKE THIS
1. SpellRemove.target_id is the fighter that carries the effects. 2. SpellRemove.spell_id and SpellRemove.spell_rank identify the spell (and its rank) whose effects end: drop every effect of that spell from the fighter. 3. SpellRemove.verbose_cast true means the removal is announced (the client logs it in the fight log); false means it happens silently. 4. SEND NOTHING BACK. To remove one single effect the server sends EffectRemove instead.
WHAT THE CLIENT DOES. Its fight sequencer queues a step that asks the buff service to remove the fighter's buffs of that spell.
Not sent on its own — it travels inside GameActionFightEvent.spell_remove. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1spell_idint32The spell whose effects end. (spell id)never 2verbose_castboolTrue when the removal is announced in the fight log.never 3spell_rankint32The rank of that spell.
Kept with the spell id by the client's removal step.never 4target_idint64The fighter that carries the effects. (fighter (entity) id)never
  • summary: Every effect a given spell left on a fighter is removed.
  • area: Game.Action
  • 38 vues
Play a scripted staging sequence (camera and scene effects) during the fight.
Kind struct · Area Game.Action
The staging action of GameActionFightEvent: the server asks the client to play one of its scripted staging sequences (a short cinematic: camera moves, screen effects).
READ IT LIKE THIS
1. Staging.sequence_id says which staging sequence to play. 2. Staging.intensity_multiplier scales its effects. 3. Staging.is_blocking true: the actions that follow in the same sequence wait until the staging has finished. False: they go on at once. 4. Nothing in it changes the fight state; a client that does not render can ignore it. 5. SEND NOTHING BACK.
WHAT THE CLIENT DOES. Its fight sequencer queues a step that asks the staging service for the sequence (by id and intensity) and, when blocking, ends only when the sequence reports its end.
Not sent on its own — it travels inside GameActionFightEvent.staging. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1is_blockingboolTrue when the following actions must wait for the staging to end.never 2intensity_multiplierint32How strongly the sequence's effects are played.
Handed to the staging service with the id.never 3sequence_idint32Which staging sequence to play.
The client's staging service looks the sequence up by this id.never
  • summary: Play a scripted staging sequence (camera and scene effects) during the fight.
  • area: Game.Action
  • 38 vues
Plays one of the current map's scripted staging sequences (map visual and sound effects authored in Ankama's map editor), starting at a given point of the sequence and at a given intensity.
Kind event · Area Game.Roleplay
Tells the client to PLAY A STAGING: a scripted sequence of map effects that Ankama's map editor (AleCore) stores with each map. It is presentation only: nothing in the game state changes.
WHAT A STAGING IS
Each map can carry staging sequences, numbered (the map's StagingManager keeps them in a table keyed by the sequence id). A sequence is a timeline of shots, and each shot applies effects to targets on the map: - objects: move, rotate, scale, show map animated elements; - materials: colour animation, emissive glow, dissolve, distortion, alpha; - particles: start, stop, burst, change emission; - sound: play or stop FMOD events, set FMOD parameters and snapshots, switch the music playlist. The only non-visual effect is a 'FightStopWaiting' event, used by fight stagings to release a fight action that waits for its staging; a roleplay staging cannot change anything else.
WHY IT EXISTS
The server decides WHEN a map's scripted moment happens; the client owns the sequence itself (it is map data). This event is the cue: which sequence, from where, how strongly.
WHEN IT ARRIVES
Whenever the server triggers a staging on the map you are on (inferred: a map event, a quest or interactive step, an ambience change). It can arrive before the map has finished rendering, for example right after a map change: the official client keeps it and plays it once the map is rendered.
WHAT TO DO WHEN YOU RECEIVE IT
1. StagingEvent.sequence_id: the sequence to play, in the CURRENT map's staging table. An id the map does not have is ignored, and so is a sequence with no shot. 2. StagingEvent.progression: where to start, in PERCENT of the sequence's duration: 0 = from the beginning, 50 = halfway, 100 = at the end. Values outside 0-100 are clamped. Start time = progression / 100 x duration. 3. StagingEvent.intensity_multiplier: how strongly to play it, in PERCENT: 100 = as authored. The sequencer scales its effects by intensity_multiplier / 100. 4. If the map is not rendered yet, keep the three values and play the sequence once it is. 5. SEND NOTHING BACK. A bot that does not render the map can ignore this event safely.
EXAMPLE. sequence_id 904, progression absent (0), intensity_multiplier 100: play map sequence 904 from its start, at its authored strength.
WHAT THE OFFICIAL CLIENT DOES
Its map staging service calls StagingManager.PlaySequenceFromProgression(sequenceId, progression, intensityMultiplier). The manager looks the id up in the map's sequences, builds a sequencer with intensityMultiplier / 100, keeps only the shots allowed by the 'map effects' graphics option, computes the duration, converts progression to a start time and starts it. Each sequence has an exclusivity rule (fast- forward, stop, wait or cancel) that decides what happens to a sequence already playing.
RELATED
- PersistentStagingEvent (same file): long-running map stagings. It carries a list of sequence ids and the date they started; the client resumes each one at the elapsed time (PlaySequenceFromStartTime), so a player arriving on the map sees them already running. - GameActionFightEvent.staging: the same kind of sequence played as a step of a fight action, possibly blocking the fight until the sequence signals FightStopWaiting.
When you may send it
Requires context_ready inferred Raised by: something happens on the map that the map's designers scripted a staging for (an event, a quest or interactive step, an ambience change): the server tells every client on the map to play it inferred Related messages
Unsolicited - nothing you send causes this the server triggers map stagings; nothing in the client requests one Nothing answers it - send it and move on the client only plays the sequence; its handler sends nothing Fields
#FieldTypeMeaningYou set it 1sequence_idint32The staging sequence to play, in the current map's staging table. (map staging sequence id)
Map data, not a game-data id: the same number means another sequence on another map.
An id the map does not have is ignored.never 2progressionint32Where to start, as a percentage of the sequence's duration (0 = from the start). (percent of the duration, clamped to 0-100)
Start time = progression / 100 x duration; usually 0 (absent on the wire).never 3intensity_multiplierint32How strongly to play the sequence, as a percentage (100 = as authored). (percent)
The sequencer scales its effects by intensity_multiplier / 100.never
  • summary: Plays one of the current map's scripted staging sequences (map visual and sound effects authored in Ankama's map editor), starting at a given point of the sequence and at a given intensity.
  • area: Game.Roleplay
  • 41 vues
The source fighter steals kamas from a fighter: the victim and the amount.
Kind struct · Area Game.Action
A kama theft: the payload of GameActionFightEvent.steal_kama. The thief is GameActionFightEvent.source_id.
READ IT LIKE THIS
1. StealKama.target_id is the fighter robbed. 2. StealKama.amount is the number of kamas stolen.
WHAT THE OFFICIAL CLIENT DOES. It queues a step that publishes the theft on the victim; the fight log prints ui.fight.stealMoney.
Not sent on its own — it travels inside GameActionFightEvent.steal_kama. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1amountint64Kamas stolen. (kamas)never 2target_idint64The fighter robbed. (fighter (entity) id)never
  • summary: The source fighter steals kamas from a fighter: the victim and the amount.
  • area: Game.Action
  • 38 vues
One kind of summoned fighter: what it is, its look and characteristics, its wave, and every instance.
Kind struct · Area Game.Action
An entry of SummonsByContextInformation.summons. It describes one kind of summon once and lists where each instance appears.
READ IT LIKE THIS
1. For every entry of SummonContextInformation.summons (a SpawnInformation: team, alive flag and position of one instance), create one fighter. 2. Give each of them SummonContextInformation.look (EntityLook), SummonContextInformation.characteristics (FightCharacteristics) and SummonContextInformation.wave. 3. SummonContextInformation.spawn_information says what the fighter is: a monster (monster id and grade or level), a character (name and level) or a companion (model, level, summoner and owner).
WHAT THE CLIENT DOES. For every instance it builds a full ActorPositionInformation: the instance becomes the fighter's FightFighterInformation.spawn_information, the wave goes to FightFighterInformation.wave, the characteristics to FightFighterInformation.stats, the look to ActorInformation.look, and the kind of entity selects the character, monster or companion branch of the fighter record. Then it spawns the fighter like any other.
Not sent on its own — it travels inside SummonsByContextInformation.summons. proven
Used by
SummonsByContextInformation Fields
#FieldTypeMeaningYou set it 1spawn_informationtype not documented yetWhat the summoned fighter is: a monster, a character or a companion.
Its oneof selects the character, monster or companion branch of the fighter record the client builds.never 2characteristicsFightCharacteristicsThe summoned fighters' characteristics - see FightCharacteristics.
Copied to FightFighterInformation.stats.never 5summonsrepeated SpawnInformationOne SpawnInformation per summoned instance: its team, alive flag and position.
The client creates one fighter per entry.never 6waveint32The wave the summoned fighters belong to.
Copied to FightFighterInformation.wave.never 7lookEntityLookHow the summoned fighters look - see EntityLook.
Copied to ActorInformation.look.never
  • summary: One kind of summoned fighter: what it is, its look and characteristics, its wave, and every instance.
  • area: Game.Action
  • 39 vues
Fighters appear in the fight: either as ready-made actors or as summon descriptions.
Kind struct · Area Game.Action
The GameActionFightEvent.summons action: one or more fighters join the fight (summoned creatures, invocations, companions). The oneof Summons.summons says how they are described.
READ IT LIKE THIS
1. Summons.summons_by_actor (SummonsByActor): each new fighter is a complete ActorPositionInformation - add it to the fight as it is. 2. Summons.summons_by_context_information (SummonsByContextInformation): each entry describes one kind of summon (SummonContextInformation) and lists its instances; build one fighter per instance from the entry. 3. The summoner is GameActionFightEvent.source_id.
WHAT THE CLIENT DOES. Both branches end the same way: the client turns every new fighter into an ActorPositionInformation and spawns it (look, characteristics, team, cell, visibility).
Not sent on its own — it travels inside GameActionFightEvent.summons. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1summons_by_actorSummonsByActorSet when the new fighters come as ready-made actors - see SummonsByActor.never 2summons_by_context_informationSummonsByContextInformationSet when the new fighters come as summon descriptions - see SummonsByContextInformation.never
  • summary: Fighters appear in the fight: either as ready-made actors or as summon descriptions.
  • area: Game.Action
  • 39 vues
New fighters given as complete actors.
Kind struct · Area Game.Action
The Summons.summons_by_actor branch.
READ IT LIKE THIS
1. Every entry of SummonsByActor.summons is a new fighter, complete: id, position, look and fighter information (ActorPositionInformation). 2. Add each one to the fight exactly as you would a fighter shown at fight start.
Not sent on its own — it travels inside Summons.summons_by_actor. proven
Used by
Summons Fields
#FieldTypeMeaningYou set it 1summonsrepeated ActorPositionInformationThe new fighters, each a complete ActorPositionInformation.never
  • summary: New fighters given as complete actors.
  • area: Game.Action
  • 41 vues
New fighters given as summon descriptions, one entry per kind of summon.
Kind struct · Area Game.Action
The Summons.summons_by_context_information branch.
READ IT LIKE THIS
1. Every entry of SummonsByContextInformation.summons is a SummonContextInformation: what is summoned (look, characteristics, kind of entity, wave) and where each instance appears. 2. Build one fighter per instance listed in the entry.
Not sent on its own — it travels inside Summons.summons_by_context_information. proven
Used by
Summons Fields
#FieldTypeMeaningYou set it 1summonsrepeated SummonContextInformationOne entry per kind of summon - see SummonContextInformation.never
  • summary: New fighters given as summon descriptions, one entry per kind of summon.
  • area: Game.Action
  • 38 vues
The fighter performing the action was tackled (failed to dodge) while leaving a cell.
Kind struct · Area Game.Action
The tackled branch of GameActionFightEvent: a fighter tried to move away from enemies and failed to dodge.
WHAT TO DO WHEN YOU RECEIVE IT
1. The tackled fighter is the enclosing event's source_id. 2. Tackled.tacklers_id lists the fighters that tackled it (the client does not use it). 3. The AP / MP it loses follow as their own actions in the same sequence. 4. SEND NOTHING BACK.
WHAT THE CLIENT DOES. Plays the tackle animation (AnimTacle) on the source fighter, writes "dodge failed" in the fight log (ui.fight.dodgeFailed), and when the source fighter is your character, triggers the matching tutorial hint.
Not sent on its own — it travels inside GameActionFightEvent (tackled). proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1tacklers_idrepeated int64The fighters that tackled the source fighter. (fighter (entity) ids)
The client never reads it; named because it is the record's only repeated int64 on every build, as in beta.never
  • summary: The fighter performing the action was tackled (failed to dodge) while leaving a cell.
  • area: Game.Action
  • 36 vues
A fighter casts a spell, or hits with its weapon, at a cell: what was cast, where, its outcome, and the caster's new cast counters.
Kind struct · Area Game.Action
The targeted_ability action of GameActionFightEvent: one cast. The caster is GameActionFightEvent.source_id; GameActionFightEvent.action_id is the cast action (300 in the captures). Everything the spell DOES (damage, buffs, moves...) arrives as further GameActionFightEvents of the same sequence.
READ IT LIKE THIS
1. SPELL OR WEAPON: exactly one member of the fight oneof is set. TargetedAbility.spell_cast is a spell (see SpellCast: spell id, level, portals); TargetedAbility.weapon_generic_id is a weapon hit with that weapon item. 2. WHERE: TargetedAbility.destination_cell is the targeted cell and TargetedAbility.target_id the fighter that was aimed at. 3. OUTCOME: TargetedAbility.critical (FightSpellCastCritical) says whether the cast was a normal one, a critical hit, or the third outcome (beta: critical failure). 4. DISPLAY: TargetedAbility.verbose_cast set means the cast is announced; TargetedAbility.silent_cast set means the client plays no spell visual for it. 5. CAST COUNTERS: for each AbilityRefreshInfo in TargetedAbility.ability_refresh_infos, replace that fighter's counters for this spell (casts this turn, casts per target, cooldown). TargetedAbility.ability_refresh_info_team (AbilityRefreshInfoTeam) carries the global (team-wide) cast counters of the spell. 6. SEND NOTHING BACK. When it is your cast, this is the server's confirmation of GameActionFightCastRequest.
WHAT THE CLIENT DOES. It builds a spell-cast context (caster, cell, spell data and level, portal cells, critical flags), counts the cast in the caster's per-spell cast manager unless the outcome is the third value, refreshes every listed fighter's counters, then queues the cast step (spell or weapon) and the critical-effect step in the fight sequence.
CAPTURE (3.7.10.10, 2026-10-14): your own cast, action 300, destination_cell 370, target_id = you, verbose_cast true, spell_cast {spell_id 12718, spell_level 43038}, one refresh entry with your id.
Not sent on its own — it travels inside GameActionFightEvent.targeted_ability. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1ability_refresh_info_teamAbilityRefreshInfoTeamThe spell's global (team-wide) cast counters after this cast. See AbilityRefreshInfoTeam.
Name after the record type (type-name table: TargetedAbility+Types+AbilityRefreshInfoTeam). Present from 3.6.10.10 on.never 3verbose_castboolSet when the cast is announced.
Observed: true
Handed to the cast step as its 'verbose' flag.never 4silent_castboolSet when the cast plays no spell visual.
The client's spell-script gfx routine checks this flag first and builds nothing when it is set.never 5destination_cellint32The targeted cell. (cell id)
Observed: 370
Bounds-checked as a map cell, then used as the cast step's cell and the spell context's cell.never 6target_idint64The fighter the cast was aimed at. (fighter (entity) id)
The client looks this fighter up and reads its cell.never 7ability_refresh_infosrepeated AbilityRefreshInfoPer fighter, the spell's new cast counters and cooldown after this cast. See AbilityRefreshInfo.
Name after the record type (type-name table: TargetedAbility+Types+AbilityRefreshInfo).never 8criticalFightSpellCastCriticalThe cast's outcome: normal, critical hit, or the third outcome. See FightSpellCastCritical.
Absent (0) in an ordinary cast.
With the third value the client does not count the cast in the caster's cast counters.never 2spell_castSpellCastSet for a spell: which spell, at which level, through which portals. See SpellCast.
Member of the fight oneof, exclusive with TargetedAbility.weapon_generic_id.never 9weapon_generic_idint32Set for a weapon hit: the weapon's item id. (item template id)
Member of the fight oneof. When it is non-zero the client queues a weapon step instead of a spell step.never
  • summary: A fighter casts a spell, or hits with its weapon, at a cell: what was cast, where, its outcome, and the caster's new cast counters.
  • area: Game.Action
  • 43 vues
A tax collector fighter's first and last name ids.
Kind struct · Area Game.Common
The tax_collector_information branch of AIFighterInformation.
The tax collector's displayed name is its first name followed by its last name: resolve first_name_id in the tax-collector first-names data and last_name_id in the tax-collector names data.
Other members may appear; they have no canonical name yet.
Not sent on its own — it travels inside the fighter record of FightFighterShowEvent. inferred
Used by
AIFighterInformation Fields
#FieldTypeMeaningYou set it 1last_name_idint32The tax collector's last name. (tax collector name id)never 3first_name_idint32The tax collector's first name. (tax collector first-name id)never
  • summary: A tax collector fighter's first and last name ids.
  • area: Game.Common
  • 42 vues
A fighter is teleported to another cell of the fight map.
Kind struct · Area Game.Action
One step of a fight action (GameActionFightEvent): a fighter disappears from its cell and reappears on another one, without walking.
READ IT LIKE THIS
1. TeleportOnSameMap.target_id is the fighter that is teleported. 2. Put it on TeleportOnSameMap.cell. 3. SEND NOTHING BACK.
WHAT THE CLIENT DOES. It turns the cell into a map point and plays a teleport step that moves the fighter there.
Not sent on its own — it travels inside GameActionFightEvent.teleport_on_same_map. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1cellint32The cell the fighter arrives on. (map cell id)never 2target_idint64The fighter that is teleported. (fighter (entity) id)never
  • summary: A fighter is teleported to another cell of the fight map.
  • area: Game.Action
  • 35 vues
A carrier throws the fighter it carries onto a cell.
Kind struct · Area Game.Action
One step of a fight action (GameActionFightEvent): the end of a CarryCharacter. The action's GameActionFightEvent.source_id is the carrier.
READ IT LIKE THIS
1. ThrowCharacter.target_id is the fighter that was carried; it is no longer carried after this step. 2. It lands on ThrowCharacter.cell: put it there. The carrier keeps its own cell. 3. SEND NOTHING BACK.
WHAT THE CLIENT DOES. It plays the throw step: the carried fighter leaves its carrier and is placed on the cell.
Not sent on its own — it travels inside GameActionFightEvent.throw_character. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1target_idint64The fighter that was carried. (fighter (entity) id)never 2cellint32Where the carried fighter lands. (map cell id)never
  • summary: A carrier throws the fighter it carries onto a cell.
  • area: Game.Action
  • 37 vues
A fighter's place in the fight timeline, and whether that fighter is dead.
Kind struct · Area Game.Fight
A regular turn in TimelineRefreshEvent: the fighter who plays it.
READ IT LIKE THIS
1. TimelineFighter.fighter_id is the fighter (your character, an ally, a monster or a summon); look it up among the fighters shown with FightFighterShowEvent. 2. TimelineFighter.slain true means that fighter is dead: it keeps its slot in the order but will not play. False means alive. 3. Ignore the record's third member: it is padding the client never reads.
Not sent on its own — it travels inside Turn.fighter of TimelineRefreshEvent. proven
Used by
Turn Fields
#FieldTypeMeaningYou set it 1fighter_idint64The fighter whose turn this slot is. (fighter (entity) id)never 2slainboolTrue when this fighter is dead.
Puts the fighter into the client's dead-fighter list and clears its alive flag.never
  • summary: A fighter's place in the fight timeline, and whether that fighter is dead.
  • area: Game.Fight
  • 44 vues
The whole fight timeline: every turn of the round in play order, fighters and additional turns.
Kind event · Area Game.Fight
Replaces the fight timeline (the turn-order bar) with a new one.
WHAT TO DO WHEN YOU RECEIVE IT
1. Throw the previous order away; this message is the whole timeline, not a delta. 2. Walk TimelineRefreshEvent.turns in order. Each Turn is either a TimelineFighter (a fighter's regular turn) or an AdditionalTurn (an extra turn granted to a fighter). 3. Keep every fighter id in that order: it is who plays when. A fighter marked TimelineFighter.slain is dead: keep it in the order but do not expect it to play. 4. SEND NOTHING BACK.
WHEN IT ARRIVES. At placement, right after the option updates, with the monsters and your character in their play order, and again whenever the order changes.
WHAT THE CLIENT DOES. It clears its timeline, appends one entry per turn, builds the list of fighter ids in play order and the list of dead fighters, marks each fighter alive or dead, and redraws the timeline bar. An additional turn is remembered by its AdditionalTurn.additional_turn_id so the turn announced by FightTurnEvent with the same additional id can be found again.
When you may send it
Requires character_loaded inferred Related messages
Unsolicited - nothing you send causes this sent by the server at fight placement and whenever the order changes; no request asks for it Fields
#FieldTypeMeaningYou set it 1turnsrepeated TurnEvery turn of the timeline, in play order.
Named after its element type Turn; Ankama's own member name is not in any local oracle.never
  • summary: The whole fight timeline: every turn of the round in play order, fighters and additional turns.
  • area: Game.Fight
  • 48 vues
A glyph or trap goes off: which mark, on which cell, and who set it off.
Kind struct · Area Game.Action
The GameActionFightEvent.trigger_glyph_trap action: a fighter stepped on or started a turn in a mark and the mark fires. The effects it causes follow as their own actions in the same sequence.
READ IT LIKE THIS
1. TriggerGlyphTrap.mark_id names the mark that fired (the mark id of its FightMark). 2. TriggerGlyphTrap.triggering_character_id is the fighter who set it off. 3. TriggerGlyphTrap.mark_impact_cell is the cell the mark's effects are aimed at; the client treats it as the target cell of the mark's spell. 4. GameActionFightEvent.source_id is the fighter who laid the mark (its caster).
WHAT THE CLIENT DOES. It looks the mark up by id, takes the mark's spell and level, opens a spell-cast context with the caster and the impact cell, and queues a "mark triggered" step (caster, triggering fighter, mark) followed by the cast's targeting step on the impact cell.
Not sent on its own — it travels inside GameActionFightEvent.trigger_glyph_trap. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1mark_impact_cellint32The cell the mark's effects are aimed at. (map cell id)
Becomes the target cell of the mark spell's cast context.never 2mark_idint32The id of the mark that fired.never 4triggering_character_idint64The fighter who set the mark off. (fighter (entity) id)never
  • summary: A glyph or trap goes off: which mark, on which cell, and who set it off.
  • area: Game.Action
  • 47 vues
One slot of the fight timeline: a fighter's regular turn or an additional turn.
Kind struct · Area Game.Fight
One entry of TimelineRefreshEvent.turns, in play order.
READ IT LIKE THIS
1. Exactly one of Turn.fighter and Turn.additional_turn is set. 2. Turn.fighter: the fighter's regular turn (TimelineFighter). 3. Turn.additional_turn: an extra turn granted to a fighter (AdditionalTurn). 4. Ignore the other member of the record: the client never reads it.
Not sent on its own — it travels inside TimelineRefreshEvent.turns. proven
Used by
TimelineRefreshEvent Fields
#FieldTypeMeaningYou set it 1additional_turnAdditionalTurnSet when this slot is an extra turn granted to a fighter.
Its type is AdditionalTurn; the member name follows it.never 2fighterTimelineFighterSet when this slot is a fighter's regular turn.
Its type is TimelineFighter; the member name follows it.never
  • summary: One slot of the fight timeline: a fighter's regular turn or an additional turn.
  • area: Game.Fight
  • 43 vues
A glyph, trap or other cell mark disappears from the fight map.
Kind struct · Area Game.Action
The GameActionFightEvent.unmark_cells action: a mark laid on the map earlier (a glyph, a trap, a wall, a portal, a rune) is removed.
READ IT LIKE THIS
1. UnmarkCells.mark_id is the id the mark was given when it appeared (GameActionFightEvent.mark_cells, its FightMark mark id). 2. Forget that mark and stop drawing it; it no longer triggers. 3. The action's caster is GameActionFightEvent.source_id.
WHAT THE CLIENT DOES. It queues an "unmark cells" step in the current action sequence; when the step plays the mark is looked up by its id and removed (an unknown id is logged and ignored).
Not sent on its own — it travels inside GameActionFightEvent.unmark_cells. proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1mark_idint32The id of the mark to remove.
Same id space as the mark id of FightMark and the mark ids of TriggerGlyphTrap / ActivateGlyphTrap.never
  • summary: A glyph, trap or other cell mark disappears from the fight map.
  • area: Game.Action
  • 39 vues
A fighter disappears from the fight map (a summon unsummoned, a fighter taken out).
Kind struct · Area Game.Action
The vanish branch of GameActionFightEvent: a fighter leaves the board without dying.
WHAT TO DO WHEN YOU RECEIVE IT
1. Vanish.target_id is the fighter that vanishes. Remove it from the map and from the fighters you track. 2. SEND NOTHING BACK.
WHAT THE CLIENT DOES. Plays the vanish animation (AnimVanish) on that fighter and removes it from the fight's entities.
Not sent on its own — it travels inside GameActionFightEvent (vanish). proven
Used by
GameActionFightEvent Fields
#FieldTypeMeaningYou set it 1target_idint64The fighter that vanishes. (fighter (entity) id)never
  • summary: A fighter disappears from the fight map (a summon unsummoned, a fighter taken out).
  • area: Game.Action
  • 43 vues
How many extra waves a monster group fights in, and the groups that make them up.
Kind struct · Area Game.Context.Roleplay
The MonsterGroupActor.wave_information record.
wave_count is the number of additional waves; absent means the group has none. alternatives holds the wave groups, each a MonsterGroupStaticInformation.
Not sent on its own — a nested record, only ever carried by its parent. inferred
Used by
MonsterGroupActor Fields
#FieldTypeMeaningYou set it 1wave_countint32How many additional waves the group fights in.
Explicit presence: absent is not the same as zero.
Absent means no extra wave.never 2alternativesrepeated MonsterGroupStaticInformationThe groups that make up the waves.
MonsterGroupStaticInformation entries.never
  • summary: How many extra waves a monster group fights in, and the groups that make them up.
  • area: Game.Context.Roleplay
  • 43 vues
One listing of an item: every lot with the same effects, with its id, its cheapest price per lot size and the effects.
Kind struct · Area Game.Exchange
An element of ExchangeTypesItemsExchangerDescriptionForUserEvent.item_descriptions.
- object_uid identifies THIS LISTING: every lot of this item with exactly these effects, whoever sells it. Keep it: a later ExchangeBidHouseInListUpdatedEvent names it when its prices change, and you name it when you buy. It is NOT one seller's sale: after a purchase the listing keeps its uid and shows the next cheapest prices. - object_gid is the item (GID); the client looks it up in its item data. - prices holds one price per lot size: the cheapest lot of that size in this listing. A 0 means nobody sells that lot size here. - effects are the item's own effects (stats); for equipment, two listings of the same item can differ by them.
Not sent on its own — a record inside ExchangeTypesItemsExchangerDescriptionForUserEvent, never sent on its own. inferred
Used by
ExchangeTypesItemsExchangerDescriptionForUserEvent Fields
#FieldTypeMeaningYou set it 1object_gidint32The item (GID) on sale.
Observed: 28277never 2pricesrepeated int64Price per lot size, in kamas; 0 = that lot size is not offered. (kamas)
Observed: 67970, 599995, 0, 0never 3object_uidint32Id of this listing; updates and purchases name it.
Observed: 87194never 4object_typeint32The item's type (category).
The client never reads it; named as the record's remaining int32.never 5effectsrepeated ObjectEffectThe item's effects (stats).
Type ObjectEffect.never
  • summary: One listing of an item: every lot with the same effects, with its id, its cheapest price per lot size and the effects.
  • area: Game.Exchange
  • 37 vues
One lot on sale in the auction house: which item, its sale id, how many and its effects.
Kind struct · Area Game.Exchange
The item record of your sales. It is carried by ExchangeBidHouseItemAddedEvent.item and ItemToSellInBid.object.
THE TWO IDS ARE BOTH INT32. DO NOT MIX THEM UP.
- gid: the item's TEMPLATE id (what kind of item it is). Look it up in your item data. - uid: the id of THIS SALE in the auction house. It is NOT the uid the stack had in your inventory (310084 here, while the stack sold was 8567885). - quantity: the lot size (1, 10, 100...). - effects: the item's effects (ObjectEffect).
Not sent on its own — a record inside the auction-house sell messages, never sent on its own. inferred
Used by
ExchangeBidHouseItemAddedEvent ItemToSellInBid Fields
#FieldTypeMeaningYou set it 1gidint32The item's template id: what kind of item is on sale.
Observed: 310
Name from beta ObjectItem, the type these slots used before BidItem.never 2effectsrepeated ObjectEffectThe effects of the item on sale.
Type ObjectEffect.
Name from beta ObjectItem, the type these slots used before BidItem.never 3uidint32The id of this sale in the auction house (not your inventory uid).
Observed: 310084
Name from beta ObjectItem, the type these slots used before BidItem.never 4quantityint32The lot size on sale.
Observed: 1
Name from beta ObjectItem, the type these slots used before BidItem.never
  • summary: One lot on sale in the auction house: which item, its sale id, how many and its effects.
  • area: Game.Exchange
  • 37 vues
The cheapest price currently listed for one item, one entry per lot size.
Kind struct · Area Game.Exchange
The bid_price_for_seller member of ExchangeBidPriceEvent.
- minimal_prices: one price per lot size, in the order of SellingConditions.quantities (1, 10, 100, 1000 in the capture). Each is the cheapest price another seller asks for a lot of that size right now. The official client lists them next to your sale so you can undercut them. - all_identical: the client never reads it. Ignore it.
Not sent on its own — a record inside ExchangeBidPriceEvent, never sent on its own. inferred
Used by
ExchangeBidPriceEvent Fields
#FieldTypeMeaningYou set it 1all_identicalboolNever read by the client; ignore it.
Observed: true
Named as the record's only bool.never 2minimal_pricesrepeated int64The cheapest listed price for each lot size, in the order of the house's quantities. (kamas)
Observed: [4, 28, 996, 7999]never
  • summary: The cheapest price currently listed for one item, one entry per lot size.
  • area: Game.Exchange
  • 45 vues

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.