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
  • Adhésion

  • Dernière visite

Tout ce qui a été publié par Smooth

  1. Smooth a posté un record dans Notes de version Asteroboard
    0.4.0 - 17/10/2026Le nouveau Studio transforme la carte du monde en éditeur : cliquez sur les cartes que votre bot doit visiter, indiquez ce qu'il doit faire à chaque étape, et Asteroboard génère le plan pour vous, sans aucune ligne de code. ✨ AjoutéLe Studio : dessinez l'itinéraire de votre bot sur la carte du monde. Dans l'éditeur de packages, cliquez sur une carte, dessinez une zone, sélectionnez une sous-zone ou recherchez des cartes, puis définissez l'ordre des étapes et le nombre de tours que votre bot doit effectuer. Aucune ligne de code nécessaire. Indiquez à votre bot quoi faire à chaque étape. Ajoutez les fonctions de vos packages à chaque étape, ainsi que des délais d'attente, des conditions « attendre jusqu'à », des conditions « uniquement si », des tentatives supplémentaires et des arrêts. Prêt à faire face aux imprévus. Les interruptions, comme « inventaire plein, aller à la banque », sont vérifiées à l'arrivée sur chaque carte et avant chaque étape. Lorsqu'une interruption s'applique, son plan est exécuté, puis votre bot reprend son itinéraire là où il l'avait laissé. Démarrage en un clic. Choisissez Start with the Studio dans New package, ou ajoutez un plan à n'importe lequel de vos packages avec + plan. Un plan est un fichier de votre package, et View as code affiche le script généré. Les erreurs sont détectées avant que votre bot ne se déplace. Les problèmes apparaissent au fur et à mesure de la création du plan et sont comptabilisés dans l'indicateur des problèmes de l'éditeur. Les paramètres de votre plan sont disponibles sur la page du bot. Les paramètres créés dans le Studio peuvent apparaître dans l'onglet Settings du bot. Cliquez sur Add it pour ajouter les paramètres nécessaires à votre package, pour chacun de ses plans. Apprenez à partir des plans des autres utilisateurs. La page d'un package répertorie désormais ses plans. Vous pouvez ouvrir n'importe lequel d'entre eux, même s'il appartient à un package que vous n'avez pas créé, puis le copier dans l'un de vos packages avec Copy into..., en incluant tous les plans qu'il utilise. Sélectionnez les éléments du jeu par leur nom. Les paramètres qui demandent un élément du jeu (objet, monstre, carte, sous-zone, etc.) proposent désormais une fonction Search by name. Les cartes, sous-zones et zones peuvent également être sélectionnées avec Pick on the world map. Plus besoin de rechercher les identifiants. Plusieurs comptes sur un seul ordinateur. Un bot qui relaie votre client de jeu peut désormais utiliser son propre identifiant d'appareil (HWID) au lieu de celui de votre ordinateur. Chaque compte apparaît ainsi comme s'il utilisait son propre ordinateur, ce qui est nécessaire pour les serveurs mono-compte. Activez l'option Use it when relaying my game client dans la section Device identifier (HWID), soit lors de l'ajout du bot dans l'onglet Connection, soit ultérieurement dans sa Bot configuration. Cette option est désactivée par défaut : son comportement reste donc inchangé tant que vous ne l'activez pas. Un seul bot ayant cette option activée peut attendre votre client de jeu à la fois. 🔄 ModifiéImportation de fichiers .zip : Asteroboard vous indique désormais lorsque le fichier déposé n'est pas un fichier .zip, au lieu de l'ignorer silencieusement. Meilleure accessibilité avec un lecteur d'écran : les boutons de pagination des tableaux, les notifications et les champs numériques sont désormais annoncés dans la langue de l'interface. Dépendances mises à jour. 🐛 CorrigéDans Server › Console, le bouton d'envoi affiche désormais un indicateur de chargement pendant l'envoi du message, au lieu de se transformer en bouton d'arrêt qui ne faisait rien. L'éditeur de packages ne signale plus comme erreurs les importations provenant de vos autres packages, comme @asterobot:base. Un onglet laissé ouvert sur asteroboard.asterobot.net continue de fonctionner après une mise à jour : les nouvelles pages que vous ouvrez se chargent toujours correctement.
  2. Smooth a posté un record dans Types
    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
  3. Smooth a posté un record dans Types
    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
  4. Smooth a posté un record dans Types
    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
  5. Smooth a posté un record dans Types
    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
  6. Smooth a posté un record dans Types
    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
  7. Smooth a posté un record dans Events
    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
  8. Smooth a posté un record dans Types
    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
  9. Smooth a posté un record dans Types
    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
  10. Smooth a posté un record dans Types
    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
  11. Smooth a posté un record dans Types
    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
  12. Smooth a posté un record dans Types
    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
  13. Smooth a posté un record dans Types
    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
  14. Smooth a posté un record dans Types
    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
  15. Smooth a posté un record dans Types
    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
  16. Smooth a posté un record dans Types
    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
  17. Smooth a posté un record dans Types
    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
  18. Smooth a posté un record dans Types
    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
  19. Smooth a posté un record dans Events
    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
  20. Smooth a posté un record dans Types
    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
  21. Smooth a posté un record dans Types
    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
  22. Smooth a posté un record dans Types
    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
  23. Smooth a posté un record dans Types
    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
  24. Smooth a posté un record dans Types
    A fighter's team, whether it is alive, and the position it was placed at. Kind struct · Area Game.Common The spawn_information of FightFighterInformation. team is the fighter's side - see Team; the attacker's side is the challenger team. alive is false for a fighter that is dead but still listed. position is the fighter's ActorPositionInformation. Not sent on its own — it travels inside the fighter record of FightFighterShowEvent. inferred Used by FightFighterInformation SummonContextInformation Fields #FieldTypeMeaningYou set it 1aliveboolWhether the fighter is alive.never 2teamTeamThe fighter's side - see Team.never 3positionActorPositionInformationWhere the fighter stands - see ActorPositionInformation.never
  25. Smooth a posté un record dans Types
    A fighter slides in a straight line from one cell to another (pushed or pulled). Kind struct · Area Game.Action One step of a fight action (GameActionFightEvent): a fighter is moved along a line, by a push or a pull. READ IT LIKE THIS 1. Slide.target_id is the fighter that moves. The action's GameActionFightEvent.source_id is the fighter whose spell caused it. 2. It leaves Slide.start_cell and stops on Slide.end_cell: put it on the end cell. 3. SEND NOTHING BACK; the next action of the sequence follows. WHAT THE CLIENT DOES. It animates a slide from the start cell to the end cell. If the fighter is not on the start cell when the step plays, it jumps it to the end cell instead. Not sent on its own — it travels inside GameActionFightEvent.slide. proven Used by GameActionFightEvent Fields #FieldTypeMeaningYou set it 1target_idint64The fighter that slides. (fighter (entity) id)never 2start_cellint32The cell the fighter leaves. (map cell id)never 3end_cellint32The cell the fighter ends on. (map cell id) Where the fighter stands after the step: update its position to this cell.never

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.