アットウィキロゴ
Wesnoth WML Wiki
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

Wesnoth WML Wiki

マクロの使い方

最終更新:

wesnoth-wml

- view
メンバー限定 登録/ログイン
公式マクロにある、SET_LABELマクロの例です。
公式マクロには以下のようなマクロが定義されています。

#define SET_LABEL X Y STRING
    [label]
        x={X}
        y={Y}
        text={STRING}
    [/label]
#enddef

このマクロ定義がされているので、

{SET_LABEL 2 3 "example"}

と書けば、

[label]
    x=2
    y=3
    text="example
[/label]

と書いたのと同じになります。

自分でマクロを定義する場合、
マクロ定義のほうが、マクロを実際に使用したコードよりも前の行になければなりません。



同じく公式マクロにある UNITマクロの例です。

#define UNIT SIDE TYPE X Y WML
    [unit]
        side={SIDE}
        type={TYPE}
        x={X}
        y={Y}
        {WML}
    [/unit]
#enddef

{UNIT 1 Revenant 2 3 canrecruit=yes}
と書けば

[unit]
    side=1
    type=Revenant
    x=2
    y=3
    canrecruit=yes
[/unit]
と書いたのと同じになります。

マクロ名の後に空白区切りで書かれるもののことを「引数(ひきすう)」と呼びます。
引数は空白区切りなので、ユニットIDなどの空白を含む文字列を書きたい場合、丸かっこで囲む必要があります。
以下のような感じになります。
{UNIT 1 (Orcish Crossbowman) 2 3 canrecruit=yes}

また、引数に何も書きたくない場合は、() と書けばOKです。
{UNIT 1 (Orcish Archer) 2 3 ()}

引数のないマクロを書くこともできます。
#define LEADER
canrecruit=yes#enddef

そしてマクロの引数にマクロを書くこともできます。
{UNIT 1 (Elvish Fighter) 2 3 {LEADER}}
最近更新されたスレッド
ウィキ募集バナー