home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 July / maximum-cd-2010-07.iso / DiscContents / wesnoth-1.8-win32.exe / data / core / macros / event-utils.cfg < prev    next >
Encoding:
Text File  |  2010-03-08  |  5.4 KB  |  198 lines

  1. #textdomain wesnoth
  2. # This file contains shortcuts for common WML events (such as prestart, side
  3. # turn, and such), which can be used to write events faster and in less space.
  4. #
  5. # It is recommended that you only use these if you're confident you could write
  6. # the expanded form as well; these are mostly intended as shortcuts for
  7. # experienced WML authors.
  8.  
  9. # These don't depend on any other macros.  Please don't change this.
  10. # ! in comments is used in generating HTML documentation, ignore it otherwise.
  11.  
  12. #define ON_EVENT NAME ACTION_WML
  13.     # Creates a generic event.  Strictly a syntactic shortcut
  14.     [event]
  15.         name={NAME}
  16.         {ACTION_WML}
  17.     [/event]
  18. #enddef
  19.  
  20. #define ON_PRESTART ACTION_WML
  21.     # Creates an event that triggers when the scenario starts but before the user
  22.     # gets any visible output.  Strictly a syntactic shortcut.
  23.     #
  24.     # For example, you can make side 2 start the scenario with ownership of the
  25.     # village at 13,15:
  26.     #
  27.     #! {ON_PRESTART (
  28.     #!   [capture_village]
  29.     #!       side=2
  30.     #!       x,y=13,15
  31.     #!   [/capture_village]
  32.     #! )}
  33.     [event]
  34.         name=prestart
  35.         {ACTION_WML}
  36.     [/event]
  37. #enddef
  38.  
  39. #define ON_START ACTION_WML
  40.     # Creates an event that triggers when the scenario starts, after the map is
  41.     # displayed but before the player can act.  Strictly a syntactic shortcut.
  42.     #
  43.     # For example you could display some dialogue when the scenario starts:
  44.     #
  45.     #! {ON_START (
  46.     #!   [message]
  47.     #!       speaker=Konrad
  48.     #!       message= _ "Hey, I can see some enemies up ahead!"
  49.     #!   [/message]
  50.     #!
  51.     #!   [message]
  52.     #!       speaker=Delfador
  53.     #!       message= _ "Yes, so it would seem. Charge!"
  54.     #!   [/message]
  55.     #! )}
  56.     [event]
  57.         name=start
  58.         {ACTION_WML}
  59.     [/event]
  60. #enddef
  61.  
  62. #define ON_SIDETURN ACTION_WML
  63.     # Creates an event that triggers at the start of every players turn
  64.     # For example, you could set each players gold to a fixed amount every turn.
  65.     #! {ON_SIDETURN (
  66.     #!   [modify_side]
  67.     #!       side=3
  68.     #!       gold=0
  69.     #!   [/modify_side]
  70.     #! )}
  71.     [event]
  72.         name=side turn
  73.         first_time_only=no
  74.         {ACTION_WML}
  75.     [/event]
  76. #enddef
  77.  
  78. #define ON_TURN TURN ACTION_WML
  79.     # Creates an event that triggers at the start of turn TURN
  80.     # For example you can create a Wose belonging to player 1 at turn 3:
  81.     # Strictly a syntactic shortcut.
  82.     #! {ON_TURN 3 (
  83.     #!   [unit]
  84.     #!       side=1
  85.     #!       type=wose
  86.     #!       x,y=12,4
  87.     #!   [/unit]
  88.     #! )}
  89.     [event]
  90.         name=turn {TURN}
  91.         {ACTION_WML}
  92.     [/event]
  93. #enddef
  94.  
  95. #define ON_VICTORY ACTION_WML
  96.     # Creates an event that triggers when a player wins the game, before
  97.     # the game ends.  Strictly a syntactic shortcut.
  98.     #
  99.     # For example you could congratulate the player:
  100.     #! {ON_VICTORY (
  101.     #!   [message]
  102.     #!       speaker=narrator
  103.     #!       message="Congratulations!"
  104.     #!   [/message]
  105.     #! )}
  106.     [event]
  107.         name=victory
  108.         {ACTION_WML}
  109.     [/event]
  110. #enddef
  111.  
  112. #define ON_DEFEAT ACTION_WML
  113.     # Creates an event that triggers when a player wins the game, before
  114.     # the game ends.  Strictly a syntactic shortcut.
  115.     #
  116.     # For example you could suggest an easier difficulty
  117.     # the player:
  118.     #! {ON_DEFEAT (
  119.     #!   [message]
  120.     #!   speaker=narrator
  121.     #!   message="Aww.. you lost. Try again with 800g and +40g income?"
  122.     #!   [/message]
  123.     #! )}
  124.     [event]
  125.         name=defeat
  126.         {ACTION_WML}
  127.     [/event]
  128. #enddef
  129.  
  130. #define ALLOW_UNDO
  131.     # Allows the player to undo the effects of a moveto event.
  132.     # Strictly a syntactic shortcut.
  133.     #
  134.     # For example, let's allow undoing reading a note:
  135.     #! {ON_TILE 5 7 () (
  136.     #!     [message]
  137.     #!         speaker=narrator
  138.     #!         message="This is a note."
  139.     #!     [/message]
  140.     #!     {ALLOW_UNDO}
  141.     #! )}
  142.     [allow_undo]
  143.     [/allow_undo]
  144. #enddef
  145.  
  146. #define ON_TILE_ONCE X Y FILTER ACTION_WML
  147.     # Creates an event that triggers the first time a unit steps on a
  148.     # given tile.  The filter can be used to only affect special units, or
  149.     # units of a given player.
  150.     #
  151.     # For example we could make a text-message
  152.     # that is only readable once:
  153.     #! {ON_TILE_ONCE 5 7 () (
  154.     #!   [message]
  155.     #!       speaker=narrator
  156.     #!       message="This is a note."
  157.     #!   [/message]
  158.     #! )}
  159.     [event]
  160.         name=moveto
  161.         first_time_only=yes
  162.         [filter]
  163.             x={X}
  164.             y={Y}
  165.             {FILTER}
  166.         [/filter]
  167.         {ACTION_WML}
  168.     [/event]
  169. #enddef
  170.  
  171. #define CALL_FUNCTION EVENT_NAME PARAMETER_WML
  172.     # This will fire an event with a set of parameters, for example:
  173.     #! {CALL_FUNCTION my_event a,b,c=1,2,3}
  174.     #
  175.     # That example would fire an event with name "my_event"
  176.     # and inside that event, $param.c will be equal to "3"
  177.     # This will hold true even if the event is fired recursively
  178.     [set_variables]
  179.         mode=insert
  180.         name=param[0]
  181.         [value]
  182.             {PARAMETER_WML}
  183.         [/value]
  184.     [/set_variables]
  185.     [fire_event]
  186.         name={EVENT_NAME}
  187.         [primary_unit]
  188.             x,y=$unit.x,$unit.y
  189.         [/primary_unit]
  190.         [second_unit]
  191.             x,y=$second_unit.x,$second_unit.y
  192.         [/second_unit]
  193.     [/fire_event]
  194.     [clear_variable]
  195.         name=param[0]
  196.     [/clear_variable]
  197. #enddef
  198.