11式RPG制作機では、ゲーム内のイベントや敵との戦闘シーンにおける敵の行動パターンやダメージ計算式、さらに魔法の効果などをスクリプトで設定します。
11式RPG制作機におけるスクリプトは、「一つの行に一つのスクリプト関数」を記述したテキストです。スクリプト関数には、計算を行ったりやゲームシステムの機能を利用する通常の関数のほかに、スクリプトの実行を制御するif()/else()/endif()の制御関数があります。
if()~else()~endif()は、if()の引数に指定した条件を満たす場合にif()以下を、満たさない場合にelse()以下を実行します(条件を満たす場合の処理のみ記述する場合は、else()はなくてもかまいません)。
関数には、引数を指定することができます。複数の引数を指定する場合は引数の間を「,」で区切り、文字列を引数として指定する場合は「""」で囲みます。文字列内に「"」を入れることはできないので、ご注意ください。
スクリプトで扱う数値は、すべて整数となります。
変数
スクリプト内では、スクリプト変数とローカル変数を使用できます。
スクリプト変数は、ゲームの各種フラグなどを保存するための記憶領域です。一度設定すると、値を設定したイベントを終えても再び値を書き換えるまでその値が保存されます。
ローカル変数は、一つのイベント内や一度のスクリプト処理内でのみ有効な変数です。イベントや処理が終了すると、設定した値も消失します。
敵の行動スクリプト
enemy.datで指定する敵の行動では、ローカル変数0番に敵の行動、ローカル変数1番に行動パラメータを設定します。
現在は、ローカル変数0の行動として0(攻撃)と1(魔法)が設定可能で、魔法を使う場合はローカル変数1にその魔法番号を設定します。
スクリプト関数
スクリプトで使用できる関数は、以下のとおりです。
add | 引数として指定された二つの値を加算し、その結果を返します。 |
---|---|
sum | 引数として指定された値を合計し、その結果を返します。 |
sub | 引数として指定された二つの値の減算(第一引数-第二引数)を行い、その結果を返します。 |
mul | 引数として指定された二つの数値を乗算し、その結果を返します。 |
div | 引数として指定された二つの値の除算(第一引数/第二引数)を行い、その結果を返します。 |
sqrt | 引数として指定された値の平方根を返します。 |
rand | 0から引数として指定された値の間の乱数を返します。 |
getVar | 引数で指定された番号のスクリプト変数値を返します。 |
getLocalVar | 引数で指定された番号のローカル変数値を返します。 |
eq | 引数で指定された二つの値が等しいか検証し、その結果(真偽値)を返します。 |
ne | 引数で指定された二つの値が等しくないか検証し、その結果(真偽値)を返します。結果は、eqの逆です。 |
lt | 引数で指定された二つの値を比較し、第一引数の方が小さければ真、それ以外なら偽を返します。 |
gt | 引数で指定された二つの値を比較し、第一引数の方が大きければ真、それ以外なら偽を返します。 |
le | 引数で指定された二つの値を比較し、第一引数が第二引数以下ならば真、それ以外なら偽を返します。 |
ge | 引数で指定された二つの値を比較し、第一引数が第二引数以上ならば真、それ以外なら偽を返します。 |
and | 引数で指定された二つの真偽値を検証し、両方が真なら真、それ以外は偽を返します。 |
or | 引数で指定された二つの真偽値を検証し、真となるものが一つでもあれば真、なければ偽を返します。 |
getVar | 引数で指定された番号のスクリプト変数値を取得します。 |
getLocalVar | 引数で指定された番号のローカル変数値を取得します。 |
setVar | 第一引数で指定された番号のスクリプト変数に、第二引数で指定された値を設定します |
setLocalVar | 第一引数で指定された番号のローカル変数に、第二引数で指定された値を設定します |
getItemNum | 引数で指定された番号のアイテム保有数を返します。 |
getItemSpace | あと何個アイテムを持てるか、アイテムの追加可能数を返します。 |
addItem | 主人公の保有アイテムとして引数で指定された番号のアイテムを追加します。 |
decItem | 主人公の保有アイテムから、引数で指定された場号のアイテムを一つ削除します。 |
setChar | 主人公のキャラクタ画像を引数で指定されたキャラクタ番号に変更します。 |
getPlayerStatus | 引数で指定された主人公のパラメータを取得します。引数にはhp(HP)、mp(MP)、at(攻撃力)、def(守備力)、mf(魔力)、exp(経験値)などの文字列を設定できます。 |
getEnemyStatus | 敵のパラメータを取得します。引数にはhp(HP)、mp(MP)、at(攻撃力)、def(守備力)、mf(魔力)、exp(経験値)などの文字列を設定できます。 |
setPlayerStatus | 第一引数(文字列)で指定された主人公パラメータを第二引数の値に設定します。 |
move | 現在位置を移動します。第一引数に移動先のマップ番号、第二引数にX座標、第三引数にY座標を指定してください。第四引数として移動後のBGMを指定することもできます。 |
message | 引数で指定された文字列を表示します。 |
select | 選択肢のダイアログを表示し、選択結果(最初の選択肢が0、二番目が1…)を第一引数で指定された番号のローカル変数に格納します。選択肢は、第二引数以下に文字列で複数設定できます。 |
battle | 第一引数で指定された番号の敵と戦闘を行い、結果(0=逃走、1=勝利、2=敗北)を第二引数で指定された番号のローカル変数に格納します。 |
image | 引数で指定された画像ファイルを表示します。 |
setBGM | 引数で指定されたサウンドをBGMとしてループ再生します。サウンドには拡張子なしのファイル名のみ指定してください。 |
playVideo | 引数で指定された動画を再生します。動画には拡張子なしのファイル名のみ指定してください。 |
flash | 引数で指定された色で発光する画面効果です。色の指定は、#rrggbb形式(RGBそれぞれ16進数2桁の文字列)で行ってください。 |
スクリプトの具体的な記述法は、サンプルデータ内のevent.datをご覧ください。