DirectActionsWML

Материал из Wesnoth Life Wiki
Перейти к: навигация, поиск

Прямые операции

Прямыми называются операции, напрямую влияющие на геймплей, которые могут быть вызваны внутри событий.

К ним относятся следующие теги:

[endlevel]

Завершает сценарий.

  • result: перед тем, как сценарий завершается, вызываются все события с name=result. Если result=victory - игрок переходит на следующий уровень, если result=defeat - совершается переход в главное меню.

При result=victory также доступны следующие ключи:

  • bonus: Должен ли игрок получить бонус (максимальное количество золота, которое можно получить, ожидая завершения уровня). Значение по умолчанию: bonus=yes.
  • carryover_report: Должен ли игрок получить отчёт о пройденном сценарии. По умолчанию carryover_report=yes.
  • save: Должно ли быть создано "сохранение начала сценария" для следующего сценария, по умолчанию save=yes. Не путайте это с сохранением реплея текущего сценария.
  • replay_save: Можно ли сохранить реплей текущего сценария, по умолчанию replay_save=yes. В этом случае для того, чтобы определить, будет ли реплей сохранён, используются настройки пользователя. Если no, то реплей не будет сохранён вне зависимости от настроек игрока.
  • linger_mode: Если ...=yes, экран "сереет" и нет возможности сохраниться перед следующим сценарием. По умолчанию linger_mode=yes.
  • reveal_map: Если 'no', карта не показывается целиком в конце игры (только для мультиплеера, по умолчанию 'yes').
  • next_scenario: (Значение по умолчанию определяется в теге [scenario]) ID следующего сценария. Все юниты, которые контролируются стороной 1 на этот момент становятся доступны для вызова в next_scenario.
  • carryover_percentage: По умолчанию 80% золота переносится в следующий сценарий, этот ключ позволяет изменить это значение.
  • carryover_add: Если true, золото будет добавлено к золоту начала сценария, если false, следующий сценарий начнётся с текущим значением золота (за исключением "налогов") или минимальным значением для следующего сценария. По умолчанию false.
  • music: Список с разделителями запятыми музыкальных треков, один из которых выбирается и проигрывается после выполнения любого события, связанного с концом уровня. По умолчанию victory_music используется при победе и defeat_music при поражении (значение по умолчанию определяется в [scenario] или [game_config]).
  • end_credits: (версия 1.11 и выше) Отображать ли титры после конца однопользовательской кампании. По умолчанию yes. Обратите внимание, что этот тег имеет кумулятивный эффект - он сохраняется, даже если endlevel не вызывает конца кампании. См также CampaignWML.
  • end_text: (переводимо) Текст, который показывается в центре чёрного экрана в конце кампании. По умолчанию "The End".Обратите внимание, что этот тег имеет кумулятивный эффект - он сохраняется, даже если endlevel не вызывает конца кампании. См также CampaignWML.
  • end_text_duration: Задержка в миллисекундах перед отображением титров в конце кампании. Другими словами, этот ключ определяет как долго будет показан end_text. По умолчанию 3500. Обратите внимание, что этот тег имеет кумулятивный эффект - он сохраняется, даже если endlevel не вызывает конца кампании. См также CampaignWML.

[unit]

Добавляет бойца на карту. Синтаксис смотрите в SingleUnitWML. Шаблон:Short Note:Predefined Macro

  • to_variable: Запись в переменную вместо ввода в игру.

[recall]

Призывает бойца к лидеру (бесплатно).

  • StandardUnitFilter: Будет призван первый соответствующий фильтру боец. Если бойцы не найдены, тег игнорируется. If a comma separated list is given, every unit currently considered for recall is checked against all the types (not each single one of the types against all units). Тег [filter] использовать не нужно.
  • x,y: Локация бойца (вместо области рядом с лидером).
  • show: Определяет, должно ли появление бойца быть анимировано (по умолчанию: yes). При отключенной опции он повляется мгновенно.
  • fire_event: Определяет, должны ли вызываться события prerecall и recall (по умолчанию: no).
  • check_passability: Определяет, должна ли выполнятся проверка на проходимость территории с размещением на ближайших проходимых полях (по умолчанию: yes).

[teleport]

Телепортирует бойца на карте. Шаблон:Short Note:Predefined Macro

  • [filter]: StandardUnitFilter, будет телепортирован первый из найденных бойцов.
  • x,y: Целевые координаты.
  • clear_shroud: should shroud be cleared on arrival
  • animate: should a teleport animation be played (if the unit doesn't have a teleport animation, it will fade out/fade in)
  • check_passability: По умолчанию бойцы не могут телепортироваться на непроходимую местность. Установка в "no" это позволяет.

(Примечание: Также существует способность к телепортации, см. AbilitiesWML.)

[terrain_mask]

Изменяет ландшафт карты. Смотрите TerrainMaskWML.

[terrain]

Изменяет ландшафт карты.

  • terrain: Код используемого ландшафта (см. TerrainCodesWML).
  • layer: Определяет, какие слои требуется изменить (overlay|base|both, по умолчанию: both).
  • replace_if_failed: Указывает, что при фейле с заменой отдельного слоя нужно попробовать заменить местность целиком (по умолчанию: no). If terrain is an overlay only terrain, use the default_base as base layer. If the terrain has no default base, do nothing.
  • StandardLocationFilter: Определяет изменяемую местность. Но т.к. атрибут фильтра terrain перебивается собственным ключом данного тега, для фильтрации по типу ландшафта необходимо использовать вложенный StandardLocationFilter: [and]terrain=код_для_фильтра[/and].

[gold]

Изменяет золотой запас указанной стороны.

  • amount: Количество золота, которое нужно прибавить или отнять.
  • side: Номер стороны, либо их список.
    Примечание: Дефолтное значение side=1 устарело — сторону нужно указывать.
  • [filter_side] с параметрами StandardSideFilter (в 1.11 не поддерживается).
  • (версия 1.11 и выше) ключи и теги StandardSideFilter; по умолчанию применяется ко всем сторонам (стандартное поведение SSF).

[unstore_unit]

Создает бойца из переменной и вводит его в игру. Переменная должна иметь определенную структуру описания бойца и не может быть массивом — для обработки массивов бойцов нужно использовать циклы. Переменная не очищается. Также смотрите: [store_unit], [while] и [clear_variable].

  • variable: Имя используемой переменной.
  • find_vacant: Определяет, должен ли боец появляться в ближайшей свободной ячейке, если определенные координаты кем-то заняты. При значение 'no' (по умолчанию) любой боец, занимающей его место будет уничтожен.
  • check_passability: (boolean yes|no, default yes): If yes, checks for terrain passability when placing the unit. This key has no effect if find_vacant=no (no check performed then). Before 1.9 this key is always "no".
  • text: Отлетающая надпись, отображаемае над бойцом в момент его появления. Поддерживает локализацию.
  • red, green, blue: Цвет отлечающего текста (по умолчанию: 0,0,0). Значения могут варьироваться от 0 до 255. Возможно, вам будет удобней воспользоваться макросами {COLOR_HARM} и {COLOR_HEAL} (заменяют всю строку "red,green,blue=").
  • advance: Определяет, продвигать ли бойца, если у него хватает на это опыта (по умолчанию: true). When modifying XP make sure to do it from inside a synchronized event or it may lead to OOS errors especially when several advancement paths exist. Note that advance and post advance events are called, so infinite loops can happen.
  • fire_event: (boolean yes|no, default no) Whether any advance/post advance events shall be fired if an advancement takes place, no effect otherwise.
  • animate: (версия 1.11 и выше) (boolean yes|no, default yes) Whether "levelout" and "levelin" (or fade to white and back) animations shall be played if an advancement takes place, no effect otherwise.
  • x ,y: Переопределяет расположение бойца; "x,y=recall,recall" поместит его в список призыва родной стороны.

Бойцы могут быть введены с нулевым или отрицательным показателем здоровья. This can be useful if modifying a unit in its last_breath event (as the unit's death is already the next step), but tends to look wrong in other cases. In particular, it is possible to have units with negative hit points in play. Such units are aberrations, subject to unusual behavior as the game compensates for them. (For example, such units are currently automatically hit–and killed–in combat.) The details of the unusual behavior are subject to change between stable releases without warning.

[allow_recruit]

Allows a side to recruit units it couldn't previously recruit.

  • type: Типы бойцов, которые отныне могут вербоваться стороной.
  • side: Номер стороны, либо их список.
    Примечание: Дефолтное значение side=1 устарело — сторону нужно указывать.
  • (версия 1.11 и выше) Ключи и теги StandardSideFilter; по умолчанию применяется ко всем сторонам (стандартное поведение SSF).

[allow_extra_recruit]

Allows a leader to recruit units it couldn't previously recruit. These types add to the types the leader can recruit because of [side]recruit=.

  • extra_recruit: the types of units that the unit can now recruit.
  • StandardUnitFilter: All units matching this filter are modified. Does not match on recall list units.

[disallow_recruit]

Prevents a side from recruiting units it could previously recruit.

  • type: Типы бойцов, которые отныне не могут вербоваться стороной.
  • side: Номер стороны, либо их список.
    Примечание: Дефолтное значение side=1 устарело — сторону нужно указывать.
  • (версия 1.11 и выше) ключи и теги StandardSideFilter; по умолчанию применяется ко всем сторонам (стандартное поведение SSF).

[disallow_extra_recruit]

Prevents a leader from recruiting units it could previously recruit.

  • extra_recruit: the types of units that the side can no longer recruit.
  • StandardUnitFilter: All units matching this filter are modified. Does not match on recall list units.

[set_recruit]

Sets the units a side can recruit.

  • recruit: the types of units that the side can now recruit.
  • side: (default=1) the number of the side that is having its recruitment set. This can be a comma-separated list. note: Default side=1 for empty side= is deprecated.
  • StandardSideFilter (версия 1.11 и выше) tags and keys; default for empty side= is all sides, as usual in a SSF.

[set_extra_recruit]

Sets the units a leader can recruit.

  • extra_recruit: the types of units that the leader can now recruit.
  • StandardUnitFilter: All units matching this filter are modified. Does not match on recall list units.

[modify_side]

Изменяет параметры определенной игровой стороны посреди сценария. Поддерживаются только следующее:

  • side: Номер изменяемой стороны.
  • [filter_side] с параметрами StandardSideFilter.
  • gold: Количество золота.
  • income: Доход, получаемый в начале каждого хода.
  • village_gold: Доход, получаемый с каждой захваченной деревни.
  • recruit: Список типов бойцов для вербовки на замену текущему.
  • team_name: Команда (союз), в которой состоит сторона.
  • user_team_name: Отображаемое наименование команды.
  • controller: the identifier string of the side's controller. Uses the same syntax of the controller key in the [side] tag.
  • fog: Отображение тумана.
  • shroud: Отображение пелены.
  • hidden: Скрытие из панели состояния.
  • color: (версия 1.11 и выше) Цветовой диапазон, задаваемый строчным ("red", "blue" и т.д.) или числовым идентификатором. Все стандартные диапазоны определены в файле data/core/team_colors.cfg.
  • [ai]: Изменяет параметры искусственного интелекта, используя синтаксис, описанный в AiWML.
  • switch_ai: Заменяет ИИ стороны на прописанный в указанном файле (игнорируя значение [ai]).
  • reset_maps: (версия 1.11 и выше) If set to "yes", then the shroud is spread to all hexes, covering the parts of the map that had already been explored by the side, including hexes currently seen. (Seen hexes will be cleared at the end of most events; they can also be manually cleared with [redraw].) This is only effective if shroud is on, but this is evaluated after shroud= (and before shroud_data=).
  • reset_view: (версия 1.11 и выше) If set to "yes", then the fog of war is spread to all hexes, covering the parts of the map that had already been seen this turn by the side, including hexes currently seen, excluding hexes affected by multi-turn [lift_fog]. (Seen hexes will be cleared at the end of most events; they can also be manually cleared with [redraw].) This is only effective if fog is on, but this is evaluated after fog=.
  • share_maps: change the share_maps side attribute. Be sure to use shroud=yes for that side and have it as an ally
  • share_view: change the share_view side attribute. Be sure to use fog=yes for that side and have it as an ally
  • shroud_data: Изменяет пелену, используя тот же формат, что при определении стороны.
  • suppress_end_turn_confirmation: (версия 1.11 и выше) Boolean value controlling whether or not a player is asked for confirmation when skipping a turn.

[modify_turns]

Изменяет предел ходов посреди сценария.

  • value: Новый лимит ходов.
  • add: При использовании вместо value добавляет число к текущему лимиту (может быть отрицательным).
  • current: changes the current turn number after applying turn limit modifications, if any. It is not possible to change the turn number to exceed the turn limit (1 <= текущий ход <= предел).

[allow_end_turn]

Разрешает игрокам завершать ходы через интерфейс (если ранее использовалось [disallow_end_turn]). Данная операция не принимает никаких параметров.

[disallow_end_turn]

Запрещает игрокам завершать ходы через интерфейс. Данная операция не принимает никаких параметров.

[capture_village]

Меняет владельца деревни.

  • StandardLocationFilter: all village locations matching the filter are affected.
  • side: the side that takes control of the village. This side needs to have a leader (canrecruit=yes). If the side key is not given, the village will become neutral (unless [filter_side] is present, in which case that side fiter decides, see below).
  • [filter_side] with StandardSideFilter tags and keys as arguments; if both this tag and inline side= are present it's an error. Otherwise, the first matching side gets ownership (or the village becomes neutral if none match).
  • fire_event (boolean yes|no, default: no): Whether any capture events shall be fired.

[kill]

Удаляет из игры всех бойцов, соответствующих фильтру (включая список призыва).

  • StandardUnitFilter: Selection criterion; do not use a [filter] tag.
  • animate: if 'yes', displays the unit dying (fading away).
  • fire_event: if 'yes', triggers any appropriate 'die' events (See EventWML). Note that events are only fired for killed units that have been on the map (as opposed to recall list).
  • [secondary_unit] with a StandardUnitFilter as argument. Do not use a [filter] tag. Has an effect only if fire_event=yes. The first on-map unit matching the filter becomes second_unit in any fired die and last breath events. If an on-map unit matches and if there are several units killed with a single [kill] tag, second_unit is this same unit for all of them. If no on-map unit matches or [secondary_unit] isn't present, the variable second_unit in each of the die and last breath events is always the same as the variable unit (the dying unit).

[move_unit]

Перемещает бойца на указанную позицию. Также можно юзать макрос MOVE_UNIT.

  • StandardUnitFilter: Перемещены будут все соответствующий фильтру бойцы; и если указанная область уже кем-то занята, они разместятся в ближайших свободных.
  • to_x: X-координата целевой локации. Can be a comma-separated list, in which case the unit follows this given path during the move.
  • to_y: Y-координата целевой локации. Можно указать список.
  • fire_event (optional, boolean yes|no, default no): Whether any according moveto events shall be fired. The target location ($x1, $y1 in the event) may not be the same location that the unit was tried to be moved to, if the original target location is occupied or impassable.
  • check_passability (boolean yes|no, default yes): Whether the terrain the unit is moved to should be checked for suiting the unit. (If it does not, a nearby suitable hex is chosen.)

[modify_ai]

Changes AI objects (aspects, goals, candidate actions or stages) for a specified side. See AiWML for full description.

  • action (string): Takes values 'add', 'change', 'delete' or 'try_delete' to do just that for the AI object.
  • path (string): Describes which AI object is to be modified.
  • [facet], [goal], [candidate_action] or [stage]: Details about the AI object to be modified.
  • StandardSideFilter (версия 1.11 и выше) tags and keys; default for empty side= is all sides, as usual in a SSF.
  • [filter_side] with a StandardSideFilter as argument (версия 1.11 и выше): [modify_ai][filter_side] is deprecated, use the new inline SSF.

[modify_unit]

works similar to the MODIFY_UNIT macro.

  • [filter] with a StandardUnitFilter as argument. All units matching this filter are modified. Matches on recall list units too.
  • Accepts generally the syntax inside of wml unit variables created by [store_unit] which can be viewed in a savefile or by using the :inspect command. Can add traits with immediate effect. Cannot remove things. Subtags with the same name must be written in the correct order to match them with the tag they are supposed to modify.

example usage (see also the test scenario):

[modify_unit]
  [filter]
    x,y=38,6
  [/filter]
  hitpoints=10
  {TRAIT_HEALTHY}
[/modify_unit]

The unit which is currently modified is accessible via $this_unit, e.g. hitpoints = "$($this_unit.hitpoints / 2)" to set the hitpoints of all units to half of their particular maxima. This this_unit variable is independent from the this_unit variable available in the SUF used to determine which units to modify (first all matching units are gathered, and then all those are modified).

note: The syntax allowed is somehow vague. Just try things and possibly correct/add/modify this documentation. (a forum thread discusses some related issues).

[transform_unit]

transforms every unit matching the filter to the given unit type. Keeps intact hitpoints, experience and status. If the unit is transformed to a non-living type (undead or mechanical), it will be also unpoisoned.

  • StandardUnitFilter: do not use a [filter] tag.
  • transform_to: the unit type in which all the units matching the filter will be transformed. If missing, the units will follow their normal advancement.

[petrify]

  • StandardUnitFilter в виде параметра. Окаменяет всех соответствующих фильтру бойцов, включая список призыва.

[unpetrify]

  • StandardUnitFilter в виде параметра. Снимает окаменение со всех соответствующих фильтру бойцов, включая список призыва.

[object]

Gives some unit an object which modifies their stats in some way.

  • id: (Optional) when the object is picked up, a flag is set for id. The object cannot be picked up if a flag for id has been set. This means that any object with an id can only be used once, even if first_time_only=no is set for the event. This restriction is per level. In a campaign objects with the same id can be assigned once per level.
  • delayed_variable_substitution (по умолчанию: no): If set to "yes", the wml block contained in this [object] is not variable-substituted at execution time of the event where this [object] is within. You need this to work around a bug when adding ABILITY_TELEPORT via an [object] or when using [object][effect][filter]with a $this_unit (see http://gna.org/bugs/index.php?18893).
  • [effect]: one or more effect elements may be listed, см. EffectWML.
  • duration: Продолжительность действия эффекта:
    • forever: Эффект никогда не спадет. Это значение по умолчанию.
    • level: Эффект продлится до конца текущего cценария.
      (версия 1.11 и выше) значение переименовано в 'scenario'.
    • turn (версия 1.11 и выше): Эффект продлится только до следующего хода бойца, т.е. когда у него восстановится способность передвигаться и атаковать.
  • [filter] с аргументом StandardUnitFilter. The first unit found that matches the filter will be given the object. Only on-map units are considered. If no unit matches or no [filter] is supplied, it is tried to apply the object to the unit at the $x1,$y1 location of the event where this [object] is in. The case of no unit being at that spot is handled in the same way as no unit matching a given filter ([else] commands executed, cannot_use_message displayed)
  • [then]: a subtag that lets you execute actions if the filter conditions are met. The most common action that should be inside here is a [remove_item] tag, but you could probably put any tags that otherwise work in a [then] tag.
  • [else]: a subtag that lets you execute actions if the filter conditions are *not* met.
  • silent: Указывает, должны ли подавляться сообщения (по умолчанию: no).
  • image: the displayed image of the object.
  • name: (translatable) displayed as a caption of the image.
  • description: (translatable) displayed as a message of the image.
  • cannot_use_message: Отображается вместо description, если не нашлось бойцов, соответствующих фильтру. Поддерживает локализацию.

[remove_shroud]

Removes some shroud from the map for a certain side (only relevant for sides that have shroud=yes).

  • side: (default=1) the side for which to remove shroud. This can be a comma-separated list of sides. note: Default side=1 for empty side= is deprecated.
  • [filter_side] with a StandardSideFilter as argument
  • StandardLocationFilter: the range of tiles for which shroud should be removed

[place_shroud]

Places some shroud on the map for a certain side (only relevant for sides that have shroud=yes).

  • side: (default=1) the side for which to place shroud. This can be a comma-separated list. note: Default side=1 for empty side= is deprecated.
  • [filter_side] with a StandardSideFilter as argument
  • StandardLocationFilter: the range of tiles on which shroud should be placed

[lift_fog]

(версия 1.11 и выше)Lifts the fog of war from parts of the map for a certain side (only relevant for sides that have fog=yes), allowing a player to witness what occurs there even if that player has no units within vision range.

  • [filter_side] with a StandardSideFilter indicating which sides should be affected.
  • StandardLocationFilter: the tiles from which fog should be lifted.
  • multiturn: yes/no, default:no. The default (not multiturn) causes fog to be removed in the same way that normal vision works; the cleared tiles will remain cleared until fog is recalculated (which normally happens when a side ends its turn). When multiturn is set to "yes", the cleared tiles remain clear until [reset_fog] cancels the clearing. This allows tiles to remain clear for multiple turns, or to be refogged before the end of the current turn (without also refogging all tiles). Multiturn lifted fog is not shared with allies (even when share_view=yes).

[reset_fog]

(версия 1.11 и выше)The primary use of this tag is to remove multiturn lifted fog (created by [lift_fog]), which causes the fog to reset to what it would have been had WML not interfered. (That is, hexes that a side's units could not see at any point this turn will be re-fogged, while seen hexes remain defogged.)

  • [filter_side] with a StandardSideFilter indicating which sides should be affected.
  • StandardLocationFilter: the fog reset will be restricted to these tiles.
  • reset_view: yes/no, default: no If set to "yes", then in addition to removing multiturn fog, the side's current view is canceled (independent of the SLF). This means that all hexes will become fogged for the side unless multiturn fog exists outside the tiles selected by the SLF. Normally, one would want the currently seen hexes to become clear of fog; this is done automatically at the end of many events, and it can be done manually with [redraw].

Omitting both the SSF and the SLF would cancel all earlier uses of [lift_fog]. Additionally setting reset_view="yes" would cause the side's entire map to be fogged (unless an ally keeps hexes clear by sharing its view).

[allow_undo]

Normally when an event with a handler fires, the player's undo stack is cleared, preventing all actions performed so far from being undone. Including this tag in the event handler prevents the stack from being cleared for this reason, allowing the player to undo actions. (However, the stack might still be cleared for other reasons, such as fog being cleared or combat occurring.) In the common cases, this means [allow_undo] allows the current action to be undone even though an event was handled. There is a less common case, though — specifically when handling a menu item, where there is no current action — and in this case, [allow_undo] means merely that earlier actions can still be undone.

  • (версия 1.11 и выше) Using this tag in a menu item has an additional side effect in 1.11. Starting with version 1.11.1, executing a WML menu item normally counts as doing something as far as the "you have not started your turn yet" dialog is concerned. However, a menu item whose handler includes [allow_undo] will not count.

This tag does nothing during recruit and recall actions, as the game incorrectly ignores whether or not an event fired during those times. (версия 1.11 и выше) This has been fixed in the latest development release.

The types of actions that can be undone are movement, recruitment, recalling, and dismissing a unit from the recall list. If an action is undone, only the position (or existence) of the involved unit will be restored; any altered variables or changes to the game will remain changed after the action is undone. It is up to the scenario designer to avoid abusing this command.

  • Technically, if [allow_undo] is inside an [event] with first_time_only=yes (the default setting), and the user undoes the event, then the state of the game has changed in this way: the event will not fire a second time, even though the user undid the action the first time.

[heal_unit]

Heal a unit. The variable $heal_amount will be set to the exact number of points healed (i.e can be lesser than the parameter amount if the unit is fully healed). $heal_amount contains only the number of hitpoints the first unit that was found got healed.

  • [filter]: StandardUnitFilter All matching on-map units are healed. If no filter is supplied, it is tried to take the unit at $x1, $y1.
  • [filter_second]: StandardUnitFilter all the units matching the filter and having the heals ability will have their animation played (if animate is set to true) for each of the units healed.
  • amount: (integer, default full) the maximum points the unit(s) will be healed. Can't set below 1 or above max_hitpoints. If "full", sets hitpoints to max_hitpoints. Before 1.9 the default is 0.
  • animate: a boolean which indicate if the healing animations must be played. (default no)
  • moves: (integer, default 0) The maximum current movement points the units will be "healed". Can't set below 0 or above max_moves. If "full", sets moves to max_moves.
  • restore_attacks: (boolean, default no) Whether the units' attacks_left should be reset to their max_attacks (usually 1).
  • restore_statuses: (boolean, default yes) Whether standard statuses should be reset to "no". This affects poisoned, slowed, petrified and unhealable. Before 1.9 this is always "no".

[harm_unit]

Harms every unit matching the filter, for the specific damage amount.

  • [filter]: StandardUnitFilter all matching units will be harmed (required).
  • [filter_second]: StandardUnitFilter if present, the first matching unit will attack all the units matching the filter above.
  • amount: the amount of damage that will be done (required).
  • alignment: (default neutral) applies an alignment to the damage, this means that if alignment=chaotic, the damage will be increased at night and reduced at day.
  • damage_type: if present, amount will be altered by unit resistance to the damage type specified.
  • kill: (default yes) if yes, when a harmed unit goes to or below 0 HP, it is killed; if no its HP are set to 1.
  • fire_event: (default no) if yes, when a unit is killed by harming, the corresponding events are fired.
  • animate: (default no) if yes, scrolls to each unit before harming it and plays its defense (or attack, if it's the harmer) and death animations. Special values supported, other than the usual yes and no, are "attacker", that means only the harmer will be animated, and "defender", that means only the harmed units will be animated.
  • [primary_attack], [secondary_attack]: these set the weapon against which the harmed units will defend, and that the harming unit will use to attack, respectively (notice this is the opposite of [filter] and [filter_second] above). This allows for playing specific defense and attack animations. Both tags are expected to contain a Standard Weapon Filter.
  • delay: if animate=yes, sets the delay (in milliseconds, default 500) between each unit harming.
  • variable: if present, the damage caused to the unit, altered by resistances, will be stored in a WML array with the given name, under the "harm_amount" key.
  • poisoned, slowed, petrified, unhealable: (default no) if yes, every harmed unit that doesn't already have such status will have it set.
  • experience: if yes, and there is a harmer, experience will be attributed like in regular combat.
  • resistance_multiplier: (версия 1.11 и выше) the harmed unit's resistance is multiplied by the supplied value; this means that a value lower than 1 increases it, and a value greater than 1 decreases it. Default value is 1, that means no modification.

[time_area]

How a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] tags in the [scenario] tag.

  • StandardLocationFilter: the locations to affect. note: only for [event][time_area]s - at scenario toplevel [time_area] does not support StandardLocationFilter, only location ranges
  • TimeWML: the new schedule.
  • id: an unique identifier assigned to a time_area. Optional, unless you want to remove the time_area later. Can be a comma-separated list when removing time_areas, see below.
  • remove: (boolean) yes/no value. Indicates whether the specified time_area should be removed. Requires an identifier. If no identifier is used, however, all time_areas are removed.

Example: (caves in parts of a map)

[time_area]
    x=1-2,4-5
    y=1-2,1-2
    {UNDERGROUND}
[/time_area]

[end_turn]

Завершает ход текущей стороны. The current event is finished before the turn is ended. Also, if the current event (where the tag appears) has been fired by another event, that event (and the complete stack of other possible parent events) is ended before [end_turn] comes into affect. Also, events following the event stack that fired [end_turn] are not omitted (e.g. [end_turn] is used by a side turn event and a turn refresh event does something afterwards).

[replace_map]

Заменяет всю карту сценария.

  • map: Содержимое map-файла, например:
map="{campaigns/Heir_To_The_Throne/maps/01_The_Elves_Besieged.map}"
  • expand: Позволяет увеличивать размер карты. Расширение всегда происходит вниз и вправо.
  • shrink: Позволяет уменьшать размер карты. При уменьшении размера все бойцы, вылетевшие за ее пределы, перемещаются в список призыва.

[replace_schedule]

Переписывает временной цикл сценария.

[tunnel]

Create a tunnel between some locations, later usable by units to move from source hex to target hex (using the movement cost of unit on the target terrain). (source)

  • id identifier for the tunnel, to allow removing (optional).
  • remove: (boolean) yes/no value. If yes, removes all defined tunnels with the same ID (then only id= is necessary). (default: no)
  • bidirectional: (boolean) if yes, creates also a tunnel in the other direction. (default: yes)
  • always_visible: (boolean) if yes, the possible movement of enemies under fog can be seen. (default: no)
  • [source]: StandardLocationFilter the source hex(es) (required).
  • [target]: StandardLocationFilter the target hex(es) (required).
  • [filter]: StandardUnitFilter the units which can use the tunnel (required). Leave empty for "all units".

(Note: The tunnel tag can also be used inside the [teleport] ability, without remove= and id=).

Полезные макросы

There are some predefined macros that you find useful for direct actions. You can find a complete list along with a detailed explanation of how they work here.

  • {MOVE_UNIT}: Moves a unit to another location in the map and the player sees the movement (unlike [teleport])
  • {FULL_HEAL}: Brings a unit to full HP
  • {LOYAL_UNIT}: Create a loyal unit
  • {MODIFY_TERRAIN_MASK}: Modify an area of terrain

Смотрите также