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 rules of the auction house you opened: item types, taxes, level cap, which house it is and the NPC that runs it.
Kind struct · Area Game.Exchange
Carried by ExchangeBidBuyerStartedEvent (and by the seller start event). Read it as the configuration of the auction house window:
1. types: the item type ids this house trades. Only items of these types can be browsed or sold here. 2. max_item_level: items above this level are not accepted. 3. tax_percentage: sale tax, percent of the price. 0 means no tax at all. tax_modification_percentage replaces it when you change the price of an item already on sale. The client charges round(price * rate / 100), at least 1. 4. npc_contextual_id: keep it. The client sends it back as npc_id of NpcGenericActionRequest from the auction-house window. 5. auction_house_id: which auction house this is, as an id into the client's auction-house data table.
The client copies two more int32 members but never reads them; they are left unnamed (one is the per-account sale limit, the other the unsold delay - the client gives no way to tell which).
Not sent on its own — a record carried by the auction-house start events, never sent on its own. inferred
Used by
ExchangeBidBuyerStartedEvent ExchangeBidSellerStartedEvent Fields
#FieldTypeMeaningYou set it 1typesrepeated int32Item type ids this auction house trades.
The buy window lists these as its categories; the sell window only offers items of these types.never 3auction_house_idint32Which auction house this is: an id into the client's auction-house data table.
Absent from beta and 3.2; named after the client routine that consumes it (SetAuctionHouseByBidId).never 4npc_contextual_idint32Contextual id of the auction-house NPC; the client sends it back as the NPC id of a generic NPC action.never 5tax_percentagefloatSale tax, in percent of the price. 0 means no tax. (percent)never 6max_item_levelint32Highest item level this auction house accepts.never 7quantitiesrepeated int32Lot sizes items are sold in.
The 3.7 client copies it but never reads it; named as the only other repeated int32.never 8tax_modification_percentagefloatTax charged instead when you change the price of an item already on sale, in percent. (percent)never
  • summary: The rules of the auction house you opened: item types, taxes, level cap, which house it is and the NPC that runs it.
  • area: Game.Exchange
  • 44 vues
One lasting effect on the character: its data id, when it was created, how and when it expires, and its effects.
Kind struct · Area Game.Common
One alteration of your character.
HOW TO READ IT
1. Alteration.alteration_id is the alteration's id in the game data (its name, description and category come from there). 2. Alteration.creation_time orders alterations: the client sorts them by it. 3. Alteration.expiration_type says how it expires (AlterationExpirationType); Alteration.expiration_value is the limit for that type: a date for DATE, a number of fights left for the fight counts (expired when it reaches 0). 4. Alteration.effects are its effects (ObjectEffect).
Not sent on its own — a record carried by the alteration messages, never sent on its own. inferred
Used by
AlterationsEvent Fields
#FieldTypeMeaningYou set it 1expiration_typeAlterationExpirationTypeHow the alteration expires.
Enum AlterationExpirationType.never 2alteration_idint64The alteration's id in the game data.
The client looks it up in the AlterationData root.never 3expiration_valueint64The expiry limit for that type: a date, or the fights left.never 4creation_timeint64When the alteration was created; the client sorts alterations by it.never 5effectsrepeated ObjectEffectThe alteration's effects.
Element type ObjectEffect.never
  • summary: One lasting effect on the character: its data id, when it was created, how and when it expires, and its effects.
  • area: Game.Common
  • 28 vues
How an alteration expires: never, at a date, or after a number of fights.
Kind enum · Area Game.Common
Says how to read Alteration#expiration_value.
HOW TO READ IT
1. INFINITE: never expires; the value is not used. 2. DATE: expires at the date in the value. 3. FIGHT_COUNT, FIGHTS_WON_COUNT, FIGHTS_LOST_COUNT: the value is the number of fights (all, won or lost) left; expired at 0.
Not sent on its own — an enum is never sent on its own. inferred
Used by
Alteration Values
ValueNumberMeaning UNKNOWN0Unknown kind. INFINITE1Never expires. DATE2Expires at a date. FIGHT_COUNT3Expires after a number of fights. FIGHTS_WON_COUNT4Expires after a number of won fights. FIGHTS_LOST_COUNT5Expires after a number of lost fights.
  • summary: How an alteration expires: never, at a date, or after a number of fights.
  • area: Game.Common
  • 29 vues
The complete list of your character's alterations (lasting effects with an expiry).
Kind event · Area Game.Character
The complete set of your character's alterations: lasting effects (boosts, maluses, states) that expire after a date or a number of fights.
WHAT TO DO WHEN YOU RECEIVE IT
1. For each entry of AlterationsEvent.alterations (an Alteration), store or replace the alteration keyed by its id. 2. The client then publishes the whole set it holds; treat the list as the current state. 3. SEND NOTHING BACK.
One declared repeated int32 is never read by the client: ignore it.
When you may send it
Requires character_loaded inferred Related messages
Unsolicited - nothing you send causes this the server sends the full list when the character is loaded and after events that change it, such as the end of a fight Fields
#FieldTypeMeaningYou set it 1alterationsrepeated AlterationEvery alteration of the character.
Element type Alteration.never
  • summary: The complete list of your character's alterations (lasting effects with an expiry).
  • area: Game.Character
  • 24 vues
One spell modifier now applies to a fighter: add it to that fighter's modifiers.
Kind event · Area Game.Spell
Adds ONE modifier to ONE fighter. It is a change, not the whole list (FightControlEvent.spell_modifiers replaces the whole list).
WHAT TO DO WHEN YOU RECEIVE IT
1. FIND the modifiers of the fighter ApplySpellModifierEvent.actor_id. Start an empty set if the fighter has none yet. 2. FIND the entry for the modifier's spell and modifier type (see SpellModifier). Create it when it is missing. 3. SET that entry's values for the modifier's action type. Leave the entry's other action types and the fighter's other entries as they are. 4. SEND NOTHING BACK.
RemoveSpellModifierEvent undoes step 3 for one action type.
When you may send it
Requires character_loaded inferred Related messages
Unsolicited - nothing you send causes this the server sends it when an effect starts modifying a fighter's spell; no request asks for it Fields
#FieldTypeMeaningYou set it 1modifierSpellModifierThe modifier to add: which spell, which property of it, how, and by how much.
Element type SpellModifier.never 2actor_idint64The fighter whose spell modifiers change. (entity id)
Observed: 783278080291never
  • summary: One spell modifier now applies to a fighter: add it to that fighter's modifiers.
  • area: Game.Spell
  • 24 vues
Your character's seven fight totals: damage done, taken and blocked, shield applied, heals done and taken, enemies finished.
Kind struct · Area Game.Fight
Seven totals for one fighter over the whole fight, as the fight result screen shows them in your character's tab. Each value is a plain count; nothing is a rate.
HOW TO READ IT
1. BaseStatistics.damage_done, BaseStatistics.damage_taken and BaseStatistics.blocked_damage are the damage totals. 2. BaseStatistics.applied_shield is the shield the fighter gave. 3. BaseStatistics.heal_done and BaseStatistics.heal_taken are the heal totals. 4. BaseStatistics.kill_count is the number of enemies the fighter finished.
The per-category breakdown (by direct hit, poison, push ...) is in DetailedStatistics, not here.
Not sent on its own — it travels inside FightStatisticsEvent.base_statistics, never sent on its own. inferred
Used by
FightStatisticsEvent Fields
#FieldTypeMeaningYou set it 1applied_shieldint32Total shield points the fighter applied.
Name of beta's FightStatisticsEvent member.never 2heal_doneint32Total healing the fighter gave.
Name of beta's FightStatisticsEvent member.never 3heal_takenint32Total healing the fighter received.
Name of beta's FightStatisticsEvent member.never 4damage_doneint32Total damage the fighter dealt.
Name of beta's FightStatisticsEvent member.never 5damage_takenint32Total damage the fighter received.
Name of beta's FightStatisticsEvent member.never 6blocked_damageint32Total damage the fighter blocked.
Name of beta's FightStatisticsEvent member.never 7kill_countint32Number of enemies the fighter finished.
Name of beta's FightStatisticsEvent member.never
  • summary: Your character's seven fight totals: damage done, taken and blocked, shield applied, heals done and taken, enemies finished.
  • area: Game.Fight
  • 30 vues
One fight challenge: which challenge, its experience and drop bonuses, its targets and its state.
Kind struct · Area Game.Challenge
One challenge of a fight (proposed, chosen or running).
HOW TO READ IT
1. Challenge.challenge_id is the challenge in the game data (name, description). 2. Challenge.xp_bonus and Challenge.drop_bonus are its two rewards, in percent; the fight's ChallengeBonus says which of the two applies. 3. Challenge.targets are the fighters the challenge is about. 4. Challenge.state says whether it is running, completed or failed.
One declared enum member is never read by the client: ignore it.
Not sent on its own — a record carried by the challenge messages, never sent on its own. inferred
Used by
ChallengeAddEvent ChallengeListEvent ChallengeProposalEvent ChallengeSelectedEvent ChallengeTargetsEvent Fields
#FieldTypeMeaningYou set it 1stateChallengeStateWhether the challenge is running, completed or failed.
Enum ChallengeState.never 2challenge_idint32The challenge's id in the game data.
The client looks it up in ChallengesDataRoot.never 3xp_bonusint32The experience bonus the challenge gives, in percent.
Shown with the experience icon.never 4drop_bonusint32The drop bonus the challenge gives, in percent.
Shown with the chest icon.never 5targetsrepeated type not documented yetThe fighters the challenge is about.never
  • summary: One fight challenge: which challenge, its experience and drop bonuses, its targets and its state.
  • area: Game.Challenge
  • 28 vues
Whether a fight challenge is completed, failed or still running.
Kind enum · Area Game.Challenge
The state of a Challenge.
HOW TO READ IT
1. CHALLENGE_RUNNING: the challenge is in progress. 2. CHALLENGE_COMPLETED: it succeeded; its bonus applies. 3. CHALLENGE_FAILED: it failed.
Not sent on its own — an enum is never sent on its own. inferred
Used by
Challenge Values
ValueNumberMeaning CHALLENGE_COMPLETED0The challenge succeeded. CHALLENGE_FAILED1The challenge failed. CHALLENGE_RUNNING2The challenge is in progress.
  • summary: Whether a fight challenge is completed, failed or still running.
  • area: Game.Challenge
  • 27 vues
What can remove an effect from a fighter: any dispel, only death, only a strong dispel, or nothing.
Kind enum · Area Game.Common
Carried by FightRemovableEffect.dissipation_state.
A dispel removes every effect it is allowed to remove; check this value first: DISSIPATED goes with any dispel, DISSIPATED_BY_STRONG_DISPEL only with a strong one, DISSIPATED_BY_DEATH only when the carrier dies, REALLY_NOT_DISSIPATED never.
Not sent on its own — an enum is never sent on its own. inferred
Used by
FightRemovableEffect Values
ValueNumberMeaning DISSIPATED0Removed by any dispel.
The client turns it into its dispellable code DISPELLABLE (beta's client name). DISSIPATED_BY_DEATH1Removed only when the carrier dies.
The client turns it into its dispellable code DISPELLABLE_BY_DEATH (beta's client name). DISSIPATED_BY_STRONG_DISPEL2Removed only by a strong dispel (or death).
The client turns it into its dispellable code DISPELLABLE_BY_STRONG_DISPEL (beta's client name). REALLY_NOT_DISSIPATED3Never removed by a dispel.
The client turns it into its dispellable code REALLY_NOT_DISPELLABLE (beta's client name).
  • summary: What can remove an effect from a fighter: any dispel, only death, only a strong dispel, or nothing.
  • area: Game.Common
  • 30 vues
One piece of haven-bag furniture: which furniture, on which cell, facing which way.
Kind struct · Area Game.Haven.Bag
One piece of furniture, in HavenBagFurnitureEvent (what the bag contains) and in HavenBagFurnitureRequest (what you save).
THE THREE MEMBERS ARE ALL INT32. DO NOT MIX THEM UP.
- element_id: WHICH furniture. Look it up in the haven-bag furniture data. - cell_id: the map cell the piece stands on. - orientation: which way it faces. The client mirrors the piece when it is odd.
Not sent on its own — a record inside the haven-bag furniture messages, never sent on its own. inferred
Used by
HavenBagFurnitureEvent HavenBagFurnitureRequest Fields
#FieldTypeMeaningYou set it 1element_idint32Which furniture: its id in the haven-bag furniture data.required 2cell_idint32The map cell the piece stands on.required 3orientationint32Which way the piece faces; the client mirrors it when the value is odd.required
  • summary: One piece of haven-bag furniture: which furniture, on which cell, facing which way.
  • area: Game.Haven.Bag
  • 26 vues
Current and maximum weight of the storage you have open (bank, haven-bag chest): refresh its weight bar.
Kind event · Area Game.Exchange
The weight of the storage you have open, NOT your own inventory's weight (InventoryWeightEvent carries that).
- current_weight: what the storage holds now. - max_weight: how much it can hold.
THE TWO ARE BOTH INT32. DO NOT MIX THEM UP: in the capture max_weight is 3085 and current_weight 2379.
The client only redraws the storage window's weight bar from it. Any other declared member is padding: ignore it.
Do not send anything back.
When you may send it
Requires context_ready inferred Related messages
Unsolicited - nothing you send causes this the server sends it whenever the open storage's weight changes; no request asks for it Fields
#FieldTypeMeaningYou set it 1max_weightint32Weight the open storage can hold at most.
Observed: 3085never 2current_weightint32Weight the open storage holds now.
Observed: 2379never
  • summary: Current and maximum weight of the storage you have open (bank, haven-bag chest): refresh its weight bar.
  • area: Game.Exchange
  • 26 vues
A fighter already shown in the current fight changed cell, direction or look.
Kind event · Area Game.Fight
Updates one fighter you ALREADY show in the current fight. The record is an ActorPositionInformation: the fighter's id, its cell and direction (EntityDisposition), and its actor information with the new ActorInformation.look.
WHAT TO DO WHEN YOU RECEIVE IT
1. Find the fighter by ActorPositionInformation.actor_id. It must already be known (from FightFighterShowEvent or FightSynchronizeEvent): the client does not create a fighter from this message, and its handler fails on an unknown id. 2. Set the fighter's cell to EntityDisposition.cell_id and its direction to EntityDisposition.direction. 3. Replace the look you keep for that fighter with the record's ActorInformation.look. 4. If a fight action sequence is running (between SequenceStartEvent and its end), the client also queues the redraw as a step of that sequence, so it is shown after the actions received before it. Apply your own state change at once; only the animation waits. 5. Send nothing back. No handler of this message builds a request.
NOT A SPAWN. FightFighterShowEvent carries the same record plus static_pose and adds a fighter; this message carries no flag and only refreshes one.
When you may send it
Requires context_ready inferred Related messages
Unsolicited - nothing you send causes this the server sends it when a fighter's position or look changes during the fight; no request asks for it Fields
#FieldTypeMeaningYou set it 1informationActorPositionInformationThe fighter's id, its new cell and direction, and its new look.
An ActorPositionInformation. The client reads its actor_id, the disposition's cell and direction, and the look of its actor information.never
  • summary: A fighter already shown in the current fight changed cell, direction or look.
  • area: Game.Fight
  • 30 vues
Everything needed to pick up a fight already in progress: the round, when the fight started, the effects in play and your fighters' spell state.
Kind event · Area Game.Fight
Restores a fight that is already running, typically after a reconnection.
WHAT TO DO WHEN YOU RECEIVE IT
1. Set the current round to FightJoinRunningEvent.game_turn. 2. Keep FightJoinRunningEvent.fight_start, when the fight started. 3. Apply FightJoinRunningEvent.effects, the effects currently on fighters. 4. Restore your fighters' spell state from FightJoinRunningEvent.resume (FightResume): cooldowns and cast counts per fighter you control, plus the global cast counts. 5. SEND NOTHING BACK.
The marks on the map are in FightJoinRunningEvent.marks (FightMark).
One more list travels with it (beta calls it the effect trigger counts); it is not named here.
When you may send it
Requires character_loaded inferred Related messages
Unsolicited - nothing you send causes this the server sends it when you join a fight already under way, notably after a reconnection; no request asks for it Fields
#FieldTypeMeaningYou set it 1resumeFightResumeYour fighters' spell state to restore.
Element type FightResume.never 2fight_startint32When the fight started.
Unit not proven: the client only forwards it in a notification nothing consumes.never 4effectsrepeated FightRemovableEffectExtendedInformationThe effects currently on fighters.
Element type FightRemovableEffectExtendedInformation.never 5game_turnint32The current round of the fight.
The client files it as the round of its current turn value.never 6marksrepeated FightMarkThe marks on the map (glyphs, traps, walls ...).
Element type FightMark.never
  • summary: Everything needed to pick up a fight already in progress: the round, when the fight started, the effects in play and your fighters' spell state.
  • area: Game.Fight
  • 27 vues
A mark laid on the fight map (glyph, trap, wall, portal, rune ...): who laid it, with which spell, on which cells, for how long.
Kind struct · Area Game.Common
A mark laid on the fight map: a glyph, a trap, a wall, a portal, a rune ... It is carried by MarkCells when it appears and by FightJoinRunningEvent.marks when you join a running fight.
TO TRACK A MARK
1. Key it by FightMark.mark_id; UnmarkCells removes it by that id. 2. Its cells: for each entry of FightMark.cells, the cell and, when the entry has a zone size, the zone of that size around it (MarkedCell). 3. Who and what: FightMark.author_id laid it, for FightMark.team, with the spell FightMark.spell_id at level FightMark.spell_level; its kind is FightMark.mark_type (MarkType: GLYPH, TRAP, WALL, PORTAL, RUNE; value 5 is a sixth kind with no known name, value 6 is never used by the client). 4. What it does when triggered: for most kinds, the spell FightMark.first_param at level FightMark.second_param (one kind triggers its own spell). 5. FightMark.active says whether it currently triggers; it lasts from FightMark.start_turn to FightMark.end_turn (FightTurn positions). 6. FightMark.mark_impact_cell is the cell the spell targeted, and FightMark.cast_cell_id the cell it was cast from.
One declared bool is never read: padding.
Not sent on its own — a record carried by MarkCells and FightJoinRunningEvent, never sent on its own. inferred
Used by
FightJoinRunningEvent MarkCells Fields
#FieldTypeMeaningYou set it 1teamTeamThe team the mark belongs to.never 2start_turnFightTurnThe turn the mark starts.
Name ours, after FightTurnWindow(start).
Type FightTurn (round, order).never 3mark_impact_cellint32The cell the spell that laid the mark targeted (its centre). (cell id)never 4mark_typeMarkTypeThe kind of mark (glyph, trap, wall, portal, rune ...).
Its enum is MarkType: GLYPH, TRAP, WALL, PORTAL, RUNE, plus an unnamed sixth kind (value 5) and a value the client never converts (6).never 6author_idint64The fighter that laid the mark. (fighter id)never 7cellsrepeated MarkedCellThe cells the mark covers.
Element type MarkedCell.never 8activeboolWhether the mark currently triggers.never 9third_paramint32Third parameter of the mark (for one kind, the colour of its cells).
Name ours, after FightMark(param3).never 10effect_idint32The spell effect that laid the mark, when known.
Explicit presence: absent is not the same as zero.
Name ours, after FightMark(effectId). Optional: absent when unknown.never 11spell_idint32The spell that laid the mark. (spell id)never 12cast_cell_idint32The cell the spell was cast from. (cell id)
Name ours, after the client's FightMark(castCellId).never 13second_paramint32Second parameter: for most kinds, the level of the triggered spell.
Name ours, after FightMark(param2). The client uses it as the triggered spell's level.never 14end_turnFightTurnThe turn the mark ends.
Name ours, after FightTurnWindow(end).
Type FightTurn (round, order).never 15first_paramint32First parameter of the mark: for most kinds, the spell it triggers.
Name ours, after FightMark(param1). The client looks it up as a spell id for the triggered spell.never 16spell_levelint32The level of that spell.never 17mark_idint32Identifier of the mark; UnmarkCells removes it by this id.never
  • summary: A mark laid on the fight map (glyph, trap, wall, portal, rune ...): who laid it, with which spell, on which cells, for how long.
  • area: Game.Common
  • 28 vues
The spell state of the fighters you control in a running fight: global cast counts and, per fighter, cooldowns and cast counts.
Kind struct · Area Game.Fight
Carried by FightJoinRunningEvent.resume.
- FightResume.slaves_information: one entry per fighter you control (FighterResumeInfo); restore each fighter's cooldowns and cast counts. - FightResume.global_cast_counts: the cast counts shared by all of them; the client hands them to every fighter's spell state.
A third list (pairs of int32) is read by the client but not named here.
Not sent on its own — a record carried by FightJoinRunningEvent, never sent on its own. inferred
Used by
FightJoinRunningEvent Fields
#FieldTypeMeaningYou set it 1global_cast_countsrepeated FightSpellCastCast counts shared by every fighter you control.
Same role and name as RefreshSpellCastStateEvent.global_cast_counts: the client hands it as the global cast counts to each fighter's spell state.
Element type FightSpellCast.never 2slaves_informationrepeated FighterResumeInfoOne entry per fighter you control.
Element type FighterResumeInfo.
Field name of beta's FightResume, whose list held the predecessor record FightResumeSlaves; no build names this field since.never
  • summary: The spell state of the fighters you control in a running fight: global cast counts and, per fighter, cooldowns and cast counts.
  • area: Game.Fight
  • 28 vues
A fighter's new spell list and spell bar for the rest of the fight.
Kind event · Area Game.Fight
Gives ONE fighter a new spell list and spell bar, in the middle of a fight. It is played in the fight's sequence, like the other fight events: apply it in the order received.
WHAT TO DO WHEN YOU RECEIVE IT
1. FIND the fighter: FightSpellsUpdateEvent.fighter_id. It is your character or a fighter you command (see FightControlEvent). 2. REPLACE that fighter's fight spell list with FightSpellsUpdateEvent.spells. When the fighter is your character, add your breed's own spells to it, as for SpellsEvent#human_spells. 3. REPLACE that fighter's spell bar with FightSpellsUpdateEvent.shortcuts. 4. SEND NOTHING BACK.
The second list of spells in the message is never read by the client: ignore it.
When you may send it
Requires character_loaded inferred Related messages
Unsolicited - nothing you send causes this the server sends it when a fighter's spells change during a fight; no request asks for it Fields
#FieldTypeMeaningYou set it 1shortcutsrepeated ShortcutThe fighter's whole spell bar; it replaces the previous one.
Element type Shortcut, as in ShortcutBarContentEvent; each entry carries its slot.never 3fighter_idint64The fighter whose spells and spell bar change.never 4spellsrepeated SpellItemThe fighter's whole spell list for the fight; it replaces the previous one.
Element type SpellItem. For your own character the client adds your breed's spells.never
  • summary: A fighter's new spell list and spell bar for the rest of the fight.
  • area: Game.Fight
  • 29 vues
A point in the fight timeline: a round and a turn order inside that round.
Kind struct · Area Game.Common
This name is not Ankama's. It was chosen for this documentation from proven client behaviour, and is a label rather than protocol documentation.
Names one turn of the fight: which round, and which turn inside the round. Effects and marks use two of them to say when they start and when they end.
HOW TO READ IT
1. FightTurn.round is the round number. 2. FightTurn.order is the position of the turn inside that round. 3. Compare two positions round first, then order. An effect lasting from start_turn to end_turn is active on every turn between them.
Not sent on its own — a record carried by FightRemovableEffect and FightMark, never sent on its own. inferred
Used by
FightMark FightRemovableEffect Fields
#FieldTypeMeaningYou set it 1orderint32The turn's position inside the round.
After the client's FightTurn.order, the field the client stores it into.never 2roundint32The round number.
After the client's FightTurn.round, the field the client stores it into.never
  • summary: A point in the fight timeline: a round and a turn order inside that round.
  • area: Game.Common
  • 27 vues
One controlled fighter's spell state in a running fight: its cooldowns and cast counts.
Kind struct · Area Game.Fight
One entry of FightResume.slaves_information.
- FighterResumeInfo.slave_id: the fighter it describes. - FighterResumeInfo.spell_cool_downs: the remaining cooldown of each listed spell. - FighterResumeInfo.cast_counts: this turn's cast count of each spell.
The client also reads two int32 counters from it (beta's predecessor record names them summon_count and bomb_count) and a list of int32; they are not named here.
Not sent on its own — a record carried by FightResume, never sent on its own. inferred
Used by
FightResume Fields
#FieldTypeMeaningYou set it 3slave_idint64The fighter this entry describes. (entity id)
The client looks up that fighter's spell state and summon counters by it.
Field name of beta's predecessor record FightResumeSlaves; no build names this record's fields.never 4spell_cool_downsrepeated FightSpellCoolDownRemaining cooldown of each listed spell of this fighter.
Element type FightSpellCoolDown.
Field name of beta's predecessor record FightResumeSlaves; no build names this record's fields.never 5cast_countsrepeated FightSpellCastThis fighter's cast count of each spell.
Same role and name as RefreshSpellCastStateEvent.cast_counts. Element type FightSpellCast.never
  • summary: One controlled fighter's spell state in a running fight: its cooldowns and cast counts.
  • area: Game.Fight
  • 31 vues
Your haven bag is now in furniture edit mode.
Kind event · Area Game.Haven.Bag
Switch to furniture edit mode: from now on you may move, add and remove furniture, and save the result with HavenBagFurnitureRequest.
It carries nothing. Edit mode lasts until HavenBagEditFinishedEvent (empty too), which switches it off.
Do not send anything back.
When you may send it
Requires context_ready inferred Related messages
Unsolicited - nothing you send causes this the server switches your haven bag to edit mode after you ask to edit it (HavenBagEditRequest, not signed yet); nothing in the client waits for it
  • summary: Your haven bag is now in furniture edit mode.
  • area: Game.Haven.Bag
  • 26 vues
Asks to enter the haven bag of the character `owner` (the 'visit' entry of the friends and guild member lists).
Kind request · Area Game.Haven.Bag
Set owner to the character id of the player whose haven bag you want to enter: a friend or a guild member, as their contact entry gives it.
Leave every other member at its default; the client never sets one.
The client sends nothing else with it and waits for no direct answer: if the owner lets you in, you change map like any other map change.
When you may send it
Requires context_ready inferred Raised by: the player picks 'visit haven bag' (ui.havenbag.visit) on a friend or a guild member proven Related messages
Reply not yet recovered: entering a haven bag is a map change: the new map arrives like any other map change. The answer messages have no signature here yet. Fields
#FieldTypeMeaningYou set it 1ownerint64Character id of the player whose haven bag you want to enter.
Observed: 14591459678required
  • summary: Asks to enter the haven bag of the character `owner` (the 'visit' entry of the friends and guild member lists).
  • area: Game.Haven.Bag
  • 28 vues
The furniture of the haven bag you are in: one Element per piece (cell, furniture id, orientation).
Kind event · Area Game.Haven.Bag
Place every Element of furniture on the current map:
1. Look the piece up in the haven-bag furniture data by element_id. 2. Put it on cell cell_id. 3. Mirror it when orientation is odd.
The client does nothing with the list until the haven-bag map has finished loading: if the map is not ready yet, it waits for it, then places the furniture. Do the same.
Do not send anything back. To change the furniture, enter edit mode and send HavenBagFurnitureRequest.
When you may send it
Requires context_ready inferred Related messages
Unsolicited - nothing you send causes this the server sends the bag's furniture when you are in a haven bag; the client may receive it before the haven-bag map has finished loading Fields
#FieldTypeMeaningYou set it 1furniturerepeated ElementEvery piece of furniture in the haven bag.
Type Element.never
  • summary: The furniture of the haven bag you are in: one Element per piece (cell, furniture id, orientation).
  • area: Game.Haven.Bag
  • 25 vues
Saves the furniture layout of your haven bag: the whole layout, in slices of at most 40 Elements.
Kind request · Area Game.Haven.Bag
Send the COMPLETE furniture layout, never only what changed. One Element per piece.
1. Send HavenBagFurnitureOpenRequest (empty). 2. Cut the list into slices of at most 40 Elements, in order. Send one HavenBagFurnitureRequest per slice, with the slice in furniture. 3. Send HavenBagFurnitureCloseRequest (empty).
The client sends all three steps in one go, with nothing in between. Leave every other member at its default.
When you may send it
Requires context_ready inferred Raised by: the player clicks Save in the haven-bag edit window inferred Related messages
Reply not yet recovered: the client sends the whole save sequence without waiting between messages; no answer to it was traced, and none has a signature here yet. Fields
#FieldTypeMeaningYou set it 2furniturerepeated ElementOne slice of the layout: at most 40 pieces, in order.
Type Element.required
  • summary: Saves the furniture layout of your haven bag: the whole layout, in slices of at most 40 Elements.
  • area: Game.Haven.Bag
  • 29 vues
What kind of mark lies on the ground: glyph, trap, wall, portal or rune.
Kind enum · Area Game.Common
The kind of a FightMark. It decides how the mark behaves for the fighters on its cells.
HOW TO READ IT
1. GLYPH, TRAP, WALL, PORTAL and RUNE are the five kinds the game has had since beta. 2. Value 5 is a sixth kind the client handles like the others; its name is not known. Keep the mark; do not treat it as one of the five. 3. Value 6 is never converted by the client: it ends up as an unknown kind. Ignore a mark carrying it.
Not sent on its own — an enum is never sent on its own. inferred
Used by
FightMark Values
ValueNumberMeaning GLYPH0A glyph: acts on the fighters standing in it, at their turn.
The client turns it into its own 'Glyph' mark kind. TRAP1A trap: triggers when a fighter walks into it, then disappears.
The client turns it into its own 'Trap' mark kind. WALL2A wall: a line of cells linking two marks.
The client turns it into its own 'Wall' mark kind. PORTAL3A portal: fighters and spells pass from one portal to another.
The client turns it into its own 'Portal' mark kind. RUNE4A rune.
The client turns it into its own 'Rune' mark kind.
  • summary: What kind of mark lies on the ground: glyph, trap, wall, portal or rune.
  • area: Game.Common
  • 31 vues
One cell of a mark, with the zone around it and its colour.
Kind struct · Area Game.Common
One entry of FightMark.cells.
1. The mark covers MarkedCell.id. 2. When MarkedCell.zone_size is above 0 and MarkedCell.cells_type is not the single-cell kind, it also covers the zone of that size around the cell. 3. MarkedCell.color is the colour to draw it with (RGB).
One declared int32 is never read: padding.
Not sent on its own — a record carried by FightMark, never sent on its own. inferred
Used by
FightMark Fields
#FieldTypeMeaningYou set it 2zone_sizeint32Size of the zone around the cell that the mark also covers; 0 for the cell alone.never 3cells_typetype not documented yetThe zone's shape, or the single-cell kind.never 4idint32A cell the mark covers. (cell id)never 5colorint32Colour of the mark's cells. (RGB)never
  • summary: One cell of a mark, with the zone around it and its colour.
  • area: Game.Common
  • 28 vues
What kind of effect a FightRemovableEffect is: a state, a triggered effect, or another boost.
Kind enum · Area Game.Common
This name is not Ankama's. It was chosen for this documentation from proven client behaviour, and is a label rather than protocol documentation.
Says how to read the parameters of a FightRemovableEffect.
HOW TO READ IT
1. STATE: the effect puts the fighter in a state. The state id is FightRemovableEffect.third_param. 2. TRIGGERED: the effect fires on an event (see FightRemovableEffect.triggers). Its three params are dice: count, sides, flat value. The server sends trigger counts for these effects. 3. Values 0, 1, 4 and 6 are boosts, like STATE: they change a characteristic by FightRemovableEffect.first_param (negative when the effect's characteristic operator in the game data is "-"). 4. Value 3 is a non-boost kind the client handles apart; values 5 and 8 carry no client behaviour. Their names are not known.
Not sent on its own — an enum is never sent on its own. inferred
Used by
FightRemovableEffect Values
ValueNumberMeaning STATE2A state: the state id is the effect's third_param.
After beta's FightTemporaryBoostEffect.state_id; the client tags the buff as a state and reads its state id from the effect's third parameter. TRIGGERED7A triggered effect: the three params are dice (count, sides, flat value).
After beta's FightRemovableEffect.triggered_effect; the client rolls the params as dice and tracks trigger counts for it.
  • summary: What kind of effect a FightRemovableEffect is: a state, a triggered effect, or another boost.
  • area: Game.Common
  • 28 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.