9. スクリプト

9-1. スクリプトの作成方法
スクリプトは総合開発環境のマップ編集のスクリプトエディタで作成します。エディタの使用方法については総合開発環境を参照して下さい。ここではスクリプトを作成する上での決まりごとや各命令について説明したいと思います。まず、最低限必要なスクリプトは、「マッププロセス開始」と「マッププロセス終了」という 2 つの命令です。これら 2 つの命令はスクリプト中に必ず 1 つだけずつ必要で、「マッププロセス開始」が上にある必要があります。他のスクリプトはこれら 2 つの命令の上・中・下に書いていくことになります。サンプルを開いて参考にして下さい。なお、スクリプト 1 行を記述するのに必要な容量は 896 バイトです。

9-2. トッププロセス
まず、操作対象の登場キャラがあるマップに入って来たとき、0000 行からスクリプトが実行され、「マッププロセス開始」を発見するとこのときのスクリプトは終了します。この、0000 行から「マッププロセス開始」があるまでのスクリプトの部分を「トッププロセス」と言い、文字どおりマップに入ってきたときに 1 回だけ実行されます。トッププロセス中の命令文で、トッププロセスの外に制御を移すようなジャンプを行ってはなりません。トッププロセスはどういうときに使用するかと言うと、例えば店のマップで、入ったときに店員の「いらっしゃいませ」というメッセージを表示したい場合などに使用します。このとき、敵やマップ上の人物・登場キャラはフィールド上にすでに配置されています。このため、登場キャラを出したくない場面を演出する場合(例えば回想シーンなど)は、キャラ撤去コマンドを使用して一旦フィールド上から取っておきます。また、このマップ上にある宝箱などのうちすでに開いてしまったものに関して、マップチップを開いた状態のものに置き換える作業などもここで行います。
マップを切り替える際、トッププロセスで何かしら描画(メッセージ表示やマップ描画など)を行うと、マップを最初に表示する際にアニメーション効果による画面切替が行われません。何も描画を行わない場合はアニメーション効果が適用されます。また、トッププロセスに入ったときはそのとき再生されていた BGM が引き続き再生されます。トッププロセスで音楽再生コマンドを使用しなければ、マップに設定された BGM がトッププロセス終了時に再生開始されますが、トッププロセスですでに BGM を再生する必要がある場合は音楽再生コマンドを使用して MIDI を再生して下さい。前の BGM を引き続き再生したい場合に、マップに設定された BGM が前の BGM と異なる場合も音楽再生コマンドで同じ MIDI を再生して下さい。

9-3. マッププロセス
コマンド名からもわかるように、「マッププロセス開始」と「マッププロセス終了」に囲まれた部分を「マッププロセス」と言い、登場キャラがそのマップ上にいる間、描画フレームごとに実行されます。つまり、絶えず繰り返し何回も実行されるものと考えてください。ここには、マップに関するスクリプトで重要な部分、つまり登場キャラがある場所に来たら別のマップに移動させたり、人に話しかけたときにメッセージを表示したり、売買を行ったり宿屋の機能を付けたりするのもこの箇所です。マッププロセスは「マッププロセス開始」の次の行から実行され、「マッププロセス終了」を発見すると終了します。終了すると言ってもまたすぐに繰り返し実行されるわけですが。これに関しても、マッププロセスの中からマッププロセスの外へ飛んでいくようなジャンプ命令を設定してはなりません。

9-4. テールプロセス
トッププロセスに対して、登場キャラがそのマップから出て行くときに 1 回だけ実行される部分を「テールプロセス」と言います。テールプロセスは「マッププロセス終了」からスクリプトの最後の行までの部分を指します。これに関しても、テールプロセスの中からテールプロセスの外へ飛んでいくようなジャンプ命令を設定してはなりません。使用例をトッププロセスの場合と同じように説明すると、例えば店のマップで、出て行くときに店員の「ありがとうございました」というメッセージを表示したい場合などに使用します。ただ、テールプロセスはトッププロセスほど使用する機会はないと思います。

9-5. 命令の種類
スクリプトに使用する命令は、その命令がスクリプト制御を移す、つまりジャンプの仕方によって 4 種類に分けられます。ある特定の行や別のマップに制御を移すジャンプ系命令、上で説明した 3 種類のプロセスを分断しているプロセス分割命令、条件によって 2 つ以上のジャンプ先を設定できる分岐命令、そしてその他の命令です。ただし、これはあくまでもスクリプト制御の点に関して分類したもので、命令の機能自体にはあまり関係ありませんので注意して下さい。以下に、命令の種類を示す記号を示します。
記号
命令の種類
ジャンプ先

ジャンプ系命令
1 つの行・別のマップ

プロセス分割命令
当該プロセスを終了

分岐命令
複数の行

その他の命令
なし

9-6. 命令一覧
Queek のスクリプトで使用できるすべての命令です。命令の名前をクリックすると各命令の説明ページにジャンプします。
番号
命令
番号
命令
000 ▼ジャンプ
001 ★マッププロセス開始
002 ★マッププロセス終了
003 ○変数代入
004 ◆変数評価
005 ○変数計算
006 ○ステータス取得
007 ○ステータス変更
008 ◆コマンド
009 ◆座標
010 ◆方角
011 ◆調査
012 ◆会話
013 ◆敵を倒した
014 ◆アイテム所有
015 ◆魔法習得
016 ◆装備
017 ○メッセージ
018 ◆セレクト
019 ○売買
020 ○マップ描画
021 ○1枚絵表示
022 ○音再生
023 ○音楽再生
024 ○マップ変更
025 ○オブジェクト移動
026 ○敵配置
027 ▼別マップに移動
028 ▼座標でマップ移動
029 ▼ドアに入る
030 ○描画角度変更
031 ○宿屋
032 ○キャラ撤去
033 ○キャラ配置
034 ◆アイテムを与える
035 ○乱数発生
036 ○一定時間待機
037 ○キャラ変更
038 ○金品受け渡し
039 ▼メインメニューへ
036 ○一定時間待機
037 ○キャラ変更
040 ○簡易メッセージ
041 ○敵サーチ
042 ○敵ステータス取得
043 ○敵ステータス変更
044 #コメント
045 ◆アイテム使用