イベントスクリプト

イベントスクリプトとは、音楽を鳴らす、画像表示、マップの移動、戦闘など、
ゲームを作る上で欠かせないイベントを操作するための xml ファイルです。
エディタでイベントを作成した場合、 mapName.xml 形式で保存されたファイルの CDATA セクションにその内容が書かれます。

基本的な文法は ActionScript 3.0 を参考に作ってあります。
スクリプトを受け取るとアセンブラ風の言語にコンパイルし、スタックベースの仮想マシーンで順に実行していきます。

変数

変数の宣言するには var というキーワードを使います。 現在対応しているリテラルは文字列と数字と配列です。

// int
var val1 = 10;
var val2 = 0xFFFF;
// Number
var num = 3.14;

// Boolean
var b = true;

// String
var str = "Test";

// Array 要素にアクセスするには array[0] というようにします
var array = [ 0, 1, 2, "test", 4 };

制御文

制御文とは、式を評価することで条件分岐をし、処理を振り分けることができるようにしたりする文です。
if while for が使えます。

for (var i = 0; i < 10; ++i) {
	if (i == 5) {
		MB(i);
		break;
	}
}
var i = 0;
while (i < 20) {
	++i;
}
MB(i);

関数

関数を宣言するには function というキーワードを使います。

function test(p1, p2)
{
	MB(p1 + p2);
}
test("Hello ", "World");

予約語

予約語とは、スクリプトで使う if などの制御文や、String などの変数の型を定義した物です。
変数の名前に使うことはできません。

break case catch class continue
default delete do else finally
function for if import in
instanceof new return switch suspend
while this throw try typeof
with var void Number String
_ret true false

現在使えるのは以下の通りです。

// 指定したファイルを挿入します
#include "Scripts/test.txt"
// Boolean 型の変数
var b = true;
MB(typeof b);

システム変数

システム変数とは、宣言をすることなく、最初から定義されている変数で、特殊な用途で使われます。

現在用意されている変数は _ret のみです。この変数はコマンドを使った後の戻り値を保存しておく物で、例えば menu 関数を実行した後の戻り値として、選択されたメニューアイテムのインデックスが保存されます。