Difference between revisions of "ReplayWML"

From The Battle for Wesnoth Wiki
(The [command] tag: Document [custom_command])
(16 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 +
{{WML Tags}}
 
== The [command] tag ==
 
== The [command] tag ==
  
The '''[command]''' tag is used to specify an action in a replay.
+
The '''[command]''' tag is used to specify an action in a replay. It has the following attributes:
  
The following tags are recognized:
+
* '''dependent''' if true, this command is not a lone-standing command and instead belongs to an earlier command, for example an advancement choice for an earlier attack command which issued an advancement.
* '''[start]''' is used to initialize the replay so that generated random numbers can be saved.
+
* '''from_side''' the side which issued the command. Only present for dependent commands.
* '''[move]''' the player moved a unit.
+
* '''sent''' used internally in networked mp, to know which commands were already sent to the other clients.
** '''[source]''' the location the unit moved to.
+
The following tags are recognized for dependent=no(default):
** '''[destination]''' the location the unit moved from.
+
* '''[start]''': is used to initialize the replay so that generated random numbers can be saved.
* '''[recruit]''' the player recruited a unit.
+
* '''[move]''': the player moved a unit.
** ''value'' the index number of the recruited unit. (Index numbers start at 0 and include all recruitable units in alphabetical order.)
+
** '''x,y''': the path the unit walks.
** ''x'' and ''y'' the castle tile the unit is recruited on.
+
** '''skip_sighted''': whether the unit doesn't stop when discovering another unit, possible values are 'only_ally', 'all' or no, (default no).  
* '''[recall]''' the player recalled a unit. Same keys as [recruit], except that the index is in order of level, followed by required XP to advance.
+
* '''[recruit]''': the player recruited a unit.
* '''[attack]''' the player attacked.
+
** '''type''': the id of the type of unit recruited.
** ''weapon'' the index number of the weapon. Weapons are indexed by the unit designer.
+
** '''x''' and '''y''': the castle tile the unit is recruited on.
** '''[source]''' the location of the attacking unit.
+
** '''[from]'''
** '''[destination]''' the location of the defending unit.
+
*** '''x''' and '''y''': the keep tile the unit is recruited from.
* '''[end_turn]''' the player ended his turn.
+
* '''[recall]''': the player recalled a unit. Same keys as [recruit], except that '''value''' is the id of the unit being recalled.
* '''[choose]''' the player was given an option by the scenario.
+
* '''[attack]''': the player attacked.
** ''value'' the index number of the option chosen. Index numbers are given by the scenario designer.
+
** '''weapon''': the index number of the weapon. Weapons are indexed by the unit designer.
* '''[random]''' if the action required a random number, this describes the random number that was generated. In 1.0.x, nested '''[random]''' tags are used and only one is allowed at this level. In 1.1.x, a '''[random]''' tag is used at this level for each value.
+
** '''defender_weapon''': the index number of the defenders weapon. Weapons are indexed by the unit designer, '-1' to choose the best weapon locally. The '-1' option is deprecated because it can cause OOS.
** ''value'' list of generated random values. In 1.1.x only a single value can be used.
+
** '''[source]''': the location of the attacking unit.
** '''[results]''' used for '''[attack]''' commands. Describes the results of the battle.
+
** '''[destination]''': the location of the defending unit.
*** ''chance'' the percent chance that the attack had to hit.
+
* '''[disband]''': the player removes a unit from his recall list.
*** ''damage'' the amount of damage that the attack would do if it hits.
+
** '''value''' the id of the removed unit.
*** ''dies'' whether the defender dies from the hit.
+
* '''[end_turn]''': the player ended his turn.
*** ''hits'' whether the attack hits.
+
* '''[init_side]''': new turn is starting for a side. This fires begin of turn events.
** '''[random]''' additional lists of generated random values. '''[random]''' has the same format as the first '''[random]''' and describes the other numbers that were generated. In 1.1.x, '''[random]''' tags at this level are not used.
+
* '''[fire_event]''': a specific event was raised. This is mainly used for right-click menu items. ([set_menu_item])
 +
** '''raise''': the name of the event
 +
** '''[source]''': the location of the event
 +
** '''[set_variable]''' (deprecated): set WML variable(s) before firing.
 +
*** '''name''': the name of the variable
 +
*** '''value''': a string value (literal)
 +
* '''[lua_ai]''' {{DevFeature1.13|12}} This has been removed.
 +
** '''code''' the lua code that is executed.
 +
* '''[custom_command]''' {{DevFeature1.13|12}} Executes a custom command registered by Lua code
 +
** '''name''': The name of the custom command to run.
 +
** '''[data]''': Arbitrary data to be passed to the custom command.
 +
* '''[auto_shroud]''' a player toggled delayed shroud update
 +
** '''active''' whether automatic shroud updates will be active.
 +
* '''[update_shroud]''' a player manually updated shroud.
 +
 
 +
Non dependent commands can have a [checkup] tag which is used to check whether the data generated in the replay matches the data generated during the original game, The [checkup] tag can contain different [result] tags whose content is different for the different actions.
 +
For [attack] commands the [result]s give information about the single hits and can have the following attributes:
 +
** '''chance''': the percent chance that the attack had to hit.
 +
** '''damage''': the amount of damage that the attack would do if it hits.
 +
** '''hits''': whether the attack hits.
 +
Or
 +
** '''dies''': whether the defender dies from the hit.
 +
 
 +
The following tags are recognized for dependent=true:
 +
* '''[choose]''': the player was given an option by the scenario or for an advancement path.
 +
** '''value''': the index number of the option chosen. Index numbers are given by the scenario designer.
 +
* '''[input]''': if a lua code used [[LuaWML:Misc#wesnoth.synchronize_choice]] this tag contains the returned table.
 +
* '''[global_variable]''' a WML code used with [get_global_variable]
 +
* '''[random_seed]''' A user actions uses the rng and thus new random seed is needed.
  
 
== See Also ==
 
== See Also ==

Revision as of 04:13, 13 April 2018

[edit]WML Tags

A:

abilities, about, achievement, achievement_group, add_ai_behavior, advanced_preference, advancefrom, advancement, advances, affect_adjacent, ai, allied_with, allow_end_turn, allow_extra_recruit, allow_recruit, allow_undo, and, animate, animate_unit, animation, aspect, attack (replay, weapon), attack_anim, attacks (special, stats), avoid;

B:

base_unit, background_layer, berserk, binary_path, break, brush;

C:

campaign, cancel_action, candidate_action, capture_village, case, chance_to_hit, change_theme, chat, checkbox, choice, choose, clear_global_variable, clear_menu_item, clear_variable, color_adjust, color_palette, color_range, command (action, replay), continue, credits_group, criteria;

D:

damage, death, deaths, default, defend, defends, defense, delay, deprecated_message, destination, difficulty, disable, disallow_end_turn, disallow_extra_recruit, disallow_recruit, do, do_command, drains, draw_weapon_anim;

E:

editor_group, editor_music, editor_times, effect, else (action, animation), elseif, endlevel, end_turn (action, replay), enemy_of, engine, entry (credits, options), era, event, experimental_filter_ability, experimental_filter_ability_active, experimental_filter_specials, extra_anim;

F:

facet, facing, fake_unit, false, feedback, female, filter (concept, event), filter_adjacent, filter_adjacent_location, filter_attack, filter_attacker, filter_base_value, filter_condition, filter_defender, filter_enemy, filter_location, filter_opponent, filter_own, filter_owner, filter_radius, filter_recall, filter_second, filter_second_attack, filter_self, filter_side, filter_student, filter_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, found_item, for, foreach, frame;

G:

game_config, get_global_variable, goal, gold, gold_carryover;

H:

harm_unit, has_ally, has_attack, has_unit, has_achievement, have_location, have_unit, heal_on_hit, heal_unit, healed_anim, healing_anim, heals, hide_help, hide_unit, hides;

I:

idle_anim, if (action, animation, intro), illuminates, image (intro, terrain), init_side, insert_tag, inspect, item, item_group;

J:

jamming_costs, join;

K:

kill, killed;

L:

label, language, leader, leader_goal, leadership, leading_anim, levelin_anim, levelout_anim, lift_fog, limit, literal, load_resource, locale, lock_view, lua;

M:

male, menu_item, message, micro_ai, missile_frame, modification, modifications, modify_ai, modify_side, modify_turns, modify_unit, modify_unit_type, move, move_unit, move_unit_fake, move_units_fake, movement_anim, movement costs, movetype, multiplayer, multiplayer_side, music;

N:

not, note;

O:

object, objective, objectives, on_undo, open_help, option, options, or;

P:

part, petrifies, petrify, place_shroud, plague, poison, post_movement_anim, pre_movement_anim, primary_attack, primary_unit, print, progress_achievement, put_to_recall_list;

R:

race, random_placement, recall (action, replay), recalls, recruit, recruit_anim, recruiting_anim, recruits, redraw, regenerate, remove_event, remove_item, remove_object, remove_shroud, remove_sound_source, remove_time_area, remove_trait, remove_unit_overlay, repeat, replace_map, replace_schedule, replay, replay_start, reset_fog, resistance (ability, unit), resistance_defaults, resource, return, role, rule;

S:

save, scenario, screen_fade, scroll, scroll_to, scroll_to_unit, secondary_attack, secondary_unit, section, select_unit, sequence, set_achievement, set_extra_recruit, set_global_variable, set_menu_item, set_recruit, set_specials, set_variable, set_variables, sheath_weapon_anim, show_if (message, objective, set_menu_item), show_objectives, side, skirmisher, slider, slow, snapshot, sound, sound_source, source (replay, teleport), special_note, specials, split, stage, standing_anim, statistics, status, store_gold, store_items, store_locations, store_map_dimensions, store_reachable_locations, store_relative_direction, store_side, store_starting_location, store_time_of_day, store_turns, store_unit, store_unit_defense, store_unit_defense_on, store_unit_type, store_unit_type_ids, store_villages, story, swarm, sub_achievement, switch, sync_variable;

T:

target, team, teleport (ability, action), teleport_anim, terrain, terrain_defaults, terrain_graphics, terrain_mask, terrain_type, test, test_condition, test_do_attack_by_id, text_input, textdomain, theme, then, tile, time, time_area, topic, toplevel, trait, transform_unit, traveler, true, tunnel;

U:

unhide_unit, unit, unit_overlay, unit_type, unit_worth, units, unlock_view, unpetrify, unstore_unit, unsynced;

V:

value, variable, variables, variant, variation, victory_anim, village, vision_costs, volume;

W:

while, wml_message, wml_schema;

Z:

zoom;

The [command] tag

The [command] tag is used to specify an action in a replay. It has the following attributes:

  • dependent if true, this command is not a lone-standing command and instead belongs to an earlier command, for example an advancement choice for an earlier attack command which issued an advancement.
  • from_side the side which issued the command. Only present for dependent commands.
  • sent used internally in networked mp, to know which commands were already sent to the other clients.

The following tags are recognized for dependent=no(default):

  • [start]: is used to initialize the replay so that generated random numbers can be saved.
  • [move]: the player moved a unit.
    • x,y: the path the unit walks.
    • skip_sighted: whether the unit doesn't stop when discovering another unit, possible values are 'only_ally', 'all' or no, (default no).
  • [recruit]: the player recruited a unit.
    • type: the id of the type of unit recruited.
    • x and y: the castle tile the unit is recruited on.
    • [from]
      • x and y: the keep tile the unit is recruited from.
  • [recall]: the player recalled a unit. Same keys as [recruit], except that value is the id of the unit being recalled.
  • [attack]: the player attacked.
    • weapon: the index number of the weapon. Weapons are indexed by the unit designer.
    • defender_weapon: the index number of the defenders weapon. Weapons are indexed by the unit designer, '-1' to choose the best weapon locally. The '-1' option is deprecated because it can cause OOS.
    • [source]: the location of the attacking unit.
    • [destination]: the location of the defending unit.
  • [disband]: the player removes a unit from his recall list.
    • value the id of the removed unit.
  • [end_turn]: the player ended his turn.
  • [init_side]: new turn is starting for a side. This fires begin of turn events.
  • [fire_event]: a specific event was raised. This is mainly used for right-click menu items. ([set_menu_item])
    • raise: the name of the event
    • [source]: the location of the event
    • [set_variable] (deprecated): set WML variable(s) before firing.
      • name: the name of the variable
      • value: a string value (literal)
  • [lua_ai] (Version 1.13.12 and later only) This has been removed.
    • code the lua code that is executed.
  • [custom_command] (Version 1.13.12 and later only) Executes a custom command registered by Lua code
    • name: The name of the custom command to run.
    • [data]: Arbitrary data to be passed to the custom command.
  • [auto_shroud] a player toggled delayed shroud update
    • active whether automatic shroud updates will be active.
  • [update_shroud] a player manually updated shroud.

Non dependent commands can have a [checkup] tag which is used to check whether the data generated in the replay matches the data generated during the original game, The [checkup] tag can contain different [result] tags whose content is different for the different actions. For [attack] commands the [result]s give information about the single hits and can have the following attributes:

    • chance: the percent chance that the attack had to hit.
    • damage: the amount of damage that the attack would do if it hits.
    • hits: whether the attack hits.

Or

    • dies: whether the defender dies from the hit.

The following tags are recognized for dependent=true:

  • [choose]: the player was given an option by the scenario or for an advancement path.
    • value: the index number of the option chosen. Index numbers are given by the scenario designer.
  • [input]: if a lua code used LuaWML:Misc#wesnoth.synchronize_choice this tag contains the returned table.
  • [global_variable] a WML code used with [get_global_variable]
  • [random_seed] A user actions uses the rng and thus new random seed is needed.

See Also