この文書はスクリプトの詳細を仕様としてまとめたものである。 書き方マニュアルではないので、書き方を知りたい場合は、 サンプルのソースそのものを読むこと。
記述方法 | (なし) |
現在実行している行数を示すカウンタ。内部パラメータである。 jump命令やcall命令で変化する。 |
記述方法 | Rn |
記述の例 | R0, R3 |
データ範囲 | -2,147,483,648〜2,147,483,647 |
数 | 8個(R0〜R7) |
使われる例 | jump R0 == 0 clear ;レジスタ0がゼロならば#clearへジャンプ |
条件判定や演算を行う際の、一時的なデータ格納場所。 特にレジスタ番号0は敵の数を取得する際の戻り値になったりと、頻繁に使う。 call命令によるレジスタスタックにPUSHされ、returnでPOPされて元に戻る。 |
記述方法 | (なし) |
数 | 8段 |
call命令でサブルーチンコールした際に、 自動的にレジスタ値とプログラムカウンタを保持する役目を持つ。 これにより、参照渡しではなく値渡しになるため、構造化プログラミングが容易となる。 |
記述方法 | Fnn |
記述の例 | F0, F11 |
データ範囲 | -2,147,483,648〜2,147,483,647 |
数 | 128個(F0〜F127) |
使われる例 | set F10 = R0 ;レジスタ0の値をフラグ10に保存 |
いわゆる「変数」として使う。 set命令で明示的に変更しない限りデータは変わらないため、 イベントシーンの実行フラグや、ミッション開始時のステータス保持などに使うことが一般的。 レジスタと異なり、スタックされないので、callしてもreturnしても値は変わらない。 |
記述方法 | Cn |
記述の例 | C0, C3 |
データ範囲 | 0〜2,147,483,647 |
数 | 128個(C0〜C127) |
使われる例 | jump C0 >= 60 failed ;カウンタ0の始動から60秒経過したら#failedへジャンプ |
時間の経過を計るために使う。始動したら自動的にカウントアップし、一秒間で1増加する。
startcounter命令により、カウントを開始できる。カウンタの値が0の場合、カウンタは停止していることをあらわす。
ミッションの残り時間を計測することに使うことは『推奨しない』(getstatus REST_TIME を使うこと)。
単位系を「秒」に統一したことにより、最大で-0.983秒(-59/60秒)の誤差が発生する。 したがって、カメラワーク制御の時間計測などに使うことは出来ない。基本的には「増援出現から15秒後」という使い方をするためのものである。 なお、レジスタと異なり、スタックされないので、callしてもreturnしても値は変わらない。 |
jump 0==0 ジャンプ先のラベル |
set R5=123 jump 0==0 R5 #123 ;ココへ飛ぶ |
特殊なセクションを挙げる
Raiders | |
30 | 空中静止 |
200 | スクリプト制御 |
対空砲、SAM、レーザーなど | |
30 | 稼動停止 |
40 | 発射(settargetで事前にターゲット設定を行う必要がある。設定が無い場合は正面に射撃) |
TOYBOX | |
0 | なにもなし |
1 | 落雷 |
10 | ECM |
11 | ECM(敵軍のみ) |
12 | ECM(自軍のみ) |
13 | ECM(プレイヤーのみ) |
20 | イージスシステムのミサイル乱発 |
30 | プロペラ(上下軸を中心に回転) |
31 | プロペラ(前後軸を中心に回転) |
記述 | attackstyle ラベルコード, 種別コード, フラグ | ||||||||
引数 | ラベルコード | 変更したいユニットのラベルコード | |||||||
種別コード | 優先設定すべき敵の種別。下記のコードで指定する。
|
||||||||
フラグ | 優先にしたい場合はON、そうでない場合はOFF。 | ||||||||
動作 | ユニットの攻撃優先順位を変更する。これにより、僚機に上空制圧させたり出来る。あくまで優先設定をするだけなので、目の前の敵を放り出して遥か彼方の敵を追う事は無い。なお、敵機は標準でPRIOLITY_AIRがONになっている。 | ||||||||
例 | attackstyle L10, PRIORITY_NONTARGET, ON ;Label=10の僚機はターゲットで無い敵を優先的に攻撃する |
記述 | bomb ラベルコード, 爆発規模 | |
引数 | ラベルコード | 爆発する場所にいるユニットのラベルコード |
爆発する半径 | 5〜30程度が目安。大きすぎるとプログラムがクラッシュする。 | |
動作 | ユニットの座標を読み込んで、効果音付きで爆発させる。ユニット自体が爆死するわけではない。 | |
例 | bomb L13, 30 ;Label=13の妹の落下地点で機雷が爆発 |
記述 | call 比較値左辺 比較演算子 比較値右辺 ,ジャンプ先ラベル | |
引数 | 比較値左辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能 |
比較式演算子 | 右辺と左辺を比較する演算子、!= == < > <= >= の6つ。>=を間違えて=>と入力しないように注意。 | |
比較値右辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能 | |
ジャンプ先ラベル | 比較式が正しい場合にジャンプする先のラベル | |
動作 | (比較値左辺 比較演算子 比較値右辺)の比較式がTRUEの場合は、レジスタをスタックにPUSHして、ジャンプ先ラベルへサブルーチンコールする。 | |
例 | call R0>=10 ,Battle1 ;R0が10以上であれば、#Battle1へサブルーチンコール |
記述 | camfocus focus1のラベルコード, focus2のラベルコード | |
引数 | focus1のラベルコード | カメラの場所となるユニットのラベルコード |
focus2のラベルコード | カメラコードがLONG,SHORTのときの撮影対象ラベルコード | |
動作 | viewmodeでカメラを変更した際に、撮影対象となるユニットを指定する。カメラコードがLONG,SHORTの場合はカメラの場所と撮影対象の2つを指定する。 | |
例 | camfocus L10, L1 ;L10から自機を撮影 |
記述 | camzoom 角度 | |
引数 | 角度 | カメラの透視投影角度を45〜5の間で指定。標準は35。 |
動作 | カメラをズームイン・アウトさせる。突然変化するのではなく、滑らかに変わる。カメラの撮影モードがLONGまたはSHORTの場合のみ有効。 | |
例 | camzoom 10 ;カメラをズームインさせる |
記述 | catapult カタパルトのラベルコード, UNIT_ID, 出現するユニットのラベルコード, ターゲットフラグ | |
引数 | カタパルトのラベルコード | カタパルトになるユニットのラベルコード |
UNIT_ID | 出現させるユニットのUNIT_ID | |
出現するユニットのラベルコード | 出現させるユニットに設定するラベルコード | |
ターゲットフラグ | ターゲットとして出現させる場合はON。通常の敵の場合はOFF。 | |
動作 | 航空機をカタパルト発進させる。カタパルトは座標と方向の取得にしか使わないので、仕様上は対空戦車などから敵機が飛び出しても構わない。 | |
例 | catapult L62, 59 ;カタパルト(Label=62)からチャリオットC(UNIT_ID=59)を発進 |
記述 | closewindow | |
引数 | (なし) | |
動作 | message命令で表示された台詞ウィンドウを消す。 |
記述 | createcopy コピー先ラベルコード, コピー元ラベルコード | |
引数 | コピー先ラベルコード | コピーしたユニットが持つラベルコード |
コピー元ラベルコード | コピーされる対象ユニットのラベルコード | |
動作 | ユニットの場所と角度を使って透明機体を生成する。イベントでのカメラ制御用。debugモードの場合はプレイヤー選択機体に見える。 | |
例 | createcopy L10,L2 ;Label=2の機体の場所にLabel=10の透明機体を生成 |
記述 | createsprite 生成先ラベルコード, テクスチャ元UNIT_ID, (x0,y0, x1,y1) | |
引数 | 生成先ラベルコード | 作成したスプライトが持つラベルコード |
テクスチャ元UNIT_ID | この番号のテクスチャを使ってスプライトを生成 | |
(x0,y0, x1,y1) | スプライトとして使う矩形領域 | |
動作 | スプライトオブジェクトを生成する。2D処理されるので、カメラ位置に関わらず表示される。座標系は解像度に関わり無く左上が(0,0,0)で、右下が(640,480,0)。 | |
例 | createsprite L200, 240, (0,0,512,32) ;UNIT_ID=240のテクスチャを使って2Dスプライトを作る。 |
記述 | createthread スレッド番号, スレッド開始ラベル | |
引数 | スレッド番号 | 開始する対象となるスレッド番号 |
スレッド開始ラベル | スレッドが最初に実行する行のラベル | |
動作 | スクリプトの子スレッドを生成する。詳しくはスレッドについてを参照 | |
例 | createthread 1, missile ;スレッド1を始動、#missileから開始する。以後、2つのスレッドは並列動作を行う。 |
記述 | debugmode フラグ | |
引数 | フラグ | デバッグモードをONかOFFで指定 |
動作 | デバッグモードに切り替える、今のところ、通常時とデバッグモードの違いは「透明機体がRR10の見た目で表示される」以外の差は無い。 | |
例 | debugmode ON ;デバッグモードに切り替える。 |
記述 | deleteobject | |
引数 | (なし) | |
動作 | イベントモードで配置したユニットを全て消去する。イベントモードを抜ける前に記述するのが一般的。 |
記述 | destroy ラベルコード | |
引数 | ラベルコード | 破壊するユニットのラベルコード |
動作 | ユニットにミサイル100発分相当のダメージを与えて破壊する。 | |
例 | destroy L10 ;Label=10の輸送機を破壊する |
記述 | event フラグ | |
引数 | フラグ | イベントモードか否かを表すフラグ。ONかOFFを指定。 |
動作 | イベントモードに入る。イベントモードでは、それまで配置したユニットは全て非表示になるので、イベントシーン用のユニットは別途読み込む必要がある。 | |
例 | event ON ;イベントシーン開始 |
記述 | fadewave, 再生種別コード | |
引数 | 再生種別コード | 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。 |
動作 | 音声再生をフェードアウトさせる |
記述 | fadein | |
引数 | (なし) | |
動作 | 画面をフェードインさせる。イベントシーンの出入りにfadeoutと併用する。 |
記述 | fadeout | |
引数 | (なし) | |
動作 | 画面をフェードアウトさせる。イベントシーンの出入りにfadeinと併用する。 |
記述 | finish 終了コード, (次ミッション) | |||||||||
引数 | 終了コード | ゲームのメインエンジンに返す終了理由
|
||||||||
次ミッション | 次にプレイするミッションID | |||||||||
動作 | スクリプトを終了させ、ミッション終了処理をさせる | |||||||||
例 | finish CLEAR ;ミッションクリア finish NEXTSTAGE,1 ;ミッションクリア、MissionID=1のミッションへ進む |
記述 | getammo ユニットを示すラベルコード | |||||||||||||
引数 | ユニットを示すラベルコード | 残弾数を取得したいユニット | ||||||||||||
動作 | 残弾数を取得する。残弾数がゼロになったかどうか見るだけでは「装備しない」と区別できないため、搭載可能数もあわせて評価する。
|
|||||||||||||
例 | getammo L1 ;プレイヤー(Label=1)の残弾数情報を取得 |
記述 | getcleartime ミッションID | |||||||||||||||||
引数 | ミッションID | クリア時間を取得したいミッション。負の値ならば現在実行中のミッション。 | ||||||||||||||||
動作 | ミッションのクリア時間をゲームデータから取得し、以下のレジスタに代入する。単位は秒。2週目判定のために使うのが一般的。
なお、実行時の環境からデータを取得するので、データの残らないエディットミッションでは使用できない。 また、リプレイファイルを再生した場合に、記録された環境と再生する環境ではクリア情報が異なってしまうため、ミッション終了時以外は使用してはいけない。リプレイが正常に動作しなくなる。 |
|||||||||||||||||
例 | getcleartime -1 ;2週目判定の情報を取得 |
記述 | getdestroy ユニットを示すラベルコード | |||||||||
引数 | ユニットを示すラベルコード | 撃破の検知対象のユニット | ||||||||
動作 | ユニットが敵を撃破したことを検知する。撃破した場合R0には1〜59の値が代入され、撃破してからの時間を表す。命中した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
|
|||||||||
例 | getdestroy L1 ;プレイヤー(Label=1)の撃破情報を取得 |
記述 | getfox ユニットを示すラベルコード | |||||||||
引数 | ユニットを示すラベルコード | ロックオンの検知対象のユニット | ||||||||
動作 | ユニットがミサイルを発射したことを検知する。発射した場合R0には1〜59の値が代入され、発射してからの時間を表す。発射した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
|
|||||||||
例 | getfox L1 ;プレイヤー(Label=1)のロックオン情報を取得 |
記述 | getgunrange ユニットを示すラベルコード | |||||||||
引数 | ユニットを示すラベルコード | 射程の検知対象のユニット | ||||||||
動作 | ユニットが敵を機銃射程内に捉えたことをを検知する。射程内の場合R0には1以上の値が代入される。同様にして、各レジスタに以下のような値が代入される。
|
|||||||||
例 | getgunrange L1 ;プレイヤー(Label=1)のガンレンジ情報を取得 |
記述 | gethit ユニットを示すラベルコード | |||||||||||
引数 | ユニットを示すラベルコード | 命中の検知対象のユニット | ||||||||||
動作 | ユニットの攻撃が敵に命中したことを検知する。命中した場合R0には1〜59の値が代入され、命中してからの時間を表す。命中した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
|
|||||||||||
例 | gethit L1 ;プレイヤー(Label=1)の命中情報を取得 |
記述 | getlength ユニットを示すラベルコード1, ユニットを示すラベルコード2 | ||||||||||||||||
引数 | ユニットを示すラベルコード1 | 距離を測る対象のユニット(単体のみ) | |||||||||||||||
ユニットを示すラベルコード2 | 距離を測る対象のユニット(グループ可) または下表の値
|
||||||||||||||||
動作 | ラベルコード1のユニットを基準にして、ラベルコード2のユニットの中で最も近いものの距離をR0に代入する。ラベルコード2が存在しない場合、R0には負の値が代入される。 ラベルコード2にAIR_ENEMY等を指定した場合、ラベルに関わらず該当するユニットとの最短距離を求める。 |
||||||||||||||||
例 | getlength L1, L10 ;プレイヤー(Label=1)と敵機(Label=10)の距離をR0に代入 |
記述 | getlock ユニットを示すラベルコード | |||||||||
引数 | ユニットを示すラベルコード | ロックオンの検知対象のユニット | ||||||||
動作 | ユニットが敵をロックオンしたことを検知する。ロックオンしている場合R0には1以上の値が代入される。同様にして、各レジスタに以下のような値が代入される。
|
|||||||||
例 | getlock L1 ;プレイヤー(Label=1)のロックオン情報を取得 |
記述 | getnetworkdata ネットワークID, オフセット, データ代入先 | |
引数 | ネットワークID | ネットワークID |
オフセット | オフセット番号0〜7(即値、レジスタ、フラグ、カウンタ) | |
データ代入先 | 共有変数の内容を代入する先(レジスタ、フラグ、カウンタ) | |
動作 | 「ネットワークID」のプレイヤーが管理するネットワーク共有変数の「オフセット」番号のデータを「データ代入先」へ入れる。 ネットワーク共有変数への書き込みはsetnetworkdataを使用する。 | |
例 | getnetworkdata 1, 0, R0 ;ホストプレイヤーが管理するデータのうち0番に保存されたデータをレジスタ0に代入(R0=networkdata[HOST][0];というイメージ) |
記述 | getpadnow キーコード | |||||||||||||||||||
引数 | キーコード | 取得するキーを示すコード
|
||||||||||||||||||
動作 | キーコードで指定されたゲームパッドまたはキーボードなどの「現在の押下状態」を取得し、R0に代入する。押されていなければ0、押されていれば0以外の値。 | |||||||||||||||||||
例 | getpadnow PAD_GUN ;R0に機銃ボタンの押下状態を代入 |
記述 | getpadtrg キーコード | |||||||||||||||||||
引数 | キーコード | 取得するキーを示すコード
|
||||||||||||||||||
動作 | キーコードで指定されたゲームパッドまたはキーボードなどの「押下した瞬間」を取得し、R0に代入する。押されていなければ0、押されていれば0以外の値。 | |||||||||||||||||||
例 | getpadtrg PAD_MISSILE ;R0にミサイルボタンのトリガ状態を代入 |
記述 | getpos ラベルコード | |
引数 | ラベルコード | 場所を取得するユニットのラベルコード |
動作 | ユニットの座標(X,Y,Z)をR0,R1,R2に、ユニットの角度(ピッチ,方位,バンク)をR3,R4,R5に代入 | |
例 | getpos L1 ;Label=1のユニットの座標をレジスタに代入 |
記述 | getrotabs ラベルコード | |
引数 | ラベルコード | 角度を取得するユニットのラベルコード |
動作 | 戦場に対するユニットの角度(ピッチ,方位,バンク)をR0,R1,R2に代入。子ユニットの場合、getposとは異なり、親ユニットに関わり無く戦場に対する絶対角度を取得する。 | |
例 | getrotabs L60 ;Label=60のユニットの角度をレジスタに代入 |
記述 | getstatus ステータスコード, (オペランド) | |||||||||||||||||||||||||||||||||||||||||||||||||||
引数 | ステータスコード | 取得するステータス情報を示すコード
|
||||||||||||||||||||||||||||||||||||||||||||||||||
NETWORK_ID | プレイヤーのネットワークIDを取得 |
getstatus REST_TIME ;R0に残り時間の秒数を代入 getstatus ALL_TARGET ;R0に全ターゲット数を代入 getstatus ALL_LABEL, L2 ;R0に対空機銃(Label=2)の数を代入
記述 | jump 比較値左辺 比較演算子 比較値右辺 ,ジャンプ先ラベル | |
引数 | 比較値左辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能 |
比較式演算子 | 右辺と左辺を比較する演算子、!= == < > <= >= の6つ。>=を間違えて=>と入力しないように注意。 | |
比較値右辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能 | |
ジャンプ先ラベル | 比較式が正しい場合にジャンプする先のラベル | |
動作 | (比較値左辺 比較演算子 比較値右辺)の比較式がTRUEの場合はジャンプ先ラベルへジャンプする。 | |
例 | jump R0==0 ,Clear ;R0が0であれば、#Clearへジャンプ |
記述 | limitengine ラベルコード, 最小値, 最大値 | |
引数 | ラベルコード | 対象となるユニットのラベルコード |
最小値 , 最大値 | エンジン出力を制限する最小幅と最大幅。フルブレーキ状態が-1、フルスロットルが1。 | |
動作 | エンジンの出力に上限を設定したり、下限を設定したりする。強制的に最高速度で飛行させたり、エンジン故障などを表現する。正常時において最小値=-1, 最大値=1となる。 | |
例 | limitengine L1, -1, 0 ;プレイヤー機のエンジン出力低下 |
記述 | loadse SE番号, ファイル名 | |
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと |
ファイル名 | 効果音ファイル名。wavとradが指定可能。 | |
動作 | ログファイルに文字列を吐き出す。デバッグなどに用いる。 | |
例 | loadse 50, "se\\sound.wav" ;効果音50にse\sound.wavを読み込む |
記述 | log ログ文字列 | |
引数 | ログ文字列 | ログファイルに出力する文字列 |
動作 | ログファイルに文字列を吐き出す。デバッグなどに用いる。 | |
例 | log "ミッション初期化処理終了" |
記述 | message 色コード, 話者文字列, 台詞文字列 | |
引数 | 色コード | ウィンドウの色を表す。RED/BLUE/YELLOWの3種類 |
話者文字列 | 話者をあらわす文字列。あまり長いとウィンドウに入りきらない。 | |
台詞文字列 | 台詞本体をあらわす文字列。\nを使っても2行まで。 | |
動作 | 台詞ウィンドウの内容を更新。台詞ウィンドウが無い場合は自動的に生成。 | |
例 | message BLUE, "オペレーター", "全ターゲットの破壊に成功しました。\n任務完了。お疲れ様です。" |
記述 | move ラベルコード, (X,Y,Z), 子フラグ | |
引数 | ラベルコード | 移動させる対象となるユニットのラベルコード |
(X,Y,Z) | 相対移動ベクトル。即値またはレジスタが指定可能。 | |
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。 | |
動作 | ユニットを(X,Y,Z)で示されるベクトルだけ相対移動させる。子オブジェクトを持つユニットの場合、子オブジェクトに対しては直接演算されず、親と共に移動する。戦艦の砲台位置を移動させるような動作をしたい場合はCHILDフラグを指定する。 | |
例 | move L10, (3, 0.8, 2) ;Label=10のオブジェクトをちょっと移動 move L11, (0.1, 0, 0) ,CHILD ;Label=11の閉鎖シールドを親に対してX方向へ移動させる |
記述 | movegearheight ラベルコード | |
引数 | ラベルコード | 移動させる対象となるユニットのラベルコード |
動作 | ユニットを車輪の高さベクトルだけ相対移動させる。RSEの仕様上、航空機は地面に配置されたことを考えて0.4だけ高い位置に配置されるので、地面の座標に合わせる場合はmove命令を併用する。 | |
例 | putgear L1 ;Label=1のプレイヤー機に車輪を出す movegearheight L1 ;Label=1の機体を車輪の座標だけ移動 move L1,(0,-0.4,0) ;Label=1の機体を0.4下げる |
記述 | playse SE番号, (x,y,z), 音量減衰値 | |
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと |
(x,y,z) | 音座標。 | |
音量減衰値 | 音座標がカメラから離れた場合にどれほど音が小さくなるか。ゼロの場合は音座標に関わらず最大音量となる。 | |
動作 | 効果音を鳴らす。SE番号10〜40まではゲーム内で使われている効果音が入っている。またloadse命令によりSE番号50以降に効果音を読み込むことが出来る。 | |
例 | playse 50, (R0,R1,R2), 5 ;効果音50を(R0,R1,R2)の座標に対して鳴らす |
記述 | playseloop SE番号, (x,y,z), 音量減衰値 | |
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと |
(x,y,z) | 音座標。 | |
音量減衰値 | 音座標がカメラから離れた場合にどれほど音が小さくなるか。ゼロの場合は音座標に関わらず最大音量となる。 | |
動作 | 効果音をループして鳴らす。loadse命令のループ版。停止するにはstopse命令を使う |
記述 | playwave 再生種別コード, ファイル名文字列, ループポイント | |
引数 | 再生種別コード | 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。 |
ファイル名文字列 | wavファイル名 | |
ループポイント | ループするBGMファイルなどの場合、ループで戻ってくる場所をサンプル数で指定。曲先頭に戻る場合は0、ちょうど1秒後に戻る場合は44100となる。記述しない、または負の値の場合はループしない。 | |
動作 | Windowsの標準PCMが入っているwavファイル、またはradファイルを再生し、R0にその再生時間を秒単位で代入する。再生終了を待つ場合はwaitstream命令を併用する。 | |
例 | playwave VOICE, "02_04.wav" ;音声ファイルを台詞として再生する |
記述 | provideweapon UNIT_ID | |
引数 | UNIT_ID | 入手する機体・武器のUNIT番号 |
動作 | 機体・武器の入手。 | |
例 | provideweapon 211 ;対空型汎用ミサイルの入手 |
記述 | putgear ラベルコード | |
引数 | ラベルコード | 車輪を出す対象となるユニットのラベルコード |
動作 | RSPファイルの指定に合わせ、ユニットに車輪を出す。子オブジェクト(UNIT_ID = 5)として呼び出すためsetlabel命令と組み合わせることで動作を制御できる。 | |
例 | putgear L1 ;Label=1のプレイヤー機に車輪を出す |
記述 | putgroup グループ番号 | |
引数 | グループ番号 | 読み込むグループ番号 |
動作 | ユニットをマップに配置する。 | |
例 | putgroup 1 ;グループ番号1の敵を配置する |
記述 | rand 要素数 | |
引数 | 要素数 | サイコロの「目」の数。0〜(要素数-1)の値のランダム値となる。 |
動作 | ランダム値を生成する。R0に「0〜(要素数-1)」の値がランダムで代入される。 | |
例 | rand 100 ;R0に0〜99までの値をランダムで代入 |
記述 | lostobject ラベルコード | |
引数 | ラベルコード | 消去するユニットのラベルコード |
動作 | ユニットを戦場から消す。RSE1.0ではlostobject命令と併用する必要があったが、現在は内部でlostobjectを自動的に実行するためそのようなことは不要である。 | |
例 | releaseobject L10, 0 ;Label=10のユニットを戦場から消す。 |
記述 | relrot ラベルコード, (X,Y,Z), 子フラグ | |
引数 | ラベルコード | 回転させる対象となるユニットのラベルコード |
(X,Y,Z) | ピッチ、方位、バンクの角度。即値またはレジスタが指定可能。 | |
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。 | |
動作 | ユニットを(X,Y,Z)で示される角度だけ相対回転させる。move命令の角度版ともいえる。連続で実行するとくるくる回ることになる。子フラグについてはmove命令の項で解説されているものと同様である。 | |
例 | relrot L10, (0, 1, 0) ;L10のオブジェクトをちょっと回転 |
記述 | reset リセット先ラベル | |
引数 | リセット先ラベル | 戻る場所を示すラベル |
動作 | スタックを掃除してラベルで指示された場所へ飛ぶ。深いループから抜けるとき、または増援処理などで戦況が変わった際にメインループを最初からやり直したい場合に使う。 | |
例 | reset loop ;#loopに戻って最初から条件判定をやりなおし |
記述 | return 比較値左辺 比較演算子 比較値右辺 | |
引数 | 比較値左辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能 |
比較式演算子 | 右辺と左辺を比較する演算子、!= == < > <= >= の6つ。>=を間違えて=>と入力しないように注意。 | |
比較値右辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能 | |
動作 | (比較値左辺 比較演算子 比較値右辺)の比較式がTRUEの場合は、レジスタをスタックからPOPして、callした次の行へジャンプする。 | |
例 | return R0>=2 ;R0が2以上ならリターン |
記述 | runaway ラベルコード, (X座標,Z座標) | |
引数 | ラベルコード | 逃がすユニットのラベルコード |
X座標 | 逃げ先のX座標 | |
Z座標 | 逃げ先のZ座標 | |
動作 | ユニットを特定の座標へ逃がす。戦闘エリア外へ逃がすことも可能。避難先空域では旋回して待機。 | |
例 | runaway L4, (2500,-1000) ;Label=4のユニットを南へ逃がす |
記述 | set 左辺値 演算子 右辺値 | |
引数 | 左辺値 | 値を代入する先。レジスタとフラグが指定可能 |
演算子 | 左辺値に対して右辺値をどう扱うかを指定する。指定できる演算子には=(代入),+=(加算),-=(減算),*=(積算),/=(除算),%=(剰余)がある。レジスタを複数使えばかなり複雑な演算も可能 | |
右辺値 | 代入すべき値。レジスタ・フラグ・カウンタ・即値が指定可能。 | |
動作 | 左辺値に右辺値を代入 | |
例 | set F1 = 5 ;フラグ1に5を代入 set R0 += 5 ;R0+5の値をレジスタ0に代入 set R0 -= R1 ;R0-R1の値をレジスタ0に代入 |
記述 | setbarrier ラベルコード,フラグ | |
引数 | ラベルコード | 変化させるユニットのラベルコード |
フラグ | バリアを張るならON、解除するならOFF | |
動作 | ユニットにバリアを張る。ダメージを受けなくなり、また、爆風の色が変化する。 | |
例 | setbarrier L40, ON ;Label=40のラバーズにバリアーを張る。 |
記述 | setcolor ラベルコード,フラグ | |
引数 | ラベルコード | 変化させるスプライトのラベルコード |
(r,g,b,a) | それぞれ(赤、緑、青、アルファ)の色成分を表す。範囲は0〜255。(0,0,0,255)は黒であり、(255,255,255,255)は白である。即値かレジスタが指定可能。 | |
動作 | createspirte命令で生成した2Dスプライトや、3Dスプライトのユニットの色を変化させる。 | |
例 | setcolor L200, (255,-1,-1,128) ;Label=200のスプライトを赤半透明にする |
記述 | setdefensive ラベルコード,フラグ | |
引数 | ラベルコード | 変化させるユニットのラベルコード |
フラグ | プレイヤーに追随するならON、その設定を解除するならOFF | |
動作 | RSのシステムでは、僚機・敵機共に初期配置座標から極端に離れないように飛行する。「防空フラグ」と呼び、通常はON。敵配置エディタでの「増援」設定をするとOFFになる。このフラグをOFFにすることで防空エリアに関わりなく戦闘を行うことが出来る。なお、OFFにしたからといってマップの範囲外へ飛び出すようなことはない。 | |
例 | setdefensive L10, OFF ;Label=10の敵機を防空域に関わりなく飛ばす。 |
記述 | setduck ラベルコード,フラグ | |
引数 | ラベルコード | 変化させるユニットのラベルコード |
フラグ | プレイヤーに追随するならON、その設定を解除するならOFF | |
動作 | RSのシステムでは、僚機・敵機共にプレイヤーから極端に離れないように、プレイヤーの空域にあわせて移動する。通称「小鴨フラグ」。標準ではONである。これを意図的にOFFにすることにより、プレイヤーの位置に関わりなく、各機自由に敵を探索し攻撃を行うようになる。なお、防衛エリアの縛りは解除されないため、これを解除するにはsetdefensive命令を用いる必要がある。 | |
例 | setduck L10, OFF ;Label=10の敵機をプレイヤーと関わりなく自由に戦わせる。 |
記述 | setoriginalparam ラベルコード,フラグ | ||||||||||||||||
引数 | ラベルコード | 変化させるユニットのラベルコード | |||||||||||||||
フラグ | 以下の値を指定。初期状態は0。
|
||||||||||||||||
動作 | イベント時のsetpad命令による機体操縦は編隊飛行を容易にする観点から「機種に関わらずパラメータ一定」で飛行させている。この命令ではその制限を一部撤廃して「旋回性・安定性・ベクター値」に対しては機体本来の値を適用飛行させる。 | ||||||||||||||||
例 | setoriginalparam L10, 1 ;Label=10の機体は、機体本来の旋回性で飛ばす。 setoriginalparam L10, 7 ;Label=10の機体は、機体本来の旋回性・安定性・ベクター値で飛ばす。 |
記述 | setheightoffset 高度オフセット | |
引数 | 高度オフセット | 高度計の表示に加えるY値を指定する。1が10feetに相当。 |
動作 | 高度計にオフセットを加える。地下や成層圏を表現するのに使う。初期値はもちろん0feetである。 | |
例 | setheightoffset -300 ;高度計に3000feetを引いて表示するようにする。 |
記述 | setheightstall 失速高度 | |
引数 | 失速高度 | 失速演算を開始する高度をY値で指定する。敵配置エディタの値と同様で、1が10feetに相当。 |
動作 | 失速演算を開始する高度を変更する。失速高度に到達した瞬間に失速するわけではない点に注意。初期値は600(6000feet)である。なお、上方向にもエリアオーバーの概念があるため、17000feet以上には上昇できない。超高空での戦いなどを演出したい場合はsetheightoffset命令を使う。 | |
例 | setheightstall 1200 ;12000feetまで上昇しても大丈夫なようにする。 |
記述 | sethp ラベルコード,装甲値 | |
引数 | ラベルコード | 変化させるユニットのラベルコード |
装甲値 | 設定する装甲値 | |
動作 | ユニットの装甲値、つまりHPを変更する。ユニットを殺せないようにしたり、逆に瀕死にさせたりする。 | |
例 | sethp L11, 9999 ;Label=11の姉を撃墜できないようにHPを9999にする。 |
記述 | setimportant ラベルコード, フラグ | |
引数 | ラベルコード | 変化させるユニットのラベルコード |
フラグ | ONかOFFで指定する。 | |
動作 | 視界範囲外であってもHUDに表示させるようにする。重要な攻撃目標や目標地点などを分かりやすくする。 | |
例 | setimportant L69, ON ;L69の目標点を距離に関わり無くHUDに表示するようにする |
記述 | setlabel 親ユニットのラベルコード,UNIT_ID,ラベルコード | |
引数 | 親ユニットのラベルコード | ラベルコードを設定したいユニットの親 |
UNIT_ID | ユニットID(負の値でユニット種別ナシ) | |
ラベルコード | 設定するラベルコード値 | |
動作 | ”親ユニットのラベルコード”を持つユニットの子(や孫)のユニットのうち”UNIT_ID”に該当するユニットに対して”ラベルコード”の値を割り当てる。船舶に付属する機銃などはラベルコードを設定できないが、この命令によりスクリプト側から指定可能となる。こうすることで、各パーツごとの破損をスクリプトで取得できるようになる。 | |
例 | setlabel L20,113,L21 ;Label=20の船舶に載っている機銃(UNIT_ID:133)をLabel=21に設定する |
記述 | setlabelonline ユーザー,ラベルコード | |
引数 | ユーザー | ラベルコードを設定したいユーザーを示す。ログイン名、チーム名いずれも可能。"チーム名"に指定した文字列と同じ"ログイン名"を持つ場合、そのプレイヤーにもラベル設定されてしまうので注意。 |
ラベルコード | 設定するラベルコード値 | |
動作 | オンラインプレイにおいてユーザーユニットに対して”ラベルコード”の値を割り当てる。そのユニットの子ユニットにはラベルが割り振られないので、子ユニットにもラベル割り振りを行う場合は、setlabel命令を使うこと。 | |
例 | setlabelonline "Denpro",L21 ;ユーザー"Denpro"の操縦する機体に対してをLabel=21に設定する |
記述 | setmaster 制御対象ラベルコード, マスター指定のラベルコード | |
引数 | 制御対象ラベルコード | マスターオブジェクトを変更させるユニットのラベルコード |
マスター指定のラベルコード | 「マスター」になるユニットのラベルコード | |
動作 | 「マスター」を変更する。RS2では空飛ぶトラックをグライダーに走らせるための専用命令。 | |
例 | setmaster L14, L10 ;Label=14のトラックをLabel=10のFC4000に向けて走行開始 |
記述 | setmiso ラベルコード,フラグ | |
引数 | ラベルコード | 変化させるユニットのラベルコード |
フラグ | 攻撃対象にされないならばON、その設定を解除するならOFF | |
動作 | ユニットが敵や僚機から狙われなくなる。流れ弾などに当たる危険があるため、無敵とは異なる。僚機にこれを設定した場合、当然ながら敵の攻撃対象が減るため、プレイヤーへの攻撃は激しくなる。 | |
例 | setmiso L8, ON ;Label=8のレドーム機は攻撃を受けないようにする。 |
記述 | setname ラベルコード, 名前ID | |
引数 | ラベルコード | 名前を変更する対象となるユニットのラベルコード |
名前ID | 名前のID。基本的にはユニットのIDと同じ。ユニットIDは | |
動作 | HUDに表示される名前を変更する。HUDの表記は画像扱いなので、文字列ではなくIDで変更する。つまり自分で作った名前に変えられるわけではない。通常は敵機の表示をUnknownに変更するために使う。UnknownのユニットIDは"4"である。 | |
例 | setlabel L10,4 ;RX-66の表記をUnknownに変更 |
記述 | setnetworkdata オフセット, データ | |
引数 | オフセット | オフセット番号0〜7(即値、レジスタ、フラグ、カウンタ) |
データ代入先 | 共有変数の内容を代入する先(レジスタ、フラグ、カウンタ) | |
動作 | 自分が管理するネットワーク共有変数の「オフセット」番号の領域に「データ」を格納する。格納されたデータは1秒以内に全ノードへ配信されるが、遅延やロスト発生がある場合、データ更新は保障はされない。 一般的にはホストがこの命令を使用し、他クライアントへイベント進行などを伝達する用途が一般的。 ネットワーク共有変数の読み出しはgetnetworkdataを使用する。 | |
例 | setnetworkdata 0, 3 ;自分が管理するデータのうち0番に3を代入(networkdata[MyID][0]=3;というイメージ) |
記述 | setpad ラベルコード, (操縦左右,操縦上下), 目標速度, 操縦入力時間 | |
引数 | ラベルコード | 操縦対象のユニットのラベルコード |
操縦左右 | ユニットにつながる仮想的なゲームパッドの左右入力。右がプラス。 | |
操縦上下 | ユニットにつながる仮想的なゲームパッドの上下入力。下がプラス。 | |
目標速度 | この速度まで徐々に変化する | |
操縦入力時間 | (操縦左右,操縦上下)の入力を行う時間。 | |
動作 | イベントシーンにおいて、ユニットを操縦して動作する。透明機体も操作できるので、カメラを貼り付けた透明機体を操縦させることでカメラをリアルに動かすことが出来る。 | |
例 | setpad L10, (-10,5), 250, 40 ;L10の操縦桿を40フレームの間、10%左/5%手前に倒し、目標速度は250 |
記述 | setmaster 制御対象ラベルコード, 親指定のラベルコード | |
引数 | 制御対象ラベルコード | 親オブジェクトを変更させるユニットのラベルコード |
親指定のラベルコード | 「親オブジェクト」になるユニットのラベルコード | |
動作 | 親オブジェクトを変更する。この親子関係は3D処理での親子関係である。 | |
例 | setparent L14, L10 ;Label=14のトラックをLabel=10に搭載する |
記述 | setpos ラベルコード, (X, Y, Z), 子フラグ | |
引数 | ラベルコード | 位置を変更するユニットのラベルコード |
(X, Y, Z) | 位置。即値またはレジスタが指定可能。 | |
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。 | |
動作 | ユニットの座標を強制的に変更する。子フラグについてはmove命令の項で解説されているものと同様である。 | |
例 | setpos L1, (2500, 190, 2500) ;L1のプレイヤー機をマップ中央へ強制移動 |
記述 | setrot ラベルコード, (X軸角, Y軸角, Z軸角), 子フラグ | |
引数 | ラベルコード | 向きを変更するユニットのラベルコード |
(X, Y, Z) | ピッチ、方位、バンクの角度。即値またはレジスタが指定可能。 | |
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。 | |
動作 | ユニットの角度を強制的に変更する。子フラグについてはmove命令の項で解説されているものと同様である。 | |
例 | setrot L10, (90, 190, 0) ;L10の垂直上昇させる |
記述 | setprintlist (X, Y), "表示名", 表示する値 | |
引数 | ラベルコード | 位置を変更するユニットのラベルコード |
(X, Y) | 表示位置。即値またはレジスタが指定可能。 | |
表示名 | 数値の左に表示される文字。省略できないので、何も書きたくない場合は半角スペースなどを入れる。 | |
表示する値 | 表示すべき値を指定。フラグ、カウンタまたはレジスタが指定可能。 | |
動作 | デバッグ用機能。指定座標に変数を表示する。将来仕様変更の可能性があるので、ゲーム内の「数字表示機能」として使ってはいけない。 | |
例 | setprintlist (210,10),"EventCode:",F5 ;フラグ5の値を画面上部左に表示 |
記述 | setscale ラベルコード, (X, Y, Z), 子フラグ | |
引数 | ラベルコード | 大きさを変更するユニットのラベルコード |
(X, Y, Z) | 各軸方向への拡大率 | |
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。 | |
動作 | ユニットの拡大率を変更する。相対地ではなく絶対値である。子フラグについてはmove命令の項で解説されているものと同様である。 | |
例 | setscale L10, (1, 0.2, 1) ;L10のオブジェクトを平たくする |
記述 | setsection ラベルコード, セクション | |
引数 | ラベルコード | 動作制御対象のユニットのラベルコード |
セクション | 行動を表す数値「セクション」 | |
動作 | ユニットの動作を切り替える。対空砲に任意で射撃を行ったり、TOYBOXユニットを使って落雷を発生させたりする。詳しくは「セクションについて」で解説。 | |
例 | setsection L42,40 ;レーザー射撃 |
記述 | setspeed ラベルコード 速度 | |
引数 | ラベルコード | 速度を変更するユニットのラベルコード |
速度 | ユニットの速度 | |
動作 | イベントシーンにおいて、ユニットの飛行速度を指定する。RSE1.0の仕様ミスである1フレームの猶予は不要になっている。 | |
例 | setspeed L10, 310 ;L10の速度を310に強制変化。追い越すような速度になる |
記述 | settarget 制御対象ラベルコード, ロックオンする敵のラベルコード | |
引数 | 制御対象ラベルコード | ターゲットを変更させるユニットのラベルコード |
ロックオンする敵のラベルコード | 「ターゲット」になるユニットのラベルコード | |
動作 | ユニットのターゲットを変更する。イベント等で攻撃対象を指定する場合に使用する。 | |
例 | settarget L5, L12 ;ホーミングレイのロックオン対象をアルファ2に指定 |
記述 | settime 秒数 | |
引数 | 秒数 | ミッション制限時間を秒数で指定 |
動作 | ミッションの制限時間を設定する。左上の時計に表示される。TimeUpでミッション失敗にさせるには、制限時間がゼロになったことをスクリプトで検知しなければいけない。 | |
例 | settime 600 ;ミッション制限時間を600秒(10分)に設定する |
記述 | shootmissile 発射元ラベルコード, 発射先ラベルコード | |
引数 | 発射元ラベルコード | ミサイルを発射するユニットのラベルコード |
発射先ラベルコード | ミサイルで狙われるユニットのラベルコード | |
動作 | ミサイルを発射する(発射元に使えるのは航空機のみ)。当たるかどうかは位置による。発射される武器は機体ごとに設定されたメイン武装であるが、このメイン武装がレーザーやグレネードだった場合の動作は未定義である。また、対空ミサイルなどにミサイルを撃たせたい場合はsetsection命令を使う。 | |
例 | shootmissile L7,L1 ;バタフライ1(Label=7)からレパード1(Label=1)に向けてミサイル発射 |
記述 | startcounter カウンタ | |
引数 | カウンタ | 始動するカウンタ |
動作 | カウンタを指導させる。始動するとカウンタは1秒あたり1カウントアップする。既に始動しているカウンタの場合はリセットして0からカウント開始する。 | |
例 | startcounter C0 ;カウンタ0を始動する |
記述 | stopgun | |
引数 | (なし) | |
動作 | 戦場全体で、機銃の使用を禁止する。 |
記述 | stopmissile | |
引数 | (なし) | |
動作 | 戦場全体で、ミサイルの使用を禁止する。 |
記述 | stopse SE番号 | |
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと |
動作 | 効果音を停止する | |
例 | playse 50, ;効果音50を停止する。 |
記述 | stopthread スレッド番号 | |
引数 | スレッド番号 | 終了するスレッド番号 |
動作 | スレッドを終了させる |
記述 | stopwave, 再生種別コード | |
引数 | 再生種別コード | 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。 |
動作 | 音声再生を停止させる。 |
記述 | stopweapon 対象ラベルコード, 武器種類コード, フラグ | |
引数 | 対象ラベルコード | ミサイルを発射するユニットのラベルコード |
武器種類コード | 武器の種類を表すコード。MAIN/SUB/CENTER/GUNの4つからどれか一つを指定 | |
フラグ | STOPで禁止、STARTで再許可 | |
動作 | 武器を使用禁止にする。また、その禁止を解除する。stopgunやstopmissileより細かい指定が可能。 | |
例 |
stopweapon L5, MAIN, STOP ;敵機(Label=5)のメインパイロン武器の使用を禁止する stopweapon L5, GUN, START ;敵機(Label=5)の機銃使用禁止を解除する |
記述 | supplyweapon 補充度 | |
引数 | 補充度 | ミサイルの補充度を0〜100まで百分率で指定 |
動作 | 自機のミサイル類の残り数を回復させる | |
例 | supplyweapon 50 ;弾数を50%分だけ補充 |
記述 | supplydamage 回復度 | |
引数 | 回復度 | ダメージ値の回復度を0〜100まで百分率で指定 |
動作 | 自機のダメージ値を回復させる | |
例 | supplydamage 100 ;自機を全快させる |
記述 | system | |
引数 | (なし) | |
動作 | システムに1/60秒だけ処理を戻す。"waitframe 1"と同じだが、メインループの中で使う場合はこちらを推奨。 |
記述 | targetflag ラベルコード,フラグ | |
引数 | ラベルコード | 変化させるユニットのラベルコード |
フラグ | ターゲットにするならON、解除するならOFF | |
動作 | ターゲットにしたり通常の敵にしたりする。RSE1.0で存在したオブジェクト管理の不具合は解決している。 | |
例 | targetflag L21,OFF ;Label=21の敵をターゲットに変更する。 |
記述 | teamid ラベルコード,所属コード | ||||||
引数 | ラベルコード | 所属変更対象ユニットのラベルコード | |||||
所属コード | 所属を示すコード
|
||||||
動作 | ユニットの所属を変更する、敵を味方に変更するよりは、HUDから消したりすることに使うことが多い。OBJECTに設定すると、リザルトにおける撃破率の分母からも除外されるので、teamidでHUDから消しても敵殲滅ができなくなることは無い。 | ||||||
例 | teamid L21,ENEMY ;Label=21のジェネレーターをHUDに表示、攻撃できるようにする。 |
記述 | waitframe 待ち時間 | |
引数 | 待ち時間 | 時間を1/60秒単位で入力。レジスタ・フラグ・カウンタ・即値が指定可能。 |
動作 | スクリプトの動作を一時停止する。他のスレッドへは影響無し。フレーム数はFPS設定や実際の負荷に関わらず、ゲーム内での1/60秒が単位となる。 | |
例 | waitframe 6 ;6フレーム(0.1s)待つ |
記述 | viewmode カメラコード | |||||||||||||
引数 | カメラコード | カメラの撮影方式を選択する以下のコード
|
||||||||||||
動作 | カメラの撮影方式を変更する。focus1,focus2に関してはcamfocusの項目を参照。 | |||||||||||||
例 | viewmode SHORT ;視点モードを近距離対象撮影に変更 |
記述 | waittime 待ち時間 | |
引数 | 待ち時間 | 時間を秒単位で入力。レジスタ・フラグ・カウンタ・即値が指定可能。即値の場合は小数指定可能。 |
動作 | スクリプトの動作を一時停止する。他のスレッドへは影響無し。 | |
例 | waittime 0.5 ;0.5秒待つ |
記述 | waitstream 追加待ち時間 | |
引数 | 追加待ち時間 | 時間を秒で入力。 |
動作 | 直前の音声ファイルの再生が終わるまでスクリプトの動作を一時停止する。他のスレッドへは影響無し。台詞ファイルが隙間無く再生されると不自然なため、追加待ち時間に0.3〜0.5程度の値を入れると良い。 | |
例 | waitstream 0.3 ;直前の台詞再生が終わるまで待ち、さらに0.3秒待つ |