マクロに属性を与え、その属性をマクロ中で置き換えることが出来ます。
マクロ中で、属性の値に
% で始まるものを指定すると、それがマクロに与えられた属性に置き換わります。
以下の例を見てください。
[wait time=200]
*start|スタート
[cm]
; -- マクロの定義 --
[macro name=newtag]
[font color=%iro]
こんな風にマクロを作ります
[resetfont]
[endmacro]
; -- マクロを使う --
[newtag iro=0x00ff00]
この例では、iro という属性を与え、それをエンティティにより font タグの color 属性と置き換えています。
実行すると、緑色の文字で「こんな風にマクロを作ります」と表示されるはずです。
また、マクロ中のタグの属性に
* を指定すると、マクロに渡された属性をすべて渡すことができます。たとえば、trans タグのあとに wt タグをつけたマクロを作りたい場合、
[macro name=transwait][trans *][wt][endmacro]
と書くことができます。このようにすると、たとえば transwait マクロを使うときに、transwait マクロに対して指定した属性がそっくりそのまま trans タグに渡されるので、既存のタグに毛の生えた程度のマクロを作るときに便利です。
マクロ中にあったマクロは再び展開されますので、マクロの中に自分のマクロを書かないようにご注意ください(^^)
値が省略されたときに、デフォルトの値を指定したい場合は、% 付きの属性に、
| ( 縦棒 ) を書き、そのあとに省略された場合の値を指定します。下の例を見てください。
[wait time=200]
*start|スタート
[cm]
; -- マクロの定義 --
[macro name=newtag]
[font color=%color|0xff0000]
こんな風にマクロを作ります
[resetfont]
[endmacro]
; -- マクロを使う --
[newtag color=0x00ff00]
[newtag]
最初の [newtag] を使っているところでは color 属性を指定しているので、その属性の値である 0x00ff00 と置き換わり、緑色で文字が表示されています。
二番目の [newtag] を使っているところでは、属性がなにも指定されていないので、デフォルトである "0xff0000" が採用され、文字は赤で表示されます。
Note
属性名の指定には英半角小文字を用いてください。大文字を指定すると正常に動作しません。