https://wiki.wesnoth.org/api.php?action=feedcontributions&user=ShikadiQueen&feedformat=atomThe Battle for Wesnoth Wiki - User contributions [en]2024-03-29T00:14:28ZUser contributionsMediaWiki 1.31.16https://wiki.wesnoth.org/index.php?title=CommandMode&diff=37116CommandMode2010-07-08T23:04:38Z<p>ShikadiQueen: Document :turn and :turn_limit from 1.9.x</p>
<hr />
<div>== Command Mode ==<br />
<br />
You can access command mode by typing ' ''':''' ' in a single player or multiplayer scenario.<br />
(Prior to version 1.1.1, you need to type shift - semicolon( ''';''' ). However this isn't possible on all keyboards; if your keyboard doesn't have ':' above ';' you can change the hotkey in the Preferences, or you could edit '''game.cfg''' by hand.')<br />
<br />
Note: you can highlight, copy, and paste text in debug mode.<br />
<br />
Several vi-like commands are available in command mode. They are defined in ''menu_events.cpp''. In the 1.5 branch, there is a ''':help''' command that lists all available commands, and ''':help ''foo''''' displays more info about command ''foo''. This is more reliable than the list that follows here:<br />
<br />
;<nowiki>:q or :q!</nowiki><br />
:quit the scenario (without prompting)<br />
;<nowiki>:w</nowiki><br />
:save the game (without prompting)<br />
;<nowiki>:wq</nowiki><br />
:save the game and quit the scenario (without prompting)<br />
;<nowiki>:refresh</nowiki><br />
:redraw the screen<br />
;<nowiki>:droid</nowiki> [''side''] [on|off]<br />
:toggle player on ''side'' between human and AI player. The player/client who controls that side needs to issue this command. If you don't provide ''side'', the current side is assumed.<br />
;<nowiki>:muteall</nowiki><br />
:toggles muting/silencing of all observers on/off<br />
;<nowiki>:mute</nowiki> [''username'']<br />
:mute a specific observer. If no ''username'' is supplied the muted usernames are displayed.<br />
;<nowiki>:unmute</nowiki> [''username'']<br />
:unmute a specific observer. If no ''username'' is given everyone is unmuted. (Doesn't effect the muteall setting.)<br />
;<nowiki>:kick</nowiki> ''username''<br />
:kick a user in multiplayer. They will be able to rejoin the game. Generally a friendly way to remove someone who is having connection or other difficulties.<br />
;<nowiki>:ban</nowiki> ''username''<br />
:kick and ban a user in multiplayer by the IP address used by that ''username''. Can be used on users not in the game but on the server. (Of course they won't be kicked then.)<br />
;<nowiki>:unban</nowiki> ''username''<br />
:unban a user by the IP address used by that ''username''. Can be used on users not in the game but on the server.<br />
;<nowiki>:control</nowiki> ''side'' ''username''<br />
:change the controller for ''side'' (write here the number of the side, the side must be controlled by you) to ''username'' (write here the nick of the player or observer)<br />
;<nowiki>:clear</nowiki><br />
:clear chat messages<br />
;<nowiki>:debug</nowiki><br />
:switch debug mode on (does not work in multiplayer). Debug mode is turned off by quitting the game or using the :nodebug command.<br />
;<nowiki>:theme</nowiki><br />
:bring up theme selection menu<br />
;<nowiki>:nosaves</nowiki><br />
:turns off the autosave function<br />
;<nowiki>:show_coordinates (or :sc)</nowiki><br />
:Overlay x,y coordinates on map tiles. 1.5.5 onwards<br />
;<nowiki>:show_terrain_codes (or :tc)</nowiki><br />
:Overlay terrain codes on visible map tiles. 1.5.5 onwards<br />
;<nowiki>:lua</nowiki> ''statement''<br />
:{{DevFeature}} execute a Lua statement<br />
;<nowiki>:discover</nowiki><br />
:Show all hidden unit descriptions in the in-game Help. 1.7.0 onwards<br />
<br />
===Extra Debugging Commands===<br />
[[DebugMode]] enables additional commands in command mode:<br />
<br />
;<nowiki>:nodebug</nowiki><br />
:disables debug-mode commands<br />
;<nowiki>:n</nowiki><br />
:skip to next scenario by triggering a win event<br />
;<nowiki>:shroud</nowiki><br />
:toggles shroud on/off (implemented since 1.3.10)<br />
;<nowiki>:fog</nowiki><br />
:toggles fog on/off (implemented since 1.3.10)<br />
;<nowiki>:gold</nowiki> ''amount''<br />
:add ''amount'' gold to the current player's side<br />
;<nowiki>:create</nowiki> ''unit_type''<br />
:create a unit of type specified at last selected hex<br />
;<nowiki>:unit hitpoints=</nowiki>''amount''<br />
:edit units hitpoints<br />
;<nowiki>:unit experience=</nowiki>''amount''<br />
:edit units experience<br />
;<nowiki>:unit</nowiki> ''attribute=value''<br />
:when a unit is selected, this will set the unit's ''attribute'' to ''value''. See [[SingleUnitWML]] for possible values.<br />
;<nowiki>:unit</nowiki> ''advances=N''<br />
:{{DevFeature}} when a unit is selected, this will advance (level up) the unit N times.<br />
;<nowiki>:set_var</nowiki> ''attribute=value''<br />
:this will set a WML variable to a given value<br />
;<nowiki>:show_var</nowiki> ''attribute''<br />
:this will display a popup with the content of the variable<br />
;<nowiki>:throw/fire</nowiki> ''event_name''<br />
:throw an event by name, like ''time over'' or ''enemies defeated''. (Only available in 1.3.5 or later.)<br />
;<nowiki>:inspect</nowiki><br />
:{{DevFeature}} show a gamestate inspector dialog which allows to see variable info, team info, ai info.<br />
;<nowiki>:cl</nowiki><br />
:pops up a menu that allows you to move directly to a specified scenario.<br />
;<nowiki>:turn</nowiki><br />
:{{DevFeature1.9}} change the current turn to the specified number. If no number is provided, the turn number is increased by one.<br />
;<nowiki>:turn_limit</nowiki><br />
:{{DevFeature1.9}} change the turn limit for the current scenario to the specified number. If no number is provided, or it is -1, the turn limit is switched off.<br />
;<nowiki>:version</nowiki><br />
:Report version and SVN revision level.<br />
<br />
== See Also ==<br />
<br />
* [[DebugMode]]<br />
* [[DeveloperResources]]<br />
<br />
[[Category:Playing Wesnoth]]<br />
[[Category:Development]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=TerrainMaskWML&diff=37115TerrainMaskWML2010-07-08T20:15:12Z<p>ShikadiQueen: Updated terrain codes in the initial description of the terrain mask system</p>
<hr />
<div>{{WML Tags}}<br />
== The [terrain_mask] tag ==<br />
<br />
The [terrain_mask] tag makes map manipulation from within WML much easier.<br />
It uses a Wesnoth map as a "mask" over a given location,<br />
placing it down on top of the scenario map.<br />
Fog ('_f') and Shroud ('_s') are used like alpha in an image; i.e. they cause the previous terrain to be used.<br />
<br />
* '''x,y''': the x,y location in the scenario map to place the top-left corner of the mask onto<br />
* '''mask''': a Wesnoth map; see [[BuildingMaps]].<br />
* '''border''': (default=no) Overlay on the border as well as the playable map area. The mask used must have a border_size equal to the map's border size (i.e. it must be a normal map), otherwise it will be ignored<br />
* '''[rule]''': specifies a rule for blending the mask with the scenario.<br />
The terrain on each hex fitting the rule will be changed to the terrain specified in the rule.<br />
** '''old''': a comma-separated list of terrain codes. The rule fits only those hexes that have one of these terrains in the scenario.<br />
** '''new''': a list of terrain letters. The rule fits only those hexes with this terrain specified in the mask.<br />
** '''terrain''': the letter of the terrain to change hexes which fit this rule (i.e. for which the '''new''' terrain code in the mask falls on top of the '''old''' terrain in the scenario) into.<br />
** '''layer''': (overlay|base|both, default=both) only change the specified layer.<br />
** '''replace_if_failed''': (default=no) When replacing just one layer failed, try to replace the whole terrain. If '''terrain''' is an overlay only terrain, use the default_base as base layer. If the terrain has no default base, do nothing.<br />
<br />
As an example, suppose you want to lay down a road somewhere. You could specify by hand the path the road takes using<br />
[terrain], or you could use<br />
[terrain_mask]:<br />
<br />
<pre><br />
[terrain_mask]<br />
x,y=12,10<br />
mask="border_size=1<br />
usage=map<br />
<br />
Re, Re, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f<br />
Re, Re, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f<br />
Re, Re, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f<br />
_f, _f, Re, _f, _f, _f, _f, _f, _f, _f, _f, _f<br />
_f, _f, Re, _f, _f, _f, _f, _f, _f, _f, _f, _f<br />
Re, Re, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f<br />
_f, _f, Re, _f, _f, Re, Re, _f, _f, _f, _f, _f<br />
_f, _f, _f, Re, Re, Re, _f, Re, Re, _f, _f, _f<br />
_f, _f, _f, _f, _f, _f, _f, Re, _f, _f, _f, _f<br />
_f, _f, _f, _f, _f, _f, _f, Re, Re, _f, _f, _f<br />
_f, _f, _f, _f, _f, _f, _f, Re, Re, Re, Re, Re<br />
_f, _f, _f, _f, _f, _f, _f, Re, Re, Re, Re, Re<br />
"<br />
[/terrain_mask]<br />
</pre><br />
<br />
For instance, suppose you want snow to fall in an area. You want villages (v) to turn into snowed-villages (V), forest<br />
(f) to turn into snowed-forest (F), hills<br />
(h) to turn into snowed-hills (H), and grassland (g) and roads (r) to turn into snow (S), while other terrain remains<br />
untouched. You could look over your<br />
destination map and work out which terrain type is which and draw your mask, but that's alot of effort, you want to just<br />
draw a simple mask which has<br />
areas of snow and areas of no snow, and make the game work out the rest.<br />
<br />
You can do it like this:<br />
<br />
[terrain_mask]<br />
x,y=1,1<br />
mask="border_size=1<br />
usage=map<br />
<br />
_f, _f, Aa, _f, _f, _f, Aa, _f, _f<br />
_f, _f, Aa, _f, _f, _f, Aa, _f, _f<br />
_f, _f, Aa, _f, Aa, _f, Aa, _f, _f<br />
Aa, Aa, _f, _f, Aa, Aa, Aa, _f, _f<br />
_f, _f, Aa, Aa, Aa, Aa, Aa, Aa, Aa<br />
_f, _f, _f, Aa, Aa, Aa, Aa, Aa, Aa<br />
_f, _f, _f, _f, Aa, Aa, _f, _f, _f<br />
_f, _f, _f, _f, Aa, Aa, _f, _f, _f"<br />
[rule]<br />
old=Gg^Vh<br />
new=Aa<br />
terrain=Aa^Vha<br />
[/rule]<br />
[rule]<br />
old=Gs^Fp<br />
new=Aa<br />
terrain=Aa^Fpa<br />
[/rule]<br />
[rule]<br />
old=Hh<br />
new=Aa<br />
terrain=Ha<br />
[/rule]<br />
<br />
[rule]<br />
old=Gg,Re<br />
new=Aa<br />
#don't specify terrain and it just uses the new terrain<br />
[/rule]<br />
<br />
#default: Will match everything, since 'old' and 'new' aren't<br />
#specified. Set 'use_old=yes' to signal no change.<br />
[rule]<br />
use_old=yes<br />
[/rule]<br />
[/terrain_mask]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=InterfaceActionsWML&diff=36747InterfaceActionsWML2010-06-08T23:05:17Z<p>ShikadiQueen: /* [message] */ [text_input] uses max_length=, not max_chars= according to the C++ source</p>
<hr />
<div>{{WML Tags}}<br />
== Interface actions ==<br />
<br />
Interface actions are actions that do not have an effect on gameplay;<br />
instead, they show something to the player. The main interface tags<br />
are '''[message]''' and '''[objectives]''', but several other tags affect<br />
the interface also.<br />
<br />
== [inspect] ==<br />
This user interface action only works in debug mode. It displays the gamestate inspector dialog (the same one which can be brought up with '':inspect'' ), which can be used to inspect the values of WML variables, AI configuration, recall lists, and more.<br />
<br />
* '''name''': optional attribute to specify the name of this gamestate inspector dialog. It is just a label to help differentiate between different invocations of gamestate inspector dialog.<br />
<br />
== [message] ==<br />
The most commonly used interface action is [message], which displays a message to the user in a dialog box. It can also be used to take input from the user.<br />
<br />
The following key/tags are accepted for [message]:<br />
* [[StandardUnitFilter]]: The unit whose profile and name are displayed. Do not use a [filter] tag. If no unit matching this filter is found, the message is not displayed (The unit has probably been killed).<br>'''[message]''' elements should be constructed so that it is either guaranteed that a certain unit is alive, or so that dialog flows smoothly even if the message isn't displayed.<br />
<br />
* '''speaker''': an alternative to standard unit filter. You may specify as the value of the speaker attribute a unit id or any of the following special values:<br />
** '''narrator''': the dialog box is displayed without a caption for the unit speaking or a unit image<br />
** '''unit''': the primary unit for the event is speaking<br />
** '''second_unit''': the secondary unit for the event is speaking<br />
<br />
* '''message''': (translatable) the text to display to the right of the image. ''message'' is sometimes multiple lines; if it is, be sure to use quotes(''' ' ''' or ''' " ''')<br />
* '''[show_if]''': if present then this message will only be displayed if the conditional statement in this tag is passed (see [[ConditionalActionsWML#Condition_Tags|ConditionalActionsWML]])<br />
* '''side_for''': (default: all sides) comma-separated list of sides for who message is shown.<br />
* '''image''': (default: profile image of speaker) the image to display next to the message.<br />
* '''caption''': (default: name of speaker) the caption to display beside the image. Name to be displayed.<br />
* '''duration''': (default: 10) the minimum number of frames for this message to be displayed. (A frame lasts about 30 milliseconds.) During this time any dialog decisions will be disregarded.<br />
* '''sound''': a sound effect (wav file) to play as the message is displayed. This can be a comma-separated list, from which one will be randomly chosen.<br />
* '''[option]''': zero or more '''[option]''' elements may be present. If '''[option]''' elements are present, then each option will be displayed in a menu for the user to select one option.<br />
** '''message''': (translatable) the text displayed for the option (see [[DescriptionWML]])<br />
** '''[show_if]''': if present then this option will only be displayed if the conditional statement in this tag is passed (see [[InternalActionsWML]])<br />
** '''[command]''': an element containing actions which are executed if the option is selected.<br />
* '''[text_input]''': there can be only one [text_input] tag. this adds a text input field to the message.<br />
** '''variable''': the variable that the user's input will be written to<br />
** '''label''': a text label to the left of the input field<br />
** '''max_length''': the maximum number of characters that may be typed into the field<br />
** '''text''': text that is written into the field in the beginning<br />
* Check [[EventWML#Multiplayer_safety]] to find out in which events you can safely use '''[option]''' and '''[text_input]''' without causing OOS.<br />
<br />
=== Formatting ===<br />
In 1.8, [http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html Pango markup formatting codes] have been adopted for '''[message]'''. These can also be used in unit names (user_description), objectives, and such. Note that you'll probably want to use a single quote ' instead of a double quote " as double quotes cannot be escaped, otherwise the string will appear fragmented and you may also encounter errors. Running wmllint on your campaign will up-convert it, warning you about unusual cases you must fix by hand.<br />
<br />
For example, if you wanted to write "You are victorious!" in large, italic, gold letters, you might write it this way:<br />
<br />
<nowiki><span color='#BCB088' size='large' font-style='italic'>You are victorious!</span></nowiki><br />
<br />
<br />
These are the codes taken from the Pango markup formatting guide:<br />
<br />
*'''font''', '''font_desc''': A font description string, such as "Sans Italic 12".<br />
*'''font_family''', '''face''': A font family name.<br />
*'''font_size''', '''size''': Font size in 1024ths of a point, or one of the absolute sizes 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', or one of the relative sizes 'smaller' or 'larger'.<br />
*'''font_style''', '''style''': One of 'normal', 'oblique', 'italic'.<br />
*'''font_weight''', '''weight''': One of 'ultralight', 'light', 'normal', 'bold', 'ultrabold', 'heavy', or a numeric weight.<br />
*'''font_variant''', '''variant''': One of 'normal' or 'smallcaps'.<br />
*'''font_stretch''', '''stretch''': One of 'ultracondensed', 'extracondensed', 'condensed', 'semicondensed', 'normal', 'semiexpanded', 'expanded', 'extraexpanded', 'ultraexpanded'.<br />
*'''foreground''', '''fgcolor''', '''color''': An RGB color specification such as '#00FF00' or a color name such as 'red'.<br />
*'''background, bgcolor''': An RGB color specification such as '#00FF00' or a color name such as 'red'.<br />
*'''underline''': One of 'none', 'single', 'double', 'low', 'error'.<br />
*'''underline_color''': The color of underlines; an RGB color specification such as '#00FF00' or a color name such as 'red'.<br />
*'''rise''': Vertical displacement, in 10000ths of an em. Can be negative for subscript, positive for superscript.<br />
*'''strikethrough''': 'true' or 'false' whether to strike through the text.<br />
*'''strikethrough_color''': The color of strikethrough lines; an RGB color specification such as '#00FF00' or a color name such as 'red'<br />
*'''fallback''': 'true' or 'false' whether to enable fallback. If disabled, then characters will only be used from the closest matching font on the system. No fallback will be done to other fonts on the system that might contain the characters in the text. Fallback is enabled by default. Most applications should not disable fallback.<br />
*'''letter_spacing''': Inter-letter spacing in 1024ths of a point.<br />
*'''gravity''': One of 'south', 'east', 'north', 'west', 'auto'.<br />
*'''gravity_hint''': One of 'natural', 'strong', 'line'.<br />
<br />
<br />
In 1.6, Wesnoth uses older text formatting options<br />
* A tilde (~) as the first character causes the line to be boldfaced.<br />
* An at symbol (@) as the first character causes the line to be green, as done with victory conditions.<br />
* A pound symbol (#) as the first character causes the line to be red, as done with defeat conditions.<br />
* An asterisk (*) as the first character causes the line to be bigger.<br />
* A backquote (`) as the first character causes the line to be smaller.<br />
* If used, the caption key text is boldfaced.<br />
* An RGB colour code in the beginning causes the line to be the given colour. This can still be preceded by the above characters. Example: ''message=_"<255,0,0>Red!"''<br />
<br />
== [objectives] ==<br />
The other tag used for plot development is '''[objectives]'''.<br />
The '''[objectives]''' tag overwrites any previously set objectives,<br />
and displays text which should describe the objectives of the scenario.<br />
Scenario objectives are displayed on the player's first turn after the tag is used,<br />
or as part of the event if it triggers during that player's turn.<br />
Objectives can also be accessed at any time in a scenario using the<br />
"Scenario Objectives" game menu option, making this tag useful for<br />
scenario-specific information that the player may need to refer to during play.<br />
<br />
This tag renders the ''objectives'' attribute of [scenario] obsolete (see ''objectives'', [[ScenarioWML]]).<br />
Instead of using ''objectives'', use '''[objectives]''' to set scenario objectives inside a prestart event.<br />
It can also be used to overwrite the starting objectives mid-scenario.<br />
<br />
Attributes of '''[objectives]''':<br />
* '''side''': Default '0'. The side to set the objectives for. A value of 0 sets objectives for all sides.<br />
* '''summary''': Displayed first in the objectives text, this should describe the basic objective for the overall scenario. Can be omitted.<br />
* '''note''': Displayed last in the objectives text, this is sometimes used for hints or additional information. Can be omitted.<br />
* '''victory_string''': Default ' _ "Victory:"', this text precedes the victory objectives.<br />
* '''defeat_string''': Default ' _ "Defeat:"', this text precedes the defeat objectives.<br />
* '''silent''': Default: not present. If set to "yes", the objectives are silently changed. Else, they will be shown to the user when appropriate.<br />
<br />
Tags of '''[objectives]''':<br />
* '''[objective]''': describes a win or loss condition. Most scenarios have multiple win or loss conditions, so use a separate [objective] subtag for each line; this helps with translations.<br />
** '''description''': text for the specific win or loss condition.<br />
** '''condition''': The color and placement of the text. Values are 'win'(colored green, placed after ''victory_string'') and 'lose'(colored red, placed after ''defeat_string'')<br />
** '''[show_if]''': A condition that disables the objective if it doesn't hold. Conditional objectives are refreshed at '''[show_objectives]''' time only. {{DevFeature}}<br />
<br />
=== Macros ===<br />
There are a few predefined macros for Objectives that you can use to shorten the code: [http://www.wesnoth.org/macro-reference.xhtml#SET_OBJECTIVES SET_OBJECTIVES], [http://www.wesnoth.org/macro-reference.xhtml#VICTORY_CONDITION VICTORY_CONDITION], and [http://www.wesnoth.org/macro-reference.xhtml#DEFEAT_CONDITION DEFEAT_CONDITION]. Follow the links for each one to see complete syntax and example usage.<br />
<br />
== [set_menu_item] ==<br />
This tag is used to add a custom option in the right-click context menu which can then be used to trigger arbitrary WML commands.<br />
<br />
'''Note:''' Due to limitations in portable devices where there are no scroll bars for context menus, there is a hard-coded limit of 7 custom WML menu items. If you really need to have more than 7 menu items, try combining some of them in a submenu.<br />
<br />
* '''id''': the unique id for this menu item. If a menu item with this id already exists, it allows you to set specific changes to that item.<br />
* '''description''': the in-game text that will appear for this item in the menu.<br />
* '''image''': the image to display next to this item.<br />
* '''needs_select''': if ''yes'' (default ''no''), then the latest select event (see [[EventWML]]) that triggered before this menu item was chosen will be transmitted over the network before this menu item action will be. This only has any effect in networked multiplayer, and is intended to allow more elaborate menu item behaviour there without causing out of sync errors. If you don't know what this means, just leave it false.<br />
* '''[show_if]''': If present, the menu item will only be available if the conditional statement (see [[InternalActionsWML]]) within evaluates to true. When this is evaluated, the WML variables ''$x1'' and ''$y1'' will point to the location on which the context menu was invoked, so it's possible to for example only enable the option on empty hexes or on a particular unit.<br />
* '''[filter_location]''': contains a location filter similar to the one found inside Single Unit Filters (see [[FilterWML]]). The menu item will only be available on matching locations.<br />
* '''[command]''': contains the WML actions to be executed when the menu item is selected. Again, the WML variables ''$x1'' and ''$y1'' will point to the location on which the context menu was invoked on.<br />
<br />
== Other interface tags ==<br />
<br />
The following tags are also action tags:<br />
* '''[item]''': makes a graphical item appear on a certain hex. Note this only places the graphics for an item. It does not make the item do anything. Use a moveto event to make moving onto the item do something. <tt>''('''Hint:''' There are a number of predefined items that are used in various campaigns that you can make use of. You can find [http://www.wesnoth.org/macro-reference.xhtml#file:items.cfg a list of them] if you look into the items.cfg file in the wesnoth install directory (under /data/core/macros))''</tt><br />
** '''x''', '''y''': the location to place the item.<br />
** '''image''': the image (in ''images/'' as .png) to place on the hex.<br />
** '''halo''': an image to place centered on the hex. Use this instead of ''image'' if the image is bigger than the hex or if you want to animate an image. ''Example (where the integer after the colon is the duration of each frame): halo=scenery/fire1.png:100,scenery/fire2.png:100,scenery/fire3.png:100,scenery/fire4.png:100,scenery/fire5.png:100,scenery/fire6.png:100,scenery/fire7.png:100,scenery/fire8.png:100''<br />
** '''team_name''': name of the team for which the item is to be displayed (hidden for others). For multiple teams just put all the names in one string, for example separated by commas.<br />
** '''visible_in_fog''': whether the item should be visible through fog or not. Default yes.<br />
* '''[removeitem]''': removes any graphical items on a given hex<br />
** '''x''', '''y''': the hex to remove items off<br />
** '''image''' if specified, only removes the given image item (This image name must include any [[ImagePathFunctionWML|image path functions]] appended to the original image name.)<br />
* '''[print]''': displays a message across the screen. The message will disappear after a certain time.<br />
** '''text''': (translatable) the text to display.<br />
** '''size''': (default=12) the pointsize of the font to use<br />
** '''duration''': (default=50) the length of time to display the text for. This is measured in the number of 'frames'. A frame in Wesnoth is usually displayed for around 30ms.<br />
** '''red''', '''green''', '''blue''': (default=0,0,0) the color to display the text in. Values vary from 0-255.<br />
* '''[move_unit_fake]''': moves an image of a unit along a certain path on the map. The path does not need to be a continuous list of adjacent hexes, so for example only the start and end points can be given, in which case the straightest line between those points will be calculated and used.<br />
** '''type''': the type of the unit whose image to use<br />
** '''x''': a comma-separated list of x locations to move along<br />
** '''y''': a comma-separated list of y locations to move along (x and y values are matched pairs)<br />
** '''side''': the side of the fake unit, used for team-coloring the fake unit<br />
* '''[move_units_fake]''': {{DevFeature1.9}} moves multiple images of units along paths on the map. These units are moved in lockstep.<br />
** '''[fake_unit]''': A fake unit to move<br />
*** '''type''': the type of unit whose image to use<br />
*** '''x''': a comma-separated list of x locations to move along<br />
*** '''y''': a comma-separated list of y locations to move along (x and y values are matched pairs)<br />
*** '''side''': the side of the fake unit, used for team-coloring the fake unit<br />
*** '''skip_steps''': the number of steps to skip before this unit starts moving<br />
* '''[hide_unit]''': makes the given unit become invisible. Useful in conjunction with '''[move_unit_fake]''': to move a leader unit into position on-screen. Each '''[hide_unit]''' tag only hides one unit.<br />
** '''x''', '''y''': location of the unit to be hidden. (NOT a standard unit filter! Just x and y.)<br />
* '''[unhide_unit]''': stops the currently hidden units from being hidden.<br />
* '''[scroll]''': Scroll a certain number of pixels in a given direction. Useful for earthquake/shaking effects.<br />
** '''x''', '''y''': the number of pixels to scroll along the x and y axis<br />
* '''[scroll_to]''': Scroll to a given hex<br />
** '''x''', '''y''': the hex to scroll to<br />
** '''check_fogged''': whether to scroll even to locations covered in fog or shroud. Possible values ''true'' (don't scroll to fog) and ''false'' (scroll even to fog), with ''false'' as the default.<br />
* '''[scroll_to_unit]''' Scroll to a given unit<br />
** [[StandardUnitFilter]]<br />
** '''check_fogged''': whether to scroll even to locations covered in fog or shroud. Possible values ''true'' (don't scroll to fog) and ''false'' (scroll even to fog), with ''false'' as the default.<br />
* '''[sound]''': Plays a sound<br />
** '''name''': the filename of the sound to play (in ''sounds/'' as .wav or .ogg)<br />
** '''repeat''': repeats the sound for a specified additional number of times (default=0)<br />
* '''[sound_source]''': Creates a sound source. "Sound sources" is a general name for a mechanism which makes possible for map elements to emit sounds according to some rules, where "map elements" can be specific locations or terrain types. For now, only sound sources tied to locations are supported.<br />
** '''id''': a unique identification key of the sound source<br />
** '''sounds''': a list of comma separated, randomly played sounds associated with the sound source<br />
** '''delay''': a numerical value (in milliseconds) of the minimal delay between two playbacks of the source's sound if the source remains visible on the screen; if one scrolls out and back in, the source will be considered as ready to play<br />
** '''chance''': a percentage (a value from 0 to 100) describing the chance of the source being activated every second after the delay has passed or when the source's location appears on the screen (note that it cannot play more than one file at the same time)<br />
** '''check_fogged''': possible values "true" and "false" - if true the source will not play if its locations are fogged<br />
** '''check_shrouded''': {{DevFeature}} possible values "true" and "false" - if true the source will not play if its locations are shrouded<br />
** '''x,y''': similar to x,y as found in a [[StandardLocationFilter]], these are the locations associated with the sound source<br />
** '''fade_range''' (default = 3): distance in hexes that determines a "circular" area around the one specified by '''full_range''' where sound volume fades out linearly<br />
** '''full_range''' (default = 14): distance in hexes that determines a "circular" area where source plays with full volume, relative to screen center<br />
** '''loop''': number of times a sound sample should be looped if it stays visible. -1 means infinite (~65000)<br />
* '''[remove_sound_source]''': Removes a previously defined sound source.<br />
** '''id''': the identification key of the sound source to remove<br />
* '''[music]''': Switches to playing different music<br />
** '''name''': the filename of the music to play (in ''music/'' as .ogg)<br />
** see [[MusicListWML]] for the correct syntax<br />
* '''[volume]''': {{DevFeature1.9}} Changes the game volume to a percent of the preferences volume for the game being played. Values can go from 0 to 100: <br />
** '''music''': Changes the music volume.<br />
** '''sound''': Changes the sound volume.<br />
* '''[colour_adjust]''': tints the colour of the screen.<br />
** '''red''', '''green''', '''blue''': values from -255 to 255, the amount to tint by for each colour<br />
* '''[delay]''': pauses the game<br />
** '''time''': the time to pause in milliseconds<br />
* '''[redraw]''': redraws the screen (this normally isn't done during events, although some of the other interface actions cause the screen or parts of it to be redrawn).<br />
** '''side''': if used, recalculates fog and shroud for that side. Useful if you for example spawn friendly units in the middle of an event and want the shroud to update accordingly (otherwise units that spawn inside fog would remain invisible for the duration of the event, since the fog would not automatically get cleared around them).<br />
* '''[unit_overlay]''': sets an image that will be drawn over a particular unit, and follow it around<br />
** '''x''', '''y''': the location of the unit to overlay on<br />
** '''image''': the image to place on the unit<br />
* '''[remove_unit_overlay]''': removes a particular overlayed image from a unit<br />
** '''x''', '''y''': the location of the unit to remove an overlay from<br />
** '''image''': the image to remove from the unit<br />
* '''[animate_unit]''': Uses an animation of a unit to animate it on screen (if the unit has the corresponding animation).<br />
** '''flag''': The key to find the custom animation in the unit description (see the '''[extra_anim]''' description in [[AnimationWML]]). Standard animations can be triggered with the following keywords: ''leading recruited standing idling levelin levelout healing healed poisoned movement defend attack death victory pre_teleport post_teleport''<br />
** '''[filter]''' with a [[StandardUnitFilter]] as argument, see [[FilterWML]]. By default, the unit at the event location will be animated. You can use this tag to choose any other unit to animate.<br />
** '''[primary_attack]''': If this tag is not present, the filter for animation will be triggered with no attack. If it is here, all attacks from the unit will be filtered, and a matching one will be used to filter the animation. Takes a weapon filter as argument, see [[FilterWML]].<br />
** '''[secondary_attack]''': Similar to '''[primary_attack]'''. May be needed to trigger a defense animation correctly, if there are more than one animations available for the defending unit.<br />
** '''hits''': yes/no: which according variation of a attack/defense animation shall be chosen (required)<br />
** '''text''': a text to hover during the animation <br />
** '''red''': red value for the text color (0-255)<br />
** '''green''': green value for the text color<br />
** '''blue''': blue value for the text color<br />
** '''with_bars''': yes/no: whether to display the status bars during the animation (e.g. the hitpoint bar)<br />
** '''[animate]''': a sub block with the same syntax as '''[animate_unit]''' except that the '''[filter]''' block is mandatory to find the unit. This block will find and animate another unit simultaneously.<br />
** '''[facing]''': a [[StandardLocationFilter]] specifying what direction the unit should be facing when animated<br />
* '''[label]''' places a label on the map.<br />
** '''x''', '''y''': the location of the label<br />
** '''text''': what the label should say<br />
** '''team_name''': if specified, the label will only be visible to the given team.<br />
** '''colour''': color of the label. The format is r,g,b; r, g and b are numbers between 0 and 255. <br />
** '''visible_in_fog''': whether the label should be visible through fog or not. Default yes.<br />
** '''visible_in_shroud''': whether the label should be visible through shroud or not. Default no.<br />
** '''immutable''': whether this label is protected from being removed or changed by players. Default yes. {{DevFeature1.9}}<br />
* '''[deprecated_message]''' shows a deprecated message in the message area, this feature is only intended to be used to warn about deprecated macros in mainline. The message is not translatable.<br />
** '''message''': the message to show.<br />
* '''[wml_message]''' outputs a message to Wesnoth's console output. Intended for campaign designers to output silent text to the console, without annoying the player; then, that text might contain information useful for later bug-reporting. The log domain for it is '''wml''', and the '''debug/dbg''' log level is available for use with the '''logger''' attribute. Depending on the current log level ('''error''' by default), which may be changed with the in-game :log command, or the --log-<level>=wml command line switch, the messages are echoed to the in-game chat.<br />
** '''message''': the message to show.<br />
** '''logger''': the Wesnoth engine output logger that should catch the text; this might be 'err' (the errors log level), 'warn'/'wrn' (the warnings log level) or anything else (the information log level). Not all information will be displayed depending on the log level chosen when starting Wesnoth.<br />
* '''[open_help]''' opens the in-game help.<br />
** '''topic''': the id of the topic to open<br />
* '''[show_objectives]''': {{DevFeature}} refreshes the objectives defined by [objectives] and its [show_if] tags, and displays them. (It is also called whenever the user explicitly asks for the objectives; this matters only if the tag was overridden by a [[LuaWML#register_wml_action|Lua]] script.)<br />
** '''side''': the side to show the objectives. If not set, all sides are used.<br />
<br />
== Useful Macros ==<br />
There are some predefined macros that you find useful for interface actions. You can find a complete list along with a detailed explanation of how they work [http://www.wesnoth.org/macro-reference.xhtml here].<br />
* '''{FLOATING_TEXT}''' Float some text over a unit similar to the damage numbers.<br />
* '''{HIGHLIGHT_UNIT}''' Highlight a unit on the map. Use this to show important units<br />
* '''{HIGHLIGHT_IMAGE}''' Places and highlights an image on the map. Use this to show important items or locations<br />
* '''{SET_IMAGE}''' Places an image on the map which has no other function.<br />
* '''{QUAKE <soundfile>}''' Creates a tremor like screenshake and plays <soundfile>. ('''{TREMOR}''' is a deprecated version, equivalent to '''{QUAKE (rumble.ogg)}''')<br />
* '''{FLASH_WHITE}''' Flash the screen white momentarily. You can also replace WHITE with RED, BLUE or GREEN for a different colour.<br />
<br />
== See Also ==<br />
* [[DirectActionsWML]]<br />
* [[InternalActionsWML]]<br />
* [[EventWML]]<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]<br />
[[Category: ActionsWML]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=WesnothBinariesLinux&diff=36423WesnothBinariesLinux2010-05-06T16:34:30Z<p>ShikadiQueen: /* Compiling */ Edited instructions so they work with bzip2 tarballs</p>
<hr />
<div>Not all Distributions are always at the state of the current release. If you want to be sure to have the current version, please get the sources and compile it yourself.<br />
<br />
== Arch Linux ==<br />
* For the official pkg from [extra]: <code>pacman -S wesnoth</code> <br />
* There's a wesnoth-devel package for development releases in [http://aur.archlinux.org/packages.php?ID=9600 AUR].<br />
<br />
== Ark Linux ==<br />
* Ark Linux includes an official wesnoth package, currently at version 1.7.0. Simply use the package installation tool to install the wesnoth package, or run <code>apt-get update; apt-get install wesnoth</code> (or <code>apt-get -t dockyard-devel install wesnoth</code> if you wish to run the current development version of wesnoth with all other packages from the stable tree)<br />
* Users of other similar distributions can download the packages at [http://arklinux.osuosl.org/dockyard-devel the Ark Linux file server]. They are likely to run on any rpm based distribution that uses a recent version of gcc (>= 4.0) and glibc (>= 2.4).<br />
<br />
== Debian ==<br />
* <code>aptitude install wesnoth</code><br/>(use <code>wesnoth-all</code> if you want to pull in all the campaigns and the editor, too)<br />
* [http://packages.debian.org/wesnoth Official packages] including the development releases in the experimental branch <br />
* [http://backports.org/ backports.org] offers the stable wesnoth releases for Debian stable, see http://wiki.debian.org/Backports for more informations.<br />
<br />
===International langugage support===<br />
Debian does not come with all locales. If you can't choose your language, you need to add locale for your lang.<br />
see man locale.gen for more info.<br />
quick guide for lenny: uncomment locales you want in /etc/locale.gen, then as root run "locale-gen".<br />
<br />
===Compiling===<br />
<br />
If you want to play with the SVN version directly you may have to compile it yourself. See [http://www.wesnoth.org/wiki/CompilingWesnoth Compiling Wesnoth].<br />
<br />
'''To install the dependencies:'''<br />
<br />
You can use a neat trick: Use the Build-Dependencies of the Debian package.<br />
<br />
Just do an <code>aptitude build-dep wesnoth</code>. That will pull in most you need. As of 1.4 stable wesnoth, the dependencies also include all of the "Boost" libraries, if you are using Debian stable/etch sources.list you need to also <code>aptitude install libboost-iostreams-dev libboost-test-dev</code>.<br />
<br />
'''To compile it:'''<br/><br />
If you have already installed an older version of wesnoth, uninstall it by:<br />
<br />
<code>aptitude purge wesnoth</code><br />
<br />
Note that this will not remove downloaded data or savegames which are stored in your home directory in the folder <code>.wesnoth</code>. From this point on you can simply follow the advices from the [http://www.wesnoth.org/wiki/CompilingWesnoth Compiling Wesnoth] page, no need to duplicate that informations in here. :)<br />
<br />
== Ubuntu ==<br />
<br />
=== Karmic ===<br />
<br />
9.10's universe repository includes version 1.6.5.<br />
<br />
You can install via Applications->Ubuntu Software Center, via System->Administration->Synaptic, or aptitude/apt-get.<br />
<br />
Also, [http://itwesnoth.valdan.net IT-WESNOTH] offers additional builds of the stable and development releases in their repository on tuxfamily: [http://download.tuxfamily.org/itwesnoth/debian/]. '''Please report issues with these packages to them and not to Ubuntu/the wesnoth team!'''<br />
<br />
=== Jaunty === <br />
<br />
9.04's universe repository includes version 1.6a<br />
<br />
You can install via System->Administration->Synaptic, via Applications->Add/Remove or aptitude/apt-get.<br />
<br />
Also, [http://itwesnoth.valdan.net IT-WESNOTH] offers additional builds of the stable and development releases in their repository on tuxfamily: [http://download.tuxfamily.org/itwesnoth/debian/]. '''Please report issues with these packages to them and not to Ubuntu/the wesnoth team!'''<br />
<br />
===Intrepid=== <br />
<br />
8.10's universe repository includes version 1.4.5.<br />
<br />
You can install via System->Administration->Synaptic, via Applications->Add/Remove or aptitude/apt-get.<br />
<br />
Also, [http://old.getdeb.net/app/The+Battle+for+Wesnoth GetDeb.net] offers packages from the 1.6 release. '''Please report issues with these packages to them and not to Ubuntu/the wesnoth team!'''<br />
<br />
===Hardy===<br />
<br />
* 8.04's (hardy) universe repository includes version 1.4.<br />
* 8.04's (hardy-backports) universe repository includes version 1.4.4.<br />
<br />
See the [http://ubuntuguide.org/wiki/Ubuntu:Gutsy#How_to_add_extra_repositories Ubuntu Starter Guide]'s section on adding the universe repositories.<br />
Install via System->Administration->Synaptic, via Applications->Add/Remove or aptitude/apt-get.<br />
<br />
Also, [http://old.getdeb.net/app/The+Battle+for+Wesnoth GetDeb.net] offers packages from the 1.6 release. '''Please report issues with these packages to them and not to Ubuntu/the wesnoth team!'''<br />
<br />
===Compiling===<br />
If you choose to build the source you should add the datadir flag to ''configure'' to ensure your installation puts the data in the same place as the official installation path:<br />
<br />
cd /usr/src<br />
tar -xvjf wesnoth-1.x.x.tar.bz2<br />
cd wesnoth-1.x.x<br />
./configure --datadir=/usr/share/games ...<br />
make<br />
sudo make install<br />
<br />
=== International language support ===<br />
<br />
If you want to use Wesnoth with a language that is not supported by your system, you have at least two options:<br />
<br />
From Wesnoth version 1.6 onwards you can start Wesnoth with the flag <code>--dummy-locales</code> to enable all languages, even if they are not supported by your system.<br />
<br />
For older versions of Wesnoth you’ll have to enable the language on your own system first. Look in the file <code>/usr/share/i18n/SUPPORTED</code> for a line with an ISO language code matching what you want. Append that line to <code>/var/lib/locales/supported.d/local</code>, then run <code>sudo dpkg-reconfigure locales</code>. You should now be able to select that language from the language selector in Wesnoth.<br />
<br />
== Fedora ==<br />
Battle for Wesnoth is included in [http://fedoraproject.org/ Fedora]. The current version of Battle for Wesnoth is available for ppc, i386, and x86_64 architectures. If you have problems with these packages, or other questions, please contact the Fedora maintainer [mailto:limb_AT_jcomserv.net Jon Ciesla].<br />
<br />
To install simply run:<br />
* <code>yum install wesnoth wesnoth-tools wesnoth-server</code><br />
<br />
== Gentoo ==<br />
For the stable release just type:<br />
* <code>emerge wesnoth</code><br />
<br />
For the development release you will have to fetch an overlay, eg from this site:<br />
http://www.dorf.wh.uni-dortmund.de/priv/markus/wesnoth-dev.tbz<br />
extract it to your local overlay-directory and then type<br />
<code>emerge wesnoth-dev</code><br />
The ebuild will be updated whenever the person creating the ebuild finds the time to do so.<br />
<br />
Or if you're too impatient to wait and willing to take the risk of things blowing up, download<br />
and extract the overlay, make a copy of the highest available ebuild version, but change the version number to<br />
that of Wesnoth version you want (for instance, wesnoth-dev-1.3.2.ebuild might become <br />
wesnoth-dev-1.3.8.ebuild ), run <br />
<code>ebuild [new ebuild file] digest</code><br />
and then try to emerge. It may or may not work, depending on exactly how extensive the changes in the Wesnoth<br />
source are--going from 1.3.2 to 1.3.8 this way worked for me.<br />
There's an ebuild for 1.5.8 on Gentoo Bugzilla: http://bugs.gentoo.org/show_bug.cgi?id=256513<br />
<br />
For building from svn tree download the portage overlay from:<br />
http://www.dorf.wh.uni-dortmund.de/priv/markus/wesnoth-svn.tbz<br />
extract it to your local overlay-directory and then type<br />
<code>emerge wesnoth-svn</code><br />
<br />
wesnoth-dev are the official development releases<br />
while wesnoth-svn will build straight from SVN-source tree to keep you up to date with the lastest changes and all the errors ;-)<br />
updating wesnoth-svn will not work ! you have to reemerge it each time you want to update !<br />
<br />
Note: Neither wesnoth-dev nor wesnoth-svn seem to be maintained (as seen Nov 2009). The easiest way <br />
should be downloading the source and following the instructions to build wesnoth in the source directory <br />
with cmake and as a normal user. Inside the source directory start with ''./wesnoth'', as opposed <br />
to ''wesnoth'' from your portage tree.<br />
<br />
== KateOS ==<br />
Currently Battle for Wesnoth v1.4 is available in offcial KateOS repo (testing for now)<br />
[http://www.kateos.org/download/packages/testing3/]<br />
<br />
== klik ==<br />
The most easy way to testdrive BfW is provided via [http://klik.atekon.de/ klik]. klik enables clients to create distribution-independent binaries which require no "installation" (the base system remains untouched); its created "AppDir" bundles run even from USB stick or CD RW. klik support is pre-enabled on Knoppix and Kanotix Live CDs. Other distros need to install a small klik client (less than 20 kByte download, less than 20 seconds effort). See the [http://klik.atekon.de/wiki/index.php/User%27s_FAQ klik FAQ] for details. A [http://wesnoth.klik.atekon.de/ BfW-specific klik website] has links to help with the package. Once the klik client is installed, look at this:<br />
* [http://wesnoth.klik.atekon.de/ Wesnoth-1.0] ancient stable Version: to "klik" it, type ''klik://wesnoth'' into your Browser<br />
* [http://wesnoth-latest.klik.atekon.de/ Wesnoth-1.1.1] ancient Development-Version: to "klik" it, type ''klik://wesnoth-latest'' into your Browser<br />
<br />
== Mandriva ==<br />
<code>urpmi wesnoth</code><br />
<br />
or use the GUI installer (in the Control Centre)<br />
<br />
To install Battle for Wesnoth 1.8 in Mandriva 2009,2009.1 and 2010 you need to enable the contrib backports repo: you can do this in the Mandriva Control Centre .<br />
<br />
== Pardus ==<br />
* Run Package Manager, click Games section, select Wesnoth and click install.<br />
* If you prefer to install Wesnoth from command line type <code>pisi it wesnoth</code>.<br />
<br />
== Slackware ==<br />
<br />
* Slackbuilds for Battle for Wesnoth on Slackware 13 are for 1.6.5. Developmental branch requires you to edit a new line between 65 & 66 with './autogen.sh' in addition to changing the version number in the wesnoth.SlackBuild script.<br />
<br />
* Packages of Battle for Wesnoth for Slackware 12.2 can be downloaded from [http://slacky.eu/aadm/pkgs/index.php?sear=wesnoth&ver=6 slacky.eu] Latest Wesnoth build: 1.6.3<br />
<br />
* Building from source using SlackBuild script for Slackware 12.2 [http://slackbuilds.org/repository/12.2/games/wesnoth/ SlackBuilds.org] Latest Wesnoth build: 1.6.1 Note: Probably could be used for building newer 1.6.x version.<br />
<br />
Note: Depends on boost package (+ icu package if you use binary from slacky.eu), so it should be installed before installing Battle for Wesnoth binary or compiling from source.<br />
<br />
Install boost and icu binary from slacky.eu [http://slacky.eu/aadm/pkgs/index.php?sear=boost&ver=6 boost] [http://slacky.eu/aadm/pkgs/index.php?ver=6&sear=icu icu]<br />
<br />
Compile boost from source using SlackBuild script [http://slackbuilds.org/repository/12.2/development/boost/ SlackBuilds.org]<br />
<br />
* Installation:<br />
<br />
Binary package: Downloaded Battle for Wesnoth binary, boost and icu dependency install with installpkg command.<br />
<br />
For example: #installpkg wesnoth-1.6.3-i486-1sl.tgz boost-1.39.0-i686-1as.tgz icu-3.6-i486-2sl.tgz<br />
<br />
SlackBuild script: Consult SlackBuilds [http://slackbuilds.org/howto/ HOWTO]<br />
<br />
== [[SuSE]] / [http://www.opensuse.org OpenSUSE] ==<br />
<br />
These are builds of The Battle For Wesnoth for several SUSE Linux distributions, made for both i386 and x86_64 architecture. On SUSE Linux 10.1 and above, as well as on SLED, just use the zen-updater and add these directories to your available services (as ZYPP). On 10.0 and older, you can use YaST to add the installation sources. On OpenSUSE 10.3 or higher, just use 1-click Install.<br />
<br />
If you have problems with these packages, or other questions, please contact [http://en.opensuse.org/User:Hhetter123 Holger Hetterich].<br />
<br />
<br />
* OpenSUSE 11.1 [http://software.opensuse.org/search?baseproject=openSUSE%3A11.1&p=1&q=wesnoth One-Click-Install]<br />
* OpenSUSE 11 [http://software.opensuse.org/search?baseproject=openSUSE%3A11.0&p=1&q=wesnoth One-Click-Install]<br />
* OpenSUSE 10.3 [http://software.opensuse.org/search?p=1&baseproject=openSUSE%3A10.3&q=wesnoth One-Click-Install]<br />
* SUSE Linux 10.1 http://software.opensuse.org/download/games:/strategy:/turn-based/SUSE_Linux_10.1/<br />
* OpenSUSE Linux 10.2 http://software.opensuse.org/download/games:/strategy:/turn-based/openSUSE_10.2/<br />
* OpenSUSE Factory [http://software.opensuse.org/search?baseproject=openSUSE%3AFactory&p=1&q=wesnoth One-Click-Install]<br />
* SLED 10 (SUSE Linux Enterprise Desktop) requires an additional installation source including common required packages SLED is missing. First add http://software.opensuse.org/download/SUSE:/SLE-10:/SDK:/Extra/SLE_10/ , then add http://software.opensuse.org/download/games:/strategy:/turn-based/SLED10_SDK_Extras/ to your installation sources.<br />
<br />
== Vine Linux ==<br />
<br />
"wesnoth" rpm package for "Vine Linux 5" is using VLGothic font.<br />
<br />
;Vine Linux 5.x<br />
: VinePlus (plus category)<br />
:* RPM package "wesnoth" is version 1.6.x.<br />
:* RPM package "wesnoth147" is version 1.4.7.<br />
<br />
To install simply run:<br />
* <code>apt-get install wesnoth</code><br />
<br />
== Yoper Linux ==<br />
All versions built for Yoper 2.2.0-6, although they should install on 2.1.<br />
Please let kernowyon know via the Yoper forums if you get any problems<br />
Latest 1.0.2 version<br />
* http://yoperstuff.kernowyon.org.uk/rpms/wesnoth-1.0.2-1.i686.rpm<br />
1.0.1 version<br />
* http://yoperstuff.kernowyon.org.uk/rpms/wesnoth-1.0-1.i686.rpm<br />
Earlier version<br />
*http://yoperstuff.kernowyon.org.uk/rpms/wesnoth-0.9.7-1.i686.rpm<br />
<br />
== Other ==<br />
* [http://rpmfind.net/linux/rpm2html/search.php?query=wesnoth Search RPMs]<br />
<br />
== See Also ==<br />
* [[CompilingWesnoth]]<br />
* [[Download]]<br />
<br />
[[Category:Building and Installing]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ImagePathFunctions&diff=36168ImagePathFunctions2010-04-19T18:44:56Z<p>ShikadiQueen: Remove DevFeature templates after 1.8, reorganize ~RC()/~PAL() documentation</p>
<hr />
<div>Image Path Functions provide a simple method for WML coders to alter the way their specified images will be displayed in the game. All of the function parameters are included at the end of an image path and should not contain any spaces or special characters (other than those specified here).<br />
<br />
== Team-Color Function ==<br />
In Wesnoth version 1.2, the only Image Path Function was '''~TC()''', which took two comma-separated parameters: the team number and the source color palette. The valid values for both of these parameters are defined in the file ''data/team-colors.cfg''<br />
<br />
=== Syntax ===<br />
'''~TC(''' ''team number'' ''',''' ''source color palette'' ''')'''<br />
*''team number'' - this is the first parameter, a number 1-9 signifying the team number of a unit. Number 1 typically means the red team, 2 typically means the blue team, and so on (unless the scenario color settings for any side have been altered).<br />
*''source color palette'' - the second parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
<br />
== Re-Color Function ==<br />
May be used to change some colors in an image.<br />
=== Syntax ===<br />
'''~RC(''' ''source color palette'' '''>''' ''color range ID'' ''')'''<br />
*''source color palette'' - the first parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
*''color range ID'' - this is the second parameter, signifying the ID of a color range defined in the file ''data/core/team-colors.cfg'' (or it may be a custom ID for a color range defined locally). <br />
<br />
=== Example ===<br />
In the following example, the magenta regions in an elvish captain's image are turned a healthy shade of green:<br />
<br />
[message]<br />
speaker=narrator<br />
image=units/elves-wood/captain.png~RC(magenta>green)<br />
message=_ "Now I am on the green team."<br />
[/message]<br />
<br />
The IDs of the color ranges may be the lowercased English name of the palette's base color (e.g. 'red', 'brown', etc.). They may also be numeric color indices from the palette WML included with the game, but this is not recommended.<br />
<br />
== Palette-switch Function ==<br />
May be used to change colors in an image following the specifications of a source and target (new) palette.<br />
=== Syntax ===<br />
'''~PAL(''' ''source color palette'' '''>''' ''target color palette'' ''')'''<br />
*''source color palette'' - the first parameter is a source color palette, such as magenta. Do not surround this parameter with quotes.<br />
*''target color palette'' - the new palette to take the place of the source colors in the image.<br />
<br />
== Flip Function ==<br />
May be used to flip an image horizontally and/or vertically<br />
=== Syntax ===<br />
'''~FL(''' ''optional argument list'' ''')'''<br />
*''vertical'' - if the string "vert" is found anywhere in the argument list, the image will be flipped vertically.<br />
*''horizontal'' - if the string "horiz" is found anywhere in the argument list, the image will be flipped horizantally.<br />
*if the argument list is empty, the image will only be flipped horizantally.<br />
<br />
== Greyscale Function ==<br />
May be used to greyscale the image (turn to black and white)<br />
=== Syntax ===<br />
'''~GS( )'''<br />
<br />
== Crop Function ==<br />
Extracts a rectangular section of an image file.<br />
=== Syntax ===<br />
'''~CROP(x,y,width,height)'''<br />
* ''x'',''y'': top-left corner coordinates for the rectangular section extracted. Must be greater or equal than zero, and inside the image's bounds.<br />
* ''width'': width of the selected region. Must be less than or equal to the original image's width.<br />
* ''height'': height of the selected region. Must be less than or equal to the original image's height.<br />
<br />
== Color-shift function ==<br />
Performs simple per-channel color shifts by adding the arguments to the respective color channels.<br />
=== Syntax ===<br />
''Multi-channel:'' '''~CS(r,g,b)'''<br />
''Single-channel:'' '''~R(v)''', '''~G(v)''', '''~B(v)'''<br />
<br />
The multichannel syntax assumes all arguments are set to zero initially, so one can use, e.g. ~CS(2,4) to add +2 and +4 units to the red and green channels respectively, leaving the blue channel intact. Arguments may be negative to diminish a channel's value; this can be used to change an image's brightness. Checks for out-of-range arguments or results (less than 0 or greater than 255) are made, so the resultant values are truncated if necessary.<br />
<br />
The single channel syntax behaves exactly the same, except that only single-channel modifications are made per function. However, one can stack them to produce the same behavior as ~CS(), e.g. ~R(r)~G(g)~B(b), but that tends to be just a performance loss.<br />
<br />
Any color-shift is performed before changing opacity or desaturating the graphic (see ~O() and ~GS()).<br />
<br />
== Image-scaling function ==<br />
Scales a graphic up or down.<br />
=== Syntax ===<br />
<br />
'''~SCALE( ''new_width'', ''new_height'' )<br />
<br />
The ''new_width'' and ''new_height'' parameters are taken as the image's original width or height, respectively, if one of them happens to be zero. Negative values are treated in the same way, but an error is printed in stderr.<br />
<br />
== Opacity modifying function ==<br />
Changes an image's opacity at render time.<br />
=== Syntax ===<br />
<br />
'''~O( ''factor or percentage%'' )'''<br />
<br />
If the argument includes the percentage symbol (''%''), it will be treated as a percentage of full (real) opacity; an image will be displayed at its native opacity with ~O(100%).<br />
<br />
Without the percentage symbol, the argument is assumed to be a factor by which the image's native opacity should be multiplied. Thus, ~O(0.5) and ~O(50%) are equivalent forms of specifying to reduce an image's opacity by half.<br />
<br />
== Blurring function ==<br />
Blurs a graphic at render time using the same algorithm used for in-game dialogs.<br />
=== Syntax ===<br />
<br />
'''~BL( ''radius'' )'''<br />
<br />
== Null function ==<br />
Does nothing.<br />
=== Syntax ===<br />
<br />
'''~NOP()'''<br />
<br />
== Precedence of Functions ==<br />
<br />
All functions are applied in left-to-right order, with the exception of RC() and TC() which are applied always before any other functions.<br />
That is, stuff like "units/elves-wood/fighter.png~CROP(0,0,20,20)~CROP(10,10,10,10)" would result in taking a crop of the rectangle x=20;y=20;w=40;h=40 and then taking a crop from ''that'' rectangle as x=10;y=10;w=10;h=10 resulting in the area x=30;y=30;w=10;h=10 from the original graphic.<br />
<br />
[[Category:WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=User:Shadowm&diff=36061User:Shadowm2010-04-13T15:45:06Z<p>ShikadiQueen: Reduced my user page to a stub since I never remember to keep it updated with info</p>
<hr />
<div>Hi, I'm one of the mainline devs. I've neglected updating this page for too long so I have basically killed it. My Gna account name is "shadowmaster" and my forum account is "shadowmaster". You can find me on [[Support#IRC|IRC]] by the nickname "shadowmaster" (duh).<br />
<br />
== My Website ==<br />
<br />
My website is were you'll learn about my projects and other stuff I do (since it's always up to date, even): [http://shadowm.rewound.net/ shadowmaster's Lair].</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=User:Shadowm&diff=36060User:Shadowm2010-04-13T15:41:32Z<p>ShikadiQueen: Testing strike tag</p>
<hr />
<div>I am currently developer for the Battle for Wesnoth project, by my Gna account name "shadowmaster" and forum account "Shadow_Master", and I've been lately rather active adding or seeking to add new features to the game's actual program (C++ part) that have been underestimated for ages.<br />
<br />
== Things I made for Wesnoth ==<br />
<br />
<strike>I no longer maintain these lists.</strike><br />
<br />
=== 1.3.x/1.4.x ===<br />
* Implemented random_gender for [SingleUnitWML]. This could be done with more complex WML, but only at event level (i.e. it was impossible to randomize a unit's gender at '''[side]''' level).<br />
* Implemented gender-selection for Multiplayer games' leaders, including the choice of letting the game decide upon a random one when applicable. I received valuable GUI design help from Noyga.<br />
* Extended the '''[store_side]''' and '''[modify_side]''' WML features, including the possibility of quering/setting fog, shroud, user_team_name, recruit lists, controller type and village_gold information.<br />
* Implemented :shroud and :fog debug-mode commands.<br />
* Fixed a portrait advancement bug which was probably as old as female units' implementation, but passed unnoticed until kitty made generic gender-specific portraits for mainline elves.<br />
* Many other bugfixes I don't recall.<br />
* Added Mushroom floor tile with local light (+25%) for consistency with other cave tiles.<br />
<br />
=== 1.5.x/1.6.x ===<br />
* Extended '''[modify_side]''' to be possible to override/merge shroud_data. This is still experimental though.<br />
* Made it possible to use '''[variable]''' boolean_not_equals.<br />
* Implemented '''[set_variable]''' string_length to query upon a string's length after doing (complex) variable substitution.<br />
* Many other bugfixes I don't recall.<br />
<br />
=== Spanish translation ===<br />
<br />
Since version 1.5.5 or so, I have been the maintainer of the Spanish translation team, which would have stayed dead otherwise.<br />
<br />
[[SpanishTranslation|Spanish Translation Team's wiki page]]<br />
<br />
== My Website ==<br />
<br />
My website is were you'll learn about my projects and other stuff I do: [http://shadowm.nfshost.com Shadow Master's Website].</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=SoC_People_to_bug_on_IRC&diff=34635SoC People to bug on IRC2010-03-19T12:34:06Z<p>ShikadiQueen: /* Shadow Master/ShikadiLord */ updated info</p>
<hr />
<div>{{SoC2010}}<br />
<br />
== People to bug on IRC ==<br />
We have prepared a list of people with their "area of competence". This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:<br />
<br />
=== boucman ===<br />
As our "patch monkey" he accustomed to critiquing patches of every kind. Beside this, he knows many areas of the game due to working on applying patches. He is particularly used to answering question from new coders, and doesn't mind explaining trivial stuff. He was the one who started the "two patches, you're in" policy and the ReferenceWML part of the project.<br />
<br />
=== Crab_ ===<br />
Yurii Chernyi (Crab) has joined the team in 2009. He restructured Wesnoth AI as part of GSoC-2009, and is an expert on all aspects of current Wesnoth AI codebase. So, he's the person to ask about anything in '''src/ai'''. He also knows much about campaign units/leaders persistence. He also knows how to compile on Windows using MSVC 2008 and has the archive with all the required dependencies for that.<br />
<br />
=== Dave alias Sirp ===<br />
Sirp started Wesnoth and is our lead developer. He is currently our C++ expert and is also the one that is working on the new Formula AI. Any questions regarding the formula AI should be directed to him.<br />
<br />
=== Dragonking ===<br />
<br />
He is one of our best Wesnoth players, and understands the various strategies well. He has also programmed much of the Wesnoth Formula AI system and understands it well.<br />
<br />
=== Elias Pscherning (elias) ===<br />
He wrote the original version of campgen and as such will know a lot about what is needed to to make such an editor work correctly. The work on a scenario editor might be based upon campgen and as such his knowledge will be really helpful.<br />
<br />
=== Eric S. Raymond (ESR) ===<br />
ESR is our project toolsmith; he has written several tools that semi-automate various aspects of WML maintenance. While most of our developers/designers concentrate on either the C++ core or WML but not both, he has a balanced understanding of both levels and may be helpful in helping students develop a grasp of the overall architecture. Finally, he did the last overhaul of the Wesnoth UI and understands UI design principles; he is well-equipped to guide students working in that area.<br />
<br />
=== Happygrue/Wintermute === <br />
<br />
A recent addition to the development team, Winter has recently been helping to test the AI and is a useful person to ask about behavioral problems in this area. <br />
<br />
=== ilor ===<br />
2008 GSoC student, worked on and maintains the new map editor in Wesnoth 1.5/1.6/1.7. Has some fairly recent experience with getting "in" the Wesnoth codebase.<br />
<br />
=== Karol Nowak (grzywacz) ===<br />
Two years he participated at GSoC as a student, so he will understand the situation of GSoC students. Beside this he is our top expert on Wesnoth for embedded devices as he worked on the gp2x support.<br />
<br />
=== loonycyborg ===<br />
Maintainer of Wesnoth's SCons build system and windows packager. Might also help out with other buildsystems.<br />
<br />
=== Mordante ===<br />
Many of the possible projects involve the code for which he is an area expert. Also, many of the possible projects currently listed on the ideas page require GUI parts to work. Mordante is currently busy rewriting the old gui engine, he will be our expert there as well as already being our area expert for the terrain engine. He also has limited experience with boost asio.<br />
<br />
=== Nils Kneuper (Ivanovic) ===<br />
He is doing nothing special, he just does some "administrative work" like packaging fresh tarballs when it is time for them and works on setting up any kind of deadlines and timetables related to releasing. He has administrative powers in most areas, no matter if website, forum or IRC. Beside this he uploads translation updates, tries to communicate with the translation teams when it is required and translates a little bit himself every now and then. But in general he is not a real expert in anything, just has a look at things that come up and redirects people to the correct contacts.<br />
<br />
=== Noy ===<br />
Noy is an oddity among developers; he's got no coding skills whatsoever and possesses a limited understanding of computers, which is illustrated by his difficulty operating a Mac. Instead, Noy makes his contribution in gameplay and multiplayer design, drawing upon his background in social sciences research, military strategy and playing games online, to understand the effects of development on the playing community behavior. Along with Soliton, Noy is a useful conduit to discuss any issues in this area.<br />
<br />
=== Noyga ===<br />
Another versatile developer, on the C++ side he doesn't concentrate on a particular area, did some tweaks to improve translations in some languages (like enabling the female forms for names in various place) but know quite well the C++ side of units, abilities and WML. On the WML side he's an expert.<br />
<br />
=== Sapient ===<br />
This developer started working on the GUI and widgets, but recently he focused more on improving the internal mechanics of the WML engine such as variable look-ups and filtering. Sapient is not as active anymore but he does come one IRC in the evenings (U.S.A.). He has touched-up many areas of the code in small ways over time, thus he has a good general knowledge of the C++ code and also has worked a little on some python maintenance scripts. <br />
<br />
=== shadowmaster ===<br />
He has been around since late 2007, and has worked in many areas of the engine, including the game events handler, the image path functors and the add-on management engine. As an add-on developer, he knows a lot about the WML language itself (preprocessor, basic structure) and its various single-player oriented dialects.<br />
<br />
=== Soliton ===<br />
He knows our MP server setup best. Beside this he has already done a lot of work on the MP server himself. So he probably has most knowledge about it and, being one of our MP-developers, might provide important help from the perspective of the MP player community and what is needed there.<br />
<br />
=== YogiHH ===<br />
Since he is the developer who know most about building under Windows, he will probably be really helpful. Either if the student comes from the Windows side, or to help test resulting work to make sure that it does work on Windows and, for the case that it does not, to show them where problems are.<br />
YogiHH also knows quite a bit about the game engine and everything that has to do with replays and savegames.<br />
<br />
=== zookeeper or Mythological or Rhuvaen ===<br />
As our leading WML experts those are to be contacted when it comes to anything related WML problems since they know this stuff best. They do maintain most of the campaigns and improve them whenever they have a good idea for changes.</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=PL:HomePage&diff=34435PL:HomePage2010-03-10T03:59:36Z<p>ShikadiQueen: [Polish version] Removed Donate and (outdated) merchandise links</p>
<hr />
<div>__NOTOC__<br />
Ostatnia edycja : 09:52, 16 March 2007 (CET)<br />
{{tpl}}<br />
Bitwa o Wesnoth jest turową grą strategiczną w klimatach fantasy.<br />
<br />
Pokonaj wszystkich wrogich przywódców wykorzystując świetnie dobraną grupę jednostek jednocześnie zarządzając złotem i ilością kontrolowanych wiosek. Każda jednostka ma swoje silne i słabe strony, aby wygrac rozmieść swoje wojska jak nakorzystniej jednocześnie uniemożliwiając to przeciwnikowi. Wraz ze wzrostem doświadczenia twoje jednostki zyskują nowe możliwości i stają się silniejsze. Graj we własnym językutestując umiejętności w starciu ze sprytną sztuczną inteligencją lub dołącz do do społeczności graczy sieciowych. Twórz własne jednostki, scenariusze i kampanie dzieląc się nimi z innymi.<br />
<br />
Bitwa o Wesnoth jest wydana na licencji [http://www.gnu.org/licenses/licenses.html#GPL GPL]. Gotowe pakiety są dostępne dla większości systemów operacyjnych (Windows, Mac OS X, GNU/Linux), możesz też zbudować własny z kodów źródłowych.<br />
<br />
== Zdobywanie Gry ==<br />
==== Pobieranie ====<br />
* [[Download|Pobierz (''en'')]] - pobierz najnowsze kody źródłowe i wiele plików binarnych<br />
** [[WesnothBinaries|WesnothBinarnie (''en'')]] - prekompilowany dla GNU/Linux, BeOS, PDAs, ...<br />
** [[WesnothBinariesLinux|WesnothBinarnieLinux (''en'')]] - prekompilowany dla wielu dystrybucji GNU/Linux<br />
<br />
==== Kompilowanie ====<br />
* [[CompilingWesnoth|KompilowanieWesnoth (''en'')]] - dla Unix, Mac, Windows, GNU/Linux, PDAs, ...<br />
* [[DebuggingWesnoth|OdpluskwianieWesnoth (''en'')]] - dla GNU/Linux i systemów Unixopodobnych<br />
* [[WesnothOnLinuxPDAs|WesnothDlaLinuxaNaPDA (''en'')]] - dla serii Qtopia/OPIE i thepdaXrom/Zaurus C<br />
<br />
== Granie w Wesnoth ([[PL:Play|Graj (''en'')]]) ==<br />
<br />
==== Dla Nowych Graczy ====<br />
* [[GettingStarted|Poczatki (''en'')]] - przeczytaj najpierw!<br />
* [[WesnothManual|PodręcznikWesnoth (''en'')]] - zasady<br />
* [[MainlineCampaigns|ScenariuszePodstawowe (''en'')]] - podpowiedzi do kampani dostarczanych z grą<br />
<br />
==== Dla Nie-Tak-Znowu-Nowych Graczy ====<br />
* [[AdvancedTactics|ZaawansowanaTaktyka (''en'')]] - jak pokonać SI i innych ludzi<br />
* [[MultiplayerServers|SerweryMultiplayer]] - gdzie można zagrać z innymi ludźmi w internecie<br />
<br />
==== Informacje ====<br />
* [[HotKeysSystem|SkrótyKlawiaturowe (''en'')]] - skróty klawiaturowe<br />
* [[CommandMode|TrybPoleceń (''en'')]] - lista poleceń których można użyć w grze<br />
* [[ServerAdministration|AdministracjaSerwerem (''en'')]] - komendy które upoważnieni użytkownicy mogą wykorzystać do administracji serwerem<br />
* [http://zapicm.freeshell.org Jednostki (''en'')] - drzewo promocji jednostek i statystyki<br />
** [http://zapicm.freeshell.org/dev Wersja rozwojowa (''en'')]<br />
** [http://zapicm.freeshell.org/stable Wesja stabilna (''en'')]<br />
** [http://zapicm.freeshell.org/trunk Najnowsza wersja (''en'')]<br />
* [[RaceDescriptions|OpisyRas (''en'')]] - Elfy, Ludzie, Krasnoludy, Orki, Smoki, Nieumarli, Inne<br />
** [[Complete_Faction_List_%28unfinished%29|(Prawie)KompletnaListaFrakcji (''en'')]] - lista wszystkich (prawie) frakcji stworzonych przez użytkowników<br />
* [[Wesnoth_Acronyms_and_Slang|SkrótyWesnoth (''en'')]] - popularne skróty występujące w grze i społeczności<br />
<br />
== Modyfikowanie Gry ([[PL:Create|Stwórz (''en'')]]) ==<br />
<br />
* [[UserScenarios|ScenariuszeUżytkowników]] - scenariusze, kampanie i modyfikacje gry stworzone przez społeczność<br />
* [[ReferenceWML|EncyklopediaWML]] i [[AlphabeticalWML|WMLAlfabetycznie]] - wszystko o WML (języku znaczników Wesnoth)<br />
* [[ReferencePythonAPI|EncyklopediaPythonAPI]] - nadchodzący interfejs Pythona do SI<br />
* [[BuildingCampaigns|BudowanieKampanii]] - jak stworzyć własną kampanię dla jednego gracza<br />
* [[MultiplayerCampaigns|KampanieDlaWieluGraczy]] - jak stworzyć kampanię do trybu wieloosobowego<br />
* [[BuildingScenarios|BudowanieScenariusza]] - jak stworzyć własny scenariusz<br />
* [[BuildingUnits|BudowanieJednostek]] - jak stworzyć własne jednostki<br />
* [[UnitAnalysis|AnalizaJednostek]] - narzędzie do analizy jednostek<br />
* [[WesnothMapEditor|EdytorMap]] - opis interfejsu<br />
* [[ExternalUtilities|ProgramyUżytkowe]] - skrypty pomocne przy tworzeniu kampani, scenariuszy i grafik<br />
* [[Create_Art#Art_Tutorials|SamouczkiGraficzne]] - pomoc w tworzeniu grafiki<br />
* [[GraphicLibrary|BibliotekaGrafiki]] - ikony jednostek i terenu zamieszczone na forum<br />
* [[Tiles_Status|StatusTerenu]] - elementy terenu proponowane i będące w trakcie prac<br />
<br />
== Poprawianie Gry ==<br />
* [[ReportingBugs|ZgłaszanieBłędów]] - używamy Gna<br />
* prośby o dodanie nowego elementu do gry zamieszczamy na http://bugs.wesnoth.org<br />
* [[FrequentlyProposedIdeas|CzęstoZgłaszanePomysły]] - zanim coś zaproponujesz sprawdź czy nie ma tego tutaj!<br />
==== Informacja Dla Developerów ====<br />
* [[DeveloperResources|ZasobyDlaDeveloperów]] - pożyteczne odnośniki<br />
* [http://changelog.wesnoth.org Changelog|ListaZmian] - najnowsze zmiany w grze<br />
* [[WesnothSVN]] - dostęp do kodu źródłowego<br />
* [[HackingWesnoth|ModyfikowanieWesnoth]] - przewodnik programisty<br />
* [[CodingStandards|StandartKodowania]] - dla programistów<br />
* [[UnitDescriptionRewriting|UaktualnianieOpisówJednostek]] - koordynacja korekt<br />
* [http://wesnoth.slack.it/missing.cgi Missing unit animations and sounds|BrakująceAnimacjeIDźwiękiJednostek] - co jest dostępne i czego brakuje<br />
* [[WritingYourOwnAI|NapiszWłasnąSI]] - jako plugin C++<br />
* [[ThemeSystem|SystemMotywów]] - dostosowywanie rozmieszczenia elementów na ekranie w edytorze i grze<br />
* [[ReleasingWesnoth|PublikowanieWesnoth]] - kroki które należy podjąć, żeby opublikować nową wersję<br />
* [[WesnothPackagersGuide|PrzewodnikDlaTwórcówPaczek]] - wskazówki do przygotowywania Wesnoth dla różnych platform<br />
* [[EasyCoding|ProsteKodowanie]] - błędy oraz elementy łatwe w implementacji dla początkujących koderów<br />
* [[NotSoEasyCoding|NieTakProsteKodowanie]] - Błędy oraz elementy możliwe do wykonania, którym brakuje kogoś kto by nad nimi popracował<br />
* [[WesnothGL]] - przewodnik do programowania Wesnoth w OpenGL<br />
<br />
==== Tłumaczenia Gry ====<br />
* [[GettextForTranslators|GettextDlaTłumaczy]] - jak przetłumaczyć Wesnoth w [[GetText]]<br />
* [[WesnothTranslations|Tłumaczenia]] - 11 zakończonych, 2 prawie gotowych, 7 w połowie, 10 częściowych<br />
* [[WesCamp]] - projekt tłumaczenia kampanii stworzonych przez użytkowników.<br />
<br />
== O Grze ==<br />
* [[WesnothPhilosophy|Filozofia]] - Dave o Wesnoth<br />
* [[WesnothHistory|Historia]] - wieki Wesnoth<br />
* [[WesnothGeography|Geografia]] - opis Wesnoth i otaczających krain<br />
* [[WesnothReviews|Recenzje]] - niezależne recenzje<br />
* [irc://irc.wesnoth.org/wesnoth #wesnoth] - nasz kanał IRC<br />
* [[Trailer]] - trailer Wesnoth<br />
<br />
== Inne ==<br />
* [[UsefulLinks|PrzydatneOdnośniki]]<br />
* [[WesnothLSM]] - prezentacja na LSM<br />
* [http://wesnoth.slack.it/?WesnothPlayerMap MapaGraczy] - dodaj siebie do mapy!<br />
* [http://en.wikipedia.org/wiki/Battle_for_Wesnoth WpisWWikipedii]<br />
* [[WikiHaiku]]<br />
<br />
== O tej Wiki ==<br />
* [[Help:Editing|Edycja]] - naucz się edytować strony<br />
* [[Sandbox|Piaskownica]] - poeksperymentuj<br />
* [[WikiMigration|Migracja]] - szukaliśmy zastępstwa dla starego silnika (i znaleźliśmy MediaWiki)<br />
<br />
[[Category:Polish]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=StartingPoints&diff=34434StartingPoints2010-03-10T03:58:39Z<p>ShikadiQueen: Removed Donate and (outdated) merchandise links</p>
<hr />
<div>__NOTOC__<br />
<br />
What would you like to learn about Wesnoth in this wiki? [[Play]] it, [[create]] with it, [[support]] for it, examine the [[project]], view [[credits]] of it.<br />
<br />
This is a page with starting points to exploring this wiki about The Battle for Wesnoth. In addition to the wiki, there's also a [http://www.wesnoth.org homepage], a [http://www.wesnoth.org/forum forum], and a [http://gna.org/projects/wesnoth/ Gna project page].<br />
<br />
* [[Special:Categories|List of all page categories in this wiki]]<br />
* [[Special:Allpages|List of all pages in this wiki]]<br />
<br />
== Getting the Game ==<br />
==== Downloading ====<br />
* [[Download]] - get the most recent source-files and many binaries<br />
** [[WesnothBinaries]] - precompiled for GNU/Linux, BeOS, PDAs, ...<br />
** [[WesnothBinariesLinux]] - precompiled for many GNU/Linux distributions<br />
<br />
==== Compiling ====<br />
* [[CompilingWesnoth]] - on Unix, Mac, Windows, GNU/Linux, PDAs, ...<br />
* [[UsingSourceinstall]] - using GNU Source Installer to automate installation and upgrades from source (Unix-likes only)<br />
* [[DebuggingWesnoth]] - on GNU/Linux and Unix-like systems<br />
* [[WesnothOnLinuxPDAs]] - on the Qtopia/OPIE and thepdaXrom/Zaurus C series<br />
<br />
== Playing the Game ([[Play]]) ==<br />
<br />
==== For New Players ====<br />
* [[GettingStarted]] - read me first!<br />
* [[WesnothManual]] - the rules<br />
* [[MainlineCampaigns]] - walkthroughs for the game-supplied campaigns<br />
<br />
==== For Not-So-New Players ====<br />
* [[AdvancedTactics]] - beating the AI and other people<br />
* [[MultiplayerServers]] - where to play against other people online<br />
* [[Replays]] - archive of replays new and old<br />
* [[How to play...]] - learn more about various faction vs faction strategies<br />
<br />
==== Reference ====<br />
* [[HotKeysSystem]] - keyboard shortcuts<br />
* [[CommandMode]] - commands you can use in-game<br />
* [[ServerAdministration]] - commands that authenticated users can use to administer the server<br />
* [http://units.wesnoth.org/ Units] - Units advancement trees and stats<br />
** [http://units.wesnoth.org/1.4/ Stable version]<br />
** [http://units.wesnoth.org/trunk Trunk version]<br />
* [[Races]] - [[Drakes (race)|Drakes]], [[Dwarves]], [[Elves]], [[Humans]], [[Orcs]], [[Undead (race)|Undead]], etc.<br />
** [[Factions]] - all major factions, mainline and user-made<br />
* [[Wesnoth_Acronyms_and_Slang|Wesnoth Acronyms and Slang]] - common wesnothian acronyms and slang explained<br />
* [[Maps]] - 1v1 default<br />
<br />
== Tweaking the Game ([[Create]]) ==<br />
==== Scenarios & Campaigns ====<br />
* [[UserScenarios]] - user-written scenarios, campaigns and game modifications<br />
* [[Wesnoth UMC Dev]] - where you can do collaborative UMC development<br />
* [[BuildingCampaigns]] - how to make your own single player campaigns<br />
* [[MultiplayerCampaigns]] - how to make your own multiplayer campaigns<br />
* [[BuildingScenarios]] - how to make your own scenarios<br />
* [[BuildingUnits]] - how to make your own units<br />
* [[UnitAnalysis]] - tool to analyze units<br />
<br />
==== References ====<br />
* [[ReferenceWML]] and [[AlphabeticalWML]] - all about Wesnoth Markup Language<br />
* [[ReferencePythonAPI]] - upcoming Python interface for AI<br />
==== Tools & Utilities ====<br />
* [[ExternalUtilities]] - scripts to help create scenarios, campaigns, and graphics<br />
* [[WesnothMapEditor]] - summary of controls<br />
* [[CustomizingStartup]] - some tweaks for optimizing the game's startup&performance<br />
<br />
==== Art related ====<br />
* [[Create_Art#Art_Tutorials|Art Tutorials]] - help in creating art<br />
* [[GraphicLibrary]] - unit and terrain images posted on the forums<br />
* [[Tiles_Status]] - terrain tiles: proposed and in progress.<br />
<br />
== Improving the Game ==<br />
* [[ReportingBugs]] - use Gna!<br />
* [http://www.wesnoth.org/wiki/ReportingBugs#Guidelines_for_suggesting_features Guidelines for suggesting features] - To submit a feature request, use http://bugs.wesnoth.org<br />
==== Developer information ====<br />
* [[DeveloperResources]] - useful links<br />
* [http://changelog.wesnoth.org Changelog] - the most recent changes made to the game<br />
* [[WesnothSVN]] - accessing the source code<br />
* [[HackingWesnoth]] - guide for programmers<br />
* [[CodingStandards]] - for programmers<br />
* [[DeveloperGuide]] - for those who received SVN commit rights<br />
* [http://www.wesnoth.org/units/trunk/animations.html Missing unit animations] - what's available and what's missing<br />
* [[WritingYourOwnAI]] - write a C++ plugin<br />
* [[FormulaAI]] - Guide to the experimental formula AI branch<br />
* [[ThemeSystem]] - customizing the screen layout for the game and the editor<br />
* [[ReleasingWesnoth]] - steps to follow to release a new version<br />
* [[WesnothPackagersGuide]] - guidelines for packaging Wesnoth for different platforms<br />
* [[EasyCoding]] - Bugs and features that are easy to implement for new coders<br />
* [[NotSoEasyCoding]] - Bugs and features which are doable but lacking someone working on them<br />
* [[WesnothGL]] - Guide to programming the Wesnoth OpenGL branch<br />
* [[WesnothdDesign]] - Guide to the design of wesnothd, the multiplayer server.<br />
<br />
==== Game translations ====<br />
* [[GettextForTranslators]] - how to translate Wesnoth under [[GetText]]<br />
* [[WesnothTranslations]] - completely unknown stats...<br />
* [[WesCamp]] - a project for translating user-made campaigns<br />
<br />
== About the Game ==<br />
* [[WesnothPhilosophy]] - Dave on Wesnoth<br />
* [[History of Wesnoth]] - the Ages of Wesnoth<br />
* [[Geography of Wesnoth]] - description of Wesnoth and surrounding lands<br />
* [[WesnothFigures]] - notable figures of valorous and infamous deeds in Wesnoth<br />
* [[WesnothReviews]] - third party reviews of Wesnoth<br />
* [irc://irc.wesnoth.org/wesnoth #wesnoth] - our IRC channel<br />
* [[Trailer]] - the Wesnoth trailer<br />
<br />
== Other ==<br />
* [[UsefulLinks]]<br />
* [http://wesnoth.slack.it/?WesnothPlayerMap Map of Wesnoth player locations] - add yourself to the map!<br />
* [http://en.wikipedia.org/wiki/Battle_for_Wesnoth Wikipedia entry for Wesnoth]<br />
* [[WikiHaiku]]<br />
<br />
== About this Wiki ==<br />
* [[Help:Editing|Editing]] - learn how to edit pages<br />
* [[Sandbox]] - experiment with the wiki<br />
* [[WikiMigration]] - we were looking for a replacement for our old wiki (and ended up using Mediawiki)<br />
* [http://www.wesnoth.org/forum/viewtopic.php?t=19462 Obsolete] - help in updating the wiki for v1.4<br />
<br />
[[Category:Wesnoth Wiki]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Support&diff=34266Support2010-03-05T01:55:57Z<p>ShikadiQueen: /* IRC */ Add link to freenode's IRC servers info for open ports</p>
<hr />
<div>__NOTOC__<br />
There are many ways to get help. From online documentation to support from the community on IRC or forums.<br />
<br />
== Wiki Resources ==<br />
* [[Play|Online Players Guide]] - Game manual, walkthroughs, strategy guides, and more.<br />
* [[Create|Content-Creation Guide]] - Manual showing how to create new campaigns for Wesnoth.<br />
* [[StartingPoints|Starting Points]] - List of pages to serve as starting point for diving deeply into the wiki...<br />
* [[MP_CodeOfConduct | Multiplayer Information ]] - Info about server moderators, useful MP commands, and our online Code of Conduct.<br />
<br />
== Reporting Bugs ==<br />
If you are experiencing problems, you should consider [[ReportingBugs|reporting a bug]].<br />
<br />
== Community ==<br />
<br />
When asking for help with some technical problem in the game forums, please provide the following information:<br />
* which operating system do you use (e.g. Windows, Linux, Mac OSX)<br />
* which version of Wesnoth do you use (it is displayed in the bottom left corner of title screen)<br />
* contents of file "stderr.txt"<br />
** on MS Windows, it is here: "C:\Program Files\Wesnoth\stderr.txt"<br />
<br />
=== Forums ===<br />
* [http://www.wesnoth.org/forum/ Official Wesnoth forums]<br />
* [[Wesnoth_Acronyms_and_Slang|Wesnoth Acronyms]] - forum lingo<br />
* [http://www.wesnoth.cn Chinese wesnoth forums]<br />
* [http://wif.altervista.org/index.php Wesnoth Italian Forums (W.I.F)]<br />
* [http://www.wesnothlife.ru/forum/ Russian Wesnoth Forums]<br />
<br />
=== IRC ===<br />
If you don't know what IRC is, check out [http://www.irchelp.org/ irchelp].<br />
<br />
All of the following channels use the freenode IRC network unless otherwise noted. If you don't have an IRC client installed on your machine or are behind a strict firewall that blocks [http://freenode.net/irc_servers.shtml freenode's supported ports], you can use a web gateway service, such as [http://webchat.freenode.net webchat.freenode.net], for freenode.<br />
<br />
* [irc://irc.freenode.net/wesnoth #wesnoth] this channel is for general conversation amongst Wesnoth users and developers alike.<br />
* [irc://irc.freenode.net/wesnoth-dev #wesnoth-dev] the development discussion channel. Most contributors and developers (WML, C++ and art people alike) hang around here, exchanging ideas and code patches.<br />
* [irc://irc.freenode.net/wesnoth-mp #wesnoth-mp] the multiplayer servers' status and development discussion channel.<br />
* [irc://irc.freenode.net/wesnoth-writing #wesnoth-writing] the channel for discussion of improving Wesnoth's writing<br />
* [irc://irc.freenode.net/wesnoth-music #wesnoth-music]<br />
* [irc://irc.freenode.net/wesnoth-thunderstone #wesnoth-thunderstone] the discussion, development, and support channel for [[Thunderstone]].<br />
* [irc://irc.freenode.net/wesnoth-umc-dev #wesnoth-umc-dev] the look-alike of #wesnoth-dev for the [http://www.wesnoth.org/forum/viewtopic.php?f=8&t=21413 Wesnoth User-made Add-ons Development] repository.<br />
* [irc://irc.tweakers.net/wesnoth #wesnoth (Dutch channel)] Connect to irc.tweakers.net network<br />
* [irc://irc.freenode.net/wesnoth-de #wesnoth-de (German channel)] the German look-alike of #wesnoth, mainly used by German-speaking users and translators.<br />
* [irc://irc.freenode.net/wesnoth-es #wesnoth-es (Spanish channel)] the channel used by the Spanish translators.<br />
* [irc://irc.freenode.net/wesnoth-pl #wesnoth-pl (Polish channel)] as above, but Polish<br />
* [irc://irc.syrolnet.org/WIF #WIF (Italian channel)] Connect to irc.sylornet.org network<br />
* [irc://irc.freenode.net/wesnoth-gl #wesnoth-gl (Galician channel)]<br />
* [irc://irc.freenode.net/wesnoth-la #wesnoth-la (Latin channel)]<br />
You can also see the [http://irclog.wesnoth.org/ logs] of the #wesnoth, #wesnoth-de, #wesnoth-dev and #wesnoth-umc-dev channels.<br />
<br />
=== Mailing Lists ===<br />
* [https://mail.gna.org/listinfo/wesnoth-dev/ wesnoth-dev] ([https://mail.gna.org/public/wesnoth-dev/ archives]): the mailing list for discussing mainline development issues; it is not intended for bug reports or feature requests. See [[ReportingBugs]] for those.<br />
* [https://mail.gna.org/listinfo/wesnoth-commits/ wesnoth-commits] ([https://mail.gna.org/public/wesnoth-commits/ archives]): all commits made to the mainline SVN repository are automatically echoed in this list for those who want or need to keep track of them. New developers and contributors are required to subscribe to this list.<br />
* [https://mail.gna.org/listinfo/wesnoth-i18n/ wesnoth-i18n] ([https://mail.gna.org/public/wesnoth-i18n/ archives]): the internationalization (i18n) mailing list; all translation team maintainers and the i18n managers should subscribe and keep track of announcements and discussions taking place in this list.<br />
<br />
=== Other Servers List ===<br />
see [http://www.wesnoth.org/wiki/MultiplayerServers here]<br />
<br />
[[Category:Troubleshooting and Bugs]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Irdya_After_the_Fall&diff=33743Irdya After the Fall2010-02-16T21:57:40Z<p>ShikadiQueen: /* Irdya After the Fall */ Removed AtS content</p>
<hr />
<div>== Irdya After the Fall ==<br />
<br />
=== The Beginnings of the Chaos Empire ===<br />
<br />
At some unknown point in the times after the Fall of the Third Sun, a new leader arises among the coastal human settlements at Kalari, and teaches a previously unknown form of magic to a handful of adepts who help him take over the local inhabitants' minds and wills with power drawn from Zocthanol Isle. His closest adepts are from that point known as the Iron Triad, and they begin collecting the energy required to open a new connection to the demonic homeworld and free Uria, the mother of demons.<br />
<br />
A signal coming from Zocthanol is sent to the skies in the form of an eerie pulsating green glow for a few days.<br />
<br />
From this point on, the timeline is structured around the point on which the main gateway to Inferno was opened in the Valley of Weldyn, and divided in two periods: Before the Empire (BE) and During the Empire (DE).<br />
<br />
=== 237-213 BE: Purification of Zochtanol ===<br />
<br />
==== 237 BE (Before the Empire) ====<br />
* Mal-Zagarn, leader of the Chaos cult, investigates ancient ruins in the depths of the Heart Mountains, searching for weapons according to Uria's instructions.<br />
<br />
* Elyssa is born.<br />
<br />
==== 235 BE ====<br />
* Mal-Zagarn returns to Kalari and orders the Iron Triad to dig in the deepest reaches of the Heart Mountains to find the remainings of an ancient civilization. He departs again in direction to the valley of Weldyn.<br />
<br />
* The Iron Triad sends an expedition to the Heart Mountains.<br />
<br />
==== 229 BE ====<br />
* The Iron Triad starts building a fortress in the valley of Weldyn and recovering the remainings of the capital of the ancient Empire.<br />
<br />
==== 222 BE ====<br />
* Ancient technology is discovered in the depths of the Heart Mountains by Mal-Si'ah of the cult of Chaos.<br />
<br />
==== 221 BE ====<br />
* Dwarvish experts begin to experiment with automatons.<br />
<br />
==== 218 BE ====<br />
* Mal-Zagarn starts to experiment at the Weldyn Heart fortress with the newly discovered technology in order to enhance existing lifeforms.<br />
<br />
==== 215 BE ====<br />
* Verlissh creatures descend from the skies to Kalari peninsula at the same time that rocks fall from the sky and crush the Quenoth village. The remaining desert elves, led by the former lord's nephew Kalehssar, go on a journey to find a new home in the North, guided by Kaleh's visions of Eloh in his dreams. '''Under The Burning Suns''' begins.<br />
<br />
* Kaleh's band meets Elyssa, a young fire mage who is collecting knowledge from the ruins of the Empire of Wesnoth in search for the Scepter of Fire.<br />
<br />
==== 214 BE====<br />
* The deser t elves descend underground and meet King Thurongar of the dwarves after repelling an invasion of northern trolls. Elyssa separates from the group.<br />
<br />
* The desert elves stumble upon human scouts sent by the Iron Triad.<br />
<br />
* An avatar of light attempts to convince Kaleh to surrender to the Iron Triad.<br />
<br />
* Merfolk diviners send messengers to locate the desert elves and warn them of the menace at Zocthanol.<br />
<br />
==== 213 BE ====<br />
* Some merfolk prisoners at the north of Kalari peninsula are set free by the Quenoth elves. An incarnation of Eloh appears and turns a substantial amount of elves against Kaleh, threatening to start a civil war.<br />
<br />
* The elvish revolt is put to an end, and the elves escape from the continent by stealing human ships from the port of Ygriz.<br />
<br />
* Elyssa is captured by Chaos scouts while traveling towards the valley of Weldyn.<br />
<br />
* Kaleh and his group arrives to Zocthanol isle and destroys the source of the dark powers holding most of the followers of the Iron Triad and Uria under her control. It is presumed that this is Yechnagoth. '''Under the Burning Suns''' ends.<br />
<br />
* Elyssa attempts to escape only to be recaptured and imprisoned.<br />
<br />
* Human followers of the Chaos cult begin to succumb to uncertainity and despair. The Iron Triad manages to summon a new demon lord, Nar-hamoth, to keep the rebels under control, strengthen their fanaticism and attract more adepts.<br />
<br />
=== 212-1 BE: Prelude ===<br />
<br />
==== 212 BE ====<br />
* Elyssa is tortured in prison and starves nearly to death.<br />
<br />
* Mal-Zagarn finds out about Elyssa and sets her free in order to use her for his fourth experiment with biomechanical organisms before she dies.<br />
<br />
* Elyssa's reconstruction as a hybrid shaxthal organism is successful.<br />
<br />
==== 211 BE ====<br />
*A dwarvish guard spreads word of the Quenoth elves' deeds among his people.<br />
<br />
* Elyssa becomes Mal-Zagarn's apprentice and is taught the unholy magic of Uria.<br />
<br />
==== 210-50 BE ====<br />
* The dwarven country and the Aragwaithi cooperate in order to speed up their economic growth.<br />
<br />
==== 190 BE ====<br />
* Mal-Zagarn designates Elyssa as his second-in-command and begins to use the "Shadow Master" alias.<br />
<br />
==== 156 BE ====<br />
* Elyssa leads an expedition to the Heart Mountains to find non-hybrid shaxthal organisms kept in cryogenic chambers deep underground.<br />
<br />
==== 129 BE ====<br />
* Shaxthal organisms are salvaged from ruins located deep beneath the Heart Mountains.<br />
<br />
==== 128 BE ====<br />
*Shadow Master starts to reproduce and enhance shaxthal technology.<br />
<br />
==== 121 BE ====<br />
* The shaxthal hive at the "Heart" of Weldyn is built.<br />
<br />
==== 109 BE ====<br />
* The shaxthal hive at the devastated plains of Wesmere is built.<br />
<br />
==== 101 BE ====<br />
*Three shaxthal hives are built in the Great Southern Desert.<br />
<br />
==== 90 BE ====<br />
* Shadow Master sends Mal-Dorzat with a battalion to conquer barbarian lands in the Far South of the Great Continent.<br />
*An expedition led by Mal-Himir is sent to the East in search for the Old Continent.<br />
<br />
==== 80-10 BE ====<br />
* The forces of Chaos force the dwarves inhabitating the main area of the Great Continent to retreat to the Heart Mountains. Some dwarven technology is captured by the Iron Triad and mass-production of automatons and other advanced machinery begins.<br />
<br />
* The dwarves stop sending scouts and merchants to the surface.<br />
<br />
* Most orcish tribes in the main area of the Great Continent are erased from existence.<br />
<br />
==== 9 BE ====<br />
* The Iron Triad members use the spirit energy from those who have been defeated by their forces to create a small gap that merges Irdya and Inferno in the Heart hive.<br />
<br />
* Demons start coming to Irdya en masse.<br />
<br />
==== 5 BE ====<br />
* Elyssa is the first human or demi-human to become a demon.<br />
<br />
=== 1-146 DE: The Chaos Empire's Apogee ===<br />
<br />
The Chaos Empire begins after most of the Great Continent has been overrun by the combined forces of shaxthal creatures, demons and Chaos soldiers.<br />
<br />
The Far North at this point has become a somewhat stable and thriving ensemble of human and orcish countries. Occasional conflicts ensue between the human kingdoms, but by the middle of this period, they join the Aragwaith country and later establish a long-lasting alliance with the orcish countries and minor tribes.<br />
<br />
The dwarvish population is concentrated on the depths of the Heart Mountains, and more clans join the recently united Kingdom of New Knalga.<br />
<br />
The desert elves at the Zocthanol Isle remain unaware of the events in the main continent.<br />
<br />
==== 144 DE ====<br />
* Uria gives Shadow Master the order to find Elynia, capture and convert her to her side. Although Uria does not reveal the true reason to Shadow Master and the Iron Triad, she is actually searching to acquire the Ruby of Fire and use it to completely and permanently merge Inferno and Irdya.<br />
<br />
* The Valley of Elynia, the last elven fortress left in the Great Continent, is taken over by the forces of Chaos. A substantial part of the elves escapes in time and heads underground. '''Invasion from the Unknown''' begins.<br />
<br />
==== 145 DE ====<br />
* Elyssa's expedition to the Heart Mountains stumbles upon a band of elves led by Galas, an elvish fighter; Anlindë, a former priest of Zhangor; and Mal Keshar.<br />
<br />
* Galas' band allies with the dwarves of New Knalga to defeat Elyssa's soldiers. Elyssa retreats and calls for reinforcements.<br />
<br />
==== 146 DE ====<br />
* With the help of a dwarven runemaster by the name of Althurin, the elves set Elynia free and fight the vanguard of Elyssa's battalion.<br />
<br />
* Elves and dwarves leave the Heart Mountains due to the overwhelming number of enemy soldiers, who finally manage to take over New Knalga.<br />
<br />
* Anlindë stays behind to fight Elyssa in a one-to-one duel. Although Anlindë loses the fight, she collapses part of the cave system before dying, thus severely injuring Elyssa, whose body is mostly destroyed.<br />
<br />
* Enemy forces are sent by the Shadow Master to rescue the little remains of Elyssa's body, which is shortly rebuilt using better technology than the first time.<br />
<br />
* One of the Chaos Empire's strongholds in the Far South starts experimenting with flying vehicles.<br />
<br />
=== 147 DE: The Chaos Empire's Decay ===<br />
<br />
==== 147 DE ====<br />
* The orcish and human countries in the Far North officially declare war against the Chaos Empire.<br />
<br />
* Elynia, Galas, Mal Keshar and a group of dwarves launch a suicidal attack on the Heart of the Empire. Elyssa faces Galas and his band directly this time, but as she is about to defeat them, Elynia and Mal Keshar summon the Union of the Powers of Light and Darkness by taking advantage of a flaw, unknown to them, that allows Mal Keshar to acquire them from Inferno.<br />
<br />
* Mal Keshar and Elynia manage to defeat Elyssa. However, they spare her life and let her flee from the Heart in exchange for information about Inferno and Shadow Master's location.<br />
<br />
* Shadow Master reveals to Elynia and Mal Keshar that he is Argan, resurrected and converted by Uria, who used a gap in Irdya's deepest reaches to physically contact Argan.<br />
<br />
* Elynia kills Shadow Master with the Power of the Union, which destroys itself as a consequence. The Heart's structure is weakened by the closure of its connection with Inferno, and it turns into a great chasm from which Galas' band barely escapes. '''Invasion from the Unknown''' ends.<br />
<br />
* The Chaos Empire's frontier defenses are severely weakened by the northern armies' relentless attacks.<br />
<br />
[[Category:History]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ReferenceWML&diff=33626ReferenceWML2010-01-21T13:59:43Z<p>ShikadiQueen: macro-reference.xhtml -> macro-reference.html</p>
<hr />
<div>{{WML Tags}}<br />
== The Wesnoth Markup Language ==<br />
<br />
The Wesnoth Markup Language (WML) is used to code almost everything in Wesnoth, including scenarios, units, savefiles, and the user interface layout. WML files are simple, human-readable text files, usually with the .cfg extension, with similarities to INI files and XML. A major feature in WML are macros, which are alike those found in the C language and similarily are handled by a preprocessor. Implementation-wise, WML files are handled mainly by the ''config'' class (and ''simple_wml'' in [[wesnothd]]).<br />
<br />
This page is a collection of pointers to different common WML structures. See [[AlphabeticalWML]] for a quick listing of all WML tags. The more comprehensive [[BuildingScenariosIndex]] lists tags and keys.<br />
<br />
See [[BuildingScenarios]], [[BuildingCampaigns]] and [[BuildingUnits]]<br />
for a tutorial style overview.<br />
<br />
<br />
<br />
''Note: this reference may contain slight inaccuracies, might not list all existing keys and tags or might contain some deprecated syntax. If you find that this reference doesn't give you the answer to how to implement some feature in WML, the most reliable way is to look at the WML code of existing units and campaigns that have done so.''<br />
<br />
== How WML works ==<br />
<br />
* [[SyntaxWML]] the language syntax.<br />
* [[PreprocessorRef]] the WML preprocessor syntax<br />
** [[UtilWML]] utility macros defined in utils.cfg<br />
** [[VariablesWML]] how to use WML variables<br />
<br />
== WML toplevel tags ==<br />
<br />
* [[GameConfigWML]] the top level '''[game_config]''' tag<br />
* [[UnitsWML]] the top level '''[units]''' tag<br />
** [[UnitTypeWML]] how to describe a unit type<br />
** [[AnimationWML]] how to animate units<br />
* [[CampaignWML]] the top level '''[campaign]''' tag<br />
* [[ScenarioWML]] the top level tags '''[scenario]''', '''[multiplayer]''', '''[test]''', and '''[tutorial]'''<br />
** [[EventWML]] how to describe an event<br />
** [[SideWML]] how to describe a side<br />
** [[MapGeneratorWML]] the random map generator<br />
** [[TimeWML]] how to describe a day<br />
** [[IntroWML]] how to describe the intro screen<br />
* [[SavefileWML]] a description of the format of savegames<br />
** [[ReplayWML]] a description of the format of player actions such as moving a unit<br />
** [[StatisticalScenarioWML]] used to generate statistics of a savegame<br />
* [[PblWML]] a description of the format of server-uploadable campaigns<br />
* [[EraWML]] the top level '''[era]''' tag<br />
* [[TerrainWML]] the top level '''[terrain]''' tag<br />
* [[TerrainGraphicsWML]], the top level '''[terrain_graphics]''' tag<br />
* [[ThemeWML]] the top level '''[theme]''' tag<br />
* [[LanguageWML]] the top level '''[language]''' tag<br />
* [[HelpWML]] the top level '''[help]''' tag<br />
* [[BinaryPathWML]] the top level '''[binary_path]''' tag<br />
* [[FontsWML]] the top level '''[fonts]''' tag<br />
<br />
== Other WML tags ==<br />
<br />
* [[EventWML]] how to describe an event<br />
** [[FilterWML]] the construct to filter on units, locations, and weapons<br />
** [[ConditionalActionsWML]] actions that encapsulate conditional filters and the actions to execute if the conditions are met<br />
** [[DirectActionsWML]] actions that directly affect gameplay: for example creating a unit<br />
** [[InternalActionsWML]] actions that WML uses internally: for example storing a variable<br />
** [[InterfaceActionsWML]] actions that do not affect gameplay: for example displaying a message<br />
** [[LuaWML]] how to code actions with the Lua language<br />
* [[SingleUnitWML]] how to describe a unit<br />
* [[AiWML]] how to describe parameters for AI<br />
* [[EffectWML]] the construct to modify a unit<br />
* [[AbilitiesWML]] a list of the different abilities a unit or weapon can have<br />
* [[DescriptionWML]] the structure of WML coded menus like the difficulty chooser of campaigns<br />
* [[EditorWML]] tags controllin the post-1.4 editor's behavior<br />
<br />
== Predefined macros == <br />
<br />
Wesnoth ships with a library of predefined macros you should find useful in writing your own WML. You can find a description of all such macros [http://www.wesnoth.org/macro-reference.html here].<br />
<br />
== Other ==<br />
<br />
* [[ReferenceWMLSyntax]] how this wiki and the pages it links to should be formatted<br />
* [[ConventionsWML]] how to make your WML more readable<br />
* [[UsefulWMLFragments]] Various pieces of WML for various purposes. If you have some WML you're proud of that you think others can use, add it here.<br />
* [[CommandMode]] commands are not strictly speaking part of WML, these could be a little hard to find so there's a link here.<br />
* [[MultiplayerServerWML]] is used when communicating with the multiplayer server.<br />
* [[CampaignServerWML]] is used when managing contributed campaigns on the campaign server.<br />
* [[ImagePathFunctionWML]] is used when applying the team-color function to images.<br />
* [[BinaryWML]] how WML is sent over the network<br />
<br />
== See Also ==<br />
<br />
* [[BuildingMaps]] the text-based format for Wesnoth maps<br />
* [[TerrainCodesWML]] a list of all terrains<br />
* [[MultiHexTutorial]] a description of the multi-hex tiling system<br />
* [[IGNFileFormat]] a description of the ignore file format<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=IntuitiveScenarioEditor&diff=33625IntuitiveScenarioEditor2010-01-21T13:58:08Z<p>ShikadiQueen: macro-reference.xhtml -> macro-reference.html</p>
<hr />
<div>[[Category:Summer of Code]]<br />
<br />
=== Note ===<br />
<br />
For GSOC mentors -<br />
If you have read my proposal on the gsoc site, then you can skip most of this, as it is just repeated. The gsoc application contains the little essay at the end and that is not repeated here. Everything else is, so you could read either one.<br />
<br />
The sections that are different from my application are [[#Further Discussion| Further Discussion]] and [[#My Contributions to Wesnoth| My Contributions to Wesnoth]].<br />
<br />
If you are looking for specific answers to some of the questions from the questionnaire they are at another page [[cjhopman SOC questionnaire]]. Most of that information was duplicated in my application, though.<br />
<br />
== Basics ==<br />
<br />
Hello, you've found my SOC project proposal page. If you want to see the answers to the Wesnoth SOC student questionnaire they are [[cjhopman SOC questionnaire | here]]. This page is mostly a trimmed down version of that (some of it is exactly the same), with some additions to the project proposal section. If you want to know some little facts about me (such as some of my favorite NES games), or to read more in-depth answers, you'll have to go read the questionnaire. Feel free to contact me via email at cjhopman|ATTT|gmail.com<br />
<br />
Anyway, my name is Chris Hopman-- I go by cjhopman on irc, forum, etc-- and I am in my third year of my undergraduate studies at the University of Wisconsin - Madison. I am majoring in Computer Science and Mathematics and will be graduating spring '09.<br />
<br />
I want to participate in summer of code because it is basically a once in a lifetime opportunity. That is, it is a chance to become a much better programmer, a chance to gain experience working on a real project, a chance to be mentored by an experienced programmer, a chance to become a member of the development team of a great game, a chance to join the community of that great game, a chance to make something that improves that community and that game, a chance to spend a summer doing something I love, and on and on... I mean, it's just an amazing opportunity.<br />
<br />
== Open Source and Gaming ==<br />
<br />
This section is repeated from my questionairre [[cjhopman SOC questionnaire]]<br />
<br />
Sadly, I am not currently involved with any open source development projects. However, I have, for a while now, been interested in becoming involved, and my experience with the Wesnoth community in the past few weeks has lit that spark that I needed and I will continue to be involved in open source development, regardless of my involvement in Summer of Code.<br />
<br />
Gaming experience <br><br />
Well… I remember playing the first Mario Bros. on the NES when I was 5. At that same time I started playing computer games, oh were those ever fun. Ever since, I’ve been hooked. Since then, I’ve enjoyed all types of games, but primarily strategy games and role-playing games. <br />
<br />
Do I prefer story or gameplay? That's tough, and it depends on the game. For example, the Civilization series all have basically no story, but I love the games. However, almost all RPGs that I enjoy are because of the story, not the gameplay.<br />
<br />
== What Project and Why ==<br />
<br />
There were several projects that I was interested in – the scenario editor, the map editor, and the formulaAI projects. Of course AI would be fun, but I was interested in the editors as a chance to do a more user-centric project, and to design a GUI. And so, I was more interested in doing one of the editors.<br />
In the end I decided primarily on what I thought would be best for the Wesnoth community, the scenario editor. I also considered how much work could reasonably be done on each project in a summer, as I know that many students in past Summer of Code seasons have overscoped there projects and ended the summer with little to show. I think that having an intuitive and well done scenario editor will be a huge benefit to the community, especially if it is written so that it can be extended to be a full campaign editor, including map editing and such. This extension is not feasible to do over the course of the summer, but I absolutely do not plan to let that stop me from doing it afterwards.<br><br />
There are so many great games that are great precisely because of the community generated content, and the current high-barrier to entry in developing scenarios for Wesnoth is holding back the development of even more such content. Not only that, but Wesnoth itself is basically user-generated content, and it is only fitting to enable the community to more easily contribute. <br><br />
<br />
What do you expect to gain from this project? <br><br />
Primarily, I expect to become a better programmer. Courses I have taken at my university are great for learning the theory of programming, but I am just as interested in programming well, something that the classes do not teach. For this reason I have done much coding on my own, and often the projects for my classes go well beyond the scope of the assignment – simply because I enjoy programming. However, I am limited by the fact that I don’t know what I don’t know. I can study and read all I want, but the opportunity to work on a project like Wesnoth, with an experienced mentor is priceless.<br><br />
To think that programming experience is all that I would gain from working on this project is so far from the truth. I will get to become a member of the Wesnoth developer community, to work on a large project with a large team, to spend a summer doing something that I love, to make an important contribution to a great game… I could go on and on.<br />
<br />
<br />
One of the questions in the questionnaire was what would make me stay in the community after SOC is over. Well, I think a more relevant question is what could make me leave. To be honest, from my (albeit, short) experience with the Wesnoth community, I doubt that you guys will be able to get rid of me. Being a member of the Wesnoth community is such a great opportunity, the opportunity to learn to be a better programmer is primarily what brought me here, but there is much more that keeps me here, and even with the little bit of coding that I have done on the program, I already feel a bit of a responsibility to do more, a bit of an ownership and pride in the code.<br />
<br />
== Project Proposal ==<br />
So I plan to write an intuitive scenario editor. In playing with campgen, I believe one of its major drawbacks was its difficulty to use. I will be writing this in C++ for various reasons, primarily because it will allow me to reuse existing, functional code. Also, as most of Wesnoth is done in C++ (as I understand it, almost everything) it just makes sense to not require more dependence on a different language.<br />
<br />
As for technical details, I do not intend to reinvent the wheel: that is, I would like to reuse much of Wesnoth’s existing code, for map display, for WML loading and saving, for the GUI I believe that I will primarily use code that is currently being worked on. One major benefit of this (besides the fact that it doesn’t really make sense to rewrite existing functionality), is that the scenario editor will be consistent in look and feel with Wesnoth itself. This makes a huge difference in how professional it appears.<br />
<br />
Now, as I have planned this project, it has two important parts: the GUI and the underlying WML system/generator. The plan is to have the underlying WML system to be basically independent of the GUI, and the GUI is precisely what it is meant to be, an interface to that system. This will allow for much better extensibility of the project, and the eventual goal is to have it become an all-in-one editor for campaigns.<br />
<br />
As ease of use of the editor is probably the most important part of this project, I will definitely be taking steps to ensure that the goal is met. This will include usability testing at almost every stage of the project. As much as the design may seem to me, and even to other developers, it must also be intuitive for everybody else. The best way to do this will be by having users test this. I will not only have general users test this, I will make friends of mine test it in person, being able to see how they use it and what parts they stumble on will be invaluable.<br />
<br />
A little more in-depth discussion...<br />
<br />
Now, as a disclaimer, I will admit that I have not designed a scenario on my own, so I may say something that sounds dumb here... Well, that is precisely what the next couple weeks before coding begins are meant to clean up. So, please continue.<br />
<br />
So, absolutely the most important thing about this is that it is easy to use. If it's not easy to use then there wouldn't really be much incentive to use it over just doing it by hand. However, without giving the user access to the underlying WML it is unreasonable to expect the editor to be very powerful-- that is, there is too much power in WML to completely abstract away. Ideally this project will provide a very easy interface to do the most common things, that is it would make it very easy to make simple scenarios, and in fact should make it very easy to make even moderately more complex scenarios. Up to that stage it should not require any knowledge of WML. An example of a scenario that would be able to be created easily without knowledge of WML would be The Siege of Barag Gor in SotBE. In fact, you should be able to make something slightly more complicated than that.<br />
<br />
To make it so that it is easy to do more advanced things with knowledge of WML, I plan to have a text box for most dialogs that shows the WML that would be generated for the relevant thing (i.e. Event, Unit, etc.) and allow the user to directly edit it in the editor. If the user edits something that the editor recognizes, it should update its own corresponding fields... i.e. if the user changes a location it should update where they would normally have the location. This text box would be optional, in that only people who want to see the underlying WML, need to. Ideally, the text box would also have syntax highlighting, but I don't know how realistic that is, it is something that I would discuss with the mentor, maybe integrating some other project into the editor...<br />
<br />
The main part of the user interface would be a map of the scenario. It should be very obvious and very easy for the user to add the most common things to the map... that is units, events(occuring at a particular location), etc. Selection of these items should bring up a dialog-- not so much a popup, think more like how when you select a unit in game it shows the information in the bar, but with a wider bar and with options on it-- that would then have the common options right there, for example a unit's name, traits, side, etc. As I hinted just now, I would like to not only reuse a lot of the existing display code (the map display code, etc...) I would also like to reuse the basic ui layout. Not only would these keep the project consistent with the main game, but it would also be easier for users to learn.<br />
<br />
The importation of WML would be a very useful feature, at least the importation of WML that the editor recognizes -- and then the ability to save changes without breaking things that the editor doesn't recognize. Considering the fact that I intend to allow editing of the WML directly through the editor, I don't believe that this will be too difficult. Also, the existing code will provide a lot of the functionality needed to handle importation. The most difficult consideration will be importing things that the editor doesn't recognize, making various changes, and then saving without it breaking the WML, but this will not be an insurmountable challenge.<br />
<br />
Exporting WML should be very easy with the design that I envision. Since we will already be basically generating WML for various things on the fly, it will be a matter of combining these together correctly, and a lot of what is needed for that is already present in the current Wesnoth code, I believe.<br />
<br />
The final and definitely not least part, of the project is documentation. Now, I intend for a user to be able to use the scenario editor with absolutely no need for external documentation. I believe that if presented correctly it will be intuitive enough how to build a scenario. However, even if I believe that what I build is very easy to figure out, that doesn't really mean much because I know exactly how the thing works. So, for the user, there should be helpful, but non-intrusive documentation in the editor, for example little tooltips that appear in the bottom right as you mouse over things. Also, it will be important to have a detailed online documentation and tutorial, likely walking a user through the creation of a scenario from start to finish.<br />
<br />
== Extensibility ==<br />
<br />
The eventual goal of my project is to be basically an all-in-one campaign editor. That is it would be able to take you from designing units and maps to build entire campaigns. With this goal in mind from the outset, I will be making design decisions that allow for easily extending the functionality of the editor. In fact, since I see myself likely to be working on extending the project myself, I will be very careful to make that easy to do (then I get to look like a hero when I do it quickly and well).<br />
<br />
== Preliminary Timeline ==<br />
<br />
March 26 Submit Application and build wiki page on www.wesnoth.org<br><br />
March 26 – April 11 Continue minor coding tasks on wesnoth, mostly in areas dealing with WML to get an intimate knowledge of the WML processing. <br><br />
Also, provide further proposal details as requested.<br><br />
April 14 Accepted to work on Wesnoth for Summer of Code :) <br><br />
April 14 – May 26 Three goals for this period: <br><br />
<br />
1. Become very familiar with WML, and the design of scenarios. Use this research to refine and improve the project plan. <br />
<br />
2. Do some coding work on the Wesnoth GUI, likely assisting Mordante by implement various features.<br />
<br />
3. Become more familiar with Python. This will mostly be done in class, though I will also be studying it outside of class. Also, this is not as important as the other two as it is not directly required for the scenario editor. It will, however, allow me to become more familiar with other parts of the Wesnoth code.<br />
<br />
Basically, by the end of this period I should be very well-prepared to begin the project. I will also in this period have started some of the groundwork for the project.<br />
<br />
May 26 Google Summer of Code begins.<br />
Begin coding.<br />
<br />
Tentative coding schedule: I’ve put some specific functionality goals here, though these are highly likely to change based on input from developers, scenario designers, and Wesnoth players gathered in the weeks prior. Also, I have tried hard to under-scope each iteration, as again, over-scoping is a common mistake for Summer of Code students. My project proposal, however, is very extensible, and so nothing is lost by this under-scoping as there are many more features that can be added. It is very important that at the end of the summer there is a well-done, completed project. I expect that at each of these dates there will be significantly more done than is on the timeline and communication will be important as the summer goes on. <br />
<br />
<br />
June 9 Iteration 1: <br />
Editor is fairly simple at this point, but can display map, add units to different sides, and change different attributes of those units.<br />
<br />
June 23 Iteration 2: <br />
Can Add events triggered at particular locations, or by particular units (either <br />
that unit does something, or something is done to it… i.e. unit dies).<br />
Can edit side info<br />
Can Edit objectives<br />
<br />
<br />
July 7 Iteration 3:<br />
Can save to WML.<br />
Can load from WML, those features that the editor supports.<br />
Added a WML editing box for most dialogs (i.e. can write your own WML for events.)<br />
Maintains WML output that can be edited within editor.<br />
At this point should be able to fully create basic scenarios.<br />
<br />
<br />
July 21 Iteration 4:<br />
Continue to improve functionality<br />
Make common tasks easy to do, for example, conversations.<br />
Add more functionality as determined by discussions with users/ designers<br />
Add story editing<br />
<br />
August 4 Iteration 5:<br />
Add support for more advanced WML<br />
If ahead of schedule, add advanced unit editing.<br />
Add more functionality as determined by discussions with users/ designers<br />
Thorough re-testing of all code has begun.<br />
<br />
August 4 Tentative feature lock.<br />
<br />
August 4 – 11 <br />
Test and clean code.<br />
Improve usability and polish in-game documentation.<br />
Improve code documentation.<br />
Improve online documentation.<br />
<br />
August 11 – 18 Final Week.<br />
Finalize code.<br />
Finish code documentation.<br />
Finish online documentation.<br />
<br />
August 18 - ? Continue working on Wesnoth, both extending the finished project and working on other areas of interest.<br />
<br />
== Further Discussion ==<br />
<br />
So, this is the spot to find information about my developing ideas. I thought I'd consolidate further information here so that finding it doesn't require digging through all that other stuff. Also, the following stuff is quite likely to evolve as I discuss my ideas with other developers.<br />
<br />
I think I will add date/time info to these entries so that it's easier to find new stuff for anybody reading this. This means that the entries may not flow as best that they can, but oh well, gotta make sacrifices somewhere.<br />
<br />
==== April 1, ~ 7:20 UTC ====<br />
<br />
The first challenge that I have been considering is that of importing/exporting WML. Now, it is going to be relatively simple to export a scenario made by the editor, the real challenge is to import a hand-written scenario, make changes, and then export it without destroying it. That is, a naive import/export would simply expand all the macros while importing, and it would drop the comments, and then when exported you would have no macros or comments. This would not be a sufficient implementation.<br />
<br />
The solutions that I have considered for these problems are slightly different. So, let's consider the problem of maintaining comments first. I think that the easiest, and possibly the best, solution to this problem would be to basically "attach" comments to nearby elements. That is if a comment immediately precedes a given tag, then "attach" it to that tag, and when exporting it will again immediately precede that tag. This would require defining the specific rules for attaching a comment to something. An easy way to do this would be to basically add a common attribute to every tag to hold the comment for that tag, this would be fairly easy to implement, but then comments would only be able to be attached to tags. Ideally, comments would be "attachable" to most WML elements. Clearly, I am still working out how exactly I would implement this.<br />
<br />
Now onto the second problem, not destroying macros on importing. I've been considering some possible ways to do this relatively easily. The first would go something like this: export the file naively, then run the preprocessor over the original file, compare the two to find differences, and then re-export the file updating only the areas that change. This seems like a rather brutish way of doing things, and I don't know that I like it. Another implementation would be for the editor to simply keep track of what it changes, and then to, when exporting, only update those things that it changes. This has the disadvantage that it may expand some macros that it doesn't need to.<br />
<br />
In addition to the second problem, it will be important to know how the editor will handle some other WML things. So, a quick discussion of things that I have been thinking about. One thing that will help prevent the editor from exporting expanded macros would be for it to recognize and use some macros itself. In particular, I think that the editor should recognize and use most of the core WML macros (that is those found at [[http://www.wesnoth.org/macro-reference.html]]). This would also give a good set of basic functionality for the editor, in that most of these macros are things that the user should be able to change without knowledge of WML.<br />
<br />
And, a bit more about handling of WML macros. First, I think in the in-editor text-editor, it would be nice to by default have macros not be expanded, but to have a simple checkbox or something similar that would make the editor expand the macros. This may require the editor to maintain a library of defined macros, which could also be useful elsewhere.<br />
<br />
So, that's it for now...<br />
<br />
== My Contributions to Wesnoth ==<br />
<br />
My first patch submitted [[https://gna.org/patch/?1017]]<br />
<br />
This seemed like an ugly hack. So I went to the underlying problem, the unit_map. And that led to my second patch [[https://gna.org/patch/?1020]] which was checked in revision number 25134.<br />
<br />
A quick patch I wrote while I got myself a bit more acquainted with the WML preprocessor [[https://gna.org/patch/?1035]]<br />
<br />
Bug fix [[https://gna.org/patch/?1041]]<br />
<br />
Went back and made some significant improvements to the unit map [[https://gna.org/patch/index.php?1046]]<br />
<br />
Implemented a history feature for the new gui [[https://gna.org/patch/index.php?1054]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ReleasingWesnoth&diff=33624ReleasingWesnoth2010-01-21T13:56:53Z<p>ShikadiQueen: macro-reference.xhtml -> macro-reference.html</p>
<hr />
<div>== Tools ==<br />
<br />
Tools needed for releasing:<br />
<br />
* Normal tools to build everything from Wesnoth and to fetch the Subversion head<br />
* <code>po4a</code> (to be able to update the manpages and manual)<br />
* <code>docbook-xml-dtd</code> (to generate the manual HTML files, I am currently using <code>app-text/docbook-xml-dtd-4.5</code>, not needed anymore for >= 1.5.x but manual files should be regenerated by hand before packaging!)<br />
* <code>xdelta</code> 1.x (to create the Xdelta files)<br />
* <code>optipng</code> (only for needed to run <code>utils/wesnoth-pngcrush</code>, not for normal releases)<br />
<br />
== General maintenance ==<br />
<br />
Not strictly release associated.<br />
<br />
* Run <code>utils/wesnoth-pngcrush</code> from the main directory of the Subversion repository every now and then, requires the package optipng<br />
* Run a <code>pot-update</code> regulary, once shortly before the release, this includes the following steps as of current 1.4-rc time:<br />
<br />
Change into the Subversion dir, svn up (to not get conflicts) and run ./autogen.sh<br />
# Recreate the manpages and manuals<br />
make update-po4a<br />
<br />
# Update all other po files<br />
cd po && make update-po && cd ..<br />
<br />
# Make sure that no new files were created, if new manpages/manuals were created, add them via svn add<br />
svn st<br />
<br />
# Commit the bunch of updated po files and manpages/manuals<br />
svn ci doc/ po/<br />
<br />
* Run <code>make</code> inside <code>data/tools</code> (runs a check for unresolved references, followed by <code>wmllint</code> with appropriate options, followed by a check for unused image and resource files)<br />
* Run <code>wmlindent</code> from <code>data/tools</code> to indent all content correctly<br />
* Run <code>data/tools/about_cfg_to_wiki</code> from svn root and copy the output to [[Credits]] to updates the credits on the website<br />
* Have a look at the pages from the category [[:Category:Review_on_Release|Review on Release]]<br />
<br />
== Release commands ==<br />
<br />
* Bump the version in <code>configure.ac</code>, <code>src/wesconfig.h</code>, <code>config.h.dummy</code><br />
* Check <code>changelog</code> and <code>players_changelog</code>, change the version of both<br />
* Commit<br />
* Do the following steps to generate a tarball:<br />
<br />
# Update Subversion repository, just to be sure that you have the latest version,<br />
# write down the revision you are using<br />
svn up<br />
<br />
# Exporting the Subversion directory to have a clean version of the tree and<br />
# switch into the temporary release dir<br />
svn export wesnoth wesnoth_release && cd wesnoth_release<br />
<br />
# Generate configure files<br />
./autogen.sh<br />
<br />
# Create a bzip2 compressed tarball,<br />
# in this step all po files, the manpages and the manual will be updated<br />
make dist-bzip2<br />
<br />
* Now there should be the tarball named <code>wesnoth-VERSION.tar.bz2</code> in the root of <code>wesnoth_release</code>, move it somewhere for testing<br />
* Uncompress the tarball with <code>tar xfj wesnoth-VERSION.tar.bz2</code> and change into the resulting folder named <code>wesnoth-VERSION/</code><br />
* Run <code>configure</code> with parameters to build all necessary stuff that should be built (at least <code>--enable-editor</code>, <code>--enable-server</code> and <code>--enable-campaign-server</code> are needed, the rest is just meant to seperate all data directories from the normal installation ones)<br />
<br />
./configure --enable-server --enable-editor --enable-campaign-server \<br />
--bindir=/games-bin --datadir=/games/ \<br />
--with-preferences-dir=.wesnoth-test --program-suffix=-test --with-datadir-name=wesnoth-test<br />
<br />
* Compile everything, use <code>LC_ALL=C</code> to have English error output if something goes wrong:<br />
<br />
LC_ALL=C make<br />
<br />
* Remove all existing test stuff you currently have installed (probably requires running as root for the installed files, user privilegies are enough to remove stuff in <code>~/.wesnoth-test</code>)<br />
* Install the game with <code>make install</code>, running right from the sources is '''not''' enough to be sure that everything works as expected, for normal installation into your system, root privilegies are probably needed (replace <code>su -c</code> by <code>sudo</code> if your system uses it)<br />
<br />
su -c "LC_ALL=C make install"<br />
<br />
== Test the build ==<br />
<br />
This at least includes the following:<br />
<br />
* Start the editor, check if creating a map is possible<br />
* Start the game and try to connect to the official multiplayer server and to the add-on server<br />
* Start the server, connect to it using the game to see if you can enter the lobby<br />
* Check if in the game each campaign does start<br />
* Check if you can start the in-game help and the credits<br />
* Check if it is possible to create a local game<br />
* Play at least one game/scenario (or droid your side to let the AI play), this can either be a normal campaign scenario or a multiplayer game<br />
<br />
If all of those points are working as expected, go on, if not, fix the problems and restart from the very beginning.<br />
<br />
If everything does work, tag using the revision you wrote down (replace <code>BRANCH</code> either with <code>trunk</code> for a normal development release, or with <code>branches/X.Y</code> for a stable release, the tag number should be of the format <code>X.Y.Z</code>, <code>USER</code> is the user account at [http://gna.org/ gna.org] with commit privilegies):<br />
<br />
svn -r REVISION copy svn+ssh://USER@svn.gna.org/svn/wesnoth/BRANCH svn+ssh://USER@svn.gna.org/svn/wesnoth/tags/TAGNUMBER<br />
<br />
Create an updated [http://www.wesnoth.org/macro-reference.html macro-reference.html]:<br />
<br />
cd wesnoth-VERSION-dir/data/tools<br />
make macro-reference.html<br />
<br />
Upload the created file <code>macro-reference.html</code> to ftp://ftp.wesnoth.org/www/misc/<br />
<br />
Create an updated unit tree:<br />
<br />
* <code>ssh</code> to server.wesnoth.org<br />
* Run <code>update_unit_tree <new version></code> to update http://units.wesnoth.org/<br />
<br />
Create the md5sum for the tarball:<br />
<br />
md5sum wesnoth-VERSION.tar.bz2 > wesnoth-VERSION.tar.bz2.md5<br />
<br />
Create the Xdelta of the uncompressed tarball, you do need the uncompressed tarball of the previous release to be able to do so:<br />
<br />
bunzip2 wesnoth-VERSION.tar.bz2<br />
xdelta delta wesnoth-OLDVERSION.tar wesnoth-VERSION.tar wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta<br />
<br />
* Upload the files <code>wesnoth-VERSION.tar.bz2</code>, <code>wesnoth-VERSION.tar.bz2.md5</code> and <code>wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta</code> to ftp://ftp.wesnoth.org/www/files/ and sourceforge.net/incoming<br />
* Create the respective release at the wesnoth project at sf.net. Paste the content of <code>players_changelog</code> as release notes and the full changelog as <code>changelog</code>. If there is content in <code>RELEASE_NOTES</code>, use it at the top of the “release notes” section<br />
<br />
Once the upload is completed, do contact the known packagers, this is the current list as of 1.4.4:<br />
<br />
amirserdang |ATTT| gmail.com (current Mac OSX packager)<br />
joerg.hinrichs |ATTT| softeck.de (old Windows packager)<br />
cycholka |ATTT| wp.pl (current Windows packager)<br />
hhetter |ATTT| novell.com (OpenSuse packager)<br />
rhonda |ATTT| deb.at (current debian packager)<br />
bero |ATTT| arklinux.org (arklinux)<br />
mr_bones_ |ATTT| gentoo.org (official gentoo packages, will only be included for stable and beta/rc releases)<br />
markus.schmeing |ATTT| udo.edu (unofficial gentoo packages, basically inactive)<br />
burningshadow |ATTT| syllable-norden.info (syllable)<br />
enqlave |ATTT| gmail.com (unknown)<br />
sobotkap |ATTT| centrum.cz (OpenSolaris)<br />
<br />
Basic text for such an announcement:<br />
<br />
Topic: Wesnoth VERSION is out<br />
Body:<br />
<br />
I am currently uploading the sources to sf.net, they are already available via files.wesnoth.org. I will announce the release tomorrow, so you can create and upload the packages in the meantime.<br />
<br />
Some foo about changes/additions/stuff to keep in mind that is basically packager specific like added deps and stuff like this<br />
<br />
Best regards and thank you for your contribution to Wesnoth<br />
SIGNATURE<br />
<br />
* Contact Soliton so that he updates the server to support the new version (required for development releases, should not be needed for stable releases after RC time is started)<br />
* Login to server.wesnoth.org via ssh and run <code>update_unit_tree <new version></code> to update http://units.wesnoth.org/<br />
* Up version to <code>wesnoth-VERSION+svn</code> in <code>configure.ac</code>, <code>src/wesconfig.h</code>, <code>config.h.dummy</code>, <code>changelog</code> and <code>players_changelog</code><br />
<br />
* Wait for about one day<br />
* Update the downloads website<br />
* Post an announcement in the forums, do at least mention the text from RELEASE_NOTES plus some other important changes<br />
* Update the frontpage<br />
* Copy the news into the "old news" in the wiki (so that everything will be listed there)<br />
* Submit versions updates for stable versions to all sites that are known to monitor Wesnoth, ask the respective packagers to do so for OS specific sites (like apple.com).<br />
<br />
== Sites monitoring Wesnoth releases ==<br />
<br />
This is a (probably completely outdated) list of sites that monitor Wesnoth releases. Most of these require manual submissions of update request. This should be done by whoever has an account at the respective sites:<br />
<br />
* http://freshmeat.net/projects/wesnoth<br />
* http://happypenguin.org/show?Battle%20for%20Wesnoth<br />
* http://libsdl.org<br />
* http://linuxgames.com<br />
* http://icewalkers.com<br />
* http://tucows.com<br />
* http://maccentral.com<br />
* http://www.versiontracker.com<br />
* http://www.macgamefiles.com<br />
* http://www.apple.com<br />
<br />
[[Category:Development]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=SpanishTranslation&diff=33554SpanishTranslation2010-01-03T19:34:59Z<p>ShikadiQueen: /* Reglas de marcado e interpolación de variables */ Link to old formatting markup</p>
<hr />
<div>== Current translation team ==<br />
<br />
=== Maintainer ===<br />
* Rodrigo Neira (paiorlolo) [mailto:paiorlolosmENgmailPTOcom]<br />
<br />
=== Translators ===<br />
<br />
== Currently inactive translators ==<br />
* [[User:ShikadiLord|Ignacio "Shadow Master" R. Morelle]] [mailto:shadowm2006ENgmailPUNTOcom]<br />
* Gustavo Gingins (gins) [mailto:gusginsENgmailPTOcom]<br />
* Josu Díaz de Arcaya [mailto:josuDOTarcayaENgmailPUNTOcom]<br />
* Sergi March [mailto:sergiDOTmarchENgmailPUNTOcom]<br />
* Roberto Romero [mailto:sildurinENgmail.com]<br />
* Alejandro E. Moreno Ruiz [mailto:alexmorenoUSUALLYATgmail.com]<br />
* Juan Pedro Rodriguez Extremera [mailto:c0rruptgamer.gnuENgmail.com]<br />
* Jordi Gutiérrez Hermoso [mailto:jordighENgoogle'sMailService]<br />
* David Martinez (ender/Jo-Con-El) - [mailto:enderATdebianDOTorg]<br />
* fmunoz - [mailto:fmunozDOTgeoATyahooDOTcom]<br />
* ettin - [mailto:savannahATettinDOTorg]<br />
* Jose Gordillo (kilder) - No mail address specified<br />
<br />
== Información para traductores ==<br />
<br />
NOTA: esta sección no está completa aún, pero la información presente debería estar al día.<br />
<br />
=== Técnicamente hablado ===<br />
<br />
* Asegúrese de utilizar la codificación UTF-8 de Unicode al guardar los archivos .po.<br />
* Al enviarle su traducción al mantenedor, asegúrese de adjuntar sólo el catálogo .po; los catálogos compilados .mo son en general inútiles salvo para la distribución al usuario final, puesto que se pierde información adicional como anotaciones, archivos y líneas de origen, y son más difíciles de reconciliar.<br />
* '''msgid''' se refiere a la cadena original en inglés, y '''msgstr''' corresponde a la cadena traducida.<br />
* Hay muchos msgid que contienen el símbolo ^ precedido de una palabra o frase utilizada para ayudar a los traductores a comprender y diferenciar una cadena que se utiliza en múltiples contextos con un significado posiblemente distinto. Por ejemplo, "Dark Adept" es el nombre de la unidad "Adepto oscuro", pero "female^Dark Adept" es el nombre de la variante femenina de la misma unidad, e.g. "Adepta oscura". El prefijo no debe ser incluído en la traducción/msgstr; de otro modo el juego lo visualizará.<br />
<br />
=== Estilo ===<br />
<br />
* La variante del idioma que usamos es el Español de España. En general, la traducción debe ser comprensible para usuarios de cualquier país de habla hispana; por lo tanto, se recomienda a los traductores asegurarse de no utilizar expresiones o vocablos específicos a un solo país.<br />
* Todas las cadenas de la interfaz de usuario que se refieran al usuario deben dirijírsele como "usted". En el caso del tutorial (wesnoth-tutorial) y el manual de Wesnoth (wesnoth-manual), nos referimos al usuario como "tú" para crear un ambiente más amigable y cercano para usuarios primerizos.<br />
* Los escenarios y campañas de Wesnoth utilizan generalmente un registro de inglés más formal, y ocasionalmente expresiones o palabras antiguas, poco usadas u obsoletas para darle cierto toque artístico al texto del juego. En lo posible, esto se debe mantener en la traducción.<br />
* Los personajes en las campañas han de dirigirse entre sí con "vos", "vosotros", etc. en la mayoría de las situaciones, como forma de respeto. El uso de "tú" entre ellos está reservado para personajes con relaciones más cercanas, o bien a modo de insulto.<br />
* En donde los msgid utilicen comillas simples ('ejemplo'), nosotros utilizamos dobles comillas angulares («ejemplo»). Jamás deben usarse comillas dobles ("ejemplo"), puesto que confunden al motor del juego.<br />
* Las cadenas en inglés para la interfaz de usuario tienden a "Usar Capitalización Excesiva". Esta convención no es utilizada por la traducción al español ya que se ve generalmente mal. Utilizamos capitalización sólo donde se justifique (al inicio de una oracion, nombres propios, etc.).<br />
<br />
=== Reglas de marcado e interpolación de variables ===<br />
<br />
(Ver también [[GettextForTranslators]].)<br />
<br />
En muchas cadenas de escenarios o interfaz de usuario, se encontrarán fragmentos como "Unidad: $unit.name" o "Sobrevivir por $num_turns turnos". Esto se denomina [[VariablesWML|interpolación de variables WML]]. Asegúrese de copiar correctamente el identificador de variable contenido en el msgid o alguna información podría dejar de ser visible al usuario. Si existe una posible ambigüedad con respecto a dónde termina el identificador en la traducción o el original, consulte la documentación o al mantenedor de la traducción.<br />
<br />
Algunos msgid podrían contener elementos de marcado especial; éstos deben mantenerse en la traducción. Hay dos clases de marcado utilizado para formatear texto para presentación en Wesnoth:<br />
<br />
* [[InterfaceActionsWML#Formatting|Marcado WML antiguo]], utilizado por elementos de menú traducibles y en algunos otros lugares.<br />
* [http://www.pygtk.org/docs/pygtk/pango-markup-language.html Marcado Pango], utilizado en mensajes de pantallas de introducción, diálogos entre personajes, y partes más modernas de la interfaz de usuario.<br />
<br />
=== Terminología ===<br />
<br />
==== Interfaz de usuario ====<br />
<br />
* En Wesnoth hablamos de ''archivos'' en vez de ''ficheros'', siguiendo las convenciones de otras interfaces de usuario populares que han sido traducidas al español para uso internacional (e.g. Windows, KDE).<br />
* ''Game'', al referirse a sesiones activas del juego, se traduce como ''partida''.<br />
* ''Add-on'' se traduce como ''complemento''.<br />
* Cualquier referencia al sitio web oficial de Wesnoth debería ser acompañada por una nota entre paréntesis indicando que la información está disponible sólo en inglés.<br />
<br />
== See Also ==<br />
<br />
* [[WesnothTranslations]]<br />
<br />
[[Category:Translations]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=InterfaceActionsWML&diff=33553InterfaceActionsWML2010-01-03T19:33:28Z<p>ShikadiQueen: /* [message] */ Formatting stuff is now in a subsection for linking</p>
<hr />
<div>{{WML Tags}}<br />
== Interface actions ==<br />
<br />
Interface actions are actions that do not have an effect on gameplay;<br />
instead, they show something to the player. The main interface tags<br />
are '''[message]''' and '''[objectives]''', but several other tags affect<br />
the interface also.<br />
<br />
== [message] ==<br />
The most commonly used interface action is [message], which displays a message to the user in a dialog box. It can also be used to take input from the user.<br />
<br />
The following key/tags are accepted for [message]:<br />
* [[StandardUnitFilter]]: The unit whose profile and name are displayed. Do not use a [filter] tag. If no unit matching this filter is found, the message is not displayed (The unit has probably been killed).<br>'''[message]''' elements should be constructed so that it is either guaranteed that a certain unit is alive, or so that dialog flows smoothly even if the message isn't displayed.<br />
<br />
* '''speaker''': an alternative to standard unit filter. You may specify as the value of the speaker attribute a unit id or any of the following special values:<br />
** '''narrator''': the dialog box is displayed without a caption for the unit speaking or a unit image<br />
** '''unit''': the primary unit for the event is speaking<br />
** '''second_unit''': the secondary unit for the event is speaking<br />
<br />
* '''message''': (translatable) the text to display to the right of the image. ''message'' is sometimes multiple lines; if it is, be sure to use quotes(''' ' ''' or ''' " ''')<br />
* '''[show_if]''': if present then this message will only be displayed if the conditional statement in this tag is passed (see [[ConditionalActionsWML#Condition_Tags|ConditionalActionsWML]])<br />
* '''side_for''': (default: all sides) comma-separated list of sides for who message is shown.<br />
* '''image''': (default: profile image of speaker) the image to display next to the message.<br />
* '''caption''': (default: name of speaker) the caption to display beside the image. Name to be displayed.<br />
* '''duration''': (default: 10) the minimum number of frames for this message to be displayed. (A frame lasts about 30 milliseconds.) During this time any dialog decisions will be disregarded.<br />
* '''sound''': a sound effect (wav file) to play as the message is displayed. This can be a comma-separated list, from which one will be randomly chosen.<br />
* '''[option]''': zero or more '''[option]''' elements may be present. If '''[option]''' elements are present, then each option will be displayed in a menu for the user to select one option.<br />
** '''message''': (translatable) the text displayed for the option (see [[DescriptionWML]])<br />
** '''[show_if]''': if present then this option will only be displayed if the conditional statement in this tag is passed (see [[InternalActionsWML]])<br />
** '''[command]''': an element containing actions which are executed if the option is selected.<br />
* '''[text_input]''': there can be only one [text_input] tag. this adds a text input field to the message.<br />
** '''variable''': the variable that the user's input will be written to<br />
** '''label''': a text label to the left of the input field<br />
** '''max_chars''': the maximum number of characters that may be typed into the field<br />
** '''text''': text that is written into the field in the beginning<br />
* Check [[EventWML#Multiplayer_safety]] to find out in which events you can safely use '''[option]''' and '''[text_input]''' without causing OOS.<br />
<br />
=== Formatting ===<br />
<br />
Text formatting options for '''[message]'''. These can also be used in unit names (user_description), objectives, and such.<br />
* A tilde (~) as the first character causes the line to be boldfaced.<br />
* An at symbol (@) as the first character causes the line to be green, as done with victory conditions.<br />
* A pound symbol (#) as the first character causes the line to be red, as done with defeat conditions.<br />
* An asterisk (*) as the first character causes the line to be bigger.<br />
* A backquote (`) as the first character causes the line to be smaller.<br />
* If used, the caption key text is boldfaced.<br />
* An RGB colour code in the beginning causes the line to be the given colour. This can still be preceded by the above characters. Example: ''message=_"<255,0,0>Red!"''<br />
<br />
{{DevFeature}} In the 1.7 branch these formatting codes are being discarded in favor of [http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html Pango markup]. Note that it's easiest to use ' for quoting in Pango markup since " is encoded as "" inside a WML string (so you have to modify the Pango examples accordingly if you want to use " quotes). Running wmllint on your campaign will up-convert it, warning you about unusual cases you must fix by hand.<br />
<br />
== [objectives] ==<br />
The other tag used for plot development is '''[objectives]'''.<br />
The '''[objectives]''' tag overwrites any previously set objectives,<br />
and displays text which should describe the objectives of the scenario.<br />
Scenario objectives are displayed on the player's first turn after the tag is used,<br />
or as part of the event if it triggers during that player's turn.<br />
Objectives can also be accessed at any time in a scenario using the<br />
"Scenario Objectives" game menu option, making this tag useful for<br />
scenario-specific information that the player may need to refer to during play.<br />
<br />
This tag renders the ''objectives'' attribute of [scenario] obsolete (see ''objectives'', [[ScenarioWML]]).<br />
Instead of using ''objectives'', use '''[objectives]''' to set scenario objectives inside a prestart event.<br />
It can also be used to overwrite the starting objectives mid-scenario.<br />
<br />
Attributes of '''[objectives]''':<br />
* '''side''': Default '0'. The side to set the objectives for. A value of 0 sets objectives for all sides.<br />
* '''summary''': Displayed first in the objectives text, this should describe the basic objective for the overall scenario. Can be omitted.<br />
* '''note''': Displayed last in the objectives text, this is sometimes used for hints or additional information. Can be omitted.<br />
* '''victory_string''': Default ' _ "Victory:"', this text precedes the victory objectives.<br />
* '''defeat_string''': Default ' _ "Defeat:"', this text precedes the defeat objectives.<br />
* '''silent''': Default: not present. If set to "yes", the objectives are silently changed. Else, they will be shown to the user when appropriate.<br />
<br />
Tags of '''[objectives]''':<br />
* '''[objective]''': describes a win or loss condition. Most scenarios have multiple win or loss conditions, so use a separate [objective] subtag for each line; this helps with translations.<br />
** '''description''': text for the specific win or loss condition.<br />
** '''condition''': The color and placement of the text. Values are 'win'(colored green, placed after ''victory_string'') and 'lose'(colored red, placed after ''defeat_string'')<br />
** '''[show_if]''': A condition that disables the objective if it doesn't hold. Conditional objectives are refreshed at '''[show_objectives]''' time only. {{DevFeature}}<br />
<br />
=== Macros ===<br />
There are a few predefined macros for Objectives that you can use to shorten the code: [http://www.wesnoth.org/macro-reference.xhtml#SET_OBJECTIVES SET_OBJECTIVES], [http://www.wesnoth.org/macro-reference.xhtml#VICTORY_CONDITION VICTORY_CONDITION], and [http://www.wesnoth.org/macro-reference.xhtml#DEFEAT_CONDITION DEFEAT_CONDITION]. Follow the links for each one to see complete syntax and example usage.<br />
<br />
== [set_menu_item] ==<br />
This tag is used to add a custom option in the right-click context menu which can then be used to trigger arbitrary WML commands.<br />
<br />
* '''id''': the unique id for this menu item. If a menu item with this id already exists, it allows you to set specific changes to that item.<br />
* '''description''': the in-game text that will appear for this item in the menu.<br />
* '''image''': the image to display next to this item.<br />
* '''needs_select''': if ''yes'' (default ''no''), then the latest select event (see [[EventWML]]) that triggered before this menu item was chosen will be transmitted over the network before this menu item action will be. This only has any effect in networked multiplayer, and is intended to allow more elaborate menu item behaviour there without causing out of sync errors. If you don't know what this means, just leave it false.<br />
* '''[show_if]''': If present, the menu item will only be available if the conditional statement (see [[InternalActionsWML]]) within evaluates to true. When this is evaluated, the WML variables ''$x1'' and ''$y1'' will point to the location on which the context menu was invoked, so it's possible to for example only enable the option on empty hexes or on a particular unit.<br />
* '''[filter_location]''': contains a location filter similar to the one found inside Single Unit Filters (see [[FilterWML]]). The menu item will only be available on matching locations.<br />
* '''[command]''': contains the WML actions to be executed when the menu item is selected. Again, the WML variables ''$x1'' and ''$y1'' will point to the location on which the context menu was invoked on.<br />
<br />
== Other interface tags ==<br />
<br />
The following tags are also action tags:<br />
* '''[item]''': makes a graphical item appear on a certain hex. Note this only places the graphics for an item. It does not make the item do anything. Use a moveto event to make moving onto the item do something. <tt>''('''Hint:''' There are a number of predefined items that are used in various campaigns that you can make use of. You can find [http://www.wesnoth.org/macro-reference.xhtml#file:items.cfg a list of them] if you look into the items.cfg file in the wesnoth install directory (under /data/core/macros))''</tt><br />
** '''x''', '''y''': the location to place the item.<br />
** '''image''': the image (in ''images/'' as .png) to place on the hex.<br />
** '''halo''': an image to place centered on the hex. Use this instead of ''image'' if the image is bigger than the hex.<br />
** '''team_name''': name of the team for which the item is to be displayed (hidden for others). For multiple teams just put all the names in one string, for example separated by commas.<br />
** '''visible_in_fog''': whether the item should be visible through fog or not. Default yes.<br />
* '''[removeitem]''': removes any graphical items on a given hex<br />
** '''x''', '''y''': the hex to remove items off<br />
** '''image''' if specified, only removes the given image item<br />
* '''[print]''': displays a message across the screen. The message will disappear after a certain time.<br />
** '''text''': (translatable) the text to display.<br />
** '''size''': (default=12) the pointsize of the font to use<br />
** '''duration''': (default=50) the length of time to display the text for. This is measured in the number of 'frames'. A frame in Wesnoth is usually displayed for around 30ms.<br />
** '''red''', '''green''', '''blue''': (default=0,0,0) the color to display the text in. Values vary from 0-255.<br />
* '''[move_unit_fake]''': moves an image of a unit along a certain path on the map. The path does not need to be a continuous list of adjacent hexes, so for example only the start and end points can be given, in which case the straightest line between those points will be calculated and used.<br />
** '''type''': the type of the unit whose image to use<br />
** '''x''': a comma-separated list of x locations to move along<br />
** '''y''': a comma-separated list of y locations to move along (x and y values are matched pairs)<br />
** '''side''': the side of the fake unit, used for team-coloring the fake unit<br />
* '''[hide_unit]''': makes the given unit become invisible. Useful in conjunction with '''[move_unit_fake]''': to move a leader unit into position on-screen. Each '''[hide_unit]''' tag only hides one unit.<br />
** '''x''', '''y''': location of the unit to be hidden. (NOT a standard unit filter! Just x and y.)<br />
* '''[unhide_unit]''': stops the currently hidden unit from being hidden.<br />
* '''[scroll]''': Scroll a certain number of pixels in a given direction. Useful for earthquake/shaking effects.<br />
** '''x''', '''y''': the number of pixels to scroll along the x and y axis<br />
* '''[scroll_to]''': Scroll to a given hex<br />
** '''x''', '''y''': the hex to scroll to<br />
** '''check_fogged''': whether to scroll even to locations covered in fog or shroud. Possible values ''true'' (don't scroll to fog) and ''false'' (scroll even to fog), with ''false'' as the default.<br />
* '''[scroll_to_unit]''' Scroll to a given unit<br />
** [[StandardUnitFilter]]<br />
** '''check_fogged''': whether to scroll even to locations covered in fog or shroud. Possible values ''true'' (don't scroll to fog) and ''false'' (scroll even to fog), with ''false'' as the default.<br />
* '''[sound]''': Plays a sound<br />
** '''name''': the filename of the sound to play (in ''sounds/'' as .wav or .ogg)<br />
** '''repeat''': repeats the sound for a specified additional number of times (default=0)<br />
* '''[sound_source]''': Creates a sound source. "Sound sources" is a general name for a mechanism which makes possible for map elements to emit sounds according to some rules, where "map elements" can be specific locations or terrain types. For now, only sound sources tied to locations are supported.<br />
** '''id''': a unique identification key of the sound source<br />
** '''sounds''': a list of comma separated, randomly played sounds associated with the sound source<br />
** '''delay''': a numerical value (in milliseconds) of the minimal delay between two playbacks of the source's sound if the source remains visible on the screen; if one scrolls out and back in, the source will be considered as ready to play<br />
** '''chance''': a percentage (a value from 0 to 100) describing the chance of the source being activated every second after the delay has passed or when the source's location appears on the screen (note that it cannot play more than one file at the same time)<br />
** '''check_fogged''': possible values "true" and "false" - if true the source will not play if its locations are fogged<br />
** '''check_shrouded''': {{DevFeature}} possible values "true" and "false" - if true the source will not play if its locations are shrouded<br />
** '''x,y''': a [[StandardLocationFilter]] for the locations associated with the sound source<br />
** '''fade_range''' (default = 3): distance in hexes that determines a "circular" area around the one specified by '''full_range''' where sound volume fades out linearly<br />
** '''full_range''' (default = 14): distance in hexes that determines a "circular" area where source plays with full volume, relative to screen center<br />
** '''loop''': number of times a sound sample should be looped if it stays visible. -1 means infinite (~65000)<br />
* '''[remove_sound_source]''': Removes a previously defined sound source.<br />
** '''id''': the identification key of the sound source to remove<br />
* '''[music]''': Switches to playing different music<br />
** '''name''': the filename of the music to play (in ''music/'' as .ogg)<br />
** see [[MusicListWML]] for the correct syntax<br />
* '''[colour_adjust]''': tints the colour of the screen.<br />
** '''red''', '''green''', '''blue''': values from -255 to 255, the amount to tint by for each colour<br />
* '''[delay]''': pauses the game<br />
** '''time''': the time to pause in milliseconds<br />
* '''[redraw]''': redraws the screen (this normally isn't done during events, although some of the other interface actions cause the screen or parts of it to be redrawn).<br />
** '''side''': if used, recalculates fog and shroud for that side. Useful if you for example spawn friendly units in the middle of an event and want the shroud to update accordingly (otherwise units that spawn inside fog would remain invisible for the duration of the event, since the fog would not automatically get cleared around them).<br />
* '''[unit_overlay]''': sets an image that will be drawn over a particular unit, and follow it around<br />
** '''x''', '''y''': the location of the unit to overlay on<br />
** '''image''': the image to place on the unit<br />
* '''[remove_unit_overlay]''': removes a particular overlayed image from a unit<br />
** '''x''', '''y''': the location of the unit to remove an overlay from<br />
** '''image''': the image to remove from the unit<br />
* '''[animate_unit]''': uses the custom animation of a unit to animate it on screen (if the unit has the corresponding animation)<br />
** '''flag''': the key to find the good custom animation in the unit description see the '''[extra_anim]''' description in [[AnimationWML]] Standar anims can be triggered with the following keywors ''leading recruited standing idling levelin levelout healing healed poisoned movement defend attack death victory pre_teleport post_teleport''<br />
** '''[filter]''' with a [[StandardUnitFilter]] as argument, see [[FilterWML]]. By default, the unit at the event location will be animated. You can use this tag to choose any other unit to animate<br />
** '''[primary_attack]''': if this tag is not present, the filter for animation will be triggered with no attack. If it is here, all attacks from the unit will be filtered, and a matching one will be used to filter the animation<br />
** '''[secondary_attack]''': same for the second attack<br />
** '''hits''': the hit type to filter unit on<br />
** '''text''': a text to hover during the animation<br />
** '''red''': red value for the text color<br />
** '''green''': green value for the text color<br />
** '''blue''': blue value for the text color<br />
** '''with_bars''': whether to display the status bars or not.<br />
** '''[animate]''': a sub block with the same syntax as the '''[animate_unit]''' except that the '''[filter]''' block is mandatory to find the unit. This block will find and animate another unit simultaneously<br />
** '''[facing]''': a [[StandardLocationFilter]] specifying what direction the unit should be facing when animated<br />
* '''[label]''' places a label on the map.<br />
** '''x''', '''y''': the location of the label<br />
** '''text''': what the label should say<br />
** '''team_name''': if specified, the label will only be visible to the given team.<br />
** '''visible_in_fog''': whether the label should be visible through fog or not. Default yes.<br />
* '''[deprecated_message]''' shows a deprecated message in the message area, this feature is only intended to be used to warn about deprecated macros in mainline. The message is not translatable.<br />
** '''message''': the message to show.<br />
* '''[wml_message]''' outputs a message to Wesnoth's console output. Intended for campaign designers to output silent text to the console, without annoying the player; then, that text might contain information useful for later bug-reporting. The log domain for it is '''wml''', and the '''debug/dbg''' log level is available for use with the '''logger''' attribute. Depending on the current log level ('''error''' by default), which may be changed with the in-game :log command, or the --log-<level>=wml command line switch, the messages are echoed to the in-game chat.<br />
** '''message''': the message to show.<br />
** '''logger''': the Wesnoth engine output logger that should catch the text; this might be 'err' (the errors log level), 'warn'/'wrn' (the warnings log level) or anything else (the information log level). Not all information will be displayed depending on the log level chosen when starting Wesnoth.<br />
* '''[open_help]''' opens the in-game help.<br />
** '''topic''': the id of the topic to open<br />
* '''[show_objectives]''': {{DevFeature}} refreshes the objectives defined by [objectives] and its [show_if] tags, and displays them. (It is also called whenever the user explicitly asks for the objectives; this matters only if the tag was overridden by a [[LuaWML#register_wml_action|Lua]] script.)<br />
** '''side''': the side to show the objectives. If not set, all sides are used.<br />
<br />
== Useful Macros ==<br />
There are some predefined macros that you find useful for interface actions. You can find a complete list along with a detailed explanation of how they work [http://www.wesnoth.org/macro-reference.xhtml here].<br />
* '''{FLOATING_TEXT}''' Float some text over a unit similar to the damage numbers.<br />
* '''{HIGHLIGHT_UNIT}''' Highlight a unit on the map. Use this to show important units<br />
* '''{HIGHLIGHT_IMAGE}''' Places and highlights an image on the map. Use this to show important items or locations<br />
* '''{SET_IMAGE}''' Places an image on the map which has no other function.<br />
* '''{QUAKE <soundfile>}''' Creates a tremor like screenshake and plays <soundfile>. ('''{TREMOR}''' is a deprecated version, equivalent to '''{QUAKE (rumble.ogg)}''')<br />
* '''{FLASH_WHITE}''' Flash the screen white momentarily. You can also replace WHITE with RED, BLUE or GREEN for a different colour.<br />
<br />
== See Also ==<br />
* [[DirectActionsWML]]<br />
* [[InternalActionsWML]]<br />
* [[EventWML]]<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]<br />
[[Category: ActionsWML]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=SpanishTranslation&diff=33552SpanishTranslation2010-01-03T19:22:50Z<p>ShikadiQueen: Formatting fixes</p>
<hr />
<div>== Current translation team ==<br />
<br />
=== Maintainer ===<br />
* Rodrigo Neira (paiorlolo) [mailto:paiorlolosmENgmailPTOcom]<br />
<br />
=== Translators ===<br />
<br />
== Currently inactive translators ==<br />
* [[User:ShikadiLord|Ignacio "Shadow Master" R. Morelle]] [mailto:shadowm2006ENgmailPUNTOcom]<br />
* Gustavo Gingins (gins) [mailto:gusginsENgmailPTOcom]<br />
* Josu Díaz de Arcaya [mailto:josuDOTarcayaENgmailPUNTOcom]<br />
* Sergi March [mailto:sergiDOTmarchENgmailPUNTOcom]<br />
* Roberto Romero [mailto:sildurinENgmail.com]<br />
* Alejandro E. Moreno Ruiz [mailto:alexmorenoUSUALLYATgmail.com]<br />
* Juan Pedro Rodriguez Extremera [mailto:c0rruptgamer.gnuENgmail.com]<br />
* Jordi Gutiérrez Hermoso [mailto:jordighENgoogle'sMailService]<br />
* David Martinez (ender/Jo-Con-El) - [mailto:enderATdebianDOTorg]<br />
* fmunoz - [mailto:fmunozDOTgeoATyahooDOTcom]<br />
* ettin - [mailto:savannahATettinDOTorg]<br />
* Jose Gordillo (kilder) - No mail address specified<br />
<br />
== Información para traductores ==<br />
<br />
NOTA: esta sección no está completa aún, pero la información presente debería estar al día.<br />
<br />
=== Técnicamente hablado ===<br />
<br />
* Asegúrese de utilizar la codificación UTF-8 de Unicode al guardar los archivos .po.<br />
* Al enviarle su traducción al mantenedor, asegúrese de adjuntar sólo el catálogo .po; los catálogos compilados .mo son en general inútiles salvo para la distribución al usuario final, puesto que se pierde información adicional como anotaciones, archivos y líneas de origen, y son más difíciles de reconciliar.<br />
* '''msgid''' se refiere a la cadena original en inglés, y '''msgstr''' corresponde a la cadena traducida.<br />
* Hay muchos msgid que contienen el símbolo ^ precedido de una palabra o frase utilizada para ayudar a los traductores a comprender y diferenciar una cadena que se utiliza en múltiples contextos con un significado posiblemente distinto. Por ejemplo, "Dark Adept" es el nombre de la unidad "Adepto oscuro", pero "female^Dark Adept" es el nombre de la variante femenina de la misma unidad, e.g. "Adepta oscura". El prefijo no debe ser incluído en la traducción/msgstr; de otro modo el juego lo visualizará.<br />
<br />
=== Estilo ===<br />
<br />
* La variante del idioma que usamos es el Español de España. En general, la traducción debe ser comprensible para usuarios de cualquier país de habla hispana; por lo tanto, se recomienda a los traductores asegurarse de no utilizar expresiones o vocablos específicos a un solo país.<br />
* Todas las cadenas de la interfaz de usuario que se refieran al usuario deben dirijírsele como "usted". En el caso del tutorial (wesnoth-tutorial) y el manual de Wesnoth (wesnoth-manual), nos referimos al usuario como "tú" para crear un ambiente más amigable y cercano para usuarios primerizos.<br />
* Los escenarios y campañas de Wesnoth utilizan generalmente un registro de inglés más formal, y ocasionalmente expresiones o palabras antiguas, poco usadas u obsoletas para darle cierto toque artístico al texto del juego. En lo posible, esto se debe mantener en la traducción.<br />
* Los personajes en las campañas han de dirigirse entre sí con "vos", "vosotros", etc. en la mayoría de las situaciones, como forma de respeto. El uso de "tú" entre ellos está reservado para personajes con relaciones más cercanas, o bien a modo de insulto.<br />
* En donde los msgid utilicen comillas simples ('ejemplo'), nosotros utilizamos dobles comillas angulares («ejemplo»). Jamás deben usarse comillas dobles ("ejemplo"), puesto que confunden al motor del juego.<br />
* Las cadenas en inglés para la interfaz de usuario tienden a "Usar Capitalización Excesiva". Esta convención no es utilizada por la traducción al español ya que se ve generalmente mal. Utilizamos capitalización sólo donde se justifique (al inicio de una oracion, nombres propios, etc.).<br />
<br />
=== Reglas de marcado e interpolación de variables ===<br />
<br />
(Ver también [[GettextForTranslators]].)<br />
<br />
En muchas cadenas de escenarios o interfaz de usuario, se encontrarán fragmentos como "Unidad: $unit.name" o "Sobrevivir por $num_turns turnos". Esto se denomina [[VariablesWML|interpolación de variables WML]]. Asegúrese de copiar correctamente el identificador de variable contenido en el msgid o alguna información podría dejar de ser visible al usuario. Si existe una posible ambigüedad con respecto a dónde termina el identificador en la traducción o el original, consulte la documentación o al mantenedor de la traducción.<br />
<br />
Algunos msgid podrían contener elementos de marcado especial; éstos deben mantenerse en la traducción. Hay dos clases de marcado utilizado para formatear texto para presentación en Wesnoth:<br />
<br />
* Marcado WML antiguo, utilizado por elementos de menú traducibles y en algunos otros lugares.<br />
* [http://www.pygtk.org/docs/pygtk/pango-markup-language.html Marcado Pango], utilizado en mensajes de pantallas de introducción, diálogos entre personajes, y partes más modernas de la interfaz de usuario.<br />
<br />
=== Terminología ===<br />
<br />
==== Interfaz de usuario ====<br />
<br />
* En Wesnoth hablamos de ''archivos'' en vez de ''ficheros'', siguiendo las convenciones de otras interfaces de usuario populares que han sido traducidas al español para uso internacional (e.g. Windows, KDE).<br />
* ''Game'', al referirse a sesiones activas del juego, se traduce como ''partida''.<br />
* ''Add-on'' se traduce como ''complemento''.<br />
* Cualquier referencia al sitio web oficial de Wesnoth debería ser acompañada por una nota entre paréntesis indicando que la información está disponible sólo en inglés.<br />
<br />
== See Also ==<br />
<br />
* [[WesnothTranslations]]<br />
<br />
[[Category:Translations]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=SpanishTranslation&diff=33551SpanishTranslation2010-01-03T19:21:46Z<p>ShikadiQueen: More up-to-date information for the Spanish translation page</p>
<hr />
<div>== Current translation team ==<br />
<br />
=== Maintainer ===<br />
* Rodrigo Neira (paiorlolo) [mailto:paiorlolosmENgmailPTOcom]<br />
<br />
=== Translators ===<br />
<br />
== Currently inactive translators ===<br />
* [[User:ShikadiLord|Ignacio "Shadow Master" R. Morelle]] [mailto:shadowm2006ENgmailPUNTOcom]<br />
* Gustavo Gingins (gins) [mailto:gusginsENgmailPTOcom]<br />
* Josu Díaz de Arcaya [mailto:josuDOTarcayaENgmailPUNTOcom]<br />
* Sergi March [mailto:sergiDOTmarchENgmailPUNTOcom]<br />
* Roberto Romero [mailto:sildurinENgmail.com]<br />
* Alejandro E. Moreno Ruiz [mailto:alexmorenoUSUALLYATgmail.com]<br />
* Juan Pedro Rodriguez Extremera [mailto:c0rruptgamer.gnuENgmail.com]<br />
* Jordi Gutiérrez Hermoso [mailto:jordighENgoogle'sMailService]<br />
* David Martinez (ender/Jo-Con-El) - [mailto:enderATdebianDOTorg]<br />
* fmunoz - [mailto:fmunozDOTgeoATyahooDOTcom]<br />
* ettin - [mailto:savannahATettinDOTorg]<br />
* Jose Gordillo (kilder) - No mail address specified<br />
<br />
== Información para traductores ==<br />
<br />
NOTA: esta sección no está completa aún, pero la información presente debería estar al día.<br />
<br />
=== Técnicamente hablado ===<br />
<br />
* Asegúrese de utilizar la codificación UTF-8 de Unicode al guardar los archivos .po.<br />
* Al enviarle su traducción al mantenedor, asegúrese de adjuntar sólo el catálogo .po; los catálogos compilados .mo son en general inútiles salvo para la distribución al usuario final, puesto que se pierde información adicional como anotaciones, archivos y líneas de origen, y son más difíciles de reconciliar.<br />
* '''msgid''' se refiere a la cadena original en inglés, y '''msgstr''' corresponde a la cadena traducida.<br />
* Hay muchos msgid que contienen el símbolo ^ precedido de una palabra o frase utilizada para ayudar a los traductores a comprender y diferenciar una cadena que se utiliza en múltiples contextos con un significado posiblemente distinto. Por ejemplo, "Dark Adept" es el nombre de la unidad "Adepto oscuro", pero "female^Dark Adept" es el nombre de la variante femenina de la misma unidad, e.g. "Adepta oscura". El prefijo no debe ser incluído en la traducción/msgstr; de otro modo el juego lo visualizará.<br />
<br />
<br />
=== Estilo ===<br />
<br />
* La variante del idioma que usamos es el Español de España. En general, la traducción debe ser comprensible para usuarios de cualquier país de habla hispana; por lo tanto, se recomienda a los traductores asegurarse de no utilizar expresiones o vocablos específicos a un solo país.<br />
* Todas las cadenas de la interfaz de usuario que se refieran al usuario deben dirijírsele como "usted". En el caso del tutorial (wesnoth-tutorial) y el manual de Wesnoth (wesnoth-manual), nos referimos al usuario como "tú" para crear un ambiente más amigable y cercano para usuarios primerizos.<br />
* Los escenarios y campañas de Wesnoth utilizan generalmente un registro de inglés más formal, y ocasionalmente expresiones o palabras antiguas, poco usadas u obsoletas para darle cierto toque artístico al texto del juego. En lo posible, esto se debe mantener en la traducción.<br />
* Los personajes en las campañas han de dirigirse entre sí con "vos", "vosotros", etc. en la mayoría de las situaciones, como forma de respeto. El uso de "tú" entre ellos está reservado para personajes con relaciones más cercanas, o bien a modo de insulto.<br />
* En donde los msgid utilicen comillas simples ('ejemplo'), nosotros utilizamos dobles comillas angulares («ejemplo»). Jamás deben usarse comillas dobles ("ejemplo"), puesto que confunden al motor del juego.<br />
* Las cadenas en inglés para la interfaz de usuario tienden a "Usar Capitalización Excesiva". Esta convención no es utilizada por la traducción al español ya que se ve generalmente mal. Utilizamos capitalización sólo donde se justifique (al inicio de una oracion, nombres propios, etc.).<br />
<br />
<br />
=== Reglas de marcado e interpolación de variables ===<br />
<br />
(Ver también [[GettextForTranslators]].)<br />
<br />
En muchas cadenas de escenarios o interfaz de usuario, se encontrarán fragmentos como "Unidad: $unit.name" o "Sobrevivir por $num_turns turnos". Esto se denomina [[VariablesWML|interpolación de variables WML]]. Asegúrese de copiar correctamente el identificador de variable contenido en el msgid o alguna información podría dejar de ser visible al usuario. Si existe una posible ambigüedad con respecto a dónde termina el identificador en la traducción o el original, consulte la documentación o al mantenedor de la traducción.<br />
<br />
Algunos msgid podrían contener elementos de marcado especial; éstos deben mantenerse en la traducción. Hay dos clases de marcado utilizado para formatear texto para presentación en Wesnoth:<br />
<br />
* Marcado WML antiguo, utilizado por elementos de menú traducibles y en algunos otros lugares.<br />
* [http://www.pygtk.org/docs/pygtk/pango-markup-language.html Marcado Pango], utilizado en mensajes de pantallas de introducción, diálogos entre personajes, y partes más modernas de la interfaz de usuario.<br />
<br />
<br />
=== Terminología ===<br />
<br />
==== Interfaz de usuario ====<br />
<br />
* En Wesnoth hablamos de ''archivos'' en vez de ''ficheros'', siguiendo las convenciones de otras interfaces de usuario populares que han sido traducidas al español para uso internacional (e.g. Windows, KDE).<br />
* ''Game'', al referirse a sesiones activas del juego, se traduce como ''partida''.<br />
* ''Add-on'' se traduce como ''complemento''.<br />
* Cualquier referencia al sitio web oficial de Wesnoth debería ser acompañada por una nota entre paréntesis indicando que la información está disponible sólo en inglés.<br />
<br />
<br />
== See Also ==<br />
<br />
* [[WesnothTranslations]]<br />
<br />
[[Category:Translations]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Support&diff=33097Support2009-11-16T20:11:57Z<p>ShikadiQueen: /* IRC */ Add link to freenode's web IRC gateway</p>
<hr />
<div>__NOTOC__<br />
There are many ways to get help. From online documentation to support from the community on IRC or forums.<br />
<br />
== Wiki Resources ==<br />
* [[Play|Online Players Guide]] - Game manual, walkthroughs, strategy guides, and more.<br />
* [[Create|Content-Creation Guide]] - Manual showing how to create new campaigns for Wesnoth.<br />
* [[StartingPoints|Starting Points]] - List of pages to serve as starting point for diving deeply into the wiki...<br />
* [[MP_CodeOfConduct | Multiplayer Information ]] - Info about server moderators, useful MP commands, and our online Code of Conduct.<br />
<br />
== Reporting Bugs ==<br />
If you are experiencing problems, you should consider [[ReportingBugs|reporting a bug]].<br />
<br />
== Community ==<br />
<br />
When asking for help with some technical problem in the game forums, please provide the following information:<br />
* which operating system do you use (e.g. Windows, Linux, Mac OSX)<br />
* which version of Wesnoth do you use (it is displayed in the bottom left corner of title screen)<br />
* contents of file "stderr.txt"<br />
** on MS Windows, it is here: "C:\Program Files\Wesnoth\stderr.txt"<br />
<br />
=== Forums ===<br />
* [http://www.wesnoth.org/forum/ Official Wesnoth forums]<br />
* [[Wesnoth_Acronyms_and_Slang|Wesnoth Acronyms]] - forum lingo<br />
* [http://www.wesnoth.cn Chinese wesnoth forums]<br />
* [http://wif.altervista.org/index.php Wesnoth Italian Forums (W.I.F)]<br />
* [http://www.wesnothlife.ru/forum/ Russian Wesnoth Forums]<br />
<br />
=== IRC ===<br />
If you don't know what IRC is, check out [http://www.irchelp.org/ irchelp].<br />
<br />
All of the following channels use the freenode IRC network unless otherwise noted. If you don't have an IRC client installed on your machine, you can use a web gateway service, such as [http://webchat.freenode.net webchat.freenode.net], for freenode.<br />
<br />
* [irc://irc.freenode.net/wesnoth #wesnoth] this channel is for general conversation amongst Wesnoth users and developers alike.<br />
* [irc://irc.freenode.net/wesnoth-dev #wesnoth-dev] the development discussion channel. Most contributors and developers (WML, C++ and art people alike) hang around here, exchanging ideas and code patches.<br />
* [irc://irc.freenode.net/wesnoth-mp #wesnoth-mp] the multiplayer servers' status and development discussion channel.<br />
* [irc://irc.freenode.net/wesnoth-writing #wesnoth-writing] the channel for discussion of improving Wesnoth's writing<br />
* [irc://irc.freenode.net/wesnoth-music #wesnoth-music]<br />
* [irc://irc.freenode.net/wesnoth-umc-dev #wesnoth-umc-dev] the look-alike of #wesnoth-dev for the [http://www.wesnoth.org/forum/viewtopic.php?f=8&t=21413 Wesnoth User-made Add-ons Development] repository.<br />
* [irc://irc.tweakers.net/wesnoth #wesnoth (Dutch channel)] Connect to irc.tweakers.net network<br />
* [irc://irc.freenode.net/wesnoth-de #wesnoth-de (German channel)] the German look-alike of #wesnoth, mainly used by German-speaking users and translators.<br />
* [irc://irc.freenode.net/wesnoth-pl #wesnoth-pl (Polish channel)] as above, but Polish<br />
* [irc://irc.syrolnet.org/WIF #WIF (Italian channel)] Connect to irc.sylornet.org network<br />
* [irc://irc.freenode.net/wesnoth-gl #wesnoth-gl (Galician channel)]<br />
* [irc://irc.freenode.net/wesnoth-la #wesnoth-la (Latin channel)]<br />
You can also see the [http://irclog.wesnoth.org/ logs] of the #wesnoth, #wesnoth-de, #wesnoth-dev and #wesnoth-umc-dev channels.<br />
<br />
=== Mailing Lists ===<br />
* [https://mail.gna.org/listinfo/wesnoth-dev/ wesnoth-dev] ([https://mail.gna.org/public/wesnoth-dev/ archives]): the mailing list for discussing mainline development issues; it is not intended for bug reports or feature requests. See [[ReportingBugs]] for those.<br />
* [https://mail.gna.org/listinfo/wesnoth-commits/ wesnoth-commits] ([https://mail.gna.org/public/wesnoth-commits/ archives]): all commits made to the mainline SVN repository are automatically echoed in this list for those who want or need to keep track of them. New developers and contributors are required to subscribe to this list.<br />
* [https://mail.gna.org/listinfo/wesnoth-i18n/ wesnoth-i18n] ([https://mail.gna.org/public/wesnoth-i18n/ archives]): the internationalization (i18n) mailing list; all translation team maintainers and the i18n managers should subscribe and keep track of announcements and discussions taking place in this list.<br />
<br />
=== Other Servers List ===<br />
see [http://www.wesnoth.org/wiki/MultiplayerServers here]<br />
<br />
[[Category:Troubleshooting and Bugs]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=EditingWesnoth&diff=32443EditingWesnoth2009-09-24T22:02:48Z<p>ShikadiQueen: /* User Data */ Update for 1.7 fs hiearchy</p>
<hr />
<div><!-- single enters on this page are intentional --><br />
<br />
== Game and User Directories ==<br />
<br />
Wherever you install the game, there will be a game data directory that contains, of course, the game's data. This directory should have the following subdirectories: data, music, sounds, and images. There are several others, but these are the important ones. In this wiki, the terms "game data", wesnoth/data, or ./data refers to the wesnoth/data directory. You normally do not need to modify these files, but you can if you want to modify a unit or something.<br />
<br />
The user data directory allows you to add custom content without modifying the game's own files. Each OS puts its user data directory in a different place. In this wiki, "user data", ''userdata''/''subdirectory'', or (occasionally) ~wesnoth/ refer to this directory.<br />
<br />
=== Where is my '''game''' data directory? ===<br />
<br />
====Windows====<br />
Usually C:\Program Files\Wesnoth\data but it will be different if you installed the game in a different location: look for the data folder in the folder where you installed the game.<br />
<br />
====Mac OS X====<br />
Downloaded from sourceforge: command-click on the application icon. Select "Show Package Contents." Select "Contents" then "Resources. <br />
If you did not download from sourceforge what do you do? <br />
Command line build: /usr/local/share/wesnoth<br />
<br />
====Linux====<br />
/usr/local/share/wesnoth <br><br />
From apt-get (Debian and Ubuntu) or emerge (Gentoo): /usr/share/games/wesnoth <br><br />
SUSE 10.0 (pre-installed): /usr/share/wesnoth<br><br />
Fedora 5 (Installed from yum repository RPM): /usr/share/wesnoth<br><br />
Mandriva 2006.0: /usr/share/games/wesnoth<br><br />
Slackware 12 (Installed from .tgz package at LinuxPackages.net): /usr/local/share/wesnoth<br><br />
If you don't find it, or if you use another distribution, try <code>find / -iname '*wesnoth*'</code>. (as yourself, not as superuser)<br />
<br />
=== Where is my '''user''' data directory? ===<br />
<br />
====Windows====<br />
c:\Program Files\Wesnoth\userdata<br />
<br />
or c:\Users\USERNAME\AppData\Local\VirtualStore\Program Files\Wesnoth\userdata<br />
on Vista, which has virtual folders. The AppData folder is hidden.<br />
Or if you don`t remember where you installed it right click on the game`s shortcut open properties and click on the `Find target` button,then search for the `data` folder.<br />
<br />
Starting from Wesnoth 1.6 it can be in MyDocuments\My Games\Wesnoth1.6 on Windows XP or Documents\My Games\Wesnoth1.6 on Vista.<br />
<br />
====Mac OS X====<br />
Downloaded from sourceforge: ~/Library/Preferences/Wesnoth <br><br />
For Wesnoth 1.7.x : ~/Library/Application Support/Wesnoth_1.x/ <br><br />
Command line build: ~/.wesnoth (same as Linux; see below for details)<br />
<br />
====Linux====<br />
~/.wesnoth <br><br />
For newer wesnoth versions it can also be ~/.wesnoth<version>. I.e. ~/.wesnoth1.6 <br><br />
If unsure you can check stdout of wesnoth (run from a terminal) on startup where the used directory is mentioned.<br />
<br />
== Game data ==<br />
<br />
The major directories you need to know about are wesnoth/data, wesnoth/data/core/units, wesnoth/data/campaigns, wesnoth/data/multiplayer, wesnoth/images and wesnoth/data/core/images<br />
<br />
Become familiar with what is in ./data/campaigns and ./data/multiplayer/scenarios. These have the officially distributed campaigns and multiplayer maps. If you ever want to examine or edit one of the scenario configuration files, this is where you would go. For example, a common question is how a new player can give himself more turns or gold in scenario X. This is where you would go to do that.<br />
<br />
Two very important directories are ./data/core/units/ and ./images. You have the ability to drop new units or images in these directories and have the game recognize them. When specifying an image for something, you do so relative to ./images.<br />
<br />
== User Data ==<br />
The user data directory can do a lot of things. The game looks here for several things:<br />
* ''userdata''/data/campaigns - campaign configuration files and subdirectories<br />
* ''userdata''/editor/maps - multiplayer standalone maps (map data only)<br />
<br />
The ''userdata''/data/campaigns directory is particularly useful. A single configuration file here can selectively point to an entire subdirectory tree of units, images, sounds, scenarios, and macros. This allows you to wall off parts. Content included in the userdata units or images directories will be available globally whether you want it or not.<br />
<br />
For example, assume you have a campaign called MyCampaign. This is what the ''userdata''/data/campaigns directory might look like:<br />
* ''userdata''/data/campaigns/MyCampaign/ - your campaign's directory<br />
* ''userdata''/data/campaigns/MyCampaign/_main.cfg - a text file containing your instructions for the game about how to load the campaign<br />
** ''userdata''/data/campaigns/MyCampaign/scenarios<br />
** ''userdata''/data/campaigns/MyCampaign/units<br />
** ''userdata''/data/campaigns/MyCampaign/images<br />
** ''userdata''/data/campaigns/MyCampaign/music<br />
** ''userdata''/data/campaigns/MyCampaign/sounds<br />
** ''userdata''/data/campaigns/MyCampaign/utils<br />
<br />
{{DevFeature}} Note that in 1.7.0 and later versions, ''add-ons'' replaces ''campaigns'' for these paths.<br />
<br />
== See Also ==<br />
<br />
* [[Create]]<br />
<br />
<div style="border:1px solid #5599FF; margin-top: 10px; margin-bottom: 5px; padding: 5px;"><br />
- [[EditingWesnoth|English]] - [[Editer Wesnoth vf|Français]] -<br />
</div><br />
[[Category:Create]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=IntroWML&diff=32196IntroWML2009-09-05T21:04:49Z<p>ShikadiQueen: /* The [story] tag */ Remove caption=, it's not supported; add title_alignment= (1.7.5+svn)</p>
<hr />
<div>{{WML Tags}}<br />
== The [story] tag ==<br />
<br />
The '''[story]''' tag is a series of images and text to display as the first part of the intro screen.<br />
<br />
'''[part]''' is a special tag recognized only beneath '''[story]'''. Each '''[part]''' represents one image and text.<br />
The part is displayed until the user clicks on the "Next>>>" button.<br />
<br />
The following key/tags are recognized for '''[part]''':<br />
* '''background''': the image to display. Story images are usually created specially for this purpose, except for the map.<br />
* '''scale_background''': Whether to scale the background, default yes.<br />
* '''story''': (translatable) the text to display below the image.<br />
* '''show_title''': whether to display the title of the scenario at the top<br />
* '''title''' {{DevFeature}}: specifies a custom title to display instead of the name of the scenario. If specified, it implies '''show_title=yes'''.<br />
* '''music''': change to this music<br />
* '''sound''' {{DevFeature}}: a list of sound files; the engine will choose one at random and play it once while displaying the story part.<br />
* '''[image]''': an image to display.<br />
** '''x''', '''y''': the location in pixels to draw the image. The x,y pixel location is relative to the image specified in background, but not in a normal way. The background image is scaled up or down to fill the screen resolution, but images are never scaled in size. Their coordinates, however, are scaled. It's basically a big pain in the rear. Example: I have a background image at 640x480 and an overlay at 640x480. To horizontally center the overlay on a 1024x768 screen, I want to position it at x=192. This is because 1024-640 = 384 total extra pixel space, then 384/2 = 192. This results in equal space on both sides of the overlay. However, now you have to account for the background scaling. The background image at 640 is scaled up to 1024, a scaling factor of 1.6. All image locations are also scaled up, so the overlay is not drawn at x=192, rather it is drawn at x=192*1.6 or x=307! To compensate for this, divide the desired pixel location by the scaling factor. In the example, x_compensated=192/1.6 or x_compensated=120.<br />
** '''centered''': If "yes", use the center of the image when placing at the x,y coordinates, which is useful since this image is not scaled like the background is (and by centering no need to worry about this).<br />
** '''file''': the image to display.<br />
** '''delay''': the time to delay drawing this image.<br />
* '''text_layout''' {{DevFeature}}: specifies the area of the screen where the story text will be displayed. It allows the ''top'', ''middle'' and ''bottom'' values; the latter is used by default.<br />
* '''title_alignment''' {{DevFeature}}: specifies the alignment of the title box. It allows the ''left'', ''centered'' and ''right'' values; the first is used by default.<br />
<br />
The '''[deprecated_message]''', '''[wml_message]''', '''[image]''', and '''[insert_tag]''' tags are allowed beneath '''[story]'''. Most other WML tags will not be recognized in this context. Note, however, that messages produced by the first two tags will not appear in the game interface until the actual game map appears.<br />
<br />
The only other tags currently recognized beneath '''[story]''' are '''[if]'''/'''[then]'''/'''[else]'''. These can be used to show parts conditionally on the values of variables. Note, however, that '''[switch]'''/'''[case]''' will not work in this context.<br />
<br />
{{DevFeature}} In the development branch, '''[switch]'''/'''[case]''' and<br />
'''[if]'''/'''[then]'''/'''[else]''' are allowed both within '''[story]''' and within '''[part]'''.<br />
<br />
See also the journey and battle macros, in [[UtilWML]]<br />
<br />
== See Also ==<br />
<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=PatchSubmissionGuidelines&diff=32104PatchSubmissionGuidelines2009-08-31T17:43:36Z<p>ShikadiQueen: Replaced first singular person with first plural person, other grammar/content revisions</p>
<hr />
<div>Copied from http://www.wesnoth.org/forum/viewtopic.php?f=10&t=9979<br />
<br />
* '''All patches should be submitted at patches.wesnoth.org'''<br />
You can post them in the [http://www.wesnoth.org/forum/viewtopic.php?f=10&t=9979 Coder's Corner] subforum too for discussion, but we need to track what is their status and p.w.o helps a lot<br />
<br />
* '''Patches should be generated using "svn diff"'''<br />
SVN provides a cool command to generate diff. We usually run "svn diff >mypatch.patch" to create patches, and it's all nice and ready.<br />
<br />
It even records precisely the commit against which it was generated, it makes things really easy for us...<br />
<br />
* '''Don't forget to add an entry to the Changelog'''<br />
* '''If you add a file, don't forget to update src/Makefile.am, src/SConscript and src/CMakeLists.txt'''<br />
* '''Add yourself in about.cfg'''<br />
Including your name and/or nickname(s) makes it easier for us to recognize your contributions.<br />
New contributors should add themselves to the ''Miscellaneous Contributors'' section of the about file (data/core/about.cfg). Please keep the alphabetical order while doing it!<br />
<br />
* '''When changing WML, please add a pointer in the wiki to where it should be updated when commited'''<br />
<br />
* '''Be patient, sometimes we are not very responsive'''<br />
* '''Don't be suprised if we discuss the patch a lot'''<br />
Thus, you should leave us a way to contact you, either a forum nick, an email adress, or submit with a registered gna account. We recommend that you join the #wesnoth-dev channel on irc.freenode.net regularly so we can contact you in real time if needed.<br />
<br />
* '''The patch should generate no warnings'''<br />
Wesnoth has a large number of compiler warnings enabled, and all of them are useful. If your code spits warnings, please have a look, and ask yourself why you are doing whatever causes the warning.<br />
<br />
* '''When adding a file, don't forget src/Makefile.am, src/SConscript and src/CMakeLists.txt'''<br />
It makes things simpler for us, but it's often forgotten.<br />
<br />
* '''Sometimes patches are rejected, don't be suprised if it happens'''<br />
<br />
== See also ==<br />
* [[HackingWesnoth]]<br />
* [[CodingStandards]]<br />
* [[EasyCoding]]<br />
* [[DeveloperResources]]<br />
<br />
[[Category:Development]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Thunderstone&diff=32049Thunderstone2009-08-26T23:04:51Z<p>ShikadiQueen: Fix SVN paths after r5208</p>
<hr />
<div>'''Note: Thunderstone is still heavily under construction and thus much of what is said here is more of a roadmap than a list of actual features. As it exists now, Thunderstone is an extremely under-construction preview and is not recommended for non-testing purposes.'''<br />
<br />
{{Era |<br />
era = Thunderstone |<br />
maintainer = Aethaeryn |<br />
factions = Human Troopers, Elvish Mystics, Dwarvish Guardians, Orcish Raiders, [[Shaxthals]] |<br />
version = ''[[#Pre-release_versions|Preview 2]] or [[#Subversion|SVN]] |<br />
w_version = 1.7.2 or [[SVN]] |<br />
thread = N/A |<br />
trees = [http://wesnoth-umc-dev.svn.sourceforge.net/viewvc/wesnoth-umc-dev/trunk/Thunderstone_Era/unit_tree.txt?view=log SVN unit tree]<br />
}}<br />
<br />
A ''post''-post-apocalyptic world where fantasy and science fiction collide, '''Thunderstone''' is the far future of Wesnoth's world Irdya. The core of the Thunderstone add-on will be an era, consisting of five all-new factions - Humans, Elves, Dwarves, Orcs, and the Shaxthals (the Biomechanicals from Invasion from the Unknown). The add-on also introduces new terrains, the electric damage type, new weaponry and a new attack range, vehicles, and special units. Altogether, Thunderstone hopes to be the core for scenarios and campaigns based in the far future of the world Wesnoth.<br />
<br />
==Story==<br />
Thunderstone is set in the future, long after the "apocalypse" wiped out much of the world. In the years following Under the Burning Suns and [http://www.wesnoth.org/forum/viewtopic.php?f=8&t=17827 Invasion from the Unknown], the remnants of civilization have come in contact with high technology. Combined with over a hundred years of stability, a new era of innovation has made this rebuilding world far more advanced than before. In this age of mixed magic and science, the first powerful spacecraft have been developed and the elves, dwarves, humans, and orcs of the world of Irdya have ended their isolation from the galaxy at large...<br />
<br />
==New Features==<br />
===Terrains===<br />
Thunderstone introduces new sets of terrain on top of the traditional Wesnoth terrains. The two major terrain sets are '''Uninhabited''' and '''Space'''. Space is the void between the heavenly bodies. Only spacecraft, robotic or semi-robotic creatures that do not need to breathe oxygen, and creatures shielded and given oxygen with a specialized suit can travel through space. Uninhabited is a similar environment except on a planet or moon, one hostile to most living creatures. The major difference is that only fliers can travel in Space while any machine small enough to enter the atmosphere (all except the biggest spaceships) can travel on or directly above Uninhabited terrain. <br />
<br />
===Electric Damage Type===<br />
Thunderstone also introduces a new damage type called "Electric." Electric is similar to fire, but is usually produced from high-tech weapons. Electric's main specialty is that it does extra damage against high-tech machinery such as vehicles, thus making it an effective counter for otherwise powerful units.<br />
<br />
===Weaponry and Ranges===<br />
Thunderstone introduces many new weapons of a higher technology level than standard Wesnoth, including guns. It also introduces a new attack range, '''long ranged''', that is mostly used in spaceships and other weaponry capable of much higher range than bows or most guns, such as sniper rifles. Because of long ranged's rarity, it usually provides no retaliation to the attacker which is a key strategic advantage.<br />
<br />
'''Guns''' are portable machines that shoot projectiles at people and have replaced the bow as the ranged weapons of choice. Thunderstone is the dawn of the space-traveling age for the sentient races of Irdya, so guns vary from bullets to bursts of harmful electricity. Unlike bows, the rapid-fire capability of guns enables many guns span two ranges. For example, a shotgun is able to be used in both melee in ranged. Other guns can be used as blunt objects close up to still do melee damage. All standard guns that can be shot in melee have the first strike ability there, while those that are not shot do not have first strike.<br />
<br />
Despite the abandonment of the bow for the gun, some close-ranged weapons are still used. These varied objects are not necessarily disadvantaged because they are usually unanticipated.<br />
<br />
===Vehicles===<br />
Each faction in Thunderstone will have several vehicles. Most vehicles are so powerful and expensive that they are recruited at level 2 or higher. Vehicles are not living and thus are unpoisonable, undrainable, and unplaugeable. Vehicles can be flying or ground-based, and tend to be stronger than infantry. Their superiority comes with major weaknesses: electric-based attacks, and high prices and upkeep. In addition to the recruitable flying vehicles, there are also unrecruitable spaceships that are much stronger, but can only travel in space terrain. These units are non-standard and much rarer than the normal vehicles.<br />
<br />
===Five All-New Factions===<br />
====Human Troopers====<br />
<div class="thumb tright"><div><br />
[http://www.wesnoth.org/forum/download/file.php?id=31642.png http://www.wesnoth.org/forum/download/file.php?id=31642.png]<br />
<div class="thumbcaption">Draft art of four human units.<br />
</div></div><br />
</div><br />
<br />
Humans are still the jack-of-all-trades race. Balancing magic and science, humans are generalists who adapt to novelty more effectively than the other races of Irdya. Their technical strength area is computers and miniaturization. They, more than the other speaking peoples, tend to win by luring opponents into fatal mistakes.<br />
<br />
====Elvish Mystics====<br />
Elves are still in touch with nature and in the years of peace they have greatly enhanced their magical skills. Elves focus heavily on this magic, rejecting technologies which they find disharmonious, and excel at biology and medicine. Much of their technology is magically-enhanced. Tactically, elves focus on mobility and precision fire.<br />
<br />
====Dwarvish Guardians====<br />
The dwarves are the master technologists and builders of Irdya, especially in the areas of power, weapons, propulsion, and large-scale engineering. They remain intensely conservative, and their technology is ultra-reliable even if it lacks the finesse and efficiency of human or elven work.<br />
<br />
====Orcish Raiders====<br />
Orcs have stolen most of what they have from the more civilized species, but focus mostly on war. Their technology tends towards the crude, overpowered hack, and is notoriously (and sometimes comically) unreliable. The flip side of this is that in any environment that doesn't outright kill them, orcs are less helpless without their tech than the other speaking peoples.<br />
<br />
====Shaxthals (Biomechs)====<br />
''Main article: [[Shaxthals]]<br />
<br />
The Shaxthals are an ancient race created by the original inhabitants of Irdya. These combinations of bioengineering and magic were made to aid in a war, but they soon became out-of-control. They were defeated, however, and only revived recently under the Chaos Empire. When the Chaos Empire was destroyed, the Shaxthals became free to do what they do best - kill.<br />
<br />
==Add-ons==<br />
By the time Thunderstone 1.0 is released, the project will be published on the add-ons server using multiple add-ons.<br />
<br />
'''Thunderstone Era''' will be the core add-on for the Thunderstone project and will provide the units, terrain, and other files necessary for every other Thunderstone-based add-on. This will be the only add-on necessary to play normal multiplayer.<br />
<br />
'''Thunderstone Campaigns''' will contain main campaigns for the Thunderstone project (including the title campaign, Thunderstone). These campaigns will be considered canon with Thunderstone's storyline and will be good examples of what Thunderstone offers. All of these campaigns will require and feature the core era.<br />
<br />
'''Thunderstone: Strike Force''' will be a non-linear multiplayer RPG campaign with a worldmap. It will be designed for three players on the same team, where each player controls up to three units. Its "worldmap" is space, with multiple planets and destinations that can be visited, possibly more than once. The players will experience the same Thunderstone universe but from a different perspective. <br />
<br />
==Versions==<br />
When released on the add-ons server, Thunderstone will use a versioning system that is designed to help users of the era. The version will be contain three numbers (e.g. 0.1.1). The first one indicates stability, so 1.x.x will be a balanced and "complete" version while 0.x.x is still under construction. The second number indicates incompatible releases, which means that a Wesnoth client using 0.1.0 and one using 0.2.0 will run a risk of getting out-of-sync (OOS) errors in multiplayer. Content such as mappacks or campaigns for Thunderstone might also contain features not found in previous versions, and therefore it is always recommended to update when a new incompatible release is released. The third number indicates compatible releases. This means that content for Thunderstone and MP games using Thunderstone will still work with each other. If 0.1.1 is released, it would update the art of 0.1.0.<br />
<br />
===Major Release Roadmap: What is needed for...?===<br />
====0.0.1.x (Alpha)====<br />
*Placeholder, draft, or complete base frames for every faction's units (higher levels can still share placeholder with lower levels);<br />
*WML for every faction's units to the point of non-buggy playing (balance not guaranteed).<br />
<br />
====0.0.5.x (Beta) ====<br />
*Base frames for every faction's units (none shared, but draft and placeholders allowed);<br />
*Beginning of balancing;<br />
*Extra features (terrains, items, non-factional units, etc.) for everything planned (draft and placeholders allowed, new submissions always welcome).<br />
<br />
====Release 0.1.x====<br />
*Base frames for every faction's units (placeholders discouraged);<br />
*Balanced factions to the point of somewhat fair multiplayer;<br />
*Majority of extra features (terrains, items, non-factional units) working and not buggy;<br />
*Additional add-on content (mostly campaign) releases begin.<br />
<br />
====Release 1.0====<br />
*Complete base frames, most basic animations;<br />
*Balanced factions (as best as possible);<br />
*Extra features (terrains, items, non-factional units, etc.);<br />
*Completed, and also at 1.0, core content (campaigns and other official Thunderstone add-ons). <br />
<br />
====Release 2.0 (or 3.0?)====<br />
*On par with, or close to, Default in terms of art and animations, WML and balance, and contents (campaigns, and other official add-ons), etc.<br />
<br />
===Subversion===<br />
Thunderstone also uses [[SVN|Subversion]] (SVN) to coordinate work between the released versions. You can [http://wesnoth-umc-dev.svn.sourceforge.net/viewvc/wesnoth-umc-dev/trunk/Thunderstone_Era/ browse] the Thunderstone SVN repository to see the latest draft of Thunderstone. Thunderstone is part of [[Wesnoth UMC Dev]], which hosts the project's SVN. You can download Thunderstone with the command:<br />
<br />
svn co https://wesnoth-umc-dev.svn.sourceforge.net/svnroot/wesnoth-umc-dev/trunk/Thunderstone_Era Thunderstone_Era<br />
<br />
Please note that Thunderstone, like all add-ons, goes in data/add-ons/ in the Wesnoth userdata directory. Also note that Thunderstone is still heavily under construction so the SVN is merely a preview instead of a full era. SVN tends to be unstable and is generally not compatible with a release of Thunderstone on the add-ons server, so use it with caution.<br />
<br />
==Coordination==<br />
If you would like to help with Thunderstone, you can coordinate on the #wesnoth-thunderstone IRC channel (for real-time chat and to keep updated on the SVN revisions) and in our forum threads for general discussion and art.<br />
<br />
====IRC Channel====<br />
[irc://irc.freenode.net/wesnoth-thunderstone #wesnoth-thunderstone] (irc.freenode.net)<br />
<br />
====Forum Threads====<br />
''A forum thread for general discussion will be released as soon as Thunderstone is officially published on the add-ons server. Until then, IRC is a suitable place for communication.<br />
*[http://www.wesnoth.org/forum/viewtopic.php?f=23&t=26018 Thunderstone Art Thread]<br />
<br />
====Wiki Pages====<br />
'''[[Thunderstone art]]''' is used to keep track of what art is needed and what art is done.<br />
<br />
[[Category:Eras]]<br />
[[Category:Thunderstone|*]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Thunderstone&diff=32048Thunderstone2009-08-26T22:47:52Z<p>ShikadiQueen: /* Coordination */ Fix IRC channel pointers</p>
<hr />
<div>'''Note: Thunderstone is still heavily under construction and thus much of what is said here is more of a roadmap than a list of actual features. As it exists now, Thunderstone is an extremely under-construction preview and is not recommended for non-testing purposes.'''<br />
<br />
{{Era |<br />
era = Thunderstone |<br />
maintainer = Aethaeryn |<br />
factions = Human Troopers, Elvish Mystics, Dwarvish Guardians, Orcish Raiders, [[Shaxthals]] |<br />
version = ''[[#Pre-release_versions|Preview 2]] or [[#Subversion|SVN]] |<br />
w_version = 1.7.2 or [[SVN]] |<br />
thread = N/A |<br />
trees = [http://wesnoth-umc-dev.svn.sourceforge.net/viewvc/wesnoth-umc-dev/trunk/Thunderstone/unit_tree.txt?view=log SVN unit tree]<br />
}}<br />
<br />
A ''post''-post-apocalyptic world where fantasy and science fiction collide, '''Thunderstone''' is the far future of Wesnoth's world Irdya. The core of the Thunderstone add-on will be an era, consisting of five all-new factions - Humans, Elves, Dwarves, Orcs, and the Shaxthals (the Biomechanicals from Invasion from the Unknown). The add-on also introduces new terrains, the electric damage type, new weaponry and a new attack range, vehicles, and special units. Altogether, Thunderstone hopes to be the core for scenarios and campaigns based in the far future of the world Wesnoth.<br />
<br />
==Story==<br />
Thunderstone is set in the future, long after the "apocalypse" wiped out much of the world. In the years following Under the Burning Suns and [http://www.wesnoth.org/forum/viewtopic.php?f=8&t=17827 Invasion from the Unknown], the remnants of civilization have come in contact with high technology. Combined with over a hundred years of stability, a new era of innovation has made this rebuilding world far more advanced than before. In this age of mixed magic and science, the first powerful spacecraft have been developed and the elves, dwarves, humans, and orcs of the world of Irdya have ended their isolation from the galaxy at large...<br />
<br />
==New Features==<br />
===Terrains===<br />
Thunderstone introduces new sets of terrain on top of the traditional Wesnoth terrains. The two major terrain sets are '''Uninhabited''' and '''Space'''. Space is the void between the heavenly bodies. Only spacecraft, robotic or semi-robotic creatures that do not need to breathe oxygen, and creatures shielded and given oxygen with a specialized suit can travel through space. Uninhabited is a similar environment except on a planet or moon, one hostile to most living creatures. The major difference is that only fliers can travel in Space while any machine small enough to enter the atmosphere (all except the biggest spaceships) can travel on or directly above Uninhabited terrain. <br />
<br />
===Electric Damage Type===<br />
Thunderstone also introduces a new damage type called "Electric." Electric is similar to fire, but is usually produced from high-tech weapons. Electric's main specialty is that it does extra damage against high-tech machinery such as vehicles, thus making it an effective counter for otherwise powerful units.<br />
<br />
===Weaponry and Ranges===<br />
Thunderstone introduces many new weapons of a higher technology level than standard Wesnoth, including guns. It also introduces a new attack range, '''long ranged''', that is mostly used in spaceships and other weaponry capable of much higher range than bows or most guns, such as sniper rifles. Because of long ranged's rarity, it usually provides no retaliation to the attacker which is a key strategic advantage.<br />
<br />
'''Guns''' are portable machines that shoot projectiles at people and have replaced the bow as the ranged weapons of choice. Thunderstone is the dawn of the space-traveling age for the sentient races of Irdya, so guns vary from bullets to bursts of harmful electricity. Unlike bows, the rapid-fire capability of guns enables many guns span two ranges. For example, a shotgun is able to be used in both melee in ranged. Other guns can be used as blunt objects close up to still do melee damage. All standard guns that can be shot in melee have the first strike ability there, while those that are not shot do not have first strike.<br />
<br />
Despite the abandonment of the bow for the gun, some close-ranged weapons are still used. These varied objects are not necessarily disadvantaged because they are usually unanticipated.<br />
<br />
===Vehicles===<br />
Each faction in Thunderstone will have several vehicles. Most vehicles are so powerful and expensive that they are recruited at level 2 or higher. Vehicles are not living and thus are unpoisonable, undrainable, and unplaugeable. Vehicles can be flying or ground-based, and tend to be stronger than infantry. Their superiority comes with major weaknesses: electric-based attacks, and high prices and upkeep. In addition to the recruitable flying vehicles, there are also unrecruitable spaceships that are much stronger, but can only travel in space terrain. These units are non-standard and much rarer than the normal vehicles.<br />
<br />
===Five All-New Factions===<br />
====Human Troopers====<br />
<div class="thumb tright"><div><br />
[http://www.wesnoth.org/forum/download/file.php?id=31642.png http://www.wesnoth.org/forum/download/file.php?id=31642.png]<br />
<div class="thumbcaption">Draft art of four human units.<br />
</div></div><br />
</div><br />
<br />
Humans are still the jack-of-all-trades race. Balancing magic and science, humans are generalists who adapt to novelty more effectively than the other races of Irdya. Their technical strength area is computers and miniaturization. They, more than the other speaking peoples, tend to win by luring opponents into fatal mistakes.<br />
<br />
====Elvish Mystics====<br />
Elves are still in touch with nature and in the years of peace they have greatly enhanced their magical skills. Elves focus heavily on this magic, rejecting technologies which they find disharmonious, and excel at biology and medicine. Much of their technology is magically-enhanced. Tactically, elves focus on mobility and precision fire.<br />
<br />
====Dwarvish Guardians====<br />
The dwarves are the master technologists and builders of Irdya, especially in the areas of power, weapons, propulsion, and large-scale engineering. They remain intensely conservative, and their technology is ultra-reliable even if it lacks the finesse and efficiency of human or elven work.<br />
<br />
====Orcish Raiders====<br />
Orcs have stolen most of what they have from the more civilized species, but focus mostly on war. Their technology tends towards the crude, overpowered hack, and is notoriously (and sometimes comically) unreliable. The flip side of this is that in any environment that doesn't outright kill them, orcs are less helpless without their tech than the other speaking peoples.<br />
<br />
====Shaxthals (Biomechs)====<br />
''Main article: [[Shaxthals]]<br />
<br />
The Shaxthals are an ancient race created by the original inhabitants of Irdya. These combinations of bioengineering and magic were made to aid in a war, but they soon became out-of-control. They were defeated, however, and only revived recently under the Chaos Empire. When the Chaos Empire was destroyed, the Shaxthals became free to do what they do best - kill.<br />
<br />
==Add-ons==<br />
By the time Thunderstone 1.0 is released, the project will be published on the add-ons server using multiple add-ons.<br />
<br />
'''Thunderstone Era''' will be the core add-on for the Thunderstone project and will provide the units, terrain, and other files necessary for every other Thunderstone-based add-on. This will be the only add-on necessary to play normal multiplayer.<br />
<br />
'''Thunderstone Campaigns''' will contain main campaigns for the Thunderstone project (including the title campaign, Thunderstone). These campaigns will be considered canon with Thunderstone's storyline and will be good examples of what Thunderstone offers. All of these campaigns will require and feature the core era.<br />
<br />
'''Thunderstone: Strike Force''' will be a non-linear multiplayer RPG campaign with a worldmap. It will be designed for three players on the same team, where each player controls up to three units. Its "worldmap" is space, with multiple planets and destinations that can be visited, possibly more than once. The players will experience the same Thunderstone universe but from a different perspective. <br />
<br />
==Versions==<br />
When released on the add-ons server, Thunderstone will use a versioning system that is designed to help users of the era. The version will be contain three numbers (e.g. 0.1.1). The first one indicates stability, so 1.x.x will be a balanced and "complete" version while 0.x.x is still under construction. The second number indicates incompatible releases, which means that a Wesnoth client using 0.1.0 and one using 0.2.0 will run a risk of getting out-of-sync (OOS) errors in multiplayer. Content such as mappacks or campaigns for Thunderstone might also contain features not found in previous versions, and therefore it is always recommended to update when a new incompatible release is released. The third number indicates compatible releases. This means that content for Thunderstone and MP games using Thunderstone will still work with each other. If 0.1.1 is released, it would update the art of 0.1.0.<br />
<br />
===Major Release Roadmap: What is needed for...?===<br />
====0.0.1.x (Alpha)====<br />
*Placeholder, draft, or complete base frames for every faction's units (higher levels can still share placeholder with lower levels);<br />
*WML for every faction's units to the point of non-buggy playing (balance not guaranteed).<br />
<br />
====0.0.5.x (Beta) ====<br />
*Base frames for every faction's units (none shared, but draft and placeholders allowed);<br />
*Beginning of balancing;<br />
*Extra features (terrains, items, non-factional units, etc.) for everything planned (draft and placeholders allowed, new submissions always welcome).<br />
<br />
====Release 0.1.x====<br />
*Base frames for every faction's units (placeholders discouraged);<br />
*Balanced factions to the point of somewhat fair multiplayer;<br />
*Majority of extra features (terrains, items, non-factional units) working and not buggy;<br />
*Additional add-on content (mostly campaign) releases begin.<br />
<br />
====Release 1.0====<br />
*Complete base frames, most basic animations;<br />
*Balanced factions (as best as possible);<br />
*Extra features (terrains, items, non-factional units, etc.);<br />
*Completed, and also at 1.0, core content (campaigns and other official Thunderstone add-ons). <br />
<br />
====Release 2.0 (or 3.0?)====<br />
*On par with, or close to, Default in terms of art and animations, WML and balance, and contents (campaigns, and other official add-ons), etc.<br />
<br />
===Subversion===<br />
Thunderstone also uses [[SVN|Subversion]] (SVN) to coordinate work between the released versions. You can [http://wesnoth-umc-dev.svn.sourceforge.net/viewvc/wesnoth-umc-dev/trunk/Thunderstone/ browse] the Thunderstone SVN repository to see the latest draft of Thunderstone. Thunderstone is part of [[Wesnoth UMC Dev]], which hosts the project's SVN. You can download Thunderstone with the command:<br />
<br />
svn co https://wesnoth-umc-dev.svn.sourceforge.net/svnroot/wesnoth-umc-dev/trunk/Thunderstone Thunderstone<br />
<br />
Please note that Thunderstone, like all add-ons, goes in data/add-ons/ in the Wesnoth userdata directory. Also note that Thunderstone is still heavily under construction so the SVN is merely a preview instead of a full era. SVN tends to be unstable and is generally not compatible with a release of Thunderstone on the add-ons server, so use it with caution.<br />
<br />
==Coordination==<br />
If you would like to help with Thunderstone, you can coordinate on the #wesnoth-thunderstone IRC channel (for real-time chat and to keep updated on the SVN revisions) and in our forum threads for general discussion and art.<br />
<br />
====IRC Channel====<br />
[irc://irc.freenode.net/wesnoth-thunderstone #wesnoth-thunderstone] (irc.freenode.net)<br />
<br />
====Forum Threads====<br />
''A forum thread for general discussion will be released as soon as Thunderstone is officially published on the add-ons server. Until then, IRC is a suitable place for communication.<br />
*[http://www.wesnoth.org/forum/viewtopic.php?f=23&t=26018 Thunderstone Art Thread]<br />
<br />
====Wiki Pages====<br />
'''[[Thunderstone art]]''' is used to keep track of what art is needed and what art is done.<br />
<br />
[[Category:Eras]]<br />
[[Category:Thunderstone|*]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Future_History&diff=32039Future History2009-08-26T19:08:24Z<p>ShikadiQueen: Add IftU and AtS begin/end markers, use bold for UtBS markers like in the main History_of_Wesnoth page</p>
<hr />
<div>This a tentative outline of the future history of the world of Irdya, where Battle for Wesnoth is set. Except for the events of the mainline campaign ''Under The Burning Suns'', none of this is considered canonical and any of it may change as continuity for future mainline campaigns requires.<br />
<br />
== Irdya Before the Fall ==<br />
<br />
=== 1002 YW ===<br />
*Elynia-Zih, daughter of Deniéth-Isal and an unknown wayfarer, is born in Lintanir Forest.<br />
<br />
=== 1006 YW ===<br />
*Civil war in Lintanir Forest.<br />
*Great Sorceress Niryone finds and adopts Elynia.<br />
<br />
=== 1009 YW ===<br />
*Niryone starts teaching Elynia her knowledge of magic, and training her for close combat with simple weapons.<br />
<br />
=== 1046-1093 YW: The First Empire of Wesnoth ===<br />
<br />
==== 1046 YW ====<br />
* Mizenwyn, a Dark Sorcerer, incites civil war in Wesnoth and shortly seizes the throne of the kingdom, obtaining the Sceptre of Fire to legitimize his claim.<br />
<br />
==== 1047 YW ====<br />
* Mizenwyn declares himself Supreme Leader of the First Empire of Wesnoth.<br />
* The High Council of Archmagi is abolished; all members who can be found are executed on charges of treason to the Empire.<br />
<br />
==== 1050-1070 YW ====<br />
* Mizenwyn annexes new lands to Wesnoth by conquest and forces the Northern Alliance to retreat back into the Far North. Elensefar is reconquered by Wesnoth.<br />
* Aethenwood declares itself neutral towards Wesnoth.<br />
<br />
==== 1086 YW ====<br />
* Civilizations not under the control of the Empire organize a plot to distract the military, infiltrate Weldyn and put an end to Mizenwyn and the Empire of Wesnoth.<br />
* The Ka'lian chooses Niryone and her disciple, Elynia, to lead the infiltration.<br />
<br />
==== 1088 YW ====<br />
* Battles on the frontiers of Wesnoth begin against human and orcish legions sent by the Northern Alliance.<br />
<br />
==== 1089 YW ====<br />
* The activity on the frontiers catches the attention of Mizenwyn, and Elynia and Niryone infiltrate the Empire.<br />
* Niryone dies during the fight against Mizenwyn himself. Elynia steals the Sceptre of Fire from his hands, and destroys him with it.<br />
<br />
==== 1091 YW ====<br />
* The First Empire of Wesnoth is dissolved, and the victors choose a new king and line to govern Wesnoth: the Delvhar dinasty.<br />
* The Council of War orders that the Sceptre of Fire must be disassembled, and its core, destroyed. Elynia volunteers to drive this mission to completion.<br />
<br />
==== 1092 YW ====<br />
* Runecrafters of Knalga disassemble the Sceptre.<br />
* Elynia betrays the Council of War, and pays the dwarves for embedding the Ruby of Fire into the staff she took from Niryone right after her death.<br />
* She also casts a spell upon the crafters to cause them amnesia.<br />
<br />
==== 1093 YW ====<br />
* The Council of War is informed that Elynia destroyed the Ruby by throwing to the lava pits on the depths of Knalga. They trust her and believe this false story.<br />
<br />
=== 1093-1157 YW: Delvhar Dynasty ===<br />
<br />
==== 1093 YW ====<br />
* The Council of War is dissolved and Delvhar I gains complete control over the Kingdom of Wesnoth.<br />
<br />
==== 1094 YW ====<br />
* Orcish civil war ensues among the tribes near Glamdrol.<br />
* A Great Chief arises amongst the orcs.<br />
<br />
==== 1095 YW ====<br />
* Orcs attack the fortress of Erzen - a battle ensues.<br />
* Brothers Gwiti and Nati Ha'atel use their magic skills to raise former enemies and deceased allies for help on the battle-field. The result is catastrophic for their side, and the battle is lost.<br />
* Gwiti and Nati are banished from the continent.<br />
<br />
==== 1096 YW ====<br />
*Gwiti Ha'atel takes over the Tower of Kaleon searching for the Tome of Crelanu.<br />
<br />
==== 1097 YW ====<br />
*Gwiti Ha'atel finds Crelanu's book.<br />
<br />
==== 1099 YW ====<br />
* Gwiti Ha'atel launches a surprise attack on Wesnoth. The headquarters of the Council of Archmagi are completely destroyed and almost everyone killed.<br />
* Elynia is called upon and sent by the remaining members of the Council of Archmagi to pursue and defeat the necromancer.<br />
* Elynia fights the necromancers and is almost destroyed. Gwiti abandons her agonized body on the battlefields.<br />
* Elynia meets Argan the Master of Darkness, who restores her and gives her a special artifact.<br />
<br />
==== 1101 YW ====<br />
* Elynia finds Gwiti Ha'atel again, in the Estmarks, and fights him for the second and last time.<br />
* Elynia calls upon the power of Light and manages to defeat Gwiti, not before being cursed by him to live forever and see her beloved ones die in a tragic manner.<br />
* Elynia is recognized as the Lady of Light for the first time.<br />
<br />
==== 1155 YW ====<br />
* Delvhar I dies after an extremely long reign.<br />
* Delvhar II assumes the throne.<br />
<br />
==== 1157 YW ====<br />
* Delvhar II dies under strange circumstances.<br />
* Wesnoth plunges into anarchy, and the kingdom fragments into three main territories: the State of Weldyn, Eastern Akladia and Aethenoth.<br />
<br />
==== 1163 YW ====<br />
* Elynia assists Prestim against a necromancer, Mal Arkal-Thil, and is recognized as the "Source of Light" by orcs.<br />
<br />
==== 1168 YW ====<br />
* Elynia returns to Wesnoth and goes to Parthyn, seeking a gifted warrior, Vikren, whose fate she may have predicted. She convinces him to incite revolution.<br />
* Revolution begins in the State of Weldyn.<br />
<br />
==== 1169 YW ====<br />
* Elynia meets Argan again. He declares his love to her.<br />
* Argan marries Elynia in secret - the Elvish community forbids such relations and Elynia knows that her influence on the Ka'lian can still be useful.<br />
<br />
==== 1169-1171 YW ====<br />
* During this time, Vikren gathers the power to walk onto Weldyn and take over the capital by force, vanquishing the separatists.<br />
* Vikren I declares himself Supreme Leader of the Second Empire of Wesnoth on 1171 YW.<br />
<br />
=== 1171-1597 YW: The Second Empire of Wesnoth ===<br />
<br />
==== 1171 YW ====<br />
* Vikren I relies on Elynia as his most trusted advisor.<br />
<br />
==== 1172 YW ====<br />
* Eastern Akladia gives up control to the Empire.<br />
<br />
==== 1173 YW ====<br />
* Aethenoth surrenders to the resurgent Empire.<br />
* Several northern earldoms join the Empire during the next years.<br />
<br />
==== 1190 YW ====<br />
* Elensefar surrenders to the Empire of Wesnoth.<br />
<br />
=== The Second Sun ===<br />
<br />
==== 1520 YW ====<br />
* Vikren VIII assumes the throne.<br />
<br />
==== 1537 YW ====<br />
* An ancient Lich by the name of Mal Keshar terrorizes lands of the Northern Alliance.<br />
* Elynia is sent by Empreror Vikren VIII to destroy Mal Keshar.<br />
<br />
==== 1541 YW ====<br />
* Elynia declares the mission failed as she cannot locate him by any means.<br />
<br />
==== 1542 YW ====<br />
* Vikren VIII secretly decrees the creation of Naia, the second sun of Irdya. He gives specific orders concealing this decision from Elynia.<br />
<br />
==== 1557 YW ====<br />
* Naia, the second sun of Irdya, is created by the High Council of Archmagi.<br />
* Ambassadors are sent everywhere in the known world to reassure all that the intentions behind the creation of the new sun are benign.<br />
* Elynia resigns from her position as advisor to the Empire, since she was not asked for her opinion when the decree was made.<br />
* A long period of unprecedented prosprerity, peace and self-confidence ensues.<br />
<br />
==== 1764 YW ====<br />
* Vikren XII dies.<br />
* Vikren XIII assumes the throne.<br />
<br />
==== 1791 YW ====<br />
* Mystics of Wesmere create a portal to a different world, and meet Zhangor, an elvish sorcerer who represents himself as a seer. Zhangor foretells to them the catastriophe looming over Wesnoth, and demands to be treated as a god in exchange of protection for Wesmere.<br />
<br />
==== 1797 ====<br />
* Death of Vikren XIII.<br />
* As there is no rightful heir, a nobleman, Dantair, is named Emperor by the Council of Archmagi.<br />
<br />
=== 1799 YW: The Fall ===<br />
<br />
==== 1799 YW (start) ====<br />
* Wesmere's trade and political connections to the outer world are cut off.<br />
* Dantair of Wesnoth demands the creation of Gaia, the third sun.<br />
* The third sun falls back to ground, over the capital of the Empire.<br />
* Massive volcanic eruptions and a great cataclysm ensue over the entirety of Irdya.<br />
* Several civilizations are destroyed by the natural disaster.<br />
* Dantair of Wesnoth survives the cataclysm, but is shortly thereafter killed by panicked citizens.<br />
* The pollution created by the volcanoes and the fallen sun causes cyclic darkness periods over the whole world, and toxic chemicals spread and destroy the remaining vegetation and a substantial fraction of the surviving population.<br />
* Rivers flood the land until the last bits of snow melt.<br />
* Races fight each other and among themselves, for the scarce basic resources left.<br />
* Drakes abandon the central area of the Great Continent and seek a new home in the southeastern lands.<br />
* Humans of the former Empire, as well as orcs of the major tribes, degrade into barbarians.<br />
* Inhabitants of the lands controlled by the Northern Alliance initiate an exodus to the Far North. This includes the last well-organized orcish tribes.<br />
* Dwarves retreat into the depths of Knalga.<br />
* A surviving member of the High Council of Archmagi finds Zocthanol Isle in middle of open ocean.<br />
* The Old Continent whence the people of Wesnoth came is partially inundated.<br />
<br />
==== Approximately 100 years after the Fall (YF) ====<br />
<br />
* Forests dry up and can no longer sustain the Elvish civilization. Elves from the Aethenwood and Lintanir Forests flee and seek refuge in Wesmere, reported to remain mysteriously intact.<br />
<br />
* Elynia and Argan lead the elves out of Lintanir Forest.<br />
<br />
* Elves seeking shelter in Wesmere are ambushed, and killed or sacrificed to Zhangor.<br />
<br />
* The War of Wesmere begins. After a year, the elves from Aethenwood and Lintanir manage to force the Wesmere inhabitants to retreat into the capital. Eventually, Elynia and Argan success and lead an invasion to the capital and confront Zhangor himself, who reveals his true appearance and nature as a Demon Lord.<br />
<br />
* Elynia and Argan use the power of the Union of Light and Darkness for the first time.<br />
<br />
* Zhangor is vanquished, and his body banished from Irdya. Wesmere Forest is almost completely destroyed in the process, causing high casualties on both bands.<br />
<br />
* The Ka'lian is deemed irredeemably corrupted by Zhangor and abolished; its members are executed. Warriors loyal to it meet the same fate. Only one priest of Zhangor, Anlindë, is spared.<br />
<br />
* Quetor'el of Aethenwood departs with his smaller group seeking to establish a new home in the Central Desert.<br />
<br />
* Elynia and Argan enter and descend into the Heart Mountains. Anlindë and Telchior lead the remaining elves to the Far North.<br />
<br />
* Argan is trapped underground by an earthquake and is assumed dead. Elynia abandons any hope of him returning, and enters a form of magical suspension.<br />
<br />
==== Approx. 300 YF. ====<br />
<br />
* Telchior's band settles on a newly found valley North-east from Lintanir. They name it the Valley of Elynia.<br />
<br />
==== Approx. 800 YF. ====<br />
<br />
* Quetor'el's band adapts to life on the desert. After many centuries pass, the lore of their ancestors starts to be forgotten. Quetor'el dies during a fight that almost kills the entire population of the desert elves. The few survivors gain access to tables and scrolls written by the fallen druids; however, most of them are either damaged or ciphered, and as a result, most of the ancient knowledge they relearn is inaccurate or plain wrong.<br />
<br />
* The survivor desert elves establish a new fortress upon an oasis around which they build the Quenoth village.<br />
<br />
----------------------------------------------------------------------------------<br />
<br />
== Irdya After the Fall ==<br />
<br />
=== The Beginnings of the Chaos Empire ===<br />
<br />
At some unknown point in the times after the Fall of the Third Sun, a new leader arises among the coastal human settlements at Kalari, and teaches a previously unknown form of magic to a handful of adepts who help him take over the local inhabitants' minds and wills with power drawn from Zocthanol Isle. His closest adepts are from that point known as the Iron Triad, and they begin collecting the energy required to open a new connection to the demonic homeworld and free Uria, the mother of demons.<br />
<br />
A signal coming from Zocthanol is sent to the skies in the form of an eerie pulsating green glow for a few days.<br />
<br />
From this point on, the timeline is structured around the point on which the main gateway to Inferno was opened in the Valley of Weldyn, and divided in two periods: Before the Empire (BE) and During the Empire (DE).<br />
<br />
=== 237-213 BE: Purification of Zochtanol ===<br />
<br />
==== 237 BE (Before the Empire) ====<br />
* Mal-Zagarn, leader of the Chaos cult, investigates ancient ruins in the depths of the Heart Mountains, searching for weapons according to Uria's instructions.<br />
<br />
* Elyssa is born.<br />
<br />
==== 235 BE ====<br />
* Mal-Zagarn returns to Kalari and orders the Iron Triad to dig in the deepest reaches of the Heart Mountains to find the remainings of an ancient civilization. He departs again in direction to the valley of Weldyn.<br />
<br />
* The Iron Triad sends an expedition to the Heart Mountains.<br />
<br />
==== 229 BE ====<br />
* The Iron Triad starts building a fortress in the valley of Weldyn and recovering the remainings of the capital of the ancient Empire.<br />
<br />
==== 222 BE ====<br />
* Ancient technology is discovered in the depths of the Heart Mountains by Mal-Si'ah of the cult of Chaos.<br />
<br />
==== 221 BE ====<br />
* Dwarvish experts begin to experiment with automatons.<br />
<br />
==== 218 BE ====<br />
* Mal-Zagarn starts to experiment at the Weldyn Heart fortress with the newly discovered technology in order to enhance existing lifeforms.<br />
<br />
==== 215 BE ====<br />
* Verlissh creatures descend from the skies to Kalari peninsula at the same time that rocks fall from the sky and crush the Quenoth village. The remaining desert elves, led by the former lord's nephew Kalehssar, go on a journey to find a new home in the North, guided by Kaleh's visions of Eloh in his dreams. '''Under The Burning Suns''' begins.<br />
<br />
* Kaleh's band meets Elyssa, a young fire mage who is collecting knowledge from the ruins of the Empire of Wesnoth in search for the Scepter of Fire.<br />
<br />
==== 214 BE====<br />
* The deser t elves descend underground and meet King Thurongar of the dwarves after repelling an invasion of northern trolls. Elyssa separates from the group.<br />
<br />
* The desert elves stumble upon human scouts sent by the Iron Triad.<br />
<br />
* An avatar of light attempts to convince Kaleh to surrender to the Iron Triad.<br />
<br />
* Merfolk diviners send messengers to locate the desert elves and warn them of the menace at Zocthanol.<br />
<br />
==== 213 BE ====<br />
* Some merfolk prisoners at the north of Kalari peninsula are set free by the Quenoth elves. An incarnation of Eloh appears and turns a substantial amount of elves against Kaleh, threatening to start a civil war.<br />
<br />
* The elvish revolt is put to an end, and the elves escape from the continent by stealing human ships from the port of Ygriz.<br />
<br />
* Elyssa is captured by Chaos scouts while traveling towards the valley of Weldyn.<br />
<br />
* Kaleh and his group arrives to Zocthanol isle and destroys the source of the dark powers holding most of the followers of the Iron Triad and Uria under her control. It is presumed that this is Yechnagoth. '''Under the Burning Suns''' ends.<br />
<br />
* Elyssa attempts to escape only to be recaptured and imprisoned.<br />
<br />
* Human followers of the Chaos cult begin to succumb to uncertainity and despair. The Iron Triad manages to summon a new demon lord, Nar-hamoth, to keep the rebels under control, strengthen their fanaticism and attract more adepts.<br />
<br />
=== 212-1 BE: Prelude ===<br />
<br />
==== 212 BE ====<br />
* Elyssa is tortured in prison and starves nearly to death.<br />
<br />
* Mal-Zagarn finds out about Elyssa and sets her free in order to use her for his fourth experiment with biomechanical organisms before she dies.<br />
<br />
* Elyssa's reconstruction as a hybrid shaxthal organism is successful.<br />
<br />
==== 211 BE ====<br />
*A dwarvish guard spreads word of the Quenoth elves' deeds among his people.<br />
<br />
* Elyssa becomes Mal-Zagarn's apprentice and is taught the unholy magic of Uria.<br />
<br />
==== 210-50 BE ====<br />
* The dwarven country and the Aragwaithi cooperate in order to speed up their economic growth.<br />
<br />
==== 190 BE ====<br />
* Mal-Zagarn designates Elyssa as his second-in-command and begins to use the "Shadow Master" alias.<br />
<br />
==== 156 BE ====<br />
* Elyssa leads an expedition to the Heart Mountains to find non-hybrid shaxthal organisms kept in cryogenic chambers deep underground.<br />
<br />
==== 129 BE ====<br />
* Shaxthal organisms are salvaged from ruins located deep beneath the Heart Mountains.<br />
<br />
==== 128 BE ====<br />
*Shadow Master starts to reproduce and enhance shaxthal technology.<br />
<br />
==== 121 BE ====<br />
* The shaxthal hive at the "Heart" of Weldyn is built.<br />
<br />
==== 109 BE ====<br />
* The shaxthal hive at the devastated plains of Wesmere is built.<br />
<br />
==== 101 BE ====<br />
*Three shaxthal hives are built in the Great Southern Desert.<br />
<br />
==== 90 BE ====<br />
* Shadow Master sends Mal-Dorzat with a battalion to conquer barbarian lands in the Far South of the Great Continent.<br />
*An expedition led by Mal-Himir is sent to the East in search for the Old Continent.<br />
<br />
==== 80-10 BE ====<br />
* The forces of Chaos force the dwarves inhabitating the main area of the Great Continent to retreat to the Heart Mountains. Some dwarven technology is captured by the Iron Triad and mass-production of automatons and other advanced machinery begins.<br />
<br />
* The dwarves stop sending scouts and merchants to the surface.<br />
<br />
* Most orcish tribes in the main area of the Great Continent are erased from existence.<br />
<br />
==== 9 BE ====<br />
* The Iron Triad members use the spirit energy from those who have been defeated by their forces to create a small gap that merges Irdya and Inferno in the Heart hive.<br />
<br />
* Demons start coming to Irdya en masse.<br />
<br />
==== 5 BE ====<br />
* Elyssa is the first human or demi-human to become a demon.<br />
<br />
=== 1-146 DE: The Chaos Empire's Apogee ===<br />
<br />
The Chaos Empire begins after most of the Great Continent has been overrun by the combined forces of shaxthal creatures, demons and Chaos soldiers.<br />
<br />
The Far North at this point has become a somewhat stable and thriving ensemble of human and orcish countries. Occasional conflicts ensue between the human kingdoms, but by the middle of this period, they join the Aragwaith country and later establish a long-lasting alliance with the orcish countries and minor tribes.<br />
<br />
The dwarvish population is concentrated on the depths of the Heart Mountains, and more clans join the recently united Kingdom of New Knalga.<br />
<br />
The desert elves at the Zocthanol Isle remain unaware of the events in the main continent.<br />
<br />
==== 144 DE ====<br />
* Uria gives Shadow Master the order to find Elynia, capture and convert her to her side. Although Uria does not reveal the true reason to Shadow Master and the Iron Triad, she is actually searching to acquire the Ruby of Fire and use it to completely and permanently merge Inferno and Irdya.<br />
<br />
* The Valley of Elynia, the last elven fortress left in the Great Continent, is taken over by the forces of Chaos. A substantial part of the elves escapes in time and heads underground. '''Invasion from the Unknown''' begins.<br />
<br />
==== 145 DE ====<br />
* Elyssa's expedition to the Heart Mountains stumbles upon a band of elves led by Galas, an elvish fighter; Anlindë, a former priest of Zhangor; and Mal Keshar.<br />
<br />
* Galas' band allies with the dwarves of New Knalga to defeat Elyssa's soldiers. Elyssa retreats and calls for reinforcements.<br />
<br />
==== 146 DE ====<br />
* With the help of a dwarven runemaster by the name of Althurin, the elves set Elynia free and fight the vanguard of Elyssa's battalion.<br />
<br />
* Elves and dwarves leave the Heart Mountains due to the overwhelming number of enemy soldiers, who finally manage to take over New Knalga.<br />
<br />
* Anlindë stays behind to fight Elyssa in a one-to-one duel. Although Anlindë loses the fight, she collapses part of the cave system before dying, thus severely injuring Elyssa, whose body is mostly destroyed.<br />
<br />
* Enemy forces are sent by the Shadow Master to rescue the little remains of Elyssa's body, which is shortly rebuilt using better technology than the first time.<br />
<br />
* One of the Chaos Empire's strongholds in the Far South starts experimenting with flying vehicles.<br />
<br />
=== 147 DE: The Chaos Empire's Decay ===<br />
<br />
==== 147 DE ====<br />
* The orcish and human countries in the Far North officially declare war against the Chaos Empire.<br />
<br />
* Elynia, Galas, Mal Keshar and a group of dwarves launch a suicidal attack on the Heart of the Empire. Elyssa faces Galas and his band directly this time, but as she is about to defeat them, Elynia and Mal Keshar summon the Union of the Powers of Light and Darkness by taking advantage of a flaw, unknown to them, that allows Mal Keshar to acquire them from Inferno.<br />
<br />
* Mal Keshar and Elynia manage to defeat Elyssa. However, they spare her life and let her flee from the Heart in exchange for information about Inferno and Shadow Master's location.<br />
<br />
* Shadow Master reveals to Elynia and Mal Keshar that he is Argan, resurrected and converted by Uria, who used a gap in Irdya's deepest reaches to physically contact Argan.<br />
<br />
* Elynia kills Shadow Master with the Power of the Union, which destroys itself as a consequence. The Heart's structure is weakened by the closure of its connection with Inferno, and it turns into a great chasm from which Galas' band barely escapes. '''Invasion from the Unknown''' ends.<br />
<br />
* The Chaos Empire's frontier defenses are severely weakened by the northern armies' relentless attacks.<br />
<br />
* Nar-hamoth is severely injured in battle. His body is afterwards rebuilt in the shaxthal hive at Wesmere.<br />
<br />
==== 148 DE ====<br />
* As '''After the Storm I''' begins, Galas' band stumbles upon an amnesiac child elf, Kri'tan, while fighting Chaos cultists in the northern frontiers.<br />
<br />
* Surrogate Lord Inodien of the elves of the Valley of Elynia is slain along with one of his bodyguards under strange circumstances, after speaking against the idea of acquiring weapons and technology from the Chaos Empire.<br />
<br />
* Inodien's followers under Unidë's leadership assume that the late lord's oppositors are responsible of the murder, and begin a civil war to drive them out of the northern forests.<br />
<br />
* The Grand Council of the Aragwaithi banishes elvenkind from their country. Inodien's followers depart east, while the other faction under Unarye's command departs for the northwestern lands.<br />
<br />
* Elynia and Galas depart according to the Council's decree and with Mal Keshar and the orcs' help, travel to Zocthanol isle.<br />
<br />
* In Zocthanol's isle, Elynia learns that Yechnagoth's heart was not destroyed by Kalehssar. It was later recovered by the Triad and stored in the shaxthal hive located in Wesmere's ruined plains.<br />
<br />
==== 149 DE ====<br />
* During their voyage back to the main continent, Galas' band is captured by the Iron Triad's soldiers at Kalari Peninsula. They are imprisoned and tortured, but they manage to escape from the Triad's fortress after Galas sacrifices himself to distract Elyssa and the Triad. The secret of the staff of Elynia-Niryone is revealed to Mal Keshar and Kri'tan.<br />
<br />
* Ivyel, a shaxthal fighter, is defeated, but not killed, by Elynia's band while escaping from Kalari Peninsula.<br />
<br />
* Elynia and Mal Keshar acquire help from King Asthorgar of the dwarves to destroy the Wesmere hive. Kri'tan is left in the safety of dwarven territory along with the dark sorceress Zynavu-Malal, one of Mal Keshar's disciples.<br />
<br />
==== 150 DE ====<br />
* Elynia's band destroys a gigantic shaxthal creature assumed to contain Yechnagoth's heart. Taking advantage of the hive's design, Mal Keshar orders Elynia to leave the place while he uses dwarven technology to destroy it completely so the Chaos Empire cannot continue using it to create new shaxthal creatures. It is unknown to them that three other hives exist, and that five more are being built.<br />
<br />
* While Mal Keshar successfully destroys the dark hive, Elynia is caught by the explosion. Although the dwarves do not find her or Mal Keshar's remains, they do find her staff's top gem, the Ruby of Fire.<br />
<br />
* Using tissue samples taken from Elynia during the fight at Kalari Peninsula, Mal Kendria and Mal Hekuba of the Iron Triad build an organic disguise for Ivyel to make her look and sound like the sylvan fairy. Yechnagoth's heart is embedded into the shaxthal creature's body. '''After the Storm I''' ends.<br />
<br />
* The northern orcs and humans ally with the dwarves and forge a new Northern Alliance in order to defeat the Iron Triad.<br />
<br />
==== 151 DE ====<br />
* Ivyel appears to the Eastern Elves claiming to be Elynia, and accuses the Northern Alliance of treason against her kind.<br />
<br />
* Mal Hekuba is sent to the Valley of Elynia.<br />
<br />
* The Iron Triad recaptures the continent's coastal line up to Bay of Glamdrol.<br />
<br />
* A new shaxthal hive is completed in the Great Southern Desert.<br />
<br />
==== 152 DE ====<br />
* The Eastern Elves begin to take over all lands in direction of the Valley of Elynia.<br />
<br />
* The shaxthal hive at the Silver Lands is completed.<br />
<br />
* Elyssa determines Elynia's whereabouts.<br />
<br />
==== 153 DE ====<br />
* King Asthorgar of the dwarves is killed in battle by Elyssa at the Bay of Glamdrol.<br />
<br />
==== 154 DE ====<br />
* Lord Retnaen's elvish colony in the far northwestern forests joins the Northern Alliance.<br />
<br />
==== 156 DE ====<br />
* Kri'tan contacts the Thunder Elves to rebuild the staff of Elynia-Niryone.<br />
* A human seer, Nyalen, joins the Northern Alliance's Grand Council.<br />
<br />
====157 DE====<br />
* Shaxthal creatures integrate with the ocean's lifeforms.<br />
* Merfolk have their first encounter with large numbers of shaxthal creatures.<br />
<br />
==== 158 DE ====<br />
* Lady Unarye and the Thunder Elves join the Northern Alliance.<br />
* The shaxthal hive at the Valley of Elynia is completed.<br />
* Nyalen warns the Grand Council of the threat imposed by the eastern elves, and determines Elynia's whereabouts.<br />
* Swarms of shaxthal creatures become alarmingly common across the Great Continent.<br />
* Nar-hamoth is sent to the Silver Lands.<br />
<br />
==== 159 DE ====<br />
* After using a teleport spell in middle of the explosion that destructed the shaxthal hive at Wesmere, Elynia reappears in the Moon Valley nine years later. '''After the Storm II''' begins.<br />
* Elynia meets the Grand Council and is informed of Ivyel's plot by Nyalen.<br />
* Zynavu-Malal, Kri'tan and Elynia are sent with a battalion to investigate the eastern frontiers of the Alliance's lands.<br />
* Elynia's band has its first encounter with the eastern elves and highly advanced shaxthal creatures. The combined forces of Unarye's and Retnaen's armies appear just in time to protect them during their retreat.<br />
* Retnaen informs Elynia of the shaxthal creatures' possible source.<br />
* Bay of Glamdrol is recaptured by the Alliance.<br />
<br />
==== 160 DE ====<br />
* The Alliance takes over most of Kalari Peninsula.<br />
* Elynia's band is betrayed by Zynavu-Malal/Mal-Zynara as they arrive at the eastern elves' territory.<br />
* Using the powers of the Ruby of Fire, Elynia both defeats Mal-Zynara and removes Ivyel's organic disguise in front of some elvish commanders, who realize they have been deceived by the Triad.<br />
* Elynia and Kri'tan find Mal Hekuba in the dark hive, attempting to open a new connection between Irdya and Inferno. He reveals Kri'tan's true identity as Argan and Elynia's son.<br />
* Mal Hekuba is destroyed by Elynia using the Ruby of Fire. Ivyel flees the hive.<br />
* Alliance troops attempt to take over the Iron Triad's keep. Although they manage it, all soldiers who attempted to surround Elyssa in her chamber are killed by her.<br />
* Elyssa kills Mal Kendria and abandons the Iron Triad's keep using a flying vehicle. '''After the Storm II''' ends.<br />
<br />
=== 147 BU: Intermediate period: Before (Human) Unification ===<br />
<br />
==== 150 - 144 BU ====<br />
* The First Elven War is fought after the assassination of an elvish lord.<br />
<br />
==== 140-125 BU ====<br />
* Due to the discovery of gunpowder, guns begin to take over as the primary weapon. First it is used by Chaos Empire remnants, but it soon spreads through Irdya.<br />
<br />
==== 123 BU ====<br />
* As humanity begins to recover, four cousins band together to (via military conquest) unite the scattered lands.<br />
<br />
==== 118 BU ====<br />
* The eldest cousin, who was the leader, dies in battle and his brothers disagree who should rule. They each form their own kingdom. All three kingdoms combined form most of civilized humanity.<br />
<br />
==== 111-87 BU ====<br />
* The Second Elven War begins as technology begins to advance at a rapid rate. What starts as a civil war among elves eventually receives human intervention. Bitter, the elves grow increasingly anti-technology.<br />
<br />
==== 88-83 BU ====<br />
* The Great Northern War is fought between orcs and dwarves. In the final year, the northern human kingdom forms an alliance with the dwarves, saving them from defeat.<br />
<br />
==== 73 BU ====<br />
* Unrest grows within the elves as the anti-technology faction takes over.<br />
<br />
==== 40-32 BU ====<br />
* Using recently discovered technology, a space race begins amongst the three human kingdoms. Dwarves are the next to enter, followed closely by orcs.<br />
<br />
====33 BU====<br />
* The Third Elven War begins when the elves resist human expansion from the southern human kingdom. This time, the war does not have a decisive ending as the elves resort to guerilla warfare against human invaders.<br />
<br />
==== 29 BU ====<br />
* After elven successes on the battlefield, the northern human kingdom and their dwarven allies intervene.<br />
* The eastern human kingdom almost enters on the side of the elves to maintain a balance of power, but a politician named Rhegaec stops them.<br />
<br />
==== 27 BU ====<br />
* After numerous losses on both sides, a cease-fire is called for 10 years so both sides can work out their differences.<br />
<br />
==== 25 BU ====<br />
* Orcish raids in the north intensify.<br />
<br />
==== 23 BU ====<br />
* Humanity begins colonizing off-world.<br />
<br />
==== 19 BU ====<br />
* Elves finally enter space.<br />
<br />
==== 17 BU ====<br />
* The cease-fire expires, and the war is technically continued, but no side attacks when the time comes.<br />
* Crisis erupts in the north human kingdom as orcish raiders sack their capital.<br />
<br />
==== 15 BU ====<br />
* What starts as border skirmishes turns into all-out war in the south, again. Their allies are unable to help and the east is unwilling.<br />
<br />
==== 12 BU ====<br />
* Rhegaec proposes peaceful human unification into one empire, with a figurehead emperor ruling over a senate. He is largely ignored.<br />
<br />
====4 BU ====<br />
* Mysterious, spontaneous economic collapse in the eastern kingdom, a major defeat in the north against the orcs, and a major defeat in the south against the elves all happen within weeks. Representatives approach Rhegaec.<br />
<br />
==== 3 BU ====<br />
* Lieutenant Aethalwyn distinguishes himself in battle on Gammac B as the orcish plan to raid the colony is foiled.<br />
<br />
=== 1 AU: After (Human) Unification ===<br />
<br />
==== 1 AU ====<br />
* Rhegaec is crowned emperor as the three human kingdoms unite. Althought it is intended to be a symbolic position, he gains a controlling majority in the senate. His word is law.<br />
<br />
'''THUNDERSTONE PART II'''<br />
<br />
==== 3 AU ====<br />
* Aethalwyn defeats the elves in a series of battles, and forces an extremely favorable peace settlement. The elves are humiliated. <br />
<br />
==== 4 AU ====<br />
* After his victories in the south, Aethalwyn moves north and decimate the orcish population. While he acted like a gentlemen with the elves, he shows no respect with the orcs.<br />
<br />
==== 6 AU ====<br />
* Most orcs are rounded up, sent to reservations (mostly in the desert) on Gammac B, and treated like slaves.<br />
<br />
==== 6-35 AU ====<br />
* Peace and stability on Irdya during the rest of the reign of Rhegaec.<br />
* Most humans who were not part of the three original kingdoms come under the rule of the empire during this time.<br />
<br />
'''THUNDERSTONE PART I'''\<br />
<br />
==== 35 AU ====<br />
* Emperor Rhegaec I dies. His son, Rhegacyn, is made emperor.<br />
* Suspicious and fearful of the old adviser and war hero, Emperor Rhegacyn sends Aethalwyn off to a "defend" remote mining colony. It is really just a way to get him as far away as possible from the seat of power.<br />
<br />
== Credits and Sources ==<br />
<br />
Setting details provided by Ignacio R. Morelle <shadowmaster/shikadilord><br />
<br />
History derived from:<br />
<br />
* A New Order - by Arkadiusz Danilecki <szopen><br />
<br />
* After the Storm - by Ignacio R. Morelle <shadowmaster/shikadilord><br />
<br />
* Descent into Darkness - by<br />
** esci<br />
** Thomas Baumhauer <Baufo><br />
<br />
* Invasion from the Unknown - by<br />
** Ignacio R. Morelle <shadowmaster/ShikadiLord><br />
** Eric S. Raymond <esr><br />
<br />
* The Dark Hordes<br />
** Erik J. Mesoy <circon><br />
** Alexander van Gessel <ai0867/AI><br />
** Ignacio R. Morelle <shadowmaster/ShikadiLord><br />
<br />
* Under the Burning Suns - by<br />
** Asa Swain <quartex><br />
** Jan Rietema <Rhuvaen><br />
** Piotr Cychowski <Mist/cycholka><br />
<br />
* Thunderstone - by<br />
** Michael J. Babich <Aethaeryn><br />
** Eric S. Raymond <esr><br />
** Ignacio R. Morelle <shadowmaster/ShikadiLord><br />
<br />
Author names listed for their maintenance work and/or their "minor" contributions to the story-line of each add-on. There is no "minor" in story contributions. ;)</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Template:WML_Tags&diff=31975Template:WML Tags2009-08-19T13:23:58Z<p>ShikadiQueen: Add 1.7.x [units][hide_help] to sidebar</p>
<hr />
<div>{| class="gallery" style="width:225px;float: right;border: 1px solid #B48648; color:#B48648; font-size: 7pt;margin-left;10px;"<br />
|-<br />
|<br />
<span style="float: right;"><small class="editlink noprint plainlinksneverexpand">[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit ]</small></span><br />
'''WML Tags'''<br />
<br />
|-<br />
|''A:'' <br />
[[AbilitiesWML|abilities]],<br />
[[CampaignWML|about]],<br />
[[AdvancedPreferenceWML|advanced_preference]],<br />
[[UnitTypeWML|advancefrom]],<br />
[[UnitTypeWML|advancement]],<br />
[[StatisticalScenarioWML|advances]],<br />
[[AiWML|ai]],<br />
[[DirectActionsWML|allow_recruit]],<br />
[[DirectActionsWML|allow_undo]],<br />
[[ConditionalActionsWML#Meta_Condition_Tags|and]],<br />
[[InterfaceActionsWML|animate_unit]],<br />
[[AnimationWML|animation]],<br />
[[VariablesWML|array]],<br />
[[UnitTypeWML|attack]],<br />
[[AnimationWML|attack_filter]], <br />
[[StatisticalScenarioWML|attacks]],<br />
[[AiWML|avoid]];<br />
|-<br />
|''B:'' <br />
[[UnitTypeWML|base_unit]], [[CampaignWML#The_.5Bbinary_path.5D_tag|binary_path]], [[HelpWML|bold]], [[EditorWML|brush]];<br />
|-<br />
|''C:'' <br />
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]],<br />
[[DirectActionsWML|capture_village]],<br />
[[ConditionalActionsWML#.5Bswitch.5D|case]],<br />
[[ReplayWML|choose]],<br />
[[InternalActionsWML|clear_variable]],<br />
[[InterfaceActionsWML|colour_adjust]],<br />
command([[InterfaceActionsWML|action]], [[ReplayWML|replay]]);<br />
|-<br />
|''D:'' <br />
[[AbilitiesWML|damage]],<br />
[[StatisticalScenarioWML|deaths]],<br />
[[InterfaceActionsWML|debug_message]],<br />
[[AnimationWML|defend]],<br />
[[StatisticalScenarioWML|defends]],<br />
[[UnitTypeWML|defense]],<br />
[[InterfaceActionsWML|delay]],<br />
[[ReplayWML|destination]],<br />
[[DirectActionsWML|disallow_recruit]],<br />
[[ConditionalActionsWML#.5Bwhile.5D|do]];<br />
|-<br />
|''E:'' <br />
[[EditorWML|editor_group]],<br />
[[EditorWML|editor_music]], <br />
[[EditorWML|editor_times]],<br />
[[EditorWML|editor_tool_hint]],<br />
[[EffectWML|effect]],<br />
[[ConditionalActionsWML#Conditional_Actions|else]],<br />
[[DirectActionsWML|endlevel]],<br />
end_turn&nbsp;([[DirectActionsWML|action]], [[ReplayWML|replay]]),<br />
[[EraWML|era]],<br />
[[EventWML|event]],<br />
[[ThemeWML|expenses]];<br />
|-<br />
|''F:'' <br />
[[EventWML#.5Bfilter.5D|filter]],<br />
[[FilterWML|filter]],<br />
[[AnimationWML|filter_attack]],<br />
[[EventWML#.5Bfilter_attack.5D|filter_attack]],<br />
[[FilterWML|filter_location]],<br />
[[EventWML#.5Bfilter_second.5D|filter_second]],<br />
[[FilterWML|filter_second]],<br />
[[AnimationWML|filter_second_attack]],<br />
[[EventWML#.5Bfilter_second_attack.5D|filter_second_attack]],<br />
[[FilterWML|filter_vision]],<br />
[[StandardUnitFilter|filter_wml]],<br />
[[InternalActionsWML|fire_event]],<br />
[[HelpWML|format]],<br />
[[AnimationWML|frame]];<br />
|-<br />
|''G:'' <br />
[[GameConfigWML|game_config]],<br />
[[ScenarioWML|generator]],<br />
[[DirectActionsWML|gold]],<br />
[[ThemeWML|gold]];<br />
|-<br />
|''H:'' <br />
[[ConditionalActionsWML#Condition_Tags|have_location]],<br />
[[ConditionalActionsWML#Condition_Tags|have_unit]],<br />
[[HelpWML|header]],<br />
[[DirectActionsWML|heal_unit]],<br />
[[UnitsWML|hide_help]],<br />
[[InterfaceActionsWML|hide_unit]];<br />
|-<br />
|''I:'' <br />
[[ConditionalActionsWML#.5Bif.5D|if]],<br />
[[TimeWML|illuminated_time]],<br />
[[TerrainGraphicsWML|image]],<br />
[[HelpWML|img]],<br />
[[ThemeWML|income]],<br />
[[ReplayWML|init_side]],<br />
[[InternalActionsWML|insert_tag]],<br />
[[HelpWML|italic]],<br />
[[InterfaceActionsWML|item]];<br />
|-<br />
|''J:''<br />
[[HelpWML|jump]],<br />
[[InternalActionsWML|join]];<br />
|-<br />
|''K:'' <br />
[[DirectActionsWML|kill]],<br />
[[StatisticalScenarioWML|killed]];<br />
|-<br />
|''L:'' <br />
[[LabelWML|label]] ([[InterfaceActionsWML|map]], [[ThemeWML|theme]]),<br />
[[LanguageWML|language]],<br />
[[AiWML|leader_goal]],<br />
[[LuaWML|lua]];<br />
|-<br />
|''M:'' <br />
[[ThemeWML|main_map]],<br />
[[ThemeWML|menu]],<br />
[[InterfaceActionsWML|message]],<br />
[[ThemeWML|mini_map]],<br />
[[AnimationWML|missile_frame]],<br />
[[SingleUnitWML|modifications]],<br />
[[DirectActionsWML|modify_side]],<br />
[[DirectActionsWML|modify_turns]],<br />
[[ReplayWML|move]],<br />
[[InterfaceActionsWML|move_unit_fake]],<br />
[[UnitTypeWML|movement costs]],<br />
[[UnitsWML|movetype]],<br />
[[ScenarioWML|multiplayer]],<br />
[[EraWML|multiplayer_side]],<br />
[[InterfaceActionsWML|music]];<br />
|-<br />
|''N:'' <br />
[[AnimationWML|neighbour_unit_filter]],<br />
[[ConditionalActionsWML#Meta_Condition_Tags|not]],<br />
[[FilterWML|not]],<br />
[[ThemeWML|num_units]];<br />
|-<br />
|''O:'' <br />
[[DirectActionsWML|object]],<br />
[[InterfaceActionsWML|objectives]],<br />
[[InterfaceActionsWML|objective]],<br />
[[ThemeWML|observers]],<br />
[[InterfaceActionsWML|open_help]],<br />
[[InterfaceActionsWML|option]],<br />
[[ConditionalActionsWML#Meta_Condition_Tags|or]];<br />
|-<br />
|''P:'' <br />
[[ThemeWML|panel]], [[IntroWML|part]], [[DirectActionsWML|place_shroud]], [[ThemeWML|position]],<br />
[[InterfaceActionsWML|print]], [[AiWML|protect_location]], [[AiWML|protect_unit]];<br />
|-<br />
|''R:'' <br />
[[UnitsWML|race]], [[ReplayWML|random]], recall&nbsp;([[DirectActionsWML|action]], <br />
[[ReplayWML|replay]]), [[StatisticalScenarioWML|recalls]],<br />
[[ReplayWML|recruit]], [[StatisticalScenarioWML|recruits]], [[InterfaceActionsWML|redraw]],<br />
[[HelpWML|ref]], [[DirectActionsWML|remove_shroud]], [[InterfaceActionsWML|remove_unit_overlay]],<br />
[[InterfaceActionsWML|removeitem]], [[InterfaceActionsWML|remove_sound_source]], <br />
[[ReplaceMapWML|replace_map]] [[SavefileWML|replay]], [[SavefileWML|replay_start]],<br />
[[UnitTypeWML|resistance]], [[ThemeWML|resolution]], [[ReplayWML|results]], [[InternalActionsWML|role]];<br />
|-<br />
|''S:'' <br />
[[SavefileWML|save]], [[ScenarioWML|scenario]],<br />
[[InterfaceActionsWML|scroll]], [[InterfaceActionsWML|scroll_to]],<br />
[[InterfaceActionsWML|scroll_to_unit]], [[AnimationWML|secondary_attack_filter]], [[AnimationWML|secondary_unit_filter]], [[HelpWML|section]],<br />
[[InterfaceActionsWML#.5Bset_menu_item.5D_.28SVN_trunk_only.29|set_menu_item]], [[DirectActionsWML|set_recruit]],<br />
[[InternalActionsWML|set_variable]], [[InternalActionsWML|set_variables]], [[InterfaceActionsWML|show_objectives]],<br />
[[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],<br />
[[InterfaceActionsWML|sound]], [[InterfaceActionsWML|sound_source]], [[ReplayWML|source]], [[EventWML|special_filter]], [[EventWML|special_filter_second]],<br />
[[InternalActionsWML|split]],<br />
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],<br />
[[ThemeWML|status]], [[DirectActionsWML|stone]], [[InternalActionsWML|store_gold]], [[InternalActionsWML|store_locations]],<br />
[[InternalActionsWML|store_map_dimensions]],<br />
[[InternalActionsWML|store_starting_location]], [[InternalActionsWML|store_side]], [[InternalActionsWML|store_time_of_day]], [[InternalActionsWML|store_unit]], [[InternalActionsWML|store_villages]] [[IntroWML|story]],<br />
[[ConditionalActionsWML#.5Bswitch.5D|switch]];<br />
|-<br />
|''T:'' <br />
[[AiWML|target]],<br />
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],<br />
[[DirectActionsWML|teleport]], [[AnimationWML|teleport_anim]],<br />
terrain([[TerrainWML|define]], [[DirectActionsWML|create]]), [[TerrainGraphicsWML|terrain_graphics]], [[TerrainMaskWML|terrain_mask]], [[ScenarioWML#Test_scenario|test]],<br />
[[WesCamp|textdomain]], [[InterfaceActionsWML|text_input]], [[ThemeWML|theme]], [[ConditionalActionsWML#.5Bif.5D|then]],<br />
[[TerrainGraphicsWML|tile]], [[TimeWML|time]], time_area&nbsp;([[DirectActionsWML|action]], [[ScenarioWML|scenario]]), <br />
[[ThemeWML|time_of_day]],<br />
[[HelpWML|topic]], [[HelpWML|toplevel]], [[SingleUnitWML|trait]], [[ThemeWML|turn]], [[ScenarioWML|tutorial]];<br />
|-<br />
|''U:'' <br />
[[InterfaceActionsWML|unhide_unit]], unit&nbsp;([[UnitTypeWML|define]], [[SingleUnitWML|create]]),<br />
[[ThemeWML|unit_abilities]], [[ThemeWML|unit_alignment]], [[ThemeWML|unit_description]], [[AnimationWML|unit_filter]], [[ThemeWML|unit_hp]], [[ThemeWML|unit_image]], [[ThemeWML|unit_level]], [[ThemeWML|unit_moves]],<br />
[[InterfaceActionsWML|unit_overlay]], [[ThemeWML|unit_profile]], [[ThemeWML|unit_status]],<br />
[[ThemeWML|unit_traits]], [[ThemeWML|unit_type]], [[ThemeWML|unit_weapons]], [[ThemeWML|unit_xp]],<br />
[[UnitsWML|units]], [[DirectActionsWML|unstone]], [[DirectActionsWML|unstore_unit]], [[ThemeWML|upkeep]];<br />
|-<br />
| ''V:'' <br />
[[ConditionalActionsWML#Condition_Tags|variable]],<br />
[[VariablesWML|variables]],<br />
[[SideWML|village]],<br />
[[ThemeWML|villages]];<br />
|-<br />
| ''W:'' <br />
[[ConditionalActionsWML#.5Bwhile.5D|while]],<br />
[[InterfaceActionsWML|wml_message]];<br />
|}</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Races&diff=31849Races2009-08-12T03:09:56Z<p>ShikadiQueen: /* Trolls */ Replaced L2 Troll pic with a TC'd one from units.wesnoth.org</p>
<hr />
<div>The '''races''' in Battle for Wesnoth are the various forms of sentient creatures located in the world. Most of the ones focused on in the game are located on the [[WesnothGeography|Great Continent]] in the timespan covered by the game. Of all the races, six races in particular have been instrumental in the history of the world of Wesnoth - the [[humans]], the [[elves]], the [[orcs]], the [[dwarves]], the [[undead]], and the [[drakes]].<br />
<br />
== The Six Main Races ==<br />
<br />
=== Humans ===<br />
''Main article: [[Humans]]<br />
<br />
<div class="thumb tright"><div><br />
http://www.wesnoth.org/units/1.6/pics/00070_duelist.png<hr><br />
A [[humans|human]].</div><br />
</div><br />
<br />
The race of men is an extremely diverse one. Although they originally came from the Old Continent, men have spread all over the world and split into many different cultures and races. Although they are not imbued with magic like other creatures, '''humans''' can learn to wield it and able to learn more types than most others. They have no extra special abilities or aptitudes except their versatility and drive. While often at odds with all races, they can occasionally form alliances with the less aggressive races such as [[elves]] and [[dwarves]]. The less scrupulous among them do not shrink back from hiring [[Orcs|orcish]] mercenaries, either. They have no natural enemies, although the majority of men, like most people of all races, have an instinctive dislike of the [[Undead (race)|undead]]. Men are shorter than the elves, but taller still than dwarves. Their skin color can vary, from almost white to dark brown.<br />
<br />
=== Elves ===<br />
''Main article: [[Elves]]<br />
<div class="thumb tright"><div><br />
http://www.wesnoth.org/units/1.6/pics/00033_archer.png<hr><br />
An [[elves|elf]].</div><br />
</div><br />
Compared to [[humans]], '''elves''' are somewhat taller, more agile but less sturdy. They have slightly pointy ears, pale skin and usually blond hair. Few differences between humans and elves are more pronounced than the latter’s unusually long life - most, unless claimed by illness, accident or war, live a full two centuries. While some elves possessing a high magical aptitude have been known to live an additional full century, most elves begin to grow physically frail approaching their twentieth decade and pass away within a few decades after. Elves are naturally imbued with magic to a small degree. Though most are unable to channel it directly, its latent presence gives them their keen senses and long life. Many elves have magic-driven talents such as marksmanship or stealth, allowing them to achieve tasks that most normal beings would find astonishing. Those elves that learn to wield this power in more general ways can become truly formidable in its use. Many choose to use their gift to heal others.<br />
<br />
=== Orcs ===<br />
<div class="thumb tright"><div><br />
http://www.wesnoth.org/units/1.6/pics/00160_grunt.png<hr><br />
An [[orcs|orc]].</div><br />
</div><br />
''Main article: [[Orcs]]<br />
<br />
In appearance, orcs are half [[humans|men]] and half beasts. They are taller, sturdier and stronger than humans. They are warlike, savage, and cruel by nature. Their blood is darker and thicker than that of normal humans and they have little care for personal hygiene or their personal appearance. Although Orcs are violent even among themselves creatures, they are pack-oriented; an orc never travels long or lives alone in groups smaller than half a dozen.<br />
<br />
====Goblins====<br />
<div class="thumb tright"><div><br />
http://www.wesnoth.org/units/1.6/pics/00055_spearman.png<hr><br />
A goblin.</div><br />
</div><br />
Goblins are, despite their appearance, members of the exact same race as orcs, and are born as siblings to the orcs. Unlike similar races, who usually bear children singly or in pairs, orcs will have large litters of children all at once; which is a large part of why their populations can explode so quickly. Within any litter, there will only be one or two true orcs, who will grow to the full size and strength of their race. A few more will be half-orcs, notably weaker than their big brothers, and relegated to supporting roles in combat, such as archery. The rest, often a full half of more of any litter, will be goblins. Goblins are puny, and quite frail; similar in size and stature to a human child, even at the apex of their growth. They have a rather tragic fate; a lifetime of near-slavery to their larger kin, and use as sword-fodder in battle. In spite of this, they thrive; in part because they are so very numerous, and also because their brother orcs are well aware how dependent they are on the goblins.<br />
<br />
Goblins accomplish the bulk of manual labor needed by the orcs, with the sole exception of jobs which require the brute strength of true orcs, which the orcs revel in doing as proof of their prowess.<br />
<br />
=== Dwarves ===<br />
''Main article: [[Dwarves]]<br />
<div class="thumb tright"><div><br />
http://www.wesnoth.org/units/1.6/pics/00024_guard.png<hr><br />
A [[dwarves|dwarf]].</div><br />
</div><br />
The Dwarves are a race famed for their miners, blacksmiths, merchants and warriors. Considered as the third oldest race on the great continent after the elves and trolls, their early history is shrouded in mystery. Legends tell of a time long forgotten when their people began emerging from their underground world through caves. Nothing is known about their life prior to their arrival, or their reasons for entering the surface world, but they have been an integral part of the continent’s history since. Soon after their emergence from the underground, the dwarves entered into conflict with the original inhabitants of the land, the [[elves]]. The original reason for their dispute has been lost to history, but the two races have since fought three long wars, interrupted by a few decades of peace. During these wars the dwarves could not dislodge the elves from the deep forests in the south, but managed to consolidate their position in hills and the mountains in the north of the continent, known now as the Northlands. Since then they have constructed fantastic fortifications and settlements deep within the mountains and crags of their territory.<br />
<br />
=== Undead ===<br />
''Main article: [[Undead (race)]]<br />
<div class="thumb tright"><div><br />
http://www.wesnoth.org/units/1.6/pics/00182_skeleton.png<hr><br />
A [[Undead|skeleton]].</div><br />
</div><br />
Undead are not really a single race of creatures, although often treated as such. Almost any dead creature can, by a sufficiently skilled necromancer, be reanimated and rise again in undeath. Undead are for the most part unnatural but mindless constructs, obeying whoever created them without question nor thought. A greater mystery of necromancy is in how constructs are sustained without continuous effort from the necromancer. An undead creature does not require the constant attention of the necromancer to command and sustain, but can work autonomously according to the commands of it's master. Only rarely, perhaps once every few months, does the necromancer need to maintain his creation.<br />
<br />
=== Drakes ===<br />
''Main article: [[Drakes (race)]]<br />
<br />
Drakes are large, winged and fire-breathing creatures, reminiscent of true dragons. On average, an adult drake stands around three meters tall and easily weighs more than a [[humans|man]] and a horse combined. Their skin is made up of hard scales, resistant to most physical strikes except piercing and cold damage. Most drakes are capable of true flight and can travel long distances quickly. However, their sheer weight and bulk limits their flight ability somewhat, making them ungainly in the air. Where possible, they make use of terrain features such as hills, mountains and trees as launch points in order to gain greater height and speed. Fortunately for their enemies, they are still quite clumsy creatures and surprisingly slow in combat. This, combined with their large size, renders them easy targets for those who dare attack them.<br />
<br />
== Other Races ==<br />
<br />
There are other races than these six main ones. They often align with the larger races, but these alliances are usually not permanent.<br />
<br />
=== Merfolk ===<br />
The Merfolk live in the shallow parts of the ocean, wary of the monsters that lurk in the deep. Ordinarily they form alliances with no one, but in Asheviere's time they allied with the elves in order to defeat their captors. Mermen are powerful and quick in any watery environment, but struggle greatly to move on land.<br />
<br />
=== Nagas ===<br />
Nagas are the long time enemies of the Merfolk, and in Asheviere's time they allied with orcs to finally defeat their opponents. They usually join forces with anyone willing to help them defeat the mermen.<br />
<br />
=== Ogres ===<br />
The Ogres are wild beasts that live in the Northlands, but the Wesnothian army occasionally captures them and trains them for battle. They are extremely brutish and stupid, but possess enough intelligence to wield a weapon.<br />
<br />
=== Saurians ===<br />
These are the smaller, more crafty allies of the Drakes. They often live in swamps or other damp places.<br />
<br />
=== Trolls ===<br />
''Main article: [[Trolls]]<br />
<div class="thumb tright"><div><br />
http://www.wesnoth.org/units/1.6/pics/00166_grunt.png<hr><br />
A [[trolls|troll]].</div><br />
</div><br />
Trolls are ancient creatures, one of the oldest known races known to inhabit the Great Continent. They are large, slow, simple-minded, and live extremely long lives inside deep caves or atop high mountains. The most unique characteristic of trolls is an internal vitality that sustains and heals them from within. As a result they live very different lives from almost any known creature. Trolls have few real needs: they require little food or water, and thus they have little incentive to pursue much besides protection from those who are hostile towards them. This in turn means they rarely have to worry about anything and can spend much of their time sleeping or in contemplation. Trolls have a curious affinity with nature. They do not relate with living things like elves do, but instead with earth and stone. They are also somewhat curious of their surroundings and many younger whelps even enjoy traveling and seeing the world. As trolls grow older they tend to become increasingly passive, gradually losing interest in their environment and spending more of their time sleeping in a quiet, familiar corner of their home cave. This is until they finally pass away as their bodies themselves slowly turn into lifeless statues of stone.<br />
<br />
===Woses===<br />
Little is known about the Woses, apart from their tree-like appearance. However these beings have not descended from trees, despite the similarity in form. They seem to be wardens of the natural world.<br />
<br />
=== Monsters ===<br />
There are many monsters that roam about the land, not obeying anyone's orders. Occasionally, but not often, those who see them survive to tell the tale, and it is only from them that the people of Wesnoth know of their existence.<br />
<br />
== Additional information for campaign designers ==<br />
<br />
The [[SecretLore]] page contains game secrets intended for campaign designers. We cannot stop anyone from reading it, but if you are a player you will probably enjoy learning these things more if you do it through the hints dropped at various places in the mainline campaigns. <br />
<br />
==External Links==<br />
* [http://units.wesnoth.org Wesnoth Unit Tree]<br />
<br />
{{Racebox}}<br />
<br />
<div style="border:1px solid #5599FF; margin-top: 10px; margin-bottom: 5px; padding: 5px;"><br />
- [[Races|English]] - [[Races fr|Français]] -<br />
</div><br />
<br />
[[Category:Races|*]]<br />
[[Category:World of Wesnoth]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=IntroWML&diff=31805IntroWML2009-08-09T20:29:04Z<p>ShikadiQueen: [story] : mention [wml_message], mention the display delay for both this and [deprecated_message]</p>
<hr />
<div>{{WML Tags}}<br />
== The [story] tag ==<br />
<br />
The '''[story]''' tag is a series of images and text to display as the first part of the intro screen.<br />
<br />
'''[part]''' is a special tag recognized only beneath '''[story]'''. Each '''[part]''' represents one image and text.<br />
The part is displayed until the user clicks on the "Next>>>" button.<br />
<br />
The following key/tags are recognized for '''[part]''':<br />
* '''background''': the image to display. Story images are usually created specially for this purpose, except for the map.<br />
* '''scale_background''': Whether to scale the background, default yes.<br />
* '''story''': (translatable) the text to display below the image.<br />
* '''show_title''': whether to display the title of the scenario at the top<br />
* '''title''' {{DevFeature}}: specifies a custom title to display instead of the name of the scenario. If specified, it implies '''show_title=yes'''.<br />
* '''music''': change to this music<br />
* '''sound''' {{DevFeature}}: a list of sound files; the engine will choose one at random and play it once while displaying the story part.<br />
* '''[image]''': an image to display.<br />
** '''x''', '''y''': the location in pixels to draw the image. The x,y pixel location is relative to the image specified in background, but not in a normal way. The background image is scaled up or down to fill the screen resolution, but images are never scaled in size. Their coordinates, however, are scaled. It's basically a big pain in the rear. Example: I have a background image at 640x480 and an overlay at 640x480. To horizontally center the overlay on a 1024x768 screen, I want to position it at x=192. This is because 1024-640 = 384 total extra pixel space, then 384/2 = 192. This results in equal space on both sides of the overlay. However, now you have to account for the background scaling. The background image at 640 is scaled up to 1024, a scaling factor of 1.6. All image locations are also scaled up, so the overlay is not drawn at x=192, rather it is drawn at x=192*1.6 or x=307! To compensate for this, divide the desired pixel location by the scaling factor. In the example, x_compensated=192/1.6 or x_compensated=120.<br />
** '''centered''': If "yes", use the center of the image when placing at the x,y coordinates, which is useful since this image is not scaled like the background is (and by centering no need to worry about this).<br />
** '''file''': the image to display.<br />
** '''delay''': the time to delay drawing this image.<br />
* '''text_layout''' {{DevFeature}}: specifies the area of the screen where the story text will be displayed. It allows the ''top'', ''middle'' and ''bottom'' values; the latter is used by default.<br />
<br />
The '''[deprecated_message]''', '''[wml_message]''', '''[image]''', and '''[insert_tag]''' tags are allowed beneath '''[story]'''. Most other WML tags will not be recognized in this context. Note, however, that messages produced by the first two tags will not appear in the game interface until the actual game map appears.<br />
<br />
The only other tags currently recognized beneath '''[story]''' are '''[if]'''/'''[then]'''/'''[else]'''. These can be used to show parts conditionally on the values of variables. Note, however, that '''[switch]'''/'''[case]''' will not work in this context.<br />
<br />
{{DevFeature}} In the development branch, '''[switch]'''/'''[case]''' and<br />
'''[if]'''/'''[then]'''/'''[else]''' are allowed both within '''[story]''' and within '''[part]'''.<br />
<br />
See also the journey and battle macros, in [[UtilWML]]<br />
<br />
== See Also ==<br />
<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=IntroWML&diff=31804IntroWML2009-08-09T20:24:14Z<p>ShikadiQueen: /* The [story] tag */ from trunk, document for [part]: text_layout, sound, title</p>
<hr />
<div>{{WML Tags}}<br />
== The [story] tag ==<br />
<br />
The '''[story]''' tag is a series of images and text to display as the first part of the intro screen.<br />
<br />
'''[part]''' is a special tag recognized only beneath '''[story]'''. Each '''[part]''' represents one image and text.<br />
The part is displayed until the user clicks on the "Next>>>" button.<br />
<br />
The following key/tags are recognized for '''[part]''':<br />
* '''background''': the image to display. Story images are usually created specially for this purpose, except for the map.<br />
* '''scale_background''': Whether to scale the background, default yes.<br />
* '''story''': (translatable) the text to display below the image.<br />
* '''show_title''': whether to display the title of the scenario at the top<br />
* '''title''' {{DevFeature}}: specifies a custom title to display instead of the name of the scenario. If specified, it implies '''show_title=yes'''.<br />
* '''music''': change to this music<br />
* '''sound''' {{DevFeature}}: a list of sound files; the engine will choose one at random and play it once while displaying the story part.<br />
* '''[image]''': an image to display.<br />
** '''x''', '''y''': the location in pixels to draw the image. The x,y pixel location is relative to the image specified in background, but not in a normal way. The background image is scaled up or down to fill the screen resolution, but images are never scaled in size. Their coordinates, however, are scaled. It's basically a big pain in the rear. Example: I have a background image at 640x480 and an overlay at 640x480. To horizontally center the overlay on a 1024x768 screen, I want to position it at x=192. This is because 1024-640 = 384 total extra pixel space, then 384/2 = 192. This results in equal space on both sides of the overlay. However, now you have to account for the background scaling. The background image at 640 is scaled up to 1024, a scaling factor of 1.6. All image locations are also scaled up, so the overlay is not drawn at x=192, rather it is drawn at x=192*1.6 or x=307! To compensate for this, divide the desired pixel location by the scaling factor. In the example, x_compensated=192/1.6 or x_compensated=120.<br />
** '''centered''': If "yes", use the center of the image when placing at the x,y coordinates, which is useful since this image is not scaled like the background is (and by centering no need to worry about this).<br />
** '''file''': the image to display.<br />
** '''delay''': the time to delay drawing this image.<br />
* '''text_layout''' {{DevFeature}}: specifies the area of the screen where the story text will be displayed. It allows the ''top'', ''middle'' and ''bottom'' values; the latter is used by default.<br />
<br />
The '''[deprecated_message]''', '''[image]''', and '''[insert_tag]''' tags are allowed beneath '''[story]'''. Most other WML tags will not be recognized in this context.<br />
<br />
The only other tags currently recognized beneath '''[story]''' are '''[if]'''/'''[then]'''/'''[else]'''. These can be used to show parts conditionally on the values of variables. Note, however, that '''[switch]'''/'''[case]''' will not work in this context.<br />
<br />
{{DevFeature}} In the development branch, '''[switch]'''/'''[case]''' and<br />
'''[if]'''/'''[then]'''/'''[else]''' are allowed both within '''[story]''' and within '''[part]'''.<br />
<br />
See also the journey and battle macros, in [[UtilWML]]<br />
<br />
== See Also ==<br />
<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=PatchSubmissionGuidelines&diff=31375PatchSubmissionGuidelines2009-07-24T21:04:29Z<p>ShikadiQueen: Mention that adding oneself to about.cfg involves this strange thing called 'alphabetical order'; also, it's 'Miscellaneous Contributors' nowadays</p>
<hr />
<div>Copied from http://www.wesnoth.org/forum/viewtopic.php?f=10&t=9979<br />
<br />
* '''All patches should be submitted at patches.wesnoth.org'''<br />
You can post them here too for discussion, but we need to track what is their status and p.w.o helps a lot<br />
<br />
* '''Patches should be generated using "svn diff"'''<br />
SVN provides a cool command to generate diff, I usually run "svn diff >mypatch.patch" to create the patch, and its all nice and ready.<br />
It even records precisely the commit against which it was generated, it makes things really easy for me...<br />
<br />
* '''Don't forget to add an entry to the Changelog'''<br />
* '''if you add afile, don't forget to change the Makefiles'''<br />
* '''Add yourself in about.cfg'''<br />
Including your name and/or nick it makes it easier for me.<br />
New contributors should add themselves to the ''Miscellaneous Contributors'' section of the about file (data/core/about.cfg). Please keep the alphabetical order while doing it.<br />
<br />
* '''When changing WML, please add a pointer in the wiki to where it should be updated when commited'''<br />
<br />
* '''Be patient, sometime I'm not very responsive'''<br />
* '''Don't be suprised if we discuss the patch a lot'''<br />
Thus, you should leave us a way to contact you, either a forum nick, an email adress, or submit with a registered gna account.<br />
<br />
* '''The patch should generate no warnings'''<br />
Wesnoth has a large number of warnings enabled, all of them are useful. If your code spits warning, please have a look, and ask yourself why you are doing whatever causes the warning.<br />
<br />
* '''When adding a file, don't forget Makefile.am'''<br />
It makes things simpler for me, and is often forgotten.<br />
<br />
* '''Sometimes patches are rejected, don't be suprised if it happens'''<br />
<br />
== See also ==<br />
* [[HackingWesnoth]]<br />
* [[CodingStandards]]<br />
* [[EasyCoding]]<br />
* [[DeveloperResources]]<br />
<br />
[[Category:Development]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ImagePathFunctions&diff=30973ImagePathFunctions2009-07-02T12:55:31Z<p>ShikadiQueen: Forgot to mention the ~PAL() image functor used since 1.7.0 instead of ~RC(A=B)</p>
<hr />
<div>Image Path Functions provide a simple method for WML coders to alter the way their specified images will be displayed in the game. All of the function parameters are included at the end of an image path and should not contain any spaces or special characters (other than those specified here).<br />
<br />
== Team-Color Function ==<br />
In Wesnoth version 1.2, the only Image Path Function was '''~TC()''', which took two comma-separated parameters: the team number and the source color palette. The valid values for both of these parameters are defined in the file ''data/team-colors.cfg''<br />
<br />
=== Syntax ===<br />
'''~TC(''' ''team number'' ''',''' ''source color palette'' ''')'''<br />
*''team number'' - this is the first parameter, a number 1-9 signifying the team number of a unit. Number 1 typically means the red team, 2 typically means the blue team, and so on (unless the scenario color settings for any side have been altered).<br />
*''source color palette'' - the second parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
<br />
== Re-Color Function ==<br />
May be used to change some colors in an image.<br />
=== Syntax ===<br />
'''~RC(''' ''source color palette'' '''>''' ''color range ID'' ''')'''<br />
*''source color palette'' - the first parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
*''color range ID'' - this is the second parameter, signifying the ID of a color range defined in the file ''data/core/team-colors.cfg'' (or it may be a custom ID for a color range defined locally). <br />
<br />
In 1.6, the following syntax changes the RC function behavior for simply replacing colors matching the source color palette with colors of the target color palette:<br />
<br />
'''~RC(''' ''source color palette'' '''=''' ''target color palette'' ''')'''<br />
<br />
{{DevFeature}} The syntax in 1.7 for the last case is the following:<br />
<br />
'''~PAL(''' ''source color palette'' '''>''' ''target color palette'' ''')'''<br />
<br />
=== Example ===<br />
In the following example, the magenta regions in an elvish captain's image are turned a healthy shade of green:<br />
<br />
[message]<br />
speaker=narrator<br />
image=units/elves-wood/captain.png~RC(magenta>green)<br />
message=_ "Now I am on the green team."<br />
[/message]<br />
<br />
The IDs of the color ranges may be the lowercased English name of the palette's base color (e.g. 'red', 'brown', etc.). They may also be numeric color indices from the palette WML included with the game, but this is not recommended<br />
<br />
== Flip Function ==<br />
May be used to flip an image horizontally and/or vertically<br />
=== Syntax ===<br />
'''~FL(''' ''optional argument list'' ''')'''<br />
*''vertical'' - if the string "vert" is found anywhere in the argument list, the image will be flipped vertically.<br />
*''horizontal'' - if the string "horiz" is found anywhere in the argument list, the image will be flipped horizantally.<br />
*if the argument list is empty, the image will only be flipped horizantally.<br />
<br />
== Greyscale Function ==<br />
May be used to greyscale the image (turn to black and white)<br />
=== Syntax ===<br />
'''~GS( )'''<br />
<br />
== Crop Function ==<br />
Extracts a rectangular section of an image file.<br />
=== Syntax ===<br />
'''~CROP(x,y,width,height)'''<br />
* ''x'',''y'': top-left corner coordinates for the rectangular section extracted. Must be greater or equal than zero, and inside the image's bounds.<br />
* ''width'': width of the selected region. Must be less than or equal to the original image's width.<br />
* ''height'': height of the selected region. Must be less than or equal to the original image's height.<br />
<br />
== Color-shift function ==<br />
Performs simple per-channel color shifts by adding the arguments to the respective color channels.<br />
=== Syntax ===<br />
''Multi-channel:'' '''~CS(r,g,b)'''<br />
''Single-channel:'' '''~R(v)''', '''~G(v)''', '''~B(v)'''<br />
<br />
The multichannel syntax assumes all arguments are set to zero initially, so one can use, e.g. ~CS(2,4) to add +2 and +4 units to the red and green channels respectively, leaving the blue channel intact. Arguments may be negative to diminish a channel's value; this can be used to change an image's brightness. Checks for out-of-range arguments or results (less than 0 or greater than 255) are made, so the resultant values are truncated if necessary.<br />
<br />
The single channel syntax behaves exactly the same, except that only single-channel modifications are made per function. However, one can stack them to produce the same behavior as ~CS(), e.g. ~R(r)~G(g)~B(b), but that tends to be just a performance loss.<br />
<br />
Any color-shift is performed before changing opacity or desaturating the graphic (see ~O() and ~GS()).<br />
<br />
== Image-scaling function ==<br />
Scales a graphic up or down.<br />
=== Syntax ===<br />
<br />
'''~SCALE( ''new_width'', ''new_height'' )<br />
<br />
The ''new_width'' and ''new_height'' parameters are taken as the image's original width or height, respectively, if one of them happens to be zero. Negative values are treated in the same way, but an error is printed in stderr.<br />
<br />
== Opacity modifying function ==<br />
Changes an image's opacity at render time.<br />
=== Syntax ===<br />
<br />
'''~O( ''factor or percentage%'' )'''<br />
<br />
If the argument includes the percentage symbol (''%''), it will be treated as a percentage of full (real) opacity; an image will be displayed at its native opacity with ~O(100%).<br />
<br />
Without the percentage symbol, the argument is assumed to be a factor by which the image's native opacity should be multiplied. Thus, ~O(0.5) and ~O(50%) are equivalent forms of specifying to reduce an image's opacity by half.<br />
<br />
== Blurring function ==<br />
Blurs a graphic at render time using the same algorithm used for in-game dialogs.<br />
=== Syntax ===<br />
<br />
'''~BL( ''radius'' )'''<br />
<br />
== Null function {{DevFeature}} ==<br />
Does nothing.<br />
=== Syntax ===<br />
<br />
'''~NOP()'''<br />
<br />
== Precedence of Functions ==<br />
<br />
All functions are applied in left-to-right order, with the exception of RC() and TC() which are applied always before any other functions.<br />
That is, stuff like "units/elves-wood/fighter.png~CROP(0,0,20,20)~CROP(10,10,10,10)" would result in taking a crop of the rectangle x=20;y=20;w=40;h=40 and then taking a crop from ''that'' rectangle as x=10;y=10;w=10;h=10 resulting in the area x=30;y=30;w=10;h=10 from the original graphic.<br />
<br />
[[Category:WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=SpanishTranslation&diff=30801SpanishTranslation2009-06-25T13:08:51Z<p>ShikadiQueen: Announce that this translation is currently maintainer-less</p>
<hr />
<div>= Current translation team =<br />
<br />
This translation is no longer maintained. If you want to take over this translation, feel free to go ahead. You can send an e-mail to the former maintainer to ask for help, guidance, etc. if you wish.<br />
<br />
* ''Former maintainer'': [[User:ShikadiLord|Ignacio "Shadow Master" R. Morelle]] [mailto:shadowm2006ENgmailPUNTOcom]<br />
<br />
<!-- * ''Translators'':<br />
** Gustavo Gingins (gins) [mailto:gusginsENgmailPTOcom] --><br />
<br />
<br />
'' ''' Currently inactive translators ''' ''<br />
<br />
* Gustavo Gingins (gins) [mailto:gusginsENgmailPTOcom]<br />
* Josu Díaz de Arcaya [mailto:josuDOTarcayaENgmailPUNTOcom]<br />
* Sergi March [mailto:sergiDOTmarchENgmailPUNTOcom]<br />
* Roberto Romero [mailto:sildurinENgmail.com]<br />
* Alejandro E. Moreno Ruiz [mailto:alexmorenoUSUALLYATgmail.com]<br />
* Juan Pedro Rodriguez Extremera [mailto:c0rruptgamer.gnuENgmail.com]<br />
* Jordi Gutiérrez Hermoso [mailto:jordighENgoogle'sMailService]<br />
* David Martinez (ender/Jo-Con-El) - [mailto:enderATdebianDOTorg]<br />
* fmunoz - [mailto:fmunozDOTgeoATyahooDOTcom]<br />
* ettin - [mailto:savannahATettinDOTorg]<br />
* Jose Gordillo (kilder) - No mail address specified<br />
<br />
<br />
== See Also ==<br />
<br />
* [[WesnothTranslations]]<br />
<br />
[[Category:Translations]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=WesnothTranslations&diff=30800WesnothTranslations2009-06-25T13:05:53Z<p>ShikadiQueen: Mark the Spanish translation team as maintainer-less</p>
<hr />
<div>== Translations ==<br />
<br />
Wesnoth is currently being translated into the following languages. Instructions on how to contribute are found here:<br />
[[WesnothTranslationsHowTo]].<br />
* [[AfrikaansTranslation|Afrikaans]] - maintainer: Friedel Wolff - [mailto:friedelATSIGNtranslateDOTorgDOTza]<br />
* [[ArabicTranslation|Arabic]] - maintainer: Amnay Mokhtari - [mailto:amnayAToperamailDOTcom]<br />
* [[BasqueTranslation|Basque]] - maintainer: Alfredo Beaumont (ziberpunk) - [mailto:alfredo.beaumontATgmailDOTcom]<br />
* [[BulgarianTranslation|Bulgarian]] maintainer: Nikolay Vladimirov (Turki) - [mailto:nikolayATvladimiroffDOTcom]<br />
* [[CatalanTranslation|Catalan]] - maintainer: Jordà Polo (ettin) - [mailto:jordaATettinDOTorg]<br />
* [[ChineseTranslation|Chinese]] - maintainer: Yuanle Song - [mailto:sylecnATyahooDOTcomDOTcn], we have a Chinese forum here [http://www.wesnoth.cn Wesnoth.CN]<br />
* [[ChineseTaiwanTranslation|Chinese (Taiwan)]] - maintainer: 楊綮銘 (Taiwan) - [mailto:steven2880ATgmailDOTcom]<br />
* [[CroatianTranslation|Croatian]] - maintainer: Nino Gunjača (nion) - [mailto:nino.gunjaca@zg.t-com.hr]<br />
* [[CzechTranslation|Czech]] - maintainer: Vladimír Slávik - [mailto:slavikDOTvladimirATseznamDOTcz]<br />
* [[DanishTranslation|Danish]] maintainer: Joe Hansen (joedalton) - [mailto:joedalton2ATyahooDOTdk]<br />
* [[DutchTranslation|Dutch]] - maintainer: Alexander van Gessel (AI/AI0867) - [mailto:AI0867_AT_gmail.com]<br />
* [[EnglishTranslation|English (US)]] ''(this is the default)'' - maintainer: Sirp - [mailto:davidnwhiteATcomcastDOTnet]<br />
* [[EnglishGBTranslation|English (GB)]] - maintainer: esr - [mailto:esr@thyrsus.com]<br />
* [[Esperanto_translation|Esperanto]] - maintainer: Viliam Bur - [mailto:viliamATburDOTsk]<br />
* [[EstonianTranslation|Estonian]] - maintainer: Kaido Kikkas (UncleOwl) - [mailto:kaidoDOTkikkasATkakupesaDOTnet]<br />
* [[FilipinoTranslation|Filipino]] - maintainer: Karen Eso (keeve) - [mailto:eveUNDERSCOREesoATyahooDOTca]<br />
* [[FinnishTranslation|Finnish]] - maintainer: Samu Voutilainen (Smar) - [mailto:samu.voutilainenATgmailDOTcom]<br />
* [[FrenchTranslation|French]] - maintainer: Benoît Timbert (Noyga) [mailto:benoitDOTtimbertATfreeDOTfr] - translation team mailing list [mailto:wesnothATmlDOTfreeDOTfr]<br />
* [[FriulianTranslation|Friulian]] - maintainer: Michele Calligaris (MayBug) - [mailto:michele.calligaris-CAIUT-gmail.com]<br />
* [[GalicianTranslation|Galician]] - maintainer: Leandro Regueiro - [mailto:leandroDOTregueiroATgmailDOTcom] [http://trasno.net Proxecto Trasno]<br />
* [[GermanTranslation|German]] - maintainer: Christoph Berg (chrber) - [mailto:ChristophDOTBergATkpm-sportDOTde]<br />
* [[GreekTranslation|Greek]] - maintainer: Konstantinos Egarhos [mailto:konsnoslATgmailDOTcom]<br />
* [[HebrewTranslation|Hebrew]] - maintainer: Oron Peled - [mailto:oronATactcomDOTcoDOTil]<br />
* [[HungarianTranslation|Hungarian]] - maintainer: Kádár-Németh Krisztián - [mailto:krisztian.kadATgmailDOTcom]; vice-maintainer: Udvari Gábor [mailto:gaborDOTudvariATgmailDOTcom]<br />
* [[IcelandicTranslation|Icelandic]] - maintainer: Gabríel A. Pétursson [mailto:gabrielpATsimnetDOTis]<br />
* [[IndonesianTranslation|Indonesian]] - maintainer: Nicky Inkrais Witras [mailto:inkraiswitrasATyahooDOTcom]<br />
* [[ItalianTranslation|Italian]] - maintainer: Luciano Montanaro - [mailto:mikelima@cirulla.net]<br />
* [[JapaneseTranslation|Japanese]] - maintainer: Nobuhito Okada - [mailto:okyadaATgmailDOTcom]<br />
* [[KoreanTranslation|Korean]] - maintainer: ???<br />
* [[LatinTranslation|Latin]] - maintainer: Marc Polo ([http://www.wesnoth.org/forum/privmsg.php?mode=post&u=571 mpolo]) - No mail address specified<br />
* [[LithuanianTranslation|Lithuanian]] - maintainer: Andrius Štikonas - [mailto:stikonasATgmailDOTcom] <br />
* [[MarathiTranslation|Marathi]] - maintainer: Sujit R Jadhav - [mailto:sujitrjadhavATgmailDOTcom]<br />
* [[MacedonianTranslation|Macedonian]] - maintainer: Dimitar Ilccov (Mythological)<br />
* [[NorwegianTranslation|Norwegian]] - maintainer: Gaute Jao (Gauteamus) - [mailto:gauteamusATgmailDOTcom]<br />
* [[OccitanTranslation|Occitan]] - maintainer: Nobody, currently<br />
* [[PolishTranslation|Polish]] - maintainer: Zbigniew Banach - [mailto:zDOTbanachATwsisizDOTeduDOTpl]<br />
* [[PortugueseTranslation|Portuguese Brazilian]] - maintainer: Claus Aranha (caranha) - [mailto:caranhaATgmailDOTcom]<br />
* [[PortugueseContinentalTranslation|Portuguese Continental(pt_PT)]] - maintainer: Sérgio Lopes [mailto:knitter.is@gmail.com]<br />
* [[RomanianTranslation|Romanian]] - maintainer: Alexandru Szasz [mailto:alexxedATgmailDOTcom]<br />
* [[RussianTranslation|Russian]] - maintainer: Victor Sergienko [mailto:singalenATgmailDOTcom]<!--Alexandr Menovchicov - [mailto:vamATkypiDOTru]--><br />
* [[SerbianTranslation|Serbian]] - maintainer: Srećko Toroman (freecraft)- [mailto:sreckotoromanATgmailDOTcom]<br />
* [[SlovakTranslation#Preklad|Slovak]] - maintainer: Aceman<br />
* [[SlovenianTranslation|Slovenian]] - maintainer: Jaka Kranjc (lynx) - [mailto:lynxlupodianAThotmailDOTcom]<br />
* [[SpanishTranslation|Spanish]] - maintainer: (needs a maintainer)<br />
* [[SwedishTranslation|Swedish]] - maintainer: Gustav Tiger (Tigge) - [mailto:adminATtiggeDOTorg]<br />
* [[TurkishTranslation|Turkish]] - maintainer: Nilgün Belma Bugüner - [mailto:nilgunATbelgelerDOTgenDOTtr]<br />
* [[Wesnoth-in-Valencian|Valencian]] - maintainer: Mario (Mavorte) - [mailto:mavorte1ATyahooDOTes]<br />
* [[VietnameseTranslation|Vietnamese]] - maintainer: Do Hong Minh - [mailto:minhdhAThutticDOTcom]<br />
<br />
<br />
Other ideas (remember, these are just ideas):<br />
* Translations into Asian languages <br />
** Asian languages are already supported. See [[WesnothAsianLanguages]].<br />
<br />
== Mailing List ==<br />
<br />
There now is a mailinglist dedicated to translation matters. It is mainly intended to be used for informing translation maintainers about important changes, to announce string freezes and other special things. Everyone is free to subscribe to this list. You can find this list, entitled wesnoth-i18n at the listing of all Wesnoth mailing lists:<br />
<br />
[http://gna.org/mail/?group=wesnoth http://gna.org/mail/?group=wesnoth]<br />
<br />
The archive for this list is to be found [http://mail.gna.org/public/wesnoth-i18n/ here].<br />
Please keep in mind that this list is not meant for discussing changes for one single translation but stuff that is relevant to all translations.<br />
<br />
== See also ==<br />
<br />
* [[WesnothTranslationsHowTo]]<br />
* [[GetText]]<br />
* [http://gettext.wesnoth.org Translations statistics (stable)]<br />
* [http://gettext.wesnoth.org/index.php?version=trunk&package=alloff Translations statistics (development)]<br />
* [[WesCamp| Translating User made Campaigns (featuring WesCamp-i18n)]]<br />
* [[SpellingMistakes]]<br />
* [[CharactersStorys| Character descriptions for Translators (Spoiler Warning)]]<br />
* [[TextdomainStatus]]<br />
<br />
[[Category:Translations|*]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=SwedishTranslation/News&diff=30655SwedishTranslation/News2009-06-04T20:44:26Z<p>ShikadiQueen: Nyheter moved to SwedishTranslation/News: Requested by Tigge on IRC (#wesnoth-dev)</p>
<hr />
<div>{{SwedishTranslation}}<br />
<br />
== ''2009-06-04'' ==<br />
<br />
Översättningsarbetet fortsätter. Dock har jag (Tigge) inte haft så mycket tid på sistens. Förhoppningsvis ska det ordna upp sig nu under sommaren och jag hoppas att vi tillsammans kan jobba upp 1.6 till 100% översättning. Dessutom skulle jag gärna se en viss justering av befintliga översättning för att få en mer logisk struktur och att översättningarna är av jämn kvalitet. Bra jobbat alla översättare!<br />
<br />
== ''2008-03-12'' ==<br />
<br />
Påbörjade en liten omstrukturering av den här sidan. Den kommer fortsättningsvis att vara uppdelad på lite olika sidor för att göra det mindre rörigt. THoT är nu helt färdigöversatt och de flesta andra kampanjer är up to date.<br />
<br />
== ''2008-03-08'' ==<br />
<br />
Jag (Tigge) tar över som huvudansvarig för den svenska översättningen och börjar att jobba på att få översättningen komplett för version 1.4. Detta kommer antagligen inte att hinnas med eftersom 1.4 kommer ut väldigt snart. Dock är förhoppningen att en fullständig svensk översättning ska vara klar till 1.4.1.<br />
<br />
== ''2007-12-13'' == <br />
Jag (tephlon) slutar som huvudansvarig för den svenska översättningen. Tills någon annan tar över så kommer jag fortsätta att underhålla översättningen i version 1.2.x, eftersom det kommer små uppdateringar lite då och då som behöver tas om hand. Arbetet på 1.2.x slutar när version 1.4 kommer, vilket är planerat till tidigt i vår nån gång. Det finns ett krav på att översättningarna av core-domänerna skall vara på 100% för att ett språk skall få vara med, så om ingen tar över översättningen så kommer version 1.4 att släppas utan svensk översättning, vilket ju skulle vara mycket tråkigt. Att jag slutar handlar till största delen om att jag inte längre har den tid som krävs. Jag lämnar wikisidan helt utan andra ändringar än denna "nyhet". I skrivande stund är följande domäner ej fullständiga: '''wesnoth''', 14 oöversatta av 1120 totalt; '''wesnoth-manual''', 239 oöversatta av 480 totalt; '''wesnoth-nr''', 226 fuzzy och 774 oöversatta av 1415 totalt.<br />
<br />
== ''2007-11-02'' == <br />
Det har inkommit två rapporter om fel i översättningen av epilogen i Sydvakten. Enligt översättningen gjorde de en '''säng''' som bevarades i generationer till minne av kampen. En liten freudiansk felskrivning av mig, tror jag minsann. Det blir så när man sitter för sent :) Det är korrigerat, men ändras inte i spelet förrän man uppgraderar till nästa version.</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ImagePathFunctions&diff=29480ImagePathFunctions2009-03-30T23:08:19Z<p>ShikadiQueen: Add documentation for the ~NOP() function from trunk, for no reason at all.</p>
<hr />
<div>Image Path Functions provide a simple method for WML coders to alter the way their specified images will be displayed in the game. All of the function parameters are included at the end of an image path and should not contain any spaces or special characters (other than those specified here).<br />
<br />
== Team-Color Function ==<br />
In Wesnoth version 1.2, the only Image Path Function was '''~TC()''', which took two comma-separated parameters: the team number and the source color palette. The valid values for both of these parameters are defined in the file ''data/team-colors.cfg''<br />
<br />
=== Syntax ===<br />
'''~TC(''' ''team number'' ''',''' ''source color palette'' ''')'''<br />
*''team number'' - this is the first parameter, a number 1-9 signifying the team number of a unit. Number 1 typically means the red team, 2 typically means the blue team, and so on (unless the scenario color settings for any side have been altered).<br />
*''source color palette'' - the second parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
<br />
== Re-Color Function ==<br />
May be used to change some colors in an image.<br />
=== Syntax ===<br />
'''~RC(''' ''source color palette'' '''>''' ''color range ID'' ''')'''<br />
*''source color palette'' - the first parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
*''color range ID'' - this is the second parameter, signifying the ID of a color range defined in the file ''data/core/team-colors.cfg'' (or it may be a custom ID for a color range defined locally). <br />
<br />
In 1.6, the following syntax changes the RC function behavior for simply replacing colors matching the source color palette with colors of the target color palette:<br />
<br />
'''~RC(''' ''source color palette'' '''=''' ''target color palette'' ''')'''<br />
<br />
=== Example ===<br />
In the following example, the magenta regions in an elvish captain's image are turned a healthy shade of green:<br />
<br />
[message]<br />
speaker=narrator<br />
image=units/elves-wood/captain.png~RC(magenta>green)<br />
message=_ "Now I am on the green team."<br />
[/message]<br />
<br />
The IDs of the color ranges may be the lowercased English name of the palette's base color (e.g. 'red', 'brown', etc.). They may also be numeric color indices from the palette WML included with the game, but this is not recommended<br />
<br />
== Flip Function ==<br />
May be used to flip an image horizontally and/or vertically<br />
=== Syntax ===<br />
'''~FL(''' ''optional argument list'' ''')'''<br />
*''vertical'' - if the string "vert" is found anywhere in the argument list, the image will be flipped vertically.<br />
*''horizontal'' - if the string "horiz" is found anywhere in the argument list, the image will be flipped horizantally.<br />
*if the argument list is empty, the image will only be flipped horizantally.<br />
<br />
== Greyscale Function ==<br />
May be used to greyscale the image (turn to black and white)<br />
=== Syntax ===<br />
'''~GS( )'''<br />
<br />
== Crop Function ==<br />
Extracts a rectangular section of an image file.<br />
=== Syntax ===<br />
'''~CROP(x,y,width,height)'''<br />
* ''x'',''y'': top-left corner coordinates for the rectangular section extracted. Must be greater or equal than zero, and inside the image's bounds.<br />
* ''width'': width of the selected region. Must be less than or equal to the original image's width.<br />
* ''height'': height of the selected region. Must be less than or equal to the original image's height.<br />
<br />
== Color-shift function ==<br />
Performs simple per-channel color shifts by adding the arguments to the respective color channels.<br />
=== Syntax ===<br />
''Multi-channel:'' '''~CS(r,g,b)'''<br />
''Single-channel:'' '''~R(v)''', '''~G(v)''', '''~B(v)'''<br />
<br />
The multichannel syntax assumes all arguments are set to zero initially, so one can use, e.g. ~CS(2,4) to add +2 and +4 units to the red and green channels respectively, leaving the blue channel intact. Arguments may be negative to diminish a channel's value; this can be used to change an image's brightness. Checks for out-of-range arguments or results (less than 0 or greater than 255) are made, so the resultant values are truncated if necessary.<br />
<br />
The single channel syntax behaves exactly the same, except that only single-channel modifications are made per function. However, one can stack them to produce the same behavior as ~CS(), e.g. ~R(r)~G(g)~B(b), but that tends to be just a performance loss.<br />
<br />
Any color-shift is performed before changing opacity or desaturating the graphic (see ~O() and ~GS()).<br />
<br />
== Image-scaling function ==<br />
Scales a graphic up or down.<br />
=== Syntax ===<br />
<br />
'''~SCALE( ''new_width'', ''new_height'' )<br />
<br />
The ''new_width'' and ''new_height'' parameters are taken as the image's original width or height, respectively, if one of them happens to be zero. Negative values are treated in the same way, but an error is printed in stderr.<br />
<br />
== Opacity modifying function ==<br />
Changes an image's opacity at render time.<br />
=== Syntax ===<br />
<br />
'''~O( ''factor or percentage%'' )'''<br />
<br />
If the argument includes the percentage symbol (''%''), it will be treated as a percentage of full (real) opacity; an image will be displayed at its native opacity with ~O(100%).<br />
<br />
Without the percentage symbol, the argument is assumed to be a factor by which the image's native opacity should be multiplied. Thus, ~O(0.5) and ~O(50%) are equivalent forms of specifying to reduce an image's opacity by half.<br />
<br />
== Blurring function ==<br />
Blurs a graphic at render time using the same algorithm used for in-game dialogs.<br />
=== Syntax ===<br />
<br />
'''~BL( ''radius'' )'''<br />
<br />
== Null function {{DevFeature}} ==<br />
Does nothing.<br />
=== Syntax ===<br />
<br />
'''~NOP()'''<br />
<br />
== Precedence of Functions ==<br />
<br />
All functions are applied in left-to-right order, with the exception of RC() and TC() which are applied always before any other functions.<br />
That is, stuff like "units/elves-wood/fighter.png~CROP(0,0,20,20)~CROP(10,10,10,10)" would result in taking a crop of the rectangle x=20;y=20;w=40;h=40 and then taking a crop from ''that'' rectangle as x=10;y=10;w=10;h=10 resulting in the area x=30;y=30;w=10;h=10 from the original graphic.<br />
<br />
[[Category:WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=SoC_People_to_bug_on_IRC&diff=28885SoC People to bug on IRC2009-03-20T16:50:34Z<p>ShikadiQueen: /* Shadow Master/ShikadiLord */ Updated</p>
<hr />
<div>== People to bug on IRC ==<br />
We have prepared a list of people with their "area of competence". This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:<br />
<br />
=== boucman ===<br />
As our "patch monkey" he accustomed to critiquing patches of every kind. Beside this, he knows many areas of the game due to working on applying patches. He is particularly used to answering question from new coders, and doesn't mind explaining trivial stuff. He was the one who started the "two patches, you're in" policy and the ReferenceWML part of the project.<br />
<br />
=== Daniel Franke (dfranke) ===<br />
Daniel is the devteam's most recent addition, and has been primarily concerned with security auditing. Bug him <i>privately</i> if you think you've found a security issue.<br />
<br />
=== Dave alias Sirp ===<br />
Sirp started Wesnoth and is our lead developer. He is currently our C++ expert and is also the one that is working on the new Formula AI. Any questions regarding the formula AI should be directed to him.<br />
<br />
=== Dragonking ===<br />
<br />
He is one of our best Wesnoth players, and understands the various strategies well. He has also programmed much of the Wesnoth Formula AI system and understands it well.<br />
<br />
=== Elias Pscherning (elias) ===<br />
He wrote the original version of campgen and as such will know a lot about what is needed to to make such an editor work correctly. The work on a scenario editor might be based upon campgen and as such his knowledge will be really helpful.<br />
<br />
=== Eric S. Raymond (ESR) ===<br />
ESR is our project toolsmith; he has written several tools that semi-automate various aspects of WML maintenance. While most of our developers/designers concentrate on either the C++ core or WML but not both, he has a balanced understanding of both levels and may be helpful in helping students develop a grasp of the overall architecture. Finally, he did the last overhaul of the Wesnoth UI and understands UI design principles; he is well-equipped to guide students working in that area.<br />
<br />
=== ilor ===<br />
2008 GSoC student, worked on and maintains the new map editor in Wesnoth 1.5/1.6. Has some fairly recent experience with getting "in" the Wesnoth codebase.<br />
<br />
=== Karol Nowak (grzywacz) ===<br />
Two years he participated at GSoC as a student, so he will understand the situation of GSoC students. Beside this he is our top expert on Wesnoth for embedded devices as he worked on the gp2x support.<br />
<br />
=== loonycyborg ===<br />
Maintainer of Wesnoth's SCons build system and windows packager. Might also help out with other buildsystems.<br />
<br />
=== Mordante ===<br />
Many of the possible projects involve the code for which he is an area expert. Also, many of the possible projects currently listed on the ideas page require GUI parts to work. Mordante is currently busy rewriting the old gui engine, he will be our expert there as well as already being our area expert for the terrain engine.<br />
<br />
=== Nils Kneuper (Ivanovic) ===<br />
He is doing nothing special, he just does some "administrative work" like packaging fresh tarballs when it is time for them and works on setting up any kind of deadlines and timetables related to releasing. He has administrative powers in most areas, no matter if website, forum or IRC. Beside this he uploads translation updates, tries to communicate with the translation teams when it is required and translates a little bit himself every now and then. But in general he is not a real expert in anything, just has a look at things that come up and redirects people to the correct contacts.<br />
<br />
=== Noy ===<br />
Noy is an oddity among developers; he's got no coding skills whatsoever and possesses a limited understanding of computers, which is illustrated by his difficulty operating a Mac. Instead, Noy makes his contribution in gameplay and multiplayer design, drawing upon his background in social sciences research, military strategy and playing games online, to understand the effects of development on the playing community behavior. Along with Soliton, Noy is a useful conduit to discuss any issues in this area; just don't ask him about revising the level of randomness in the game.<br />
<br />
=== Noyga ===<br />
Another versatile developer, on the C++ side he doesn't concentrate on a particular area, did some tweaks to improve translations in some languages (like enabling the female forms for names in various place) but know quite well the C++ side of units, abilities and WML. On the WML side he's an expert.<br />
<br />
=== Sapient ===<br />
This developer started working on the GUI and widgets, but recently he focused more on improving the internal mechanics of the WML engine such as variable look-ups and filtering. Sapient is not very active anymore but he does come one IRC in the evenings (U.S.A.). He has touched-up many areas of the code in small ways over time, thus he has a good general knowledge of the C++ code and also has worked a little on some python maintenance scripts. He keeps an eye on the quality of incoming C++... especially if you plan on making any changes to GUI or WML, Sapient will be reviewing it closely and with a critical eye.<br />
<br />
=== Shadow Master/ShikadiLord ===<br />
He has been around since late 2007, and has worked in many areas of the engine, including the game events handler, the image path functors and the add-on management engine. As an add-on developer, he knows a lot about the WML language itself (preprocessor, basic structure) and its various single-player oriented dialects. He may also answer different kinds of questions about C++ as long as you don't start cursing the language.<br />
<br />
=== Soliton ===<br />
He knows our MP server setup best. Beside this he has already done a lot of work on the MP server himself. So he probably has most knowledge about it and, being one of our MP-developers, might provide important help from the perspective of the MP player community and what is needed there.<br />
<br />
=== YogiHH or Piotr Cychowski (cycholka) ===<br />
Since they are the two developers who know most about building under Windows, they will probably be really helpful. Either if the student comes from the Windows side, or to help test resulting work to make sure that it does work on Windows and, for the case that it does not, to show them where problems are.<br />
<br />
=== zookeeper or Mythological or Rhuvaen ===<br />
As our leading WML experts those are to be contacted when it comes to anything related WML problems since they know this stuff best. They do maintain most of the campaigns and improve them whenever they have a good idea for changes.<br />
<br />
=== See also ===<br />
[[SummerOfCodeIdeas|Summer of Code Ideas]] - The root where all information regarding SoC is (or better should be) linked from.<br />
<br />
[[Category:Summer of Code]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=User:Shadowm&diff=28398User:Shadowm2009-02-28T18:54:39Z<p>ShikadiQueen: Update forum nickname</p>
<hr />
<div>I am currently developer for the Battle for Wesnoth project, by my Gna account name "shadowmaster" and forum account "Shadow_Master", and I've been lately rather active adding or seeking to add new features to the game's actual program (C++ part) that have been underestimated for ages.<br />
<br />
== Things I made for Wesnoth ==<br />
<br />
I no longer maintain these lists.<br />
<br />
=== 1.3.x/1.4.x ===<br />
* Implemented random_gender for [SingleUnitWML]. This could be done with more complex WML, but only at event level (i.e. it was impossible to randomize a unit's gender at '''[side]''' level).<br />
* Implemented gender-selection for Multiplayer games' leaders, including the choice of letting the game decide upon a random one when applicable. I received valuable GUI design help from Noyga.<br />
* Extended the '''[store_side]''' and '''[modify_side]''' WML features, including the possibility of quering/setting fog, shroud, user_team_name, recruit lists, controller type and village_gold information.<br />
* Implemented :shroud and :fog debug-mode commands.<br />
* Fixed a portrait advancement bug which was probably as old as female units' implementation, but passed unnoticed until kitty made generic gender-specific portraits for mainline elves.<br />
* Many other bugfixes I don't recall.<br />
* Added Mushroom floor tile with local light (+25%) for consistency with other cave tiles.<br />
<br />
=== 1.5.x/1.6.x ===<br />
* Extended '''[modify_side]''' to be possible to override/merge shroud_data. This is still experimental though.<br />
* Made it possible to use '''[variable]''' boolean_not_equals.<br />
* Implemented '''[set_variable]''' string_length to query upon a string's length after doing (complex) variable substitution.<br />
* Many other bugfixes I don't recall.<br />
<br />
=== Spanish translation ===<br />
<br />
Since version 1.5.5 or so, I have been the maintainer of the Spanish translation team, which would have stayed dead otherwise.<br />
<br />
[[SpanishTranslation|Spanish Translation Team's wiki page]]<br />
<br />
== My Website ==<br />
<br />
My website is were you'll learn about my projects and other stuff I do: [http://shadowm.nfshost.com Shadow Master's Website].</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ConventionsWML&diff=28193ConventionsWML2009-02-05T02:37:20Z<p>ShikadiQueen: /* Indentation */ Include #undef and #ifndef in the rules</p>
<hr />
<div>The purpose of this page is to list conventions of WML --<br />
that is, things that make WML more readable and flexible.<br />
<br />
== Use wmlscope, wmllint, and wmlindent ==<br />
<br />
The WML [[Maintenance_tools|maintenance tools]] will help you ensure that your WML is clean, up-to-date, and correct. Use them early and often; they will save you a lot of trouble later by catching entire classes of WML bugs before a user can ever see them.<br />
<br />
== Macros ==<br />
<br />
Using macros is useful for decreasing the size of a file,<br />
and for making it clear that you are doing the same thing several times.<br />
It is economical to use '''[http://www.wesnoth.org/macro-reference.xhtml macros from the standard library]''' rather than writing your own whenever you can, but don't hesitate to write your own when the standard library does not do what you need.<br />
<br />
A good rule for when to write a macro is to use them whenever information or code is being duplicated and all the duplications might have to be changed in the same way later. For information on how to create and use macros, see [[PreprocessorRef]].<br />
<br />
Conventionally, your macro definitions should live in one or more files within a directory called utils under your main campaign directory. Be sure to<br />
include that directory in your _main.cfg.<br />
<br />
== Indentation ==<br />
<br />
We used to have complicated recommendations for indentation. Now we have a WML indenting program and much simpler rules.<br />
<br />
Be aware that no matter how you indent your WML, if it's accepted into mainline we are going to run <tt>wmlindent</tt> on it and smash it into the house style. We do this so our WML maintainers won't have to cope with lots of idiosyncratic indentation variants. You can make your WML more readable by writing in the house style to begin with.<br />
<br />
# Indent each level with '''4 spaces'''. <br />
# Indent attributes a level deeper than their parent tag.<br />
# Indent macros as though the <tt>#define/#enddef</tt> are an outermost level; that is, the macro body starts with one level of indenting. Same applies to <tt>#undef</tt>.<br />
# Don't indent <tt>#ifdef</tt>/<tt>#ifndef</tt>/<tt>#else</tt>/<tt>#endif</tt> at all<br />
# Indent comments at the same level as the text they go with.<br />
<br />
When in doubt, run <tt>wmlindent</tt> on your code. See [[Maintenance tools]] for more description of this program.<br />
<br />
:'''Note:''' Although 4 spaces is the mainline style, there's absolutely ''nothing'' wrong with tabs either. Those of you who prefer a simpler Notepad program should not feel compelled to use spacebar and/or delete key four times the necessary amount when you can simply use tabs. In any case, it is very easy to convert these to the standard convention using <tt>wmlindent</tt>, so don't be scared to use your preferred method of indentation when working with WML. The most important thing to keep in mind is that your code should be uniformly indented, nested to the proper level, and using a form of whitespace that is easy for you to read, work with, and debug.<br />
<br />
== Naming files ==<br />
<br />
First of all, don't put spaces in filenames;<br />
this causes errors on some systems.<br />
Use underscores('''_''') instead.<br />
<br />
If the IDs of your scenarios are different from their names,<br />
name the files after the IDs, not the names.<br />
That way it is easier to tell which scenario is next.<br />
<br />
On some systems, filenames are case-sensitive. This means that if the ID has capital or lowercase letters, then the files must have identical capital or lowercase letters. <br />
<br />
Use the scenario number and an underscore as a name prefix of your scenario files, and if you have more than 9 of these put 0 at the beginning of single-digit numbers. This will make them list in order, which is convenient for people trying to read your campaign.<br />
<br />
While many campaigns use the same sort of number prefixing for their map files, it's better not to if (as sometimes happens) your campaign needs to use the same map twice.<br />
<br />
== WML variables ==<br />
<br />
(For information about what WML variables are, see [[VariablesWML]].)<br />
These shouldn't be used except when necessary.<br />
[have_unit] tags can often be used instead.<br />
Also, make sure that your scenarios<br />
clear meaningless variables using [clear_variable].<br />
<br />
For variable values, use 'yes' and 'no' for boolean values<br />
rather than 1 and 0.<br />
It's clearer to people who don't know programming.<br />
<br />
== See Also ==<br />
* [[ReferenceWML]]<br />
<br />
[[Category:WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=InternalActionsWML&diff=28151InternalActionsWML2009-02-02T01:44:04Z<p>ShikadiQueen: /* [event] */ Mention Wesnoth 1.5.9 allowing SUFs in [fire_event]</p>
<hr />
<div>{{WML Tags}}<br />
== Internal actions ==<br />
<br />
Internal actions are actions that WML uses internally that do not directly affect gameplay, for example storing a variable.<br />
<br />
The internal actions '''[if]''', '''[while]''', and '''[event]''' describe when/whether sets of actions should be executed.<br />
<br />
== [if] ==<br />
<br />
Executes different sets of actions based on whether the conditions described in the condition tags are true or not.<br />
<br />
Condition tags:<br />
* '''[have_unit]''': a unit passing this filter with >0 HP exists<br />
** [[StandardUnitFilter]] (almost... '''Note:''' does not check for matching units in the recall list)<br />
** '''count''' {{DevFeature}}: if used, the given number of units must match the filter. Accepts a number, range, or comma separated range; default "1-99999" <br />
<br />
* '''[have_location]''': a location passing this filter exists <br />
** [[StandardLocationFilter]]<br />
** '''count''' {{DevFeature}}: if used, the given number of location must match the filter. Accepts a number, range, or comma separated range; default "1-99999" <br />
<br />
* '''[and]''': If an [and] is present, all must evaluate to true in order for the [if] to evaluate true. Useful as a bracket for complex conditions, but not strictly necessary.<br />
** condition tags as in [if]: if these evaluate to true, [and] evaluates to true.<br />
<br />
* '''[or]''': If an [or] is present, one must evaluate to true in order for the [if] to evaluate true. ([[AdvancedConditionalWML|Example]])<br />
** condition tags as in [if]: if these evaluate to true, '''[or]''' evaluates to true. <br />
<br />
* '''[not]''': If a [not] is present, none must evaluate to true in order for the [if] to evaluate true.<br />
** condition tags as in [if]: if these evaluate to true, [not] evaluates to false.<br />
<br />
* '''[and],[or],[not]''': all top-level filters will support in-order conditional handling of and, or, and not. One important thing to remember is, if you have multiple [or]s, you should not wrap your first conditional statement into an [or] block.<br />
<br />
* '''[variable]''': tests something about the value of a WML variable (see [[VariablesWML]])<br />
** '''name''': the name of the variable to test the value of<br>Only one of the following keys should be used for comparing the value of the variable to another value:<br />
** '''equals''': $name is equal (string wise) to this<br />
** '''not_equals''': $name is not equal to this<br />
** '''greater_than''': $name is numerically greater than this<br />
** '''less_than''': $name is less than this<br />
** '''greater_than_equal_to''': $name is not less than this<br />
** '''less_than_equal_to''': $name is not greater than this<br />
** '''numerical_not_equals''': $name is greater than or less than this<br />
** '''numerical_equals''': $name is not greater than or less than this<br />
** '''boolean_equals''': $name has the same boolean value (e.g. off, false, 0, no)<br />
** '''contains''': $name contains this string<br />
** {{DevFeature}} '''boolean_not_equals''': $name has not the same boolean value. Strictly a syntactic shortcut for the following syntax that served its absence in 1.4:<br />
[not]<br />
[variable]<br />
name=...<br />
boolean_equals=...<br />
[/variable]<br />
[/not]<br />
<br />
After condition tags:<br />
* '''[then]''': contains a set of action tags which should be executed if all conditions are true, or all conditions in any single [or] are true<br />
* '''[else]''': contains a set of action tags which should be executed if any condition is false, and all [or] tags are false<br />
<br />
== [switch] {{DevFeature}} ==<br />
<br />
Executes different sets of action based on the value of a variable.<br />
[switch]<br />
variable=foo<br />
[case]<br />
value="A"<br />
... WML if foo=A ...<br />
[/case]<br />
[case]<br />
value="B"<br />
... WML if foo=B ...<br />
[/case]<br />
[else]<br />
... WML if not foo=A nor foo=B ...<br />
[/else]<br />
[/switch]<br />
<br />
* '''variable''': name of the variable to check.<br />
* '''[case]''': Case block. Contains:<br />
** '''value''': value to test the variable against.<br />
** the action WML to execute if the variable matches the value (rest of the block).<br />
* '''[else]''': Block of action WML to execute if no '''[case]''' block matches.<br />
<br />
== [while] ==<br />
<br />
Executes commands if all conditions are true.<br />
Continues to execute them until a condition is not true.<br />
<br />
Executes a maximum of 1024 iterations per invocation.<br />
Condition tags are the same as for [if]<br />
<br />
After condition tags:<br />
* '''[do]''': contains actions that should be executed repeatedly until some condition is false.<br />
<br />
The '''[while]''' tag is useful for iterating over an array.<br />
An array is a list of values.<br />
The ''number''th value in the array '''array''' is stored in the WML variable '''''array''[number]'''.<br />
Note that if '''number''' is the value of the variable '''variable''',<br />
the expression '''$''array''[$variable]''' will return the ''number''th value in ''array''.<br />
The macros 'FOREACH' and 'NEXT' ([[UtilWML]]) can be used to iterate over an array;<br />
i.e. run a set of actions once per element of the array.<br />
<br />
=== {FOREACH} ===<br />
If you wish to use a "for-each" iteration format (useful for example when you want to do an iteration for each row in a table) you can use the {{LinkMacro|FOREACH}} and {{LinkMacro|NEXT}} predefined macros.<br />
<br />
=== {REPEAT} ===<br />
You can use the {{LinkMacro|REPEAT}} macro to perform a quick iteration for a number of times you specify.<br />
<br />
== [event] ==<br />
<br />
This adds a new event to the scenario.<br />
The event is in the normal format for an '''[event]''' tag (See [[EventWML]]).<br />
This is useful if you want an event that can only be triggered when a prior event is fulfilled<br />
<br />
These tags describe actions that affect the values of WML variables<br />
(see [[VariablesWML]] for information on WML variables,<br />
and [[UtilWML]] for convenient macro shortcuts for some of these):<br />
* '''[set_variable]''': manipulates a WML variable. {{Note:Predefined Macro|VARIABLE}} <br />
** '''name''': the name of the variable to manipulate<br />
** '''value''': set the variable to the given value (can be numeric or string). This only interprets dollars signs if it is the very first character, and then the entire value must be a simple variable name. (in 1.3.2, has the same effect as format. Use literal for no substitution)<br />
** '''literal''': set the variable to the given value (can be numeric or string). This does not interpret any dollars signs.<br />
** '''format''': set the variable to the given value. Interprets the dollar sign to a higher degree than most actions. (see [[VariablesWML]])<br />
** '''to_variable''': Fully processes its value as in ''format'', and then gets the variable with that name.<br />
** '''add''': add the given amount to the variable. To subtract, add a negative number.<br />
** '''multiply''': multiply the variable by the given number. To divide, multiply by the inverse eg: 4/2 = 4 * 1/2 = 4 * 0.5. To negate, multiply by -1. The result is an integer.<br />
** '''divide''': divide the variable by the given number. The result is an integer.<br />
** '''modulo''': returns the remainder of an integer division. Both variables need to be an integer, the result is also an integer. eg 5 % 2 = 1.<br />
** '''random''': the variable will be randomly set.<br>You may provide a comma separated list of possibilities, e.g. 'random=Bob,Bill,Bella'.<br>You may provide a range of numbers (integers), e.g. 'random=3..5'.<br>You may combine these, e.g. 'random=100,1..9', in which case there would be 1/10th chance of getting 100, just like for each of 1 to 9. Dollars signs are only normally interpreted here, so it is harder to have a dynamically determined range. You would need to create the random-string with ''format''.<br />
** '''rand''': does the same as random, but has better MP support. See [[BuildingMultiplayerExamples]] for more info on the MP case. '''It is highly recommended that you use this feature for randomization.'''<br />
** '''time=stamp''': Retrieves a timestamp in milliseconds since wesnoth was started, can be used as timing aid. Don't try to use this as random value in MP since it will cause an OOS.<br />
** {{DevFeature}} '''string_length''': Retrieves the length in characters of the string passed as this attribute's value; such string is parsed and variable substitution applied automatically (see [[VariablesWML]] for details).<br />
** {{DevFeature}} '''[join]''' joins an array of strings to create a textual list<br />
***variable: name of the array<br />
***key: the key of each array element(array[$i].foo) in which the strings are stored<br />
***separator: separator to connect the elements<br />
***remove_empty: whether to ignore empty elements<br />
<br />
* {{DevFeature}} '''[set_variables]''': manipulates a WML array<br />
** '''name''': the name of the container to manipulate<br />
** '''mode''': one of the following values:<br />
***replace: will clean the array '''name''' and replace it with given data<br />
***append: will append given data to the current array<br />
***merge: will merge in the given data into '''name'''<br />
***insert: will insert the given data at the index specified in the '''name''' attribute, such as name=my_array[1]. The default index is zero, which will insert to the front of the array. '''Note:''' if an invalid index is used, empty containers will be created before the insertion is performed. In other words, do not attempt to insert at an index unless the variable already contains data at that index. This limitation may be removed in future versions.<br />
** '''to_variable''': data will be set to the given array<br />
** '''[value]''': the WML inside the [value] tags will be stored in data, variables will be interpolated directly, use $| in order to escape the $ sign, you can store arrays of WML by supplying multiple [value] tags, example:<br />
[set_variables]<br />
name=arr<br />
mode=replace<br />
[value]<br />
foo=bar<br />
[/value]<br />
[value]<br />
foo=more<br />
[/value]<br />
[/set_variables]<br />
{DEBUG_MSG $arr[0].foo}<br />
{DEBUG_MSG $arr[1].foo}<br />
=>bar; more<br />
** '''[literal]''': same as '''[value]''', but variables will not be substituted, '''[literal]''' and '''[value]''' can not be used in the same [set_variables] tag, i.e. you can not create arrays by piling a mix of '''[value]''' and '''[literal]''' tags<br />
**'''[split]''' splits a textual list into an array which will then be set to data<br />
***list: textual list to split<br />
***key: the key of each array element(array[$i].foo) in which the strings are stored<br />
***separator: separator to separate the elements<br />
***remove_empty: wether to ignore empty elements<br />
<br />
* {{DevFeature}} '''[fire_event]''': trigger a WML event<br />
** '''name''': the name of event to trigger<br />
** '''[primary_unit]''': primary unit for the event (usually the attacker) (optional)<br />
** '''[secondary_unit]''': secondary unit for the event (usually the defender) (optional)<br />
** both tags have some keys which are optional :<br />
*** '''x,y''': location of this unit<br />
*** In Wesnoth 1.5.9 and onwards, [primary_unit] and [secondary_unit] can take a [[FilterWML|Standard Unit Filter]], but it will never match on a recall list unit. If it matches multiple units, the first unit that would be obtained with [store_unit] will be used in the relevant event parameter ($unit or $secondary_unit) and event filter.<br />
** '''[primary_attack]''': information passed to the primary attack filter and $weapon variable on the new event.<br />
** '''[secondary_attack]''': information passed to the second attack filter and $second_weapon variable on the new event.<br />
<br />
* '''[store_unit]''': stores details about units into game variables.<br>Common usage is to manipulate a unit by using [store_unit] to store it into a variable, followed by manipulation of the variable, and then [unstore_unit] to re-create the unit with the modified variables.<br>Note: stored units also exist on the field, and modifying the stored variable will not automatically change the stats of the units. You need to use [unstore_unit]. See also [unstore_unit], [[DirectActionsWML]], and '''FOREACH''', [[UtilWML]]<br />
** '''[filter]''': [[StandardUnitFilter]] all units matching this filter will be stored. If there are multiple units, they will be stored into an array of variables.<br />
** '''variable''': the name of the variable into which to store the unit(s)<br />
** '''mode''': defaults to ''always_clear'', which clears the variable, whether or not a match is found. If mode is set to ''replace'', the variable will only be cleared if a match is found. If mode is set to ''append'', the variable will not be cleared.<br />
** '''kill''': if 'yes' the units that are stored will be removed from play. This is useful for instance to remove access to a player's recall list, with the intent to restore the recall list later.<br />
:When a unit is stored, the following values may be manipulated with '''[set_variable]'''<br />
:* description<br />
:* experience<br />
:* facing<br />
:* gender<br />
:* canrecruit<br />
:* overlays<br />
:* goto_x<br />
:* goto_y<br />
:* hitpoints<br />
:* moves<br />
:* resting<br />
:* side<br />
:* type<br />
:* unrenamable<br />
:* upkeep<br />
:* user_description<br />
:* x<br />
:* y<br />
:* [variables]<br />
:* [status]<br />
:* [modifications]<br />
Variables, status, and modifications are children of the stored unit variable. Example:<br />
[set_variable]<br />
name=unit_store.status.poisoned<br />
value=yes<br />
[/set_variable]<br />
<br />
:All keys and tags in the unit definition may be manipulated, including some others. Here is a sample list. If you have a doubt about what keys are valid or what the valid value range is for each key, code a [store_unit] event, save the game, and examine what keys are in the file.<br />
:* advances_to<br />
:* alignment<br />
:* alpha<br />
:* attacks_left<br />
:* canrecruit<br />
:* controller<br />
:* cost<br />
:* description<br />
:* experience<br />
:* facing<br />
:* flying<br />
:* fog<br />
:* gender<br />
:* get_hit_sound<br />
:* gold<br />
:* goto_x<br />
:* goto_y<br />
:* hitpoints<br />
:* id<br />
:* image<br />
:* image_defensive<br />
:* income<br />
:* language_name (same as the name key in the unit config)<br />
:* level<br />
:* max_attacks<br />
:* max_experience<br />
:* max_hitpoints<br />
:* max_moves<br />
:* movement<br />
:* movement_type<br />
:* moves<br />
:* race<br />
:* resting<br />
:* shroud<br />
:* side<br />
:* type<br />
:* unit_description<br />
:* unrenamable<br />
:* usage<br />
:* value<br />
:* x<br />
:* y<br />
:* zoc<br />
:* [advancement]<br />
:* [/advancement]<br />
:* [movement_costs]<br />
:* [/movement_costs]<br />
:* [defense]<br />
:* [/defense]<br />
:* [resistance]<br />
:* [/resistance]<br />
:* [variables]<br />
:* [/variables]<br />
:* [status]<br />
:* [/status]<br />
:* [attack]<br />
:* [/attack]<br />
:* [modifications_description]<br />
:* [/modifications_description]<br />
:* [modifications]<br />
:* [/modifications]<br />
<br />
* '''[store_starting_location]''': Stores the starting location of a side's leader in a variable. The variable is a composite type which will have members 'x', 'y', 'terrain' (the terrain type for a starting location is always 'K' unless it has been changed) and {{DevFeature}} 'owner_side' (villages only)<br />
** '''side''': the side whose starting location is to be stored<br />
** '''variable''': (default='location'): the name of the variable to store the location in<br />
* '''[store_locations]''': Stores a series of locations that pass certain criteria into an array. Each member of the array has members 'x' and 'y' (the position) and 'terrain' (the terrain type) and {{DevFeature}} 'owner_side' (villages only).<br />
** [[StandardLocationFilter]]: a location or location range which specifies the locations to store. You must specify this or no locations will be stored.<br />
** '''variable''': the name of the variable (array) into which to store the locations<br />
** '''terrain''': a comma-sperated list of terrain codes. (See [[TerrainCodesWML]] for possible values.) If present, locations will only be chosen if the code for the terrain type of that location is listed.<br />
** '''radius''': if present, any locations which are within '''radius''' hexes of the location filter will also be stored<br />
** '''[filter]''': [[StandardUnitFilter]] only locations with units on them that match the filter will be stored. Use a blank filter to only store locations with units.<br />
* '''[store_villages]''': Stores a series of locations of villages that pass certain criteria into an array. Each member of the array has members 'x' and 'y' (the position) and 'terrain' (the terrain type) and {{DevFeature}} 'owner_side'.<br />
** '''owner_side''': a side number. If present, only villages owned by this side will be choosen. If owner_side=0, store the unowned villages. <br />
** '''variable''': the name of the variable (array) into which to store the locations<br />
** '''terrain''': a series of terrain characters. (See [[TerrainLettersWML]] for possible values.) If present, villages will only be chosen if the terrain code of the terrain type of that location is listed. You may give a comma separated list of terrains.<br />
* '''[store_gold]''': Stores a side's gold into a variable.<br />
** '''side''': (default=1) the side for which the gold should be stored<br />
** '''variable''': (default='gold') the name of the variable to store the gold in<br />
* '''[store_side]''': stores information about a certain side in a variable. The variable will contain the member variables 'name', 'team_name', 'gold' and 'income', 'fog', 'shroud', 'user_team_name', 'colour', 'controller', 'village_gold' and 'recruit'.)<br />
** '''side''': the side whose information should be stored<br />
** '''variable''': the name of the variable to store the information in<br />
* '''[clear_variable]''': This will delete the given variable or array. This is good to use to clean up the set of variables -- e.g. a well-behaved scenario will delete any variables that shouldn't be kept for the next scenario before the end of the scenario.<br> Tags and variables of stored units can also be cleared, meaning that [trait]s and [object]s, for example, can be removed.<br />
** '''name''': the name of the variable to clear, multiple comma-separated variable names can be given.<br />
* '''[role]''': tries to find a unit to assign a role to.<br>This is useful if you want to choose a non-major character to say some things during the game. Once a role is assigned, you can use '''role=''' in a unit filter to identify the unit with that role (See [[FilterWML]]).<br>However, there is no guarantee that roles will ever be assigned. You can use '''[have_unit]''' (see [if]) to see whether a role was assigned. This tag uses a [[StandardUnitFilter]] with the modification to order the search by type, mark only the first unit found with the role, and the role attribute is not used in the search. If for some reason you want to search for units that have or don't have existing roles, you can use one or more [not] filters. The will check recall lists in addition to units on the map. In normal use, you will probably want to include a ''side'' attribute to force the unit to be on a particular side.<br />
** '''role''': the value to store as the unit's role. This role is not used in the [[StandardUnitFilter]] when doing the search for the unit to assign this role to.<br />
** '''type''': a comma-separated list of possible types the unit can be. If any types are given, then units will be searched by type in the order listed. If no type is given, then no particular order with respect to type is guaranteed.<br />
* {{DevFeature}} '''[store_map_dimensions]''': Stores the map dimensions in a variable.<br />
** '''variable''': the name of the variable where the values will be saved into. If it is skipped, a variable 'map_size' is used, and its contents overridden, if they existed already. The result is a container variable, with members ''width'' and ''height''.<br />
* {{DevFeature}} '''[insert_tag]''': inserts a variable as WML<br />
**'''name''': the ["name"] to be given to the tag<br />
**'''variable''': name of the variable to be inserted<br />
* {{DevFeature}} '''[store_time_of_day]''': stores time of day information from the current scenario into a WML variable container.<br />
** '''variable''': (default='time_of_day') name of the container on which to store the information. The container will be filled with the same attributes found on [[TimeWML]].<br />
** '''turn''': (defaults to the current turn number) changes the turn number for which time of day information should be retrieved.<br />
<br />
== See Also ==<br />
* [[VariablesWML]]<br />
* [[DirectActionsWML]]<br />
* [[InterfaceActionsWML]]<br />
* [[EventWML]]<br />
* [[ReferenceWML]]<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ImagePathFunctions&diff=28142ImagePathFunctions2009-02-01T02:28:48Z<p>ShikadiQueen: Documenting ~SCALE()</p>
<hr />
<div>Image Path Functions provide a simple method for WML coders to alter the way their specified images will be displayed in the game. All of the function parameters are included at the end of an image path and should not contain any spaces or special characters (other than those specified here).<br />
<br />
== Team-Color Function ==<br />
In Wesnoth version 1.2, the only Image Path Function was '''~TC()''', which took two comma-separated parameters: the team number and the source color palette. The valid values for both of these parameters are defined in the file ''data/team-colors.cfg''<br />
<br />
=== Syntax ===<br />
'''~TC(''' ''team number'' ''',''' ''source color palette'' ''')'''<br />
*''team number'' - this is the first parameter, a number 1-9 signifying the team number of a unit. Number 1 typically means the red team, 2 typically means the blue team, and so on (unless the scenario color settings for any side have been altered).<br />
*''source color palette'' - the second parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
<br />
== Re-Color Function ==<br />
May be used to change some colors in an image.<br />
=== Syntax ===<br />
'''~RC(''' ''source color palette'' '''>''' ''color range ID'' ''')'''<br />
*''source color palette'' - the first parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
*''color range ID'' - this is the second parameter, signifying the ID of a color range defined in the file ''data/core/team-colors.cfg'' (or it may be a custom ID for a color range defined locally). <br />
<br />
{{DevFeature}} In the development version, the following syntax changes the RC function behavior for simply replacing colors matching the source color palette with colors of the target color palette:<br />
<br />
'''~RC(''' ''source color palette'' '''=''' ''target color palette'' ''')'''<br />
<br />
=== Example ===<br />
In the following example, the magenta regions in an elvish captain's image are turned a healthy shade of green:<br />
<br />
[message]<br />
speaker=narrator<br />
image=units/elves-wood/captain.png~RC(magenta>green)<br />
message=_ "Now I am on the green team."<br />
[/message]<br />
<br />
The IDs of the color ranges may be the lowercased English name of the palette's base color (e.g. 'red', 'brown', etc.). They may also be numeric color indices from the palette WML included with the game, but this is not recommended<br />
<br />
== Flip Function ==<br />
May be used to flip an image horizontally and/or vertically<br />
=== Syntax ===<br />
'''~FL(''' ''optional argument list'' ''')'''<br />
*''vertical'' - if the string "vert" is found anywhere in the argument list, the image will be flipped vertically.<br />
*''horizontal'' - if the string "horiz" is found anywhere in the argument list, the image will be flipped horizantally.<br />
*if the argument list is empty, the image will only be flipped horizantally.<br />
<br />
== Greyscale Function ==<br />
May be used to greyscale the image (turn to black and white)<br />
=== Syntax ===<br />
'''~GS( )'''<br />
<br />
== Crop Function {{DevFeature}} ==<br />
Extracts a rectangular section of an image file.<br />
=== Syntax ===<br />
'''~CROP(x,y,width,height)'''<br />
* ''x'',''y'': top-left corner coordinates for the rectangular section extracted. Must be greater or equal than zero, and inside the image's bounds.<br />
* ''width'': width of the selected region. Must be less than or equal to the original image's width.<br />
* ''height'': height of the selected region. Must be less than or equal to the original image's height.<br />
<br />
== Color-shift function {{DevFeature}} ==<br />
Performs simple per-channel color shifts by adding the arguments to the respective color channels.<br />
=== Syntax ===<br />
''Multi-channel:'' '''~CS(r,g,b)'''<br />
''Single-channel:'' '''~R(v)''', '''~G(v)''', '''~B(v)'''<br />
<br />
The multichannel syntax assumes all arguments are set to zero initially, so one can use, e.g. ~CS(2,4) to add +2 and +4 units to the red and green channels respectively, leaving the blue channel intact. Arguments may be negative to diminish a channel's value; this can be used to change an image's brightness. Checks for out-of-range arguments or results (less than 0 or greater than 255) are made, so the resultant values are truncated if necessary.<br />
<br />
The single channel syntax behaves exactly the same, except that only single-channel modifications are made per function. However, one can stack them to produce the same behavior as ~CS(), e.g. ~R(r)~G(g)~B(b), but that tends to be just a performance loss.<br />
<br />
Any color-shift is performed before changing opacity or desaturating the graphic (see ~O() and ~GS()).<br />
<br />
== Image-scaling function {{DevFeature}} ==<br />
Scales a graphic up or down.<br />
=== Syntax ===<br />
<br />
'''~SCALE( ''new_width'', ''new_height'' )<br />
<br />
The ''new_width'' and ''new_height'' parameters are taken as the image's original width or height, respectively, if one of them happens to be zero. Negative values are treated in the same way, but an error is printed in stderr.<br />
<br />
== Opacity modifying function {{DevFeature}} ==<br />
Changes an image's opacity at render time.<br />
=== Syntax ===<br />
<br />
'''~O( ''factor or percentage%'' )'''<br />
<br />
If the argument includes the percentage symbol (''%''), it will be treated as a percentage of full (real) opacity; an image will be displayed at its native opacity with ~O(100%).<br />
<br />
Without the percentage symbol, the argument is assumed to be a factor by which the image's native opacity should be multiplied. Thus, ~O(0.5) and ~O(50%) are equivalent forms of specifying to reduce an image's opacity by half.<br />
<br />
== Blurring function {{DevFeature}} ==<br />
Blurs a graphic at render time using the same algorithm used for in-game dialogs.<br />
=== Syntax ===<br />
<br />
'''~BL( ''radius'' )'''<br />
<br />
== Precedence of Functions {{DevFeature}} ==<br />
<br />
In Wesnoth 1.5.8 and earlier, all functions except RC(), TC() and FL() are non-stackable. That is, stuff like "units/elves-wood/fighter.png~CROP(0,0,20,20)~CROP(10,10,10,10)" wouldn't work in an intuitive way; instead of taking a crop of the rectangle x=20;y=20;w=40;h=40 and then taking a crop from ''that'' rectangle as x=10;y=10;w=10;h=10 resulting in the area x=30;y=30;w=10;h=10 from the original graphic, it would take the x=10;y=10;w=10;h=10 area from the graphic right away, as if the first CROP function wasn't used at all.<br />
<br />
In Wesnoth 1.5.9 and later, all functions are applied in left-to-right order, with the exception of RC() and TC() which are applied always before any other functions.<br />
<br />
[[Category:WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ImagePathFunctions&diff=28141ImagePathFunctions2009-02-01T02:25:03Z<p>ShikadiQueen: Mentioned stuff about functor precedence and the changes between 1.5.8 and 1.5.9</p>
<hr />
<div>Image Path Functions provide a simple method for WML coders to alter the way their specified images will be displayed in the game. All of the function parameters are included at the end of an image path and should not contain any spaces or special characters (other than those specified here).<br />
<br />
== Team-Color Function ==<br />
In Wesnoth version 1.2, the only Image Path Function was '''~TC()''', which took two comma-separated parameters: the team number and the source color palette. The valid values for both of these parameters are defined in the file ''data/team-colors.cfg''<br />
<br />
=== Syntax ===<br />
'''~TC(''' ''team number'' ''',''' ''source color palette'' ''')'''<br />
*''team number'' - this is the first parameter, a number 1-9 signifying the team number of a unit. Number 1 typically means the red team, 2 typically means the blue team, and so on (unless the scenario color settings for any side have been altered).<br />
*''source color palette'' - the second parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
<br />
== Re-Color Function ==<br />
May be used to change some colors in an image.<br />
=== Syntax ===<br />
'''~RC(''' ''source color palette'' '''>''' ''color range ID'' ''')'''<br />
*''source color palette'' - the first parameter is a source color palette, usually magenta. Do not surround this parameter with quotes.<br />
*''color range ID'' - this is the second parameter, signifying the ID of a color range defined in the file ''data/core/team-colors.cfg'' (or it may be a custom ID for a color range defined locally). <br />
<br />
{{DevFeature}} In the development version, the following syntax changes the RC function behavior for simply replacing colors matching the source color palette with colors of the target color palette:<br />
<br />
'''~RC(''' ''source color palette'' '''=''' ''target color palette'' ''')'''<br />
<br />
=== Example ===<br />
In the following example, the magenta regions in an elvish captain's image are turned a healthy shade of green:<br />
<br />
[message]<br />
speaker=narrator<br />
image=units/elves-wood/captain.png~RC(magenta>green)<br />
message=_ "Now I am on the green team."<br />
[/message]<br />
<br />
The IDs of the color ranges may be the lowercased English name of the palette's base color (e.g. 'red', 'brown', etc.). They may also be numeric color indices from the palette WML included with the game, but this is not recommended<br />
<br />
== Flip Function ==<br />
May be used to flip an image horizontally and/or vertically<br />
=== Syntax ===<br />
'''~FL(''' ''optional argument list'' ''')'''<br />
*''vertical'' - if the string "vert" is found anywhere in the argument list, the image will be flipped vertically.<br />
*''horizontal'' - if the string "horiz" is found anywhere in the argument list, the image will be flipped horizantally.<br />
*if the argument list is empty, the image will only be flipped horizantally.<br />
<br />
== Greyscale Function ==<br />
May be used to greyscale the image (turn to black and white)<br />
=== Syntax ===<br />
'''~GS( )'''<br />
<br />
== Crop Function {{DevFeature}} ==<br />
Extracts a rectangular section of an image file.<br />
=== Syntax ===<br />
'''~CROP(x,y,width,height)'''<br />
* ''x'',''y'': top-left corner coordinates for the rectangular section extracted. Must be greater or equal than zero, and inside the image's bounds.<br />
* ''width'': width of the selected region. Must be less than or equal to the original image's width.<br />
* ''height'': height of the selected region. Must be less than or equal to the original image's height.<br />
<br />
== Color-shift function {{DevFeature}} ==<br />
Performs simple per-channel color shifts by adding the arguments to the respective color channels.<br />
=== Syntax ===<br />
''Multi-channel:'' '''~CS(r,g,b)'''<br />
''Single-channel:'' '''~R(v)''', '''~G(v)''', '''~B(v)'''<br />
<br />
The multichannel syntax assumes all arguments are set to zero initially, so one can use, e.g. ~CS(2,4) to add +2 and +4 units to the red and green channels respectively, leaving the blue channel intact. Arguments may be negative to diminish a channel's value; this can be used to change an image's brightness. Checks for out-of-range arguments or results (less than 0 or greater than 255) are made, so the resultant values are truncated if necessary.<br />
<br />
The single channel syntax behaves exactly the same, except that only single-channel modifications are made per function. However, one can stack them to produce the same behavior as ~CS(), e.g. ~R(r)~G(g)~B(b), but that tends to be just a performance loss.<br />
<br />
Any color-shift is performed before changing opacity or desaturating the graphic (see ~O() and ~GS()).<br />
<br />
== Opacity modifying function {{DevFeature}} ==<br />
Changes an image's opacity at render time.<br />
=== Syntax ===<br />
<br />
'''~O( ''factor or percentage%'' )'''<br />
<br />
If the argument includes the percentage symbol (''%''), it will be treated as a percentage of full (real) opacity; an image will be displayed at its native opacity with ~O(100%).<br />
<br />
Without the percentage symbol, the argument is assumed to be a factor by which the image's native opacity should be multiplied. Thus, ~O(0.5) and ~O(50%) are equivalent forms of specifying to reduce an image's opacity by half.<br />
<br />
== Blurring function {{DevFeature}} ==<br />
Blurs a graphic at render time using the same algorithm used for in-game dialogs.<br />
=== Syntax ===<br />
<br />
'''~BL( ''radius'' )'''<br />
<br />
== Precedence of Functions {{DevFeature}} ==<br />
<br />
In Wesnoth 1.5.8 and earlier, all functions except RC(), TC() and FL() are non-stackable. That is, stuff like "units/elves-wood/fighter.png~CROP(0,0,20,20)~CROP(10,10,10,10)" wouldn't work in an intuitive way; instead of taking a crop of the rectangle x=20;y=20;w=40;h=40 and then taking a crop from ''that'' rectangle as x=10;y=10;w=10;h=10 resulting in the area x=30;y=30;w=10;h=10 from the original graphic, it would take the x=10;y=10;w=10;h=10 area from the graphic right away, as if the first CROP function wasn't used at all.<br />
<br />
In Wesnoth 1.5.9 and later, all functions are applied in left-to-right order, with the exception of RC() and TC() which are applied always before any other functions.<br />
<br />
[[Category:WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Template:WML_Tags&diff=28088Template:WML Tags2009-01-24T22:58:25Z<p>ShikadiQueen: Added link to wml_message tag's documentation.</p>
<hr />
<div>{| class="gallery" style="width:175px;float: right;border: 1px solid #B48648; color:#B48648; font-size: 7pt;margin-left;10px;"<br />
|-<br />
|<br />
<span style="float: right;"><small class="editlink noprint plainlinksneverexpand">[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit ]</small></span><br />
'''WML Tags'''<br />
<br />
|-<br />
|''A:'' <br />
[[AbilitiesWML|abilities]],<br />
[[CampaignWML#The_.5Babout.5D_tag|about]],<br />
[[UnitWML|advancefrom]],<br />
[[UnitWML|advancement]],<br />
[[StatisticalScenarioWML|advances]],<br />
[[AiWML|ai]],<br />
[[DirectActionsWML|allow_recruit]],<br />
[[DirectActionsWML|allow_undo]],<br />
[[InterfaceActionsWML|animate_unit]],<br />
[[AnimationWML|animation]],<br />
[[VariablesWML|array]],<br />
[[UnitWML|attack]],<br />
[[AnimationWML|attack_filter]], <br />
[[StatisticalScenarioWML|attacks]],<br />
[[AiWML|avoid]];<br />
|-<br />
|''B:'' <br />
[[UnitWML|base_unit]],[[CampaignWML#The_.5Bbinary_path.5D_tag|binary_path]],[[HelpWML|bold]], [[EditorWML|brush]];<br />
|-<br />
|''C:'' <br />
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]], [[DirectActionsWML|capture_village]], [[ReplayWML|choose]],<br />
[[InternalActionsWML|clear_variable]],<br />
[[InterfaceActionsWML|colour_adjust]],<br />
command([[InterfaceActionsWML|action]], [[ReplayWML|replay]]);<br />
|-<br />
|''D:'' <br />
[[AbilitiesWML|damage]],[[StatisticalScenarioWML|deaths]],[[InterfaceActionsWML|debug_message]],[[UnitWML|defend]],[[StatisticalScenarioWML|defends]],<br />
[[UnitWML|defense]],<br />
[[InterfaceActionsWML|delay]],<br />
[[ReplayWML|destination]],<br />
[[DirectActionsWML|disallow_recruit]],<br />
[[InternalActionsWML|do]];<br />
|-<br />
|''E:'' <br />
[[EditorWML|editor_group]], [[EditorWML|editor_music]], <br />
[[EditorWML|editor_times]], [[EditorWML|editor_tool_hint]],<br />
[[EffectWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],<br />
[[DirectActionsWML|endlevel]],<br />
end_turn&nbsp;([[DirectActionsWML|action]], [[ReplayWML|replay]]),<br />
[[EraWML|era]],<br />
[[EventWML|event]],<br />
[[ThemeWML|expenses]];<br />
|-<br />
|''F:'' <br />
[[FilterWML|filter]], [[FilterWML|filter_location]], [[FilterWML|filter_second]], [[FilterWML|filter_vision]], [[InternalActionsWML|fire_event]], [[HelpWML|format]], [[AnimationWML|frame]];<br />
|-<br />
|''G:'' <br />
[[GameConfigWML|game_config]], [[ScenarioWML|generator]], [[DirectActionsWML|gold]], [[ThemeWML|gold]];<br />
|-<br />
|''H:'' <br />
[[InternalActionsWML|have_unit]], [[HelpWML|header]], [[DirectActionsWML|heal_unit]],[[InterfaceActionsWML|hide_unit]];<br />
|-<br />
|''I:'' <br />
[[InternalActionsWML|if]], [[TimeWML|illuminated_time]], [[TerrainGraphicsWML|image]],<br />
[[HelpWML|img]], [[ThemeWML|income]], [[InternalActionsWML|insert_tag]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];<br />
|-<br />
|''J:''<br />
[[HelpWML|jump]], [[InternalActionsWML|join]];<br />
|-<br />
|''K:'' <br />
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];<br />
|-<br />
|''L:'' <br />
[[LabelWML|label]] ([[InterfaceActionsWML|map]], [[ThemeWML|theme]]), [[LanguageWML|language]], [[AiWML|leader_goal]];<br />
|-<br />
|''M:'' <br />
[[ThemeWML|main_map]],[[ThemeWML|menu]], [[InterfaceActionsWML|message]], [[ThemeWML|mini_map]],<br />
[[AnimationWML|missile_frame]], [[SingleUnitWML|modifications]], [[DirectActionsWML|modify_side]],<br />
[[DirectActionsWML|modify_turns]], [[ReplayWML|move]], [[InterfaceActionsWML|move_unit_fake]], [[UnitWML|movement costs]],<br />
[[UnitsWML|movetype]], [[ScenarioWML|multiplayer]], [[EraWML|multiplayer_side]], [[InterfaceActionsWML|music]];<br />
|-<br />
|''N:'' <br />
[[AnimationWML|neighbour_unit_filter]], [[FilterWML|not]], [[ThemeWML|num_units]];<br />
|-<br />
|''O:'' <br />
[[DirectActionsWML|object]], [[InterfaceActionsWML|objectives]], [[InterfaceActionsWML|objective]],<br />
[[ThemeWML|observers]], [[InterfaceActionsWML|option]], [[InternalActionsWML|or]];<br />
|-<br />
|''P:'' <br />
[[ThemeWML|panel]], [[IntroWML|part]], [[DirectActionsWML|place_shroud]], [[ThemeWML|position]],<br />
[[InterfaceActionsWML|print]], [[AiWML|protect_location]], [[AiWML|protect_unit]];<br />
|-<br />
|''R:'' <br />
[[UnitsWML|race]], [[ReplayWML|random]], recall&nbsp;([[DirectActionsWML|action]], [[ReplayWML|replay]]), [[StatisticalScenarioWML|recalls]],<br />
[[ReplayWML|recruit]], [[StatisticalScenarioWML|recruits]], [[InterfaceActionsWML|redraw]],<br />
[[HelpWML|ref]], [[DirectActionsWML|remove_shroud]], [[InterfaceActionsWML|remove_unit_overlay]],<br />
[[InterfaceActionsWML|removeitem]], [[InterfaceActionsWML|remove_sound_source]], [[SavefileWML|replay]], [[SavefileWML|replay_start]],<br />
[[UnitWML|resistance]], [[ThemeWML|resolution]], [[ReplayWML|results]], [[InternalActionsWML|role]];<br />
|-<br />
|''S:'' <br />
[[SavefileWML|save]], [[ScenarioWML|scenario]],<br />
[[InterfaceActionsWML|scroll]], [[InterfaceActionsWML|scroll_to]],<br />
[[InterfaceActionsWML|scroll_to_unit]], [[AnimationWML|secondary_attack_filter]], [[AnimationWML|secondary_unit_filter]], [[HelpWML|section]],<br />
[[InterfaceActionsWML#.5Bset_menu_item.5D_.28SVN_trunk_only.29|set_menu_item]], [[DirectActionsWML|set_recruit]],<br />
[[InternalActionsWML|set_variable]], [[InternalActionsWML|set_variables]], <br />
[[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],<br />
[[InterfaceActionsWML|sound]], [[InterfaceActionsWML|sound_source]], [[ReplayWML|source]], [[EventWML|special_filter]], [[EventWML|special_filter_second]],<br />
[[InternalActionsWML|split]],<br />
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],<br />
[[ThemeWML|status]], [[DirectActionsWML|stone]], [[InternalActionsWML|store_gold]], [[InternalActionsWML|store_locations]],<br />
[[InternalActionsWML|store_map_dimensions]],<br />
[[InternalActionsWML|store_starting_location]], [[InternalActionsWML|store_side]], [[InternalActionsWML|store_time_of_day]], [[InternalActionsWML|store_unit]], [[InternalActionsWML|store_villages]] [[IntroWML|story]];<br />
|-<br />
|''T:'' <br />
[[AiWML|target]],<br />
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],<br />
[[DirectActionsWML|teleport]], [[UnitWML|teleport_anim]],<br />
terrain([[TerrainWML|define]], [[DirectActionsWML|create]]), [[TerrainGraphicsWML|terrain_graphics]], [[TerrainMaskWML|terrain_mask]], [[ScenarioWML#Test_scenario|test]],<br />
[[WesCamp|textdomain]], [[InterfaceActionsWML|text_input]], [[ThemeWML|theme]], [[InternalActionsWML|then]],<br />
[[TerrainGraphicsWML|tile]], [[TimeWML|time]], time_area&nbsp;([[DirectActionsWML|action]], [[ScenarioWML|scenario]]), <br />
[[ThemeWML|time_of_day]],<br />
[[HelpWML|topic]], [[HelpWML|toplevel]], [[SingleUnitWML|trait]], [[ThemeWML|turn]], [[ScenarioWML|tutorial]];<br />
|-<br />
|''U:'' <br />
[[InterfaceActionsWML|unhide_unit]], unit&nbsp;([[UnitWML|define]], [[SingleUnitWML|create]]),<br />
[[ThemeWML|unit_abilities]], [[ThemeWML|unit_alignment]], [[ThemeWML|unit_description]], [[AnimationWML|unit_filter]], [[ThemeWML|unit_hp]], [[ThemeWML|unit_image]], [[ThemeWML|unit_level]], [[ThemeWML|unit_moves]],<br />
[[InterfaceActionsWML|unit_overlay]], [[ThemeWML|unit_profile]], [[ThemeWML|unit_status]],<br />
[[ThemeWML|unit_traits]], [[ThemeWML|unit_type]], [[ThemeWML|unit_weapons]], [[ThemeWML|unit_xp]],<br />
[[UnitsWML|units]], [[DirectActionsWML|unstone]], [[DirectActionsWML|unstore_unit]], [[ThemeWML|upkeep]];<br />
|-<br />
| ''V:'' <br />
[[InternalActionsWML|variable]], [[VariablesWML|variables]], [[SideWML|village]], [[ThemeWML|villages]];<br />
|-<br />
| ''W:'' <br />
[[InternalActionsWML|while]], [[FilterWML|wml_filter]], [[InterfaceActionsWML|wml_message]];<br />
|}</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Template:WML_Tags&diff=28087Template:WML Tags2009-01-24T22:55:48Z<p>ShikadiQueen: Add additional links for the two variants of [time_area]</p>
<hr />
<div>{| class="gallery" style="width:175px;float: right;border: 1px solid #B48648; color:#B48648; font-size: 7pt;margin-left;10px;"<br />
|-<br />
|<br />
<span style="float: right;"><small class="editlink noprint plainlinksneverexpand">[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit ]</small></span><br />
'''WML Tags'''<br />
<br />
|-<br />
|''A:'' <br />
[[AbilitiesWML|abilities]],<br />
[[CampaignWML#The_.5Babout.5D_tag|about]],<br />
[[UnitWML|advancefrom]],<br />
[[UnitWML|advancement]],<br />
[[StatisticalScenarioWML|advances]],<br />
[[AiWML|ai]],<br />
[[DirectActionsWML|allow_recruit]],<br />
[[DirectActionsWML|allow_undo]],<br />
[[InterfaceActionsWML|animate_unit]],<br />
[[AnimationWML|animation]],<br />
[[VariablesWML|array]],<br />
[[UnitWML|attack]],<br />
[[AnimationWML|attack_filter]], <br />
[[StatisticalScenarioWML|attacks]],<br />
[[AiWML|avoid]];<br />
|-<br />
|''B:'' <br />
[[UnitWML|base_unit]],[[CampaignWML#The_.5Bbinary_path.5D_tag|binary_path]],[[HelpWML|bold]], [[EditorWML|brush]];<br />
|-<br />
|''C:'' <br />
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]], [[DirectActionsWML|capture_village]], [[ReplayWML|choose]],<br />
[[InternalActionsWML|clear_variable]],<br />
[[InterfaceActionsWML|colour_adjust]],<br />
command([[InterfaceActionsWML|action]], [[ReplayWML|replay]]);<br />
|-<br />
|''D:'' <br />
[[AbilitiesWML|damage]],[[StatisticalScenarioWML|deaths]],[[InterfaceActionsWML|debug_message]],[[UnitWML|defend]],[[StatisticalScenarioWML|defends]],<br />
[[UnitWML|defense]],<br />
[[InterfaceActionsWML|delay]],<br />
[[ReplayWML|destination]],<br />
[[DirectActionsWML|disallow_recruit]],<br />
[[InternalActionsWML|do]];<br />
|-<br />
|''E:'' <br />
[[EditorWML|editor_group]], [[EditorWML|editor_music]], <br />
[[EditorWML|editor_times]], [[EditorWML|editor_tool_hint]],<br />
[[EffectWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],<br />
[[DirectActionsWML|endlevel]],<br />
end_turn&nbsp;([[DirectActionsWML|action]], [[ReplayWML|replay]]),<br />
[[EraWML|era]],<br />
[[EventWML|event]],<br />
[[ThemeWML|expenses]];<br />
|-<br />
|''F:'' <br />
[[FilterWML|filter]], [[FilterWML|filter_location]], [[FilterWML|filter_second]], [[FilterWML|filter_vision]], [[InternalActionsWML|fire_event]], [[HelpWML|format]], [[AnimationWML|frame]];<br />
|-<br />
|''G:'' <br />
[[GameConfigWML|game_config]], [[ScenarioWML|generator]], [[DirectActionsWML|gold]], [[ThemeWML|gold]];<br />
|-<br />
|''H:'' <br />
[[InternalActionsWML|have_unit]], [[HelpWML|header]], [[DirectActionsWML|heal_unit]],[[InterfaceActionsWML|hide_unit]];<br />
|-<br />
|''I:'' <br />
[[InternalActionsWML|if]], [[TimeWML|illuminated_time]], [[TerrainGraphicsWML|image]],<br />
[[HelpWML|img]], [[ThemeWML|income]], [[InternalActionsWML|insert_tag]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];<br />
|-<br />
|''J:''<br />
[[HelpWML|jump]], [[InternalActionsWML|join]];<br />
|-<br />
|''K:'' <br />
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];<br />
|-<br />
|''L:'' <br />
[[LabelWML|label]] ([[InterfaceActionsWML|map]], [[ThemeWML|theme]]), [[LanguageWML|language]], [[AiWML|leader_goal]];<br />
|-<br />
|''M:'' <br />
[[ThemeWML|main_map]],[[ThemeWML|menu]], [[InterfaceActionsWML|message]], [[ThemeWML|mini_map]],<br />
[[AnimationWML|missile_frame]], [[SingleUnitWML|modifications]], [[DirectActionsWML|modify_side]],<br />
[[DirectActionsWML|modify_turns]], [[ReplayWML|move]], [[InterfaceActionsWML|move_unit_fake]], [[UnitWML|movement costs]],<br />
[[UnitsWML|movetype]], [[ScenarioWML|multiplayer]], [[EraWML|multiplayer_side]], [[InterfaceActionsWML|music]];<br />
|-<br />
|''N:'' <br />
[[AnimationWML|neighbour_unit_filter]], [[FilterWML|not]], [[ThemeWML|num_units]];<br />
|-<br />
|''O:'' <br />
[[DirectActionsWML|object]], [[InterfaceActionsWML|objectives]], [[InterfaceActionsWML|objective]],<br />
[[ThemeWML|observers]], [[InterfaceActionsWML|option]], [[InternalActionsWML|or]];<br />
|-<br />
|''P:'' <br />
[[ThemeWML|panel]], [[IntroWML|part]], [[DirectActionsWML|place_shroud]], [[ThemeWML|position]],<br />
[[InterfaceActionsWML|print]], [[AiWML|protect_location]], [[AiWML|protect_unit]];<br />
|-<br />
|''R:'' <br />
[[UnitsWML|race]], [[ReplayWML|random]], recall&nbsp;([[DirectActionsWML|action]], [[ReplayWML|replay]]), [[StatisticalScenarioWML|recalls]],<br />
[[ReplayWML|recruit]], [[StatisticalScenarioWML|recruits]], [[InterfaceActionsWML|redraw]],<br />
[[HelpWML|ref]], [[DirectActionsWML|remove_shroud]], [[InterfaceActionsWML|remove_unit_overlay]],<br />
[[InterfaceActionsWML|removeitem]], [[InterfaceActionsWML|remove_sound_source]], [[SavefileWML|replay]], [[SavefileWML|replay_start]],<br />
[[UnitWML|resistance]], [[ThemeWML|resolution]], [[ReplayWML|results]], [[InternalActionsWML|role]];<br />
|-<br />
|''S:'' <br />
[[SavefileWML|save]], [[ScenarioWML|scenario]],<br />
[[InterfaceActionsWML|scroll]], [[InterfaceActionsWML|scroll_to]],<br />
[[InterfaceActionsWML|scroll_to_unit]], [[AnimationWML|secondary_attack_filter]], [[AnimationWML|secondary_unit_filter]], [[HelpWML|section]],<br />
[[InterfaceActionsWML#.5Bset_menu_item.5D_.28SVN_trunk_only.29|set_menu_item]], [[DirectActionsWML|set_recruit]],<br />
[[InternalActionsWML|set_variable]], [[InternalActionsWML|set_variables]], <br />
[[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],<br />
[[InterfaceActionsWML|sound]], [[InterfaceActionsWML|sound_source]], [[ReplayWML|source]], [[EventWML|special_filter]], [[EventWML|special_filter_second]],<br />
[[InternalActionsWML|split]],<br />
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],<br />
[[ThemeWML|status]], [[DirectActionsWML|stone]], [[InternalActionsWML|store_gold]], [[InternalActionsWML|store_locations]],<br />
[[InternalActionsWML|store_map_dimensions]],<br />
[[InternalActionsWML|store_starting_location]], [[InternalActionsWML|store_side]], [[InternalActionsWML|store_time_of_day]], [[InternalActionsWML|store_unit]], [[InternalActionsWML|store_villages]] [[IntroWML|story]];<br />
|-<br />
|''T:'' <br />
[[AiWML|target]],<br />
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],<br />
[[DirectActionsWML|teleport]], [[UnitWML|teleport_anim]],<br />
terrain([[TerrainWML|define]], [[DirectActionsWML|create]]), [[TerrainGraphicsWML|terrain_graphics]], [[TerrainMaskWML|terrain_mask]], [[ScenarioWML#Test_scenario|test]],<br />
[[WesCamp|textdomain]], [[InterfaceActionsWML|text_input]], [[ThemeWML|theme]], [[InternalActionsWML|then]],<br />
[[TerrainGraphicsWML|tile]], [[TimeWML|time]], time_area&nbsp;([[DirectActionsWML|action]], [[ScenarioWML|scenario]]), <br />
[[ThemeWML|time_of_day]],<br />
[[HelpWML|topic]], [[HelpWML|toplevel]], [[SingleUnitWML|trait]], [[ThemeWML|turn]], [[ScenarioWML|tutorial]];<br />
|-<br />
|''U:'' <br />
[[InterfaceActionsWML|unhide_unit]], unit&nbsp;([[UnitWML|define]], [[SingleUnitWML|create]]),<br />
[[ThemeWML|unit_abilities]], [[ThemeWML|unit_alignment]], [[ThemeWML|unit_description]], [[AnimationWML|unit_filter]], [[ThemeWML|unit_hp]], [[ThemeWML|unit_image]], [[ThemeWML|unit_level]], [[ThemeWML|unit_moves]],<br />
[[InterfaceActionsWML|unit_overlay]], [[ThemeWML|unit_profile]], [[ThemeWML|unit_status]],<br />
[[ThemeWML|unit_traits]], [[ThemeWML|unit_type]], [[ThemeWML|unit_weapons]], [[ThemeWML|unit_xp]],<br />
[[UnitsWML|units]], [[DirectActionsWML|unstone]], [[DirectActionsWML|unstore_unit]], [[ThemeWML|upkeep]];<br />
|-<br />
| ''V:'' <br />
[[InternalActionsWML|variable]], [[VariablesWML|variables]], [[SideWML|village]], [[ThemeWML|villages]];<br />
|-<br />
| ''W:'' <br />
[[InternalActionsWML|while]], [[FilterWML|wml_filter]]<br />
|}</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=DirectActionsWML&diff=28086DirectActionsWML2009-01-24T22:52:57Z<p>ShikadiQueen: /* Direct actions */ Proper documentation for [time_area] in events WML</p>
<hr />
<div>{{WML Tags}}<br />
== Direct actions ==<br />
<br />
Direct actions are actions that have a direct effect on gameplay.<br />
<br />
The following tags are actions:<br />
* '''[endlevel]''': ends the scenario.<br />
** '''result''': before the scenario is over, all events with ''name=result'' are triggered. The message ''result_message'' with the heading ''result_heading'' (see [[LanguageWML]]) are displayed. If ''result=victory'', the player progresses to the next level; if ''result=defeat'', the game returns to the main menu. These last two are rarely used: ''result=continue'' behaves identically to ''result=victory'' except the player's gold is not reduced to 80%, and it does not bring up a "Victory" message or the gold changing message (since it doesn't change); ''result=continue_no_save'' works similarly, except the player is not asked whether to save the game, and is taken directly to the next scenario without any messages. Unless ''result=defeat'', the following keys can also be used:<br />
** '''bonus''': whether the player should get bonus gold (maximum possible gold that could have been earned by waiting the level out). The default is bonus=yes.<br />
** '''carryover_report''' {{DevFeature}}: whether the player should receive a summary of the scenario outcome, the default is carryover_report=yes.<br />
** '''save''' {{DevFeature}}: whether a start-of-scenario save should be created for the next scenario, the default is save=yes.<br />
** '''linger_mode''' {{DevFeature}}: whether the game should switch to linger_mode before advancing to the next scenario, the default is linger_mode=yes.<br />
** '''next_scenario''': (default specified in '''[scenario]''' tag) the ID of the next scenario that should be played. All units that side 1 controls at this point become available for recall in ''next_scenario''.<br />
** When the result is "victory" the following keys can be used:<br />
*** '''carryover_percentage''' {{DevFeature}}: by default 80% of the gold is carried over to the next scenario, with this key the amount can be changed.<br />
*** '''carryover_add''' {{DevFeature}}: if true the gold will be added to the starting gold the next scenario, if false the next scenario will start with the amount of the current scenario (after taxes) or the minimum in the next scenario. Default is false.<br />
** '''music''' {{DevFeature}}: (default specified in '''[scenario]''' or '''[game_config]''' tags) a comma-separated list of music tracks from which one will be chosen and played once after any events related to the end of level result are executed; by default, victory_music is used on victory, and defeat_music on defeat.<br />
** '''end_text''' {{DevFeature}}: Text that is shown centered in a black screen at the end of a campaign. Defaults to "The End". Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].<br />
** '''end_text_duration''' {{DevFeature}}: Delay, in milliseconds, before displaying the game credits at the end of a campaign. In other words, for how much time '''end_text''' is displayed on screen. Defaults to 3500. Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].<br />
* '''[unit]''': places a unit on the map. For syntax see [[SingleUnitWML]].<br />
** {{Short Note:Predefined Macro|GENERIC_UNIT}}<br />
** {{DevFeature}} '''to_variable''': spawn directly into a variable instead of on the map.<br />
* '''[recall]''': recalls a unit. The unit is recalled free of charge, and is placed near the leader.<br />
** [[StandardUnitFilter]]: the first matching unit will be recalled. If no units match this tag is ignored.<br />
** '''x,y''': the unit is placed here instead of next to the leader.<br />
** '''show''': if not "no", display the unit being recalled.<br />
* '''[teleport]''': teleports a unit on map. {{Short Note:Predefined Macro|TELEPORT_UNIT}}<br />
** '''[filter]''': [[StandardUnitFilter]] all units matching the filter will be teleported.<br />
** '''x,y''': the position to teleport to.<br />
** '''clear_shroud''': should shroud be cleared on arrival<br />
** '''animate''': should a teleport animation be played (if the unit doesn't have a teleport animation, it will fade out/fade in)<br />
* '''[terrain_mask]''': changes the terrain on the map. See [[TerrainMaskWML]].<br />
* '''[terrain]''': changes the terrain on the map.<br />
** '''terrain''': the character of the terrain to use. See [[TerrainCodesWML]] to see what letter a type of terrain uses.<br />
** '''x,y''': the position (or range of positions) to change.<br />
** {{DevFeature}} '''layer''': (overlay|base|both, default=both) only change the specified layer.<br />
** {{DevFeature}} '''replace_if_failed''': (default=no) When replacing just one layer failed, try to replace the whole terrain. If '''terrain''' is an overlay only terrain, use the default_base as base layer. If the terrain has no default base, do nothing.<br />
* '''[gold]''': give one side gold.<br />
** '''amount''': the amount of gold to give.<br />
** '''side''': (default=1) the number of the side to give the gold to.<br />
* '''[unstore_unit]''': creates a unit from a game variable, and activates it on the playing field. This must be a specific variable describing a unit, and may not be an array -- to unstore an entire array, iterate over it. The variable is not cleared. See also '''[store_unit]''', '''[while]''' and [clear_variable] in [[InternalActionsWML]]. Note units with a negative amount of hitpoints will be unstored with 1 hitpoint.<br />
** '''variable''': the name of the variable.<br />
** '''find_vacant''': whether the unit should be placed on the nearest vacant tile to its specified location. If this is set to 'no'(default), then any unit on the same tile as the unit being unstored will be destroyed.<br />
** '''text''': (translatable) floating text to display above the unit, such as a damage amount<br />
** '''red''', '''green''', '''blue''': (default=0,0,0) the color to display the text in. Values vary from 0-255. You may find it convenient to use the {COLOR_HARM} or {COLOR_HEAL} macro instead. (Use {COLOR_HARM} or {COLOR_HEAL} instead of the whole red,green,blue= line.)<br />
** '''advance''': if the XP has been modified then there will be tried to advance the unit, default true. <br />
** {{DevFeature}} '''x''' ,'''y''': override unit location<br />
* '''[allow_recruit]''': allows a side to recruit units it couldn't previously recruit.<br />
** '''type''': the types of units that the side can now recruit.<br />
** '''side''': (default=1) the number of the side that is being allowed to recruit the units.<br />
* '''[disallow_recruit]''': prevents a side from recruiting units it could previously recruit.<br />
** '''type''': the types of units that the side can no longer recruit.<br />
** '''side''': (default=1) the number of the side that may no longer recruit the units.<br />
* '''[set_recruit]''': sets the units a side can recruit.<br />
** '''recruit''': the types of units that the side can now recruit.<br />
** '''side''': (default=1) the number of the side that is having its recruitment set.<br />
* '''[modify_side]''': modifies some details of a given side in the middle of a scenario. '''The following listed properties are the only properties that [modify_side] can affect!'<br />
** '''side''': (default=1) the number of the side that is to be changed.<br />
** '''income''': the income given at the begining of each turn.<br />
** '''team_name''': the team in which the side plays the scenario.<br />
** '''user_team_name''': a translatable string representing the team's description. This has no effect on alliances. Defaults to ''team_name''.<br />
** '''gold''': the amount of gold the side owns.<br />
** '''village_gold''': the income setting per village for the side.<br />
** '''controller''': the identifier string of the side's controller. Uses the same syntax of the ''controller'' key in the [[SideWML|[side]]] tag.<br />
** '''fog''': a boolean string (yes/no) describing the status of Fog for the side.<br />
** '''shroud''': a boolean string describing the status of Shroud for the side.<br />
** {{DevFeature}} '''[ai]''': replaces a side's AI parameters with the new specified ones. Uses the same syntax described in [[AiWML]].<br />
* '''[modify_turns]''': modifies the turn limit in the middle of a scenario.<br />
** '''value''': the new turn limit.<br />
** '''add''': if used instead of ''value'', specifies the number of turns to add to the current limit (can be negative).<br />
** {{DevFeature}} '''current''': changes the current turn number after applying turn limit modifications, if any. It is possible to change the current turn number to a greater one than the current only; also, it is not possible to change the turn number to exceed the turn limit.<br />
* '''[capture_village]''': changes the ownership of a village.<br />
** '''side''': the side that takes control of the village. If not given, the village will become neutral.<br />
** '''x, y''': the location of the village.<br />
* '''[kill]''': Removes all units (including units in a recall list) that match the filter from the game.<br />
** [[StandardUnitFilter]]: selection criterion<br />
** '''animate''': if 'yes', displays the unit dying (fading away).<br />
** '''fire_event''': if 'yes', triggers any appropriate 'die' events (See [[EventWML]]). Note that any 'die' events triggered by this are executed immediately, interrupting the current event and thus causing the x1, y1, x2, and y2 variables to be reset for that 'die' event, which in turn causes those variables to be invalid for the remainder of this event. {{DevFeature}} 'last breath' events are also fired.<br />
* '''[unstone]''': Unstones all units that match the filter.<br />
** '''[filter]''': [[StandardUnitFilter]] all units matching the filter will be unstoned. If no unit matches the filter, then nothing happens (probably). If absent, all units on the map are unstoned.<br />
* '''[object]''': gives some unit an object and removes all items on the tile the unit is on.<br />
** '''id''': 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.<br />
** '''[effect]''': one or more effect elements may be listed. See [[EffectWML]] for a description of [effect].<br />
** '''duration''': if 'level', effects only last until the end of the level (note : 'level' is the scenario, so this doesn't mean it last until the unit levels-up).<br />
** '''[filter]''': [[StandardUnitFilter]] the first unit found that matches the filter will be given the object. If no unit matches the filter, then a message is displayed and the object is not removed.<br />
** '''[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 '''[removeitem]''' tag, but you could probably put any tags that otherwise work in a [then] tag.<br />
** '''silent''': whether or not messages should be suppressed. Default is "no".<br />
** '''image''': the displayed image of the object.<br />
** '''name''': (translatable) displayed as a caption of the image.<br />
<br />
** '''user_description''': {{DevFeature}} (translatable) displayed as a message of the image. In 1.4 and older versions this is just '''description'''; that will still be expected for compatibility.<br />
** '''cannot_use_message''': (translatable) displayed instead of '''description''' if no unit passes the filter test.<br />
** If you do not supply a filter, the object action will be applied to a unit at the location of the moveto event. Currently this isn't recommended as it is not clear that this will continue working this way. Instead it is better to explicitly include a location filter.<br />
** The object action does not act on units in the recall list. There is a feature request in to allow this, but it is not clear whether or not it will be accepted.<br />
* '''[remove_shroud]''': removes some shroud from the map for a certain side (only relevant for sides that have shroud=yes).<br />
** '''side''': (default=1) the side for which to remove shroud.<br />
** [[StandardLocationFilter]]: the range of tiles for which shroud should be removed.<br />
** Note: '''[remove_shroud]''' doesnt't accept all of the standard location filters. In particular '''[filter]''' to remove shroud around units doesn't work, and radius may not either. To remove shroud around a group of units, you can temporarily switch the sides of the units using '''[store_unit]''', '''[set_variable]''', and then '''[unstore_unit]''' (do the '''[set_variable]''' and '''[unstore_unit]''' twice each, once to switch sides, and once to switch back). Just make sure you call '''[redraw]''' while the unit's side is switched to update shroud. Also make sure to use ''kill=no'' for the store and then ''find_vacant=no'' for the unstores.<br />
* '''[place_shroud]''': places some shroud on the map for a certain side (only relevant for sides that have shroud=yes).<br />
** '''side''': (default=1) the side for which to place shroud.<br />
** [[StandardLocationFilter]]: the range of tiles on which shroud should be placed.<br />
* '''[allow_undo]''': allows the player to undo the event that this tag is inside. Has an effect only inside moveto events. If the move is undone, only the position of the unit will be restored; any altered variables or changes to the game will remain changed after the move is undone. It is up to the scenario designer to avoid abusing this command.<br />
** 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 move the first time.<br />
* '''[heal_unit]''' {{DevFeature}}: 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).<br />
** '''[filter]''': [[StandardUnitFilter]] the first unit matching the filter will be healed. <br />
** '''[secondary_unit_filter]''': [[StandardUnitFilter]] all the units matching the filter ''and'' having the ''heals'' ability will have their animation played (if ''animate'' is set to true).<br />
** '''amount''': the maximum points the unit will be healed.<br />
** '''animate''': a boolean which indicate if the healing animations must be played.<br />
* '''[time_area]''' {{DevFeature}}: how a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] and [illuminated_time] tags in the [scenario] tag<br />
** [[StandardLocationFilter]]: the locations to affect.<br />
** [[TimeWML]]: the new schedule.<br />
** '''id''': an unique identifier assigned to a time_area. Optional, unless you want to remove the time_area later. See below.<br />
** '''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.<br />
** {{DevFeature}}: in Wesnoth 1.5.9 and later, '''id''' may be a comma-separated list for removing time areas. It is not allowed, however, for inserting time areas; only the first id is taken into account in that case.<br />
<br />
* '''[end_turn]''' {{DevFeature}}: end the current side's turn.<br />
<br />
== Useful Macros ==<br />
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 [http://www.wesnoth.org/macro-reference.xhtml here].<br />
* '''{MOVE_UNIT}''': Moves a unit to another location in the map and the player sees the movement (unlike [teleport])<br />
* '''{FULL_HEAL}''': Brings a unit to full HP<br />
* '''{LOYAL_UNIT}''': Create a loyal unit<br />
* '''{MODIFY_TERRAIN_MASK}''': Modify an area of terrain<br />
<br />
== See Also ==<br />
<br />
* [[InternalActionsWML]]<br />
* [[InterfaceActionsWML]]<br />
* [[EventWML]]<br />
* [[ReferenceWML]]<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ScenarioWML&diff=28085ScenarioWML2009-01-24T22:52:30Z<p>ShikadiQueen: /* The [scenario] tag */ Proper documentation for [time_area] in scenario WML</p>
<hr />
<div>{{WML Tags}}<br />
== the toplevel tags [multiplayer], [test], [tutorial], [scenario] ==<br />
<br />
The top level tags '''[multiplayer]''', '''[test]''', '''[tutorial]''' and '''[scenario]''' are all formatted the same way.<br />
The difference between these tags is the way that the scenarios they describe are accessed.<br />
<br />
The keys '''id''' and '''next_scenario''' affect how scenarios can be accessed.<br />
Whenever a scenario is won, the scenario with id=''next_scenario'' of the same tag type will be played.<br />
Units from the first scenario will be available for recall in the second.<br />
<br />
Some scenarios can be played without playing other scenarios first<br />
(in this case there is nothing on the recall list).<br />
These scenarios are called ''initial scenario''s.<br />
<br />
A list of initial scenarios, and how to access them:<br />
<br />
* All '''[multiplayer]''' scenarios are initial scenarios listed in the multiplayer scenario selector screen (accessed by the "multiplayer" button).<br />
<br />
* The '''[test]''' scenario with the attribute '''id=test''' is an initial scenario. This test scenario can be accessed by running the game in test mode. (note: this is NOT the same as debug mode. It can be accessed using -t or --test) You can speed up scenario development a lot by this when used in a clever way: Move a scenario into ~campaigns (so that it will be read even without its campaign being loaded), change it to a [test] scenario, and change the ID to 'test'. Then run Wesnoth in test mode. This saves about a minute for each time you want to test changes to your scenario. However it should not be used for balancing as there will be no recallable units...<br />
<br />
* The '''[tutorial]''' scenario with the attribute '''id=tutorial''' is an initial scenario. The tutorial is accessed by clicking on the "tutorial" button.<br />
<br />
* Any '''[scenario]''' scenario with an id listed in the value of ''first_scenario'' in a campaign tag (see [[CampaignWML]]) is an initial scenario accessed by selecting that campaign after clicking on the "campaign" button.<br />
<br />
== The [scenario] tag ==<br />
<br />
The following keys and tags are recognized in '''[scenario]''' tags:<br />
<br />
* '''id''': A unique identifier for this scenario.<br />
<br />
* '''next_scenario''': The id of the scenario to load when the current one is won. This can be changed dynamically, to build non-linear campaigns.<br />
<br />
* '''description''': (translatable) only for multiplayer maps. Will show up as a tooltip when mousing over the minimap in the multiplayer setup screen.<br />
<br />
* '''name''': (translatable) is shown in several places in the level, including the intro screen. It is also the default name for saves on the level.<br />
<br />
* '''map_data''': inputs valid Wesnoth map data. See [[BuildingMaps]] for a description of the Wesnoth map syntax.<br />
<br />
* '''turns''': sets an event on turn ''turns'' causing the player to lose. Use ''-1'' to have no turn limit. See also [[EventWML]]<br />
<br />
* '''turn_at''': the turn to start on (default=1)<br />
<br />
* '''random_start_time''': controls random starting time of day. Possible values are yes and no or list of possible start times; starting from 1 to number of times. for example ''random_start_time=2,3,5,6'' (default=no)<br />
<br />
* '''music''': the music file relative to ''./music/'' to play during the scenario<br />
<br />
* '''[music]''': specifies the music tracks to play during this scenario, see [[MusicListWML]].<br />
<br />
* '''defeat_music''' {{DevFeature}}: specifies a comma-separated list of music tracks which may be chosen to play on defeat. If not provided, the default in [[GameConfigWML]] is used instead. May be overridden by [[DirectActionsWML|endlevel]] clauses.<br />
<br />
* '''victory_music''' {{DevFeature}}: specifies a comma-separated list of music tracks which may be chosen to play on victory. If not provided, the default in [[GameConfigWML]] is used instead. May be overridden by [[DirectActionsWML|endlevel]] clauses.<br />
<br />
* '''theme''': the UI theme that should be used when playing this scenario. See [[Using_custom_themes_in_campaigns]]<br />
<br />
* '''victory_when_enemies_defeated''': when this is set to '''yes''' (default), the player wins once all non-allied units with '''canrecruit=yes''' (aka leaders) are killed. (Currently this only controls the win condition for when all enemies are defeated; it does not prevent the player from losing if he has no leader.) When this value is true the following keys can be used:<br />
** '''carryover_percentage''': by default 80% of the gold is carried over to the next scenario, with this key the amount can be changed.<br />
** '''carryover_add''': if true the gold will be added to the starting gold the next scenario, if false the next scenario will start with the amount of the current scenario (after taxes) or the minimum in the next scenario. Default is false.<br />
<br />
* '''disallow_recall''': when this is set to 'no'(default), the player is allowed to recall units from previous scenarios.<br />
<br />
* '''experience_modifier''': the percentage that required XP to level up (for all units in the scenario) is multiplied by. Default 100. Note that when used in a campaign, weird things (like units being above the required XP to level up) can happen if this value is different for different scenarios.<br />
<br />
* '''[story]''': describes the intro screen. See [[IntroWML]]<br />
<br />
* '''[label]''': sets a label<br />
** '''x''', '''y''': location to set label<br />
** '''text''': the label<br />
<br />
* '''[time]''', '''[illuminated_time]''': how a day should progress. See [[TimeWML]]<br />
<br />
* '''[time_area]''': how a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] and [illuminated_time] tags in the [scenario] tag<br />
** takes x and y coordinates.<br />
** '''[time]''', '''[illuminated_time]''': how a day should progress in those locations. See [[TimeWML]]<br />
** {{DevFeature}}: time areas can be used in events, assigned identifiers, and removed at discretion. They also accept complete Standard Location Filters. See [[DirectActionsWML]].<br />
<br />
* '''[side]''': describes one player. See [[SideWML]]<br />
<br />
* '''[event]''': describes an event that may be triggered at a certain point of the scenario. See [[EventWML]]<br />
<br />
* '''map_generation''': another way to generate a map. The map will be generated randomly<br />
** '''default''': the default random map generator<br />
<br />
* '''[generator]''' if this is present, the map and scenario will be generated randomly. See [[MapGeneratorWML]]<br />
<br />
the following key is additionally recognized in '''[multiplayer]''' scenarios:<br />
* '''allow_new_game''': (default=yes) allow/prevent the scenario to be listed in the game creation interface. This is intended for extra scenarios in multiplayer campaigns<br />
<br />
== See Also ==<br />
<br />
* [[EventWML]]<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ScenarioWML&diff=28084ScenarioWML2009-01-24T22:04:49Z<p>ShikadiQueen: /* The [scenario] tag */ Mention that in EventWML, [time_area] can use full SLFs</p>
<hr />
<div>{{WML Tags}}<br />
== the toplevel tags [multiplayer], [test], [tutorial], [scenario] ==<br />
<br />
The top level tags '''[multiplayer]''', '''[test]''', '''[tutorial]''' and '''[scenario]''' are all formatted the same way.<br />
The difference between these tags is the way that the scenarios they describe are accessed.<br />
<br />
The keys '''id''' and '''next_scenario''' affect how scenarios can be accessed.<br />
Whenever a scenario is won, the scenario with id=''next_scenario'' of the same tag type will be played.<br />
Units from the first scenario will be available for recall in the second.<br />
<br />
Some scenarios can be played without playing other scenarios first<br />
(in this case there is nothing on the recall list).<br />
These scenarios are called ''initial scenario''s.<br />
<br />
A list of initial scenarios, and how to access them:<br />
<br />
* All '''[multiplayer]''' scenarios are initial scenarios listed in the multiplayer scenario selector screen (accessed by the "multiplayer" button).<br />
<br />
* The '''[test]''' scenario with the attribute '''id=test''' is an initial scenario. This test scenario can be accessed by running the game in test mode. (note: this is NOT the same as debug mode. It can be accessed using -t or --test) You can speed up scenario development a lot by this when used in a clever way: Move a scenario into ~campaigns (so that it will be read even without its campaign being loaded), change it to a [test] scenario, and change the ID to 'test'. Then run Wesnoth in test mode. This saves about a minute for each time you want to test changes to your scenario. However it should not be used for balancing as there will be no recallable units...<br />
<br />
* The '''[tutorial]''' scenario with the attribute '''id=tutorial''' is an initial scenario. The tutorial is accessed by clicking on the "tutorial" button.<br />
<br />
* Any '''[scenario]''' scenario with an id listed in the value of ''first_scenario'' in a campaign tag (see [[CampaignWML]]) is an initial scenario accessed by selecting that campaign after clicking on the "campaign" button.<br />
<br />
== The [scenario] tag ==<br />
<br />
The following keys and tags are recognized in '''[scenario]''' tags:<br />
<br />
* '''id''': A unique identifier for this scenario.<br />
<br />
* '''next_scenario''': The id of the scenario to load when the current one is won. This can be changed dynamically, to build non-linear campaigns.<br />
<br />
* '''description''': (translatable) only for multiplayer maps. Will show up as a tooltip when mousing over the minimap in the multiplayer setup screen.<br />
<br />
* '''name''': (translatable) is shown in several places in the level, including the intro screen. It is also the default name for saves on the level.<br />
<br />
* '''map_data''': inputs valid Wesnoth map data. See [[BuildingMaps]] for a description of the Wesnoth map syntax.<br />
<br />
* '''turns''': sets an event on turn ''turns'' causing the player to lose. Use ''-1'' to have no turn limit. See also [[EventWML]]<br />
<br />
* '''turn_at''': the turn to start on (default=1)<br />
<br />
* '''random_start_time''': controls random starting time of day. Possible values are yes and no or list of possible start times; starting from 1 to number of times. for example ''random_start_time=2,3,5,6'' (default=no)<br />
<br />
* '''music''': the music file relative to ''./music/'' to play during the scenario<br />
<br />
* '''[music]''': specifies the music tracks to play during this scenario, see [[MusicListWML]].<br />
<br />
* '''defeat_music''' {{DevFeature}}: specifies a comma-separated list of music tracks which may be chosen to play on defeat. If not provided, the default in [[GameConfigWML]] is used instead. May be overridden by [[DirectActionsWML|endlevel]] clauses.<br />
<br />
* '''victory_music''' {{DevFeature}}: specifies a comma-separated list of music tracks which may be chosen to play on victory. If not provided, the default in [[GameConfigWML]] is used instead. May be overridden by [[DirectActionsWML|endlevel]] clauses.<br />
<br />
* '''theme''': the UI theme that should be used when playing this scenario. See [[Using_custom_themes_in_campaigns]]<br />
<br />
* '''victory_when_enemies_defeated''': when this is set to '''yes''' (default), the player wins once all non-allied units with '''canrecruit=yes''' (aka leaders) are killed. (Currently this only controls the win condition for when all enemies are defeated; it does not prevent the player from losing if he has no leader.) When this value is true the following keys can be used:<br />
** '''carryover_percentage''': by default 80% of the gold is carried over to the next scenario, with this key the amount can be changed.<br />
** '''carryover_add''': if true the gold will be added to the starting gold the next scenario, if false the next scenario will start with the amount of the current scenario (after taxes) or the minimum in the next scenario. Default is false.<br />
<br />
* '''disallow_recall''': when this is set to 'no'(default), the player is allowed to recall units from previous scenarios.<br />
<br />
* '''experience_modifier''': the percentage that required XP to level up (for all units in the scenario) is multiplied by. Default 100. Note that when used in a campaign, weird things (like units being above the required XP to level up) can happen if this value is different for different scenarios.<br />
<br />
* '''[story]''': describes the intro screen. See [[IntroWML]]<br />
<br />
* '''[label]''': sets a label<br />
** '''x''', '''y''': location to set label<br />
** '''text''': the label<br />
<br />
* '''[time]''', '''[illuminated_time]''': how a day should progress. See [[TimeWML]]<br />
<br />
* '''[time_area]''': how a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] and [illuminated_time] tags in the [scenario] tag<br />
** takes x and y coordinates. {{DevFeature}} In the development versions, it takes a complete [[StandardLocationFilter]] only when used in [[EventWML]].<br />
** '''[time]''', '''[illuminated_time]''': how a day should progress in those locations. See [[TimeWML]]<br />
** {{DevFeature}}: time areas can be used in [[EventWML]], assigned identifiers, and removed at discretion.<br />
*** '''id''': an unique identifier assigned to a time_area. Optional, unless you want to remove the time_area later. See below.<br />
*** '''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. <br />
<br />
* '''[side]''': describes one player. See [[SideWML]]<br />
<br />
* '''[event]''': describes an event that may be triggered at a certain point of the scenario. See [[EventWML]]<br />
<br />
* '''map_generation''': another way to generate a map. The map will be generated randomly<br />
** '''default''': the default random map generator<br />
<br />
* '''[generator]''' if this is present, the map and scenario will be generated randomly. See [[MapGeneratorWML]]<br />
<br />
the following key is additionally recognized in '''[multiplayer]''' scenarios:<br />
* '''allow_new_game''': (default=yes) allow/prevent the scenario to be listed in the game creation interface. This is intended for extra scenarios in multiplayer campaigns<br />
<br />
== See Also ==<br />
<br />
* [[EventWML]]<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=ScenarioWML&diff=28083ScenarioWML2009-01-24T22:02:39Z<p>ShikadiQueen: /* The [scenario] tag */ Document [time_area] id and remove attributes</p>
<hr />
<div>{{WML Tags}}<br />
== the toplevel tags [multiplayer], [test], [tutorial], [scenario] ==<br />
<br />
The top level tags '''[multiplayer]''', '''[test]''', '''[tutorial]''' and '''[scenario]''' are all formatted the same way.<br />
The difference between these tags is the way that the scenarios they describe are accessed.<br />
<br />
The keys '''id''' and '''next_scenario''' affect how scenarios can be accessed.<br />
Whenever a scenario is won, the scenario with id=''next_scenario'' of the same tag type will be played.<br />
Units from the first scenario will be available for recall in the second.<br />
<br />
Some scenarios can be played without playing other scenarios first<br />
(in this case there is nothing on the recall list).<br />
These scenarios are called ''initial scenario''s.<br />
<br />
A list of initial scenarios, and how to access them:<br />
<br />
* All '''[multiplayer]''' scenarios are initial scenarios listed in the multiplayer scenario selector screen (accessed by the "multiplayer" button).<br />
<br />
* The '''[test]''' scenario with the attribute '''id=test''' is an initial scenario. This test scenario can be accessed by running the game in test mode. (note: this is NOT the same as debug mode. It can be accessed using -t or --test) You can speed up scenario development a lot by this when used in a clever way: Move a scenario into ~campaigns (so that it will be read even without its campaign being loaded), change it to a [test] scenario, and change the ID to 'test'. Then run Wesnoth in test mode. This saves about a minute for each time you want to test changes to your scenario. However it should not be used for balancing as there will be no recallable units...<br />
<br />
* The '''[tutorial]''' scenario with the attribute '''id=tutorial''' is an initial scenario. The tutorial is accessed by clicking on the "tutorial" button.<br />
<br />
* Any '''[scenario]''' scenario with an id listed in the value of ''first_scenario'' in a campaign tag (see [[CampaignWML]]) is an initial scenario accessed by selecting that campaign after clicking on the "campaign" button.<br />
<br />
== The [scenario] tag ==<br />
<br />
The following keys and tags are recognized in '''[scenario]''' tags:<br />
<br />
* '''id''': A unique identifier for this scenario.<br />
<br />
* '''next_scenario''': The id of the scenario to load when the current one is won. This can be changed dynamically, to build non-linear campaigns.<br />
<br />
* '''description''': (translatable) only for multiplayer maps. Will show up as a tooltip when mousing over the minimap in the multiplayer setup screen.<br />
<br />
* '''name''': (translatable) is shown in several places in the level, including the intro screen. It is also the default name for saves on the level.<br />
<br />
* '''map_data''': inputs valid Wesnoth map data. See [[BuildingMaps]] for a description of the Wesnoth map syntax.<br />
<br />
* '''turns''': sets an event on turn ''turns'' causing the player to lose. Use ''-1'' to have no turn limit. See also [[EventWML]]<br />
<br />
* '''turn_at''': the turn to start on (default=1)<br />
<br />
* '''random_start_time''': controls random starting time of day. Possible values are yes and no or list of possible start times; starting from 1 to number of times. for example ''random_start_time=2,3,5,6'' (default=no)<br />
<br />
* '''music''': the music file relative to ''./music/'' to play during the scenario<br />
<br />
* '''[music]''': specifies the music tracks to play during this scenario, see [[MusicListWML]].<br />
<br />
* '''defeat_music''' {{DevFeature}}: specifies a comma-separated list of music tracks which may be chosen to play on defeat. If not provided, the default in [[GameConfigWML]] is used instead. May be overridden by [[DirectActionsWML|endlevel]] clauses.<br />
<br />
* '''victory_music''' {{DevFeature}}: specifies a comma-separated list of music tracks which may be chosen to play on victory. If not provided, the default in [[GameConfigWML]] is used instead. May be overridden by [[DirectActionsWML|endlevel]] clauses.<br />
<br />
* '''theme''': the UI theme that should be used when playing this scenario. See [[Using_custom_themes_in_campaigns]]<br />
<br />
* '''victory_when_enemies_defeated''': when this is set to '''yes''' (default), the player wins once all non-allied units with '''canrecruit=yes''' (aka leaders) are killed. (Currently this only controls the win condition for when all enemies are defeated; it does not prevent the player from losing if he has no leader.) When this value is true the following keys can be used:<br />
** '''carryover_percentage''': by default 80% of the gold is carried over to the next scenario, with this key the amount can be changed.<br />
** '''carryover_add''': if true the gold will be added to the starting gold the next scenario, if false the next scenario will start with the amount of the current scenario (after taxes) or the minimum in the next scenario. Default is false.<br />
<br />
* '''disallow_recall''': when this is set to 'no'(default), the player is allowed to recall units from previous scenarios.<br />
<br />
* '''experience_modifier''': the percentage that required XP to level up (for all units in the scenario) is multiplied by. Default 100. Note that when used in a campaign, weird things (like units being above the required XP to level up) can happen if this value is different for different scenarios.<br />
<br />
* '''[story]''': describes the intro screen. See [[IntroWML]]<br />
<br />
* '''[label]''': sets a label<br />
** '''x''', '''y''': location to set label<br />
** '''text''': the label<br />
<br />
* '''[time]''', '''[illuminated_time]''': how a day should progress. See [[TimeWML]]<br />
<br />
* '''[time_area]''': how a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] and [illuminated_time] tags in the [scenario] tag<br />
** takes x and y coordinates (as a future direction, may take a [[StandardLocationFilter]].<br />
** '''[time]''', '''[illuminated_time]''': how a day should progress in those locations. See [[TimeWML]]<br />
** {{DevFeature}}: time areas can be used in [[EventWML]], assigned identifiers, and removed at discretion.<br />
*** '''id''': an unique identifier assigned to a time_area. Optional, unless you want to remove the time_area later. See below.<br />
*** '''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. <br />
<br />
* '''[side]''': describes one player. See [[SideWML]]<br />
<br />
* '''[event]''': describes an event that may be triggered at a certain point of the scenario. See [[EventWML]]<br />
<br />
* '''map_generation''': another way to generate a map. The map will be generated randomly<br />
** '''default''': the default random map generator<br />
<br />
* '''[generator]''' if this is present, the map and scenario will be generated randomly. See [[MapGeneratorWML]]<br />
<br />
the following key is additionally recognized in '''[multiplayer]''' scenarios:<br />
* '''allow_new_game''': (default=yes) allow/prevent the scenario to be listed in the game creation interface. This is intended for extra scenarios in multiplayer campaigns<br />
<br />
== See Also ==<br />
<br />
* [[EventWML]]<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=BinaryPathWML&diff=28080BinaryPathWML2009-01-24T00:19:22Z<p>ShikadiQueen: /* the toplevel [binary_path] tag */ Mention the [binary_path] vs. MULTIPLAYER issue</p>
<hr />
<div>{{WML Tags}}<br />
== the toplevel [binary_path] tag ==<br />
<br />
This tag is used to recognize more than one directory as containing images, music, and sound. It only has one key:<br />
* '''path''': a directory. When an image is not found it the normal ''images'' directory, it will be looked for in '''''path'''/images''. Similarly, music will be looked for in '''''path'''/music'', and sound in '''''path'''/sound''.<br />
Notice that '''''path''''' is still relative to the main Wesnoth directory.<br />
<br />
In Wesnoth 1.4 and earlier releases, [binary_path] was ignored when used inside a MULTIPLAYER symbol conditional, leading to awkward solutions such as:<br />
<br />
[binary_path]<br />
path=data/campaigns/Era_of_Myths/<br />
[/binary_path]<br />
<br />
#ifdef MULTIPLAYER<br />
...<br />
#endif<br />
<br />
{{DevFeature}}: [binary_path] can be used in the MULTIPLAYER conditional in the development versions, to avoid possible clashes with single-player content.<br />
<br />
== See Also ==<br />
<br />
* [[ReferenceWML]]<br />
<br />
<br />
[[Category: WML Reference]]</div>ShikadiQueenhttps://wiki.wesnoth.org/index.php?title=Support&diff=28064Support2009-01-22T21:25:55Z<p>ShikadiQueen: /* Mailing Lists */ Added descriptions</p>
<hr />
<div>__NOTOC__<br />
There are many ways to get help. From online documentation to support from the community on IRC or forums.<br />
<br />
== Wiki Resources ==<br />
* [[Play|Online Players Guide]] - Game manual, walkthroughs, strategy guides, and more.<br />
* [[Create|Content-Creation Guide]] - Manual showing how to create new campaigns for Wesnoth.<br />
* [[StartingPoints|Starting Points]] - List of pages to serve as starting point for diving deeply into the wiki...<br />
* [[MP_CodeOfConduct | Multiplayer Information ]] - Info about server moderators, useful MP commands, and our online Code of Conduct.<br />
<br />
== Reporting Bugs ==<br />
If you are experiencing problems, you should consider [[ReportingBugs|reporting a bug]].<br />
<br />
== Community ==<br />
<br />
When asking for help with some technical problem in the game forums, please provide the following information:<br />
* which operating system do you use (e.g. Windows, Linux, Mac OSX)<br />
* which version of Wesnoth do you use (it is displayed in the bottom left corner of title screen)<br />
* contents of file "stderr.txt"<br />
** on MS Windows, it is here: "C:\Program Files\Wesnoth\stderr.txt"<br />
<br />
=== Forums ===<br />
* [http://www.wesnoth.org/forum/ Official Wesnoth forums]<br />
* [[Wesnoth_Acronyms_and_Slang|Wesnoth Acronyms]] - forum lingo<br />
* [http://www.wesnoth.cn Chinese wesnoth forums]<br />
* [http://wif.altervista.org/index.php Wesnoth Italian Forums (W.I.F)]<br />
<br />
=== IRC ===<br />
If you don't know what IRC is, check out [http://www.irchelp.org/ irchelp].<br />
<br />
* [irc://irc.freenode.net/wesnoth #wesnoth]: this channel is for general conversation amongst Wesnoth users and developers alike.<br />
* [irc://irc.freenode.net/wesnoth-dev #wesnoth-dev]: the development discussion channel. Most contributors and developers (WML, C++ and art people alike) hang around here, exchanging ideas and code patches.<br />
* [irc://irc.freenode.net/wesnoth-mp #wesnoth-mp]: the multiplayer servers' status and development discussion channel.<br />
* [irc://irc.freenode.net/wesnoth-music #wesnoth-music]<br />
* [irc://irc.freenode.net/wesnoth-umc-dev #wesnoth-umc-dev]: the look-alike of #wesnoth-dev for the [http://www.wesnoth.org/forum/viewtopic.php?f=8&t=21413 Wesnoth User-made Add-ons Development] repository.<br />
* [irc://irc.tweakers.net/wesnoth #wesnoth (Dutch channel)]<br />
* [irc://irc.freenode.net/wesnoth-de #wesnoth-de (German channel)]: the german look-alike of #wesnoth, mainly used by German-speaking users and translators.<br />
* [irc://irc.syrolnet.org/WIF #WIF (Italian channel)] <br />
You can also see the [http://irclog.wesnoth.org/ logs] of the #wesnoth, #wesnoth-de, #wesnoth-dev and #wesnoth-umc-dev channels.<br />
<br />
=== Mailing Lists ===<br />
* [https://mail.gna.org/listinfo/wesnoth-dev/ wesnoth-dev] ([https://mail.gna.org/public/wesnoth-dev/ archives]): the mailing list for discussing mainline development issues; it is not intended for bug reports or feature requests. See [[ReportingBugs]] for those.<br />
* [https://mail.gna.org/listinfo/wesnoth-commits/ wesnoth-commits] ([https://mail.gna.org/public/wesnoth-commits/ archives]): all commits made to the mainline SVN repository are automatically echoed in this list for those who want or need to keep track of them. New developers and contributors are required to subscribe to this list.<br />
* [https://mail.gna.org/listinfo/wesnoth-i18n/ wesnoth-i18n] ([https://mail.gna.org/public/wesnoth-i18n/ archives]): the internationalization (i18n) mailing list; all translation team maintainers and the i18n managers should subscribe and keep track of announcements and discussions taking place in this list.<br />
<br />
=== Other Servers List ===<br />
see [http://www.wesnoth.org/wiki/MultiplayerServers here]<br />
<br />
[[Category:Troubleshooting and Bugs]]</div>ShikadiQueen