定义宏的同时,也自己定义了属性的话,就可以使用属性改变执行时的效果了。
在宏定义中,将属性値以
% 开头,百分号后面的文字就成为一个自定义的属性名。
以下の例を見てください。
[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 指令所拥有的全部属性,对于扩展既有的 KAG 指令是相当方便的功能。
宏可以进行嵌套,但是请注意不要在宏的定义里调用自身哦。(^^)
如果想要省略属性值,可以为宏指定默认值。% 指定的属性名之后,写上
| ( 竖线 ) ,之后写上当省略时,会默认指定的值。请看下面的例子。
[wait time=200]
*start|开始
[cm]
; -- 宏的定义 --
[macro name=newtag]
[font color=%color|0xff0000]
这是显示一段文字的宏
[resetfont]
[endmacro]
; -- 宏的使用 --
[newtag color=0x00ff00]
[newtag]
使用第一个 [newtag] 时,指定了 color 属性的值,因此文字颜色表现为 0x00ff00 ,緑色。
使用第二个 [newtag] 时,没有指定 color 属性,因此使用了预设的默认值 "0xff0000" ,文字颜色为红色。
Note
属性名的指定,请使用半角英文。使用全角、汉字等是不行的。(译注:宏属性必须半角英文,但宏的名字就比较自由,甚至可以使用中文)