所谓宏(Macro)就是

 宏就是,为了「将复数的指令,文字等,用一个指令表示」的缩写简化功能。

 将KAG既存的指令,文字组合起来,自由地定义新指令的方法。
 KAG 剧本编写中,可能经常会出现有一些指令段,需要在很多地方重复写好几次的情况。假如使用宏的话,就可以大幅度减少这种重复造成的麻烦。
 请随心所欲地将经常会写在一起的指令们变成宏吧。(^^)

基本的使用方法

 要使用宏,首先要进行宏的「定義」。只要定义一次,之后就可以反复地使用这个宏了。所以,宏的定义,最好是写在first.ks开始的地方。

 定义宏的办法是,使用macro 指令和 endmacro 指令で,将想要设定成宏的段落括起来。macro 指令的属性 name ,就定义了这个宏的名字。(也就是新指令的指令名)


[wait time=200]
*start|开始
[cm]
; -- 宏的定义 --
[macro name=newtag][font color=0xff0000]这是显示一段文字的宏[resetfont][endmacro]


想要使用的话,就和使用一般的指令一样,把宏的名字写上就可以了。

; -- 宏的使用 --
[newtag]


 像上面这样写上 [newtag][newtag] 这个指令执行时, 等同于执行了 [font color=0xff0000]这是显示一段文字的宏[resetfont] ,所以将会显示红色文字:「这是显示一段文字的宏」。

 宏的定义可以写成多行。(如下例)


[wait time=200]
*start|开始
[cm]
; -- 宏的定义 --
[macro name=newtag]
[font color=0xff0000]
这是显示一段文字的宏
[resetfont]
[endmacro]


; -- 宏的使用 --
[newtag]

宏的属性

 定义宏的同时,也自己定义了属性的话,就可以使用属性改变执行时的效果了。
 在宏定义中,将属性値以 % 开头,百分号后面的文字就成为一个自定义的属性名。
 以下の例を見てください。

[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
 属性名的指定,请使用半角英文。使用全角、汉字等是不行的。(译注:宏属性必须半角英文,但宏的名字就比较自由,甚至可以使用中文)