UsefulWMLFragments: Difference between revisions

From The Battle for Wesnoth Wiki
Henkutsu (talk | contribs)
No edit summary
Shiki (talk | contribs)
→RPG Tools: set_icon is now implemented
 
(48 intermediate revisions by 14 users not shown)
Line 3: Line 3:
Most of the things found here are macros (see [[PreprocessorRef]]) that must be copied into a scenario file or another file included first by the campaign, and then used in the scenario (or multiplayer map). Remember that a macro cannot be used at a point before it is defined.
Most of the things found here are macros (see [[PreprocessorRef]]) that must be copied into a scenario file or another file included first by the campaign, and then used in the scenario (or multiplayer map). Remember that a macro cannot be used at a point before it is defined.


High level macros often require the lower level macros found in ProgrammingMacros, Utilities, and Scenario Tools.
Also, when creating or using macros, please remember: Every macro must generate a WML fragment which would be syntactically balanced and correct by itself. Unbalanced macros confuse our maintenance and sanity-checking tools, creating extra work and headaches for the already-overworked WML maintainers.


[[WML Templates]]: Generic campaign, scenario and unit templates.
'''Note: some of the code here is outdated or otherwise poor. It's not advisable to blindly copy-paste code from here and expect it to work on recent Wesnoth versions or assume that the recent versions don't support a simpler and less hacky way of doing the same thing.'''


[[ProgrammingMacros]]: Definitions for some low-level macros to make it easier to write program-like WML.
Some things '''not''' to do here:
* Don't add macros that duplicate things in [http://www.wesnoth.org/macro-reference.xhtml the core macro library].
* Don't add macros that are trivial syntax shortcuts.
* Don't add macros that generate unbalanced syntax fragments.


[[WML Utilities]]: Macros to assist other macros. Test Value of Variable. If Have Unit. Store Unit Attribute. Filter by Terrain. Iterate. Overlay with Filter. Determine Opposite Coordinates.
Try to avoid adding pages here. It is better to find a category in which your code fits and add it to that page.


[[WML Scenario Tools]]: Macros directly useful in a scenario. Modify unit. Give villages to a side. Return Unit to Recall List. Trap Unit. Change Keep Terrain. Hero die message. Item effect.
=== Logic Structure Macros ===
*[[WML Utilities]]: Macros to assist other macros. Overlay with Filter. Determine Opposite Coordinates. Find nearest hex(es)


[[WML Dialog Tools]]: Macros useful for unit dialog/storyboarding. Character Speaker, Blank story section, Delays and Fades.
==== RPG Tools ====
*[[A Shop Like Thing]]: How to add even more RPG elements to your scenarios.
*[[CutsceneWML]]: Fixed MOVE_TO event (uses FIND_NEARBY from [[WML Utilities]]), move + exit to recall list, define character dialogue and a "main character", grant unlimited moves.*


[[MoveExistingUnit]]: Move a unit from one place to another, displaying its movement. Move Unit 1. Move Unit 2. Move Unit 3.
==== Music Tools ====
*[[WML Musical Moods]]: Groups the Wesnoth music (as of 1.7.x) into "moods" and defines macros for playing randomly songs from these pools and for quickly switching music.


[[Victory Conditions]]: Number of Villages, Amount of Gold. Suitable for multiplayer scenarios.
==== Unit Tools ====
*[[WML Abilities]]: Knockback. Charm. Bloodlust.


[[WML Abilities]]: Knockback. Charm. Bloodlust. Abilities cannot currently be incorporated in the unit type definitions themselves, but must be included in the scenario file.
==== Item Tools ====
*[[DroppableItem]]: For placing items on the terrain upon death of a unit.


[[WML Buildings]]: Generic Buildings, Light House/Dark Tower, Wishing Well #1, Wishing Well #2.
==== Map Tools ====
*[[FloodWML]]: Macros to create a flood of a certain terrain type spreading across the map.


[[RandomTraitUnit]]: Create a unit with two random traits. (very simple.)
=== Advanced WML ===
 
*[[Advanced Optimisations and Hacks]]: If you're coding something really complex, this might come handy
[[DroppableItem]]: Generic item that a unit can carry, and is left on the ground when the unit dies.
 
[[A Shop Like Thing]]: How to add even more RPG elements to your scenarios.
 
[[PseudoRandom]]: A replacement for {RANDOM} in multiplayer, where {RANDOM} is buggy.
 
[[Rain effect]]: Creating an overlay of rain in a scenario.
 
[[Advanced WML]]:  Branch on Village Type. Recruit from a Ship. Point Rotation Scheme.


== See Also ==
== See Also ==
Line 40: Line 41:




[[Category: UsefulWMLFragments]]
[[Category: UsefulWMLFragments|*]]

Latest revision as of 13:27, 13 September 2022

Useful WML Fragments

Most of the things found here are macros (see PreprocessorRef) that must be copied into a scenario file or another file included first by the campaign, and then used in the scenario (or multiplayer map). Remember that a macro cannot be used at a point before it is defined.

Also, when creating or using macros, please remember: Every macro must generate a WML fragment which would be syntactically balanced and correct by itself. Unbalanced macros confuse our maintenance and sanity-checking tools, creating extra work and headaches for the already-overworked WML maintainers.

Note: some of the code here is outdated or otherwise poor. It's not advisable to blindly copy-paste code from here and expect it to work on recent Wesnoth versions or assume that the recent versions don't support a simpler and less hacky way of doing the same thing.

Some things not to do here:

  • Don't add macros that duplicate things in the core macro library.
  • Don't add macros that are trivial syntax shortcuts.
  • Don't add macros that generate unbalanced syntax fragments.

Try to avoid adding pages here. It is better to find a category in which your code fits and add it to that page.

Logic Structure Macros

  • WML Utilities: Macros to assist other macros. Overlay with Filter. Determine Opposite Coordinates. Find nearest hex(es)

RPG Tools

  • A Shop Like Thing: How to add even more RPG elements to your scenarios.
  • CutsceneWML: Fixed MOVE_TO event (uses FIND_NEARBY from WML Utilities), move + exit to recall list, define character dialogue and a "main character", grant unlimited moves.*

Music Tools

  • WML Musical Moods: Groups the Wesnoth music (as of 1.7.x) into "moods" and defines macros for playing randomly songs from these pools and for quickly switching music.

Unit Tools

Item Tools

  • DroppableItem: For placing items on the terrain upon death of a unit.

Map Tools

  • FloodWML: Macros to create a flood of a certain terrain type spreading across the map.

Advanced WML

See Also

This page was last edited on 13 September 2022, at 13:27.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.