ティラノスクリプトでは、何度も繰り返し利用する処理などをライブラリ化して、繰り返し利用する機能があります。
それが、今回利用する「サブルーチン」と「マクロ」です。
この2つは「他のまとまった機能を呼び出す」というところは一緒なのですが、使い方や用途がちがいます。
■サブルーチンの主な用途
・シナリオが大きく分岐する場合など、シナリオファイルを分けて作成しておき、サブルーチンで処理を移動させることでシナリオを分岐させる
■マクロの主な用途
・何度も繰り返し利用するスクリプトをマクロにすることで、タグを記述するだけで繰り返し利用することができるようにする。
いかがでしょう。ちょっと、想像しにくいですね。具体的な使用方法を確認して行きましょう。
【重要】
[jump][button][link]などでも他のシナリオファイルやラベルに移動することができますが、サブルーチン・マクロと大きくちがう所があります。
それは、サブルーチンとマクロは処理が終わると、呼び出し元に戻ってきます。しかし[jump][button][link]で移動した場合は呼び出し元に戻って来れません。
サブルーチンは[call]タグを使って呼び出します。また、サブルーチンから呼び出し元に戻る場合は[return]タグを使います。
[wait time=200]
*start
[cm]
サブルーチンを呼び出します。[l][r]
[call target=*subroutine]
サブルーチンを呼び出しました。
[s]
*subroutine
これはサブルーチンです。[l][r]
クリックをすると呼び出し元に戻ります。[l][r]
[return]
マクロとはある処理をまとめたものを1つのタグで呼び出せるようにできる機能です。
つまり、既存のタグや文章を組み合わせて自由に新しいタグを定義することができる、非常に強力な機能です。
何度も使用するタグはマクロ化しておけば、他のゲームを作る際にも再利用できますので、どんどんマクロ化していきましょう
マクロは一度定義しておけば、そのマクロをどこからでも利用することができるようになります。
なので、必ずゲーム起動時に実行される必要があるため、first.ksの最初に記述しておくのが良いでしょう。
では具体的にコードを見ていきましょう。
シナリオを進める場合、クリック待ちの[l]と[r]を一緒に使う事が多いでしょう。
ただ、2つタグを入力するのは面倒なので一個のタグで済むように、以下のようなマクロを定義してみましょう。
; -- マクロの定義 --
[macro name=lr]
[l][r]
[endmacro]
;マクロを呼び出す
テストテスト[lr]
これもテスト[lr]
ティラノスクリプトでは、定義したマクロを呼び出す際に好きな値を渡すことができます。
以下の例も見て下さい
; -- マクロの定義 --
[macro name=newtag]
[font color=%iro]
ここの文字が指定したいろになります
[resetfont]
[endmacro]
; -- マクロを使う --
[newtag iro=0x00ff00]
[macro name=transwait]
[trans *]
[wt]
[endmacro]
[macro name=newtag]
[font color=%color|0xff0000]
こんな風にマクロを作ります
[resetfont]
[endmacro]
[macro name="test"]
マクロにわたされた値は「[emb exp="mp.your_name"]」です。
[endmacro]
;マクロの呼び出し
[test your_name="シケモク"]