** 内容はSRC2.2.33のものです **
Callコマンド
サブルーチンコール
書式
Call label [parameters]
指定項目説明
labelジャンプ先のラベル名。「:」は不要
parametersサブルーチンの引数。複数指定可。省略可能
解説
ラベルlabel に対してサブルーチンコールを行います。サブルーチンとは多用される処理を独立させたものです。GoToコマンドと異なり、ジャンプ先のコマンド列(サブルーチン)を実行後にCallコマンドの直後のイベントコマンドへ実行の流れが戻ります。一旦別の処理をした後で元の処理を継続したい場合に使用してください。
parameters にサブルーチンコールの引数を指定することができます。指定しなくてもかまいません。引数はサブルーチンコール内でArgs関数を使って参照することができます。
Callコマンドによって呼び出されるサブルーチンは必ずReturnコマンドを含まなければいけません。Returnコマンドがサブルーチンの終りと見なされます。
Exitコマンドでサブルーチンが終了した場合、イベントの動作は保証されません。
サブルーチンは必ずReturnコマンドで終了させて下さい。
サブルーチン内で作業用の変数を使用する場合はLocalコマンドを利用し、他のサブルーチンやイベントに影響を与えないように変数をサブルーチンローカル変数にしておくことをお勧めします。
「Call」の部分は省略することができます。例えば下の例ですと「Call 信頼度UP ランラン」の代わりに「信頼度UP ランラン」と指定しても動作は同じになります。
サブルーチンの再帰呼び出しは可能ですが、再帰の回数は50回までに制限されています。再帰呼び出しを行う場合はご注意ください。
例
Talk ランラン(通常・照れ笑)
おおきに。うち、ほんまに感謝してるさかい
End
#サブルーチン「信頼度UP」を引数に「ランラン」を指定して呼び出し
Call 信頼度UP ランラン
Exit
#サブルーチン「信頼度UP」
信頼度UP:
#引数の数によって処理を変える
If Args(2) = "" Then
#2番目の引数が指定されていなければ信頼度の上昇は1
Incr 信頼度[Args(1)] + 1
Else
#2番目の引数が指定されていればその分だけ信頼度を上昇
Incr 信頼度[Args(1)] Args(2)
EndIf
#信頼度を設定
SetRelation 主人公 Args(1) (信頼度[Args(1)] \ 10)
SetRelation Args(1) 主人公 (信頼度[Args(1)] \ 10)
#サブルーチンを終了
Return