<<<SPTファイルスクリプトリファレンス>>>

 この文書はスクリプトの詳細を仕様としてまとめたものである。 書き方マニュアルではないので、書き方を知りたい場合は、 サンプルのソースそのものを読むこと。

<<基本事項>>

<<スクリプトエンジンが持つパラメータ>>

<プログラムカウンタ>

記述方法 (なし)
 現在実行している行数を示すカウンタ。内部パラメータである。 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しても値は変わらない。

<<パラメータ記述法>>

<レジスタ・フラグ・カウンタ>

上記のとおり

<数値>

-160 や 13.875 など、普通に記述する。桁数に制限は無いが、データ範囲の上限を超えることは出来ない。 命令によっては小数を指定できないものもある。その場合は整数に丸められる。

<文字列>

"この文のように、ダブルクォーテーションで囲う。"

<ラベル>

ジャンプ命令に使うラベルは、 #ジャンプ先のラベル と記述する。 ジャンプする場合は
jump 0==0 ジャンプ先のラベル
というように、#記号を取り去って記述する。 言語仕様的にラベル名に日本語を使うことが可能だが、将来の拡張性の妨げになるので『推奨しない』。
レジスタ値/フラグ値を指定することもできる。
set R5=123
jump 0==0 R5

#123
;ココへ飛ぶ
ジャンプ先のラベルは文字列として扱われるので、"#0123"等というラベル名にはジャンプできない。

<ラベルコード>

ユニットに設定するラベルコード(Label)を記述する場合はLをつける。L1やL15のように記述する。 1〜32767の間で指定する。L0は「NULL」を表す。

<エスケープシーケンスについて>

命令は一行に記述しなければならないので、\n改行の入力の代わりにこのように\nという記号を使う。 同様の理由で、文字列中に\や"を入れたい場合は、それぞれ\\や\"というように入力する。 現時点で実装されているものは、この3だけである。 \tや\0など、C言語にあるものが全て使えるわけではない。 ラベル名の定義には『使用できない』。

<<スレッドについて>>

通常は一行一行一つずつ実行されるスクリプトだが、マルチスレッド動作により並列動作を行うことが出来る。 主に巡航ミサイルの制御などに用いるが、並列動作の意味を十分に理解しないとバグの温床になるので、注意すること。 C++などでマルチスレッドプログラムを実際に作ったことがある人であれば、何も心配は要らないのでそのまま使って構わないと思う。
createthread命令により、スレッドを生成することで、複数のスクリプトが 同時に実行されていることと同じような状態になる。スレッド番号は0〜15で、親スレッド0は自動的に生成される。つまり使えるのは1〜15である。 なお、スレッドを終了させる場合はstopthread命令を使う。
Windowsのマルチスレッドを用いているわけではないので、 完全にスレッドセーフであるが、資源は共有しているのでメッセージウィンドウなどは親スレッドのみで制御するようにすることを推奨する。

<<「セクション」について>>

RSEのシステムでは、全てのユニットはステートマシンによって制御されている。そしてその「状態」を「セクション」と呼び、 setsection命令で変更可能である。通常の戦闘ではセクションを変更する必要は全く無いが、 一部ユニットにてセクションをスクリプトから変更することを前提としているユニットが存在する。
なお、セクションの初期値は敵配置エディタで設定する。 航空機の場合ほうっておくと勝手に飛行を開始してしまうため「"event ON"の時にRaidersが読み出されるとセクションは200になる」という仕様が存在する。 セクションの200はスクリプト制御を意味し、setpad命令で操作を行うことになる。逆にいえば、戦闘中に"setsection L10 200"などとすれば、 戦闘中の飛行ユニットを自由に飛行させることが出来る。巡航ミサイルはこの方法で実現している。

特殊なセクションを挙げる
Raiders
30 空中静止
200 スクリプト制御
対空砲、SAM、レーザーなど
30 稼動停止
40 発射(settargetで事前にターゲット設定を行う必要がある。設定が無い場合は正面に射撃)
TOYBOX
0 なにもなし
1 落雷
10 ECM
11 ECM(敵軍のみ)
12 ECM(自軍のみ)
13 ECM(プレイヤーのみ)
20 イージスシステムのミサイル乱発
30 プロペラ(上下軸を中心に回転)
31 プロペラ(前後軸を中心に回転)
40 破片(くるくる回転して自由落下)

<<命令リファレンス>>

<ABC順>

  1. attackstyle
  2. bomb
  3. call
  4. camfocus
  5. camzoom
  6. catapult
  7. clearplayerscore
  8. closewindow
  9. createcopy
  10. createsprite
  11. createthread
  12. debugmode
  13. deleteobject
  14. destroy
  15. disableweapon
  16. event
  17. exitplayer
  18. fadein
  19. fadeout
  20. fadewave
  21. finish
  22. getaccountstatus
  23. getammo
  24. getcleartime
  25. getdestroy
  26. getfox
  27. getgunrange
  28. gethit
  29. getlength
  30. getlock
  31. getnetworkdata
  32. getpadnow
  33. getpadtrg
  34. getplayerscore
  35. getpos
  36. getrotabs
  37. getscore
  38. getspeed
  39. getstatus
  40. hudsystem
  41. jump
  42. limitengine
  43. loadse
  44. log
  45. message
  46. move
  47. moveabs
  48. movegearheight
  49. playse
  50. playseloop
  51. playwave
  52. provideweapon
  53. putgear
  54. putgroup
  55. rand
  56. releaseobject
  57. relrot
  58. reset
  59. retryplayer
  60. return
  61. rulesystem
  62. runaway
  63. set
  64. setbarrier
  65. setcolor
  66. setdefensive
  67. setduck
  68. setheightoffset
  69. setheightstall
  70. sethp
  71. setimportant
  72. setlabel
  73. setlabelonline
  74. setlabelonlineID
  75. setmaster
  76. setmiso
  77. setname
  78. setnetworkdata
  79. setoriginalparam
  80. setpad
  81. setparent
  82. setpos
  83. setprintlist
  84. setrevivalpos
  85. setrot
  86. setscale
  87. setscore
  88. setsection
  89. setspeed
  90. settarget
  91. settime
  92. shootmissile
  93. startcounter
  94. stopgun
  95. stopmissile
  96. stopse
  97. stopthread
  98. stopwave
  99. stopweapon
  100. supplydamage
  101. supplyweapon
  102. system
  103. targetflag
  104. teamid
  105. teamname
  106. viewmode
  107. waitframe
  108. waitstream
  109. waittime

<カテゴリ順>

<解説>



attackstyle
記述 attackstyle ラベルコード, 種別コード, フラグ
引数 ラベルコード 変更したいユニットのラベルコード
種別コード 優先設定すべき敵の種別。下記のコードで指定する。
PRIORITY_AIR 航空機
PRIORITY_GROUND 地上兵器および施設
PRIORITY_TARGET ターゲット指定された敵
PRIORITY_NONTARGET ターゲット以外の敵
フラグ 優先にしたい場合はON、そうでない場合はOFF。
動作 ユニットの攻撃優先順位を変更する。これにより、僚機に上空制圧させたり出来る。あくまで優先設定をするだけなので、目の前の敵を放り出して遥か彼方の敵を追う事は無い。なお、敵機は標準でPRIOLITY_AIRがONになっている。
attackstyle  L10, PRIORITY_NONTARGET, ON   ;Label=10の僚機はターゲットで無い敵を優先的に攻撃する


bomb
記述 bomb ラベルコード, 爆発規模
引数 ラベルコード 爆発する場所にいるユニットのラベルコード
爆発する半径 5〜30程度が目安。大きすぎるとプログラムがクラッシュする。
動作 ユニットの座標を読み込んで、効果音付きで爆発させる。ユニット自体が爆死するわけではない。
bomb  L13, 30  ;Label=13の妹の落下地点で機雷が爆発


call
記述 call 比較値左辺 比較演算子 比較値右辺 ,ジャンプ先ラベル
引数 比較値左辺 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
比較式演算子 右辺と左辺を比較する演算子、!= == < > <= >= の6つ。>=を間違えて=>と入力しないように注意。
比較値右辺 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
ジャンプ先ラベル 比較式が正しい場合にジャンプする先のラベル
動作 (比較値左辺 比較演算子 比較値右辺)の比較式がTRUEの場合は、レジスタをスタックにPUSHして、ジャンプ先ラベルへサブルーチンコールする。
call  R0>=10  ,Battle1  ;R0が10以上であれば、#Battle1へサブルーチンコール


camfocus
記述 camfocus focus1のラベルコード, focus2のラベルコード
引数 focus1のラベルコード カメラの場所となるユニットのラベルコード
focus2のラベルコード カメラコードがLONG,SHORTのときの撮影対象ラベルコード
動作 viewmodeでカメラを変更した際に、撮影対象となるユニットを指定する。カメラコードがLONG,SHORTの場合はカメラの場所と撮影対象の2つを指定する。
camfocus  L10, L1  ;L10から自機を撮影


camzoom
記述 camzoom 角度
引数 角度 カメラの透視投影角度を45〜5の間で指定。標準は35。
動作 カメラをズームイン・アウトさせる。突然変化するのではなく、滑らかに変わる。カメラの撮影モードがLONGまたはSHORTの場合のみ有効。
camzoom  10  ;カメラをズームインさせる


catapult
記述 catapult カタパルトのラベルコード, UNIT_ID, 出現するユニットのラベルコード, ターゲットフラグ
引数 カタパルトのラベルコード カタパルトになるユニットのラベルコード
UNIT_ID 出現させるユニットのUNIT_ID
出現するユニットのラベルコード 出現させるユニットに設定するラベルコード
ターゲットフラグ ターゲットとして出現させる場合はON。通常の敵の場合はOFF。
動作 航空機をカタパルト発進させる。カタパルトは座標と方向の取得にしか使わないので、仕様上は対空戦車などから敵機が飛び出しても構わない。
catapult  L62, 59  ;カタパルト(Label=62)からチャリオットC(UNIT_ID=59)を発進


clearplayerscore
記述 clearplayerscore
引数 (なし)
動作 オンライン対戦において、プレイヤーのスコアをゼロにする。プレイヤーのユニットのスコアを変更する場合はsetscore命令を使用すること
clearplayerscore  ;プレイヤーのスコアをゼロにする


closewindow
記述 closewindow
引数 (なし)
動作 message命令で表示された台詞ウィンドウを消す。


createcopy
記述 createcopy コピー先ラベルコード, コピー元ラベルコード
引数 コピー先ラベルコード コピーしたユニットが持つラベルコード
コピー元ラベルコード コピーされる対象ユニットのラベルコード
動作 ユニットの場所と角度を使って透明機体を生成する。イベントでのカメラ制御用。debugモードの場合はプレイヤー選択機体に見える。
createcopy  L10,L2  ;Label=2の機体の場所にLabel=10の透明機体を生成


createsprite
記述 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 スレッド番号, スレッド開始ラベル
引数 スレッド番号 開始する対象となるスレッド番号
スレッド開始ラベル スレッドが最初に実行する行のラベル
動作 スクリプトの子スレッドを生成する。詳しくはスレッドについてを参照
createthread  1, missile  ;スレッド1を始動、#missileから開始する。以後、2つのスレッドは並列動作を行う。


debugmode
記述 debugmode フラグ
引数 フラグ デバッグモードをONかOFFで指定
動作 デバッグモードに切り替える、今のところ、通常時とデバッグモードの違いは「透明機体がRR10の見た目で表示される」以外の差は無い。
debugmode  ON  ;デバッグモードに切り替える。


deleteobject
記述 deleteobject
引数 (なし)
動作 イベントモードで配置したユニットを全て消去する。イベントモードを抜ける前に記述するのが一般的。


destroy
記述 destroy ラベルコード
引数 ラベルコード 破壊するユニットのラベルコード
動作 ユニットにミサイル100発分相当のダメージを与えて破壊する。
destroy  L10  ;Label=10の輸送機を破壊する


disableweapon
記述 provideweapon UNIT_ID
引数 UNIT_ID 取り上げる機体・武器のUNIT番号
動作 機体・武器の取り上げ。選択できる武装がセーブファイルから消えてしまうので、特定のミッションで武装を使えないようにする場合はRSEファイルで指定すること。
disableweapon  234  ;次のミッション以降、ショットガンを使えなくする


event
記述 event フラグ
引数 フラグ イベントモードか否かを表すフラグ。ONかOFFを指定。
動作 イベントモードに入る。イベントモードでは、それまで配置したユニットは全て非表示になるので、イベントシーン用のユニットは別途読み込む必要がある。
event  ON  ;イベントシーン開始


exitplayer
記述 exitplayer
引数 (なし)
動作 強制的にEXITを選択したことと同じにしてしまう。強制復活したい場合はretryplayer命令を使用する。
exitplayer  ;プレイヤーをゲームから強制排除する


fadein
記述 fadein
引数 (なし)
動作 画面をフェードインさせる。イベントシーンの出入りにfadeoutと併用する。


fadeout
記述 fadeout
引数 (なし)
動作 画面をフェードアウトさせる。イベントシーンの出入りにfadeinと併用する。


fadewave
記述 fadewave, 再生種別コード
引数 再生種別コード 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。
動作 音声再生をフェードアウトさせる


finish
記述 finish 終了コード, (次ミッション)
引数 終了コード ゲームのメインエンジンに返す終了理由
CLEAR ミッション成功
FAILED ミッション失敗
TIMEUP 時間切れ
NEXTSTAGE 次のステージへ
次ミッション 次にプレイするミッションID
動作 スクリプトを終了させ、ミッション終了処理をさせる
finish  CLEAR  ;ミッションクリア
finish  NEXTSTAGE,1  ;ミッションクリア、MissionID=1のミッションへ進む


getaccountstatus
記述 getaccountstatus ステータスコード, (オペランド)
引数 ステータスコード 取得するステータス情報を示すコード
ACCOUNT アカウントを持っていればR0に0以外を代入
DESTROYED R0に被撃墜数を代入
DESTROY R0=敵機撃墜数
R1=地上物撃破数
R4=ランクCプレイヤー撃墜数
R5=ランクBプレイヤー撃墜数
R6=ランクAプレイヤー撃墜数
R7=ランクSプレイヤー撃墜数
SCORE R0に累計スコアを代入
RANK R0にランクを代入(C=0 B=1 A=2 S=3)
(オペランド) ステータスコードの詳細を指定。必要に応じて付け足す。
動作 アカウントユーザーの情報を取得し、各レジスタに代入する。他のユーザーの情報は取得できない。ワンゲーム内のスコア情報などを取得する場合はgetplayerscoreを使用すること。
getaccountstatus  SCORE       ;R0にプレイヤーの累計スコアを代入


getammo
記述 getammo ユニットを示すラベルコード
引数 ユニットを示すラベルコード 残弾数を取得したいユニット
動作 残弾数を取得する。残弾数がゼロになったかどうか見るだけでは「装備しない」と区別できないため、搭載可能数もあわせて評価する。
R0 メインパイロンの残弾数。
R1 サブパイロンの残弾数。
R2 センターパイロンの残弾数。
R3 メインパイロンの搭載可能数(初期値)。
R4 サブパイロンの搭載可能数(初期値)。
R5 センターパイロンの搭載可能数(初期値)。
getammo  L1  ;プレイヤー(Label=1)の残弾数情報を取得


getcleartime
記述 getcleartime ミッションID
引数 ミッションID クリア時間を取得したいミッション。負の値ならば現在実行中のミッション。
動作 ミッションのクリア時間をゲームデータから取得し、以下のレジスタに代入する。単位は秒。2週目判定のために使うのが一般的。
R0 Easyの最短クリアタイム
R1 Normalの最短クリアタイム
R2 Hardの最短クリアタイム
R3  
R4 Easyの最短殲滅タイム
R5 Normalの最短殲滅タイム
R6 Hardの最短殲滅タイム
R7  
高い難易度しかクリアしていない場合などは、低い難易度へ値がコピーされる。例えばNormalしかクリアしていない場合でも、EasyはNormalのタイムでクリアしたものとして値が格納される。
なお、実行時の環境からデータを取得するので、データの残らないエディットミッションでは使用できない。 また、リプレイファイルを再生した場合に、記録された環境と再生する環境ではクリア情報が異なってしまうため、ミッション終了時以外は使用してはいけない。リプレイが正常に動作しなくなる。
getcleartime  -1  ;2週目判定の情報を取得


getdestroy
記述 getdestroy ユニットを示すラベルコード
引数 ユニットを示すラベルコード 撃破の検知対象のユニット
動作 ユニットが敵を撃破したことを検知する。撃破した場合R0には1〜59の値が代入され、撃破してからの時間を表す。命中した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
R0 撃破していたら1〜59(59は撃破した瞬間)。でなければ0。
R1 撃破した対象が航空機なら1。地上部隊なら2。施設なら3。
R2 撃破した敵のラベルコード
R3 撃破した敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
getdestroy  L1  ;プレイヤー(Label=1)の撃破情報を取得


getfox
記述 getfox ユニットを示すラベルコード
引数 ユニットを示すラベルコード ロックオンの検知対象のユニット
動作 ユニットがミサイルを発射したことを検知する。発射した場合R0には1〜59の値が代入され、発射してからの時間を表す。発射した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
R0 発射していたら1〜59(59は発射した瞬間)。でなければ0。
R1 ロックオン対象が航空機なら1。地上部隊なら2。施設なら3。
R2 ロックオンした敵のラベルコード
R3 ロックオンした敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
getfox  L1  ;プレイヤー(Label=1)のロックオン情報を取得


getgunrange
記述 getgunrange ユニットを示すラベルコード
引数 ユニットを示すラベルコード 射程の検知対象のユニット
動作 ユニットが敵を機銃射程内に捉えたことをを検知する。射程内の場合R0には1以上の値が代入される。同様にして、各レジスタに以下のような値が代入される。
R0 機銃射程内に入ったら1。でなければ0。
R1 対象が航空機なら1。地上部隊なら2。施設なら3。
R2 狙っている敵のラベルコード
R3 狙っている敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
getgunrange  L1  ;プレイヤー(Label=1)のガンレンジ情報を取得


gethit
記述 gethit ユニットを示すラベルコード
引数 ユニットを示すラベルコード 命中の検知対象のユニット
動作 ユニットの攻撃が敵に命中したことを検知する。命中した場合R0には1〜59の値が代入され、命中してからの時間を表す。命中した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
R0 命中していたら1〜59(59は発射した瞬間)。でなければ0。
R1 命中した対象が航空機なら1。地上部隊なら2。施設なら3。
R2 命中した敵のラベルコード
R3 命中した敵のハンドル
R4 ダメージ値
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
gethit  L1  ;プレイヤー(Label=1)の命中情報を取得


getlength
記述 getlength ユニットを示すラベルコード1, ユニットを示すラベルコード2
引数 ユニットを示すラベルコード1 距離を測る対象のユニット(単体のみ)
ユニットを示すラベルコード2 距離を測る対象のユニット(グループ可)
または下表の値
AIR_ENEMY 全ての敵機
AIR_TARGET 全ての敵ターゲット機
AIR_FRIEND 全ての友軍機
GROUND_ENEMY 全ての敵地上部隊
GROUND_TARGET 全ての敵ターゲット地上部隊
GROUND_FRIEND 全ての友軍地上部隊
ALL_ENEMY 全ての敵ユニット
ALL_FRIEND 全ての友軍ユニット
動作 ラベルコード1のユニットを基準にして、ラベルコード2のユニットの中で最も近いものの距離をR0に代入する。ラベルコード2が存在しない場合、R0には負の値が代入される。
ラベルコード2にAIR_ENEMY等を指定した場合、ラベルに関わらず該当するユニットとの最短距離を求める。
getlength  L1, L10  ;プレイヤー(Label=1)と敵機(Label=10)の距離をR0に代入


getlock
記述 getlock ユニットを示すラベルコード
引数 ユニットを示すラベルコード ロックオンの検知対象のユニット
動作 ユニットが敵をロックオンしたことを検知する。ロックオンしている場合R0には1以上の値が代入される。同様にして、各レジスタに以下のような値が代入される。
R0 ロックオンしていたら1。でなければ0。
R1 ロックオン対象が航空機なら1。地上部隊なら2。施設なら3。
R2 ロックオンした敵のラベルコード
R3 ロックオンした敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
getlock  L1  ;プレイヤー(Label=1)のロックオン情報を取得


getnetworkdata
記述 getnetworkdata ネットワークID, オフセット, データ代入先
引数 ネットワークID ネットワークID
オフセット オフセット番号0〜7(即値、レジスタ、フラグ、カウンタ)
データ代入先 共有変数の内容を代入する先(レジスタ、フラグ、カウンタ)
動作 「ネットワークID」のプレイヤーが管理するネットワーク共有変数の「オフセット」番号のデータを「データ代入先」へ入れる。 ネットワーク共有変数への書き込みはsetnetworkdataを使用する。
getnetworkdata  1, 0, R0  ;ホストプレイヤーが管理するデータのうち0番に保存されたデータをレジスタ0に代入(R0=networkdata[HOST][0];というイメージ)


getpadnow
記述 getpadnow キーコード
引数 キーコード 取得するキーを示すコード
PAD_UP ゲームパッド上(スティック上)
PAD_DOWN ゲームパッド下(スティック下)
PAD_RIGHT ゲームパッド右(スティック右)
PAD_LEFT ゲームパッド左(スティック左)
PAD_GUN 機銃発射
PAD_MISSILE ミサイル発射
PAD_TARGET1 ターゲット切り替え(順方向)
PAD_TARGET1 ターゲット切り替え(逆方向)
PAD_WEAPON 武装切り替え
KEY_F1 キーボードF1キー(視点切り替えと競合するので使用不可)
KEY_F2 キーボードF2キー
KEY_F3 キーボードF3キー
KEY_F4 キーボードF4キー
KEY_F5 キーボードF5キー
KEY_F6 キーボードF6キー
KEY_F7 キーボードF7キー
KEY_F8 キーボードF8キー
KEY_F9 キーボードF9キー
KEY_F10 キーボードF10キー(メニュー表示と競合するので使用不可)
KEY_F11 キーボードF11キー
KEY_F12 キーボードF12キー
KEY_1 キーボード1キー
KEY_2 キーボード2キー
KEY_3 キーボード3キー
KEY_4 キーボード4キー
KEY_5 キーボード5キー
KEY_6 キーボード6キー
KEY_7 キーボード7キー
KEY_8 キーボード8キー
KEY_9 キーボード9キー
KEY_0 キーボード0キー
動作 キーコードで指定されたゲームパッドまたはキーボードなどの「現在の押下状態」を取得し、R0に代入する。押されていなければ0、押されていれば0以外の値。
getpadnow  PAD_GUN      ;R0に機銃ボタンの押下状態を代入


getpadtrg
記述 getpadtrg キーコード
引数 キーコード 取得するキーを示すコード
PAD_UP ゲームパッド上(スティック上)
PAD_DOWN ゲームパッド下(スティック下)
PAD_RIGHT ゲームパッド右(スティック右)
PAD_LEFT ゲームパッド左(スティック左)
PAD_GUN 機銃発射
PAD_MISSILE ミサイル発射
PAD_TARGET1 ターゲット切り替え(順方向)
PAD_TARGET1 ターゲット切り替え(逆方向)
PAD_WEAPON 武装切り替え
KEY_F1 キーボードF1キー(視点切り替えと競合するので使用不可)
KEY_F2 キーボードF2キー
KEY_F3 キーボードF3キー
KEY_F4 キーボードF4キー
KEY_F5 キーボードF5キー
KEY_F6 キーボードF6キー
KEY_F7 キーボードF7キー
KEY_F8 キーボードF8キー
KEY_F9 キーボードF9キー
KEY_F10 キーボードF10キー(メニュー表示と競合するので使用不可)
KEY_F11 キーボードF11キー
KEY_F12 キーボードF12キー
KEY_1 キーボード1キー
KEY_2 キーボード2キー
KEY_3 キーボード3キー
KEY_4 キーボード4キー
KEY_5 キーボード5キー
KEY_6 キーボード6キー
KEY_7 キーボード7キー
KEY_8 キーボード8キー
KEY_9 キーボード9キー
KEY_0 キーボード0キー
動作 キーコードで指定されたゲームパッドまたはキーボードなどの「押下した瞬間」を取得し、R0に代入する。押されていなければ0、押されていれば0以外の値。
getpadtrg  PAD_MISSILE      ;R0にミサイルボタンのトリガ状態を代入


getplayerscore
記述 getplayerscore ネットワークID
引数 ネットワークID スコアを取得するプレイヤーのネットワークID
動作 プレイヤーのスコアをR0に代入。プレイヤー自機の「ユニットのスコア」とは異なるので注意。
getplayerscore  2  ;2番目にログインしたプレイヤーの取得スコアをレジスタに代入


getpos
記述 getpos ラベルコード
引数 ラベルコード 場所を取得するユニットのラベルコード
動作 ユニットの座標(X,Y,Z)をR0,R1,R2に、ユニットの角度(ピッチ,方位,バンク)をR3,R4,R5に代入
getpos  L1  ;Label=1のユニットの座標をレジスタに代入


getrotabs
記述 getrotabs ラベルコード
引数 ラベルコード 角度を取得するユニットのラベルコード
動作 戦場に対するユニットの角度(ピッチ,方位,バンク)をR0,R1,R2に代入。子ユニットの場合、getposとは異なり、親ユニットに関わり無く戦場に対する絶対角度を取得する。
getrotabs  L60  ;Label=60のユニットの角度をレジスタに代入


getscore
記述 getscore ラベルコード
引数 ラベルコード スコアを取得するユニットのラベルコード
動作 ユニットのスコアをR0に代入。同じラベルコードを持つユニットが複数いる場合はどのユニットのスコアを返すかは未定義。プレイヤーの「獲得スコア」とは異なるので注意。プレイヤーの獲得スコアを取得する場合はgetplayerscore命令を使用。
getscore  L1  ;Label=1のユニットのスコアをレジスタ0に代入


getspeed
記述 getspeed ラベルコード
引数 ラベルコード 速度を取得するユニットのラベルコード
動作 ユニットの現在速度をR0に代入
getspeed  L1  ;Label=1のユニットの速度をレジスタに代入


getstatus
記述 getstatus ステータスコード, (オペランド)
引数 ステータスコード 取得するステータス情報を示すコード
REST_TIME 残り時間
PROGRESS_TIME 経過時間
PLAYERS_WEAPON 武装ID(R0:機体 R1〜R3:各パイロン)
AIR_ENEMY 敵航空機の生存数
AIR_TARGET ターゲット航空機の生存数
AIR_FRIEND 味方航空機の生存数
GROUND_ENEMY 敵地上物の生存数
GROUND_TARGET ターゲット地上物の生存数
GROUND_FRIEND 味方地上物の生存数
ALL_ENEMY 敵ユニットの生存数
ALL_TARGET ターゲットユニットの生存数
ALL_FRIEND 味方ユニットの生存数
AIR_ENEMY_DESTROYED 敵航空機の破壊数
AIR_TARGET_DESTROYED ターゲット航空機の破壊数
AIR_FRIEND_DESTROYED 味方航空機の破壊数
GROUND_ENEMY_DESTROYED 敵地上物の破壊数
GROUND_TARGET_DESTROYED ターゲット地上物の破壊数
GROUND_FRIEND_DESTROYED 味方地上物の破壊数
ALL_ENEMY_DESTROYED 敵ユニットの破壊数
ALL_TARGET_DESTROYED ターゲットユニットの破壊数
ALL_FRIEND_DESTROYED 味方ユニットの破壊数
ALL_LABEL オペランドが示すラベルコード付きユニットの生存数
DAMAGE_LABEL オペランドが示すラベルコード付きユニットに与えたダメージの合計
DAMAGE_PLAYER 自機のダメージ値を0〜100で取得。衝突はカウントしない。
LEVEL 現在のレベルを0〜2で取得
NETWORK_ID プレイヤーのネットワークIDを取得
NETWORK_NUM ログオンプレイヤー人数を取得
(オペランド) ステータスコードの詳細を指定。必要に応じて付け足す。
動作 戦場情報を取得し、R0に代入する
getstatus  REST_TIME       ;R0に残り時間の秒数を代入
getstatus  ALL_TARGET      ;R0に全ターゲット数を代入
getstatus  ALL_LABEL, L2   ;R0に対空機銃(Label=2)の数を代入


hudsystem
記述 hudsystem 状態変更コード
引数 状態変更コード
HUD_FRIEND 友軍機をHUDに表示
NO_MAP 全体マップ表示を禁止
OK_MAP 全体マップ表示を許可
動作 HUDの表示状態を変更する。
hudsystem  HUD_FRIEND  ;友軍機をHUDに表示するようにする


jump
記述 jump 比較値左辺 比較演算子 比較値右辺 ,ジャンプ先ラベル
引数 比較値左辺 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
比較式演算子 右辺と左辺を比較する演算子、!= == < > <= >= の6つ。>=を間違えて=>と入力しないように注意。
比較値右辺 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
ジャンプ先ラベル 比較式が正しい場合にジャンプする先のラベル
動作 (比較値左辺 比較演算子 比較値右辺)の比較式がTRUEの場合はジャンプ先ラベルへジャンプする。
jump  R0==0 ,Clear  ;R0が0であれば、#Clearへジャンプ


limitengine
記述 limitengine ラベルコード, 最小値, 最大値
引数 ラベルコード 対象となるユニットのラベルコード
最小値 , 最大値 エンジン出力を制限する最小幅と最大幅。フルブレーキ状態が-1、フルスロットルが1。
動作 エンジンの出力に上限を設定したり、下限を設定したりする。強制的に最高速度で飛行させたり、エンジン故障などを表現する。正常時において最小値=-1, 最大値=1となる。
limitengine  L1, -1, 0  ;プレイヤー機のエンジン出力低下


loadse
記述 loadse SE番号, ファイル名
引数 SE番号 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと
ファイル名 効果音ファイル名。wavとradが指定可能。
動作 SE番号50以降に効果音を読み込む。SE番号10〜40まではゲーム内で使われている効果音が入っているため使用できない。
loadse  50, "se\\sound.wav"  ;効果音50にse\sound.wavを読み込む


log
記述 log ログ文字列
引数 ログ文字列 ログファイルに出力する文字列
動作 ログファイルに文字列を吐き出す。デバッグなどに用いる。
log  "ミッション初期化処理終了"


message
記述 message 色コード, 話者文字列, 台詞文字列
引数 色コード ウィンドウの色を表す。RED/BLUE/YELLOWの3種類
話者文字列 話者をあらわす文字列。あまり長いとウィンドウに入りきらない。
台詞文字列 台詞本体をあらわす文字列。\nを使っても2行まで。
動作 台詞ウィンドウの内容を更新。台詞ウィンドウが無い場合は自動的に生成。
message  BLUE,	"オペレーター",	"全ターゲットの破壊に成功しました。\n任務完了。お疲れ様です。"


move
記述 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方向へ移動させる


moveabs
記述 moveabs ラベルコード, (X,Y,Z)
引数 ラベルコード 移動させる対象となるユニットのラベルコード
(X,Y,Z) 相対移動ベクトル。即値またはレジスタが指定可能。
動作 ユニットを(X,Y,Z)で示されるベクトル位置に移動させる。座標はマップ中心を原点とする絶対座標。上下方向に2000、左右方向に1700を超えるとコースアウトするので注意。
moveabs  L10, (1400,80,1400)  ;Label=10のオブジェクトをマップ端に移動


movegearheight
記述 movegearheight ラベルコード
引数 ラベルコード 移動させる対象となるユニットのラベルコード
動作 ユニットを車輪の高さベクトルだけ相対移動させる。RSEの仕様上、航空機は地面に配置されたことを考えて0.4だけ高い位置に配置されるので、地面の座標に合わせる場合はmove命令を併用する。
putgear         L1             ;Label=1のプレイヤー機に車輪を出す
movegearheight  L1             ;Label=1の機体を車輪の座標だけ移動
move            L1,(0,-0.4,0)  ;Label=1の機体を0.4下げる


playse
記述 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
記述 playseloop SE番号, (x,y,z), 音量減衰値
引数 SE番号 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと
(x,y,z) 音座標。
音量減衰値 音座標がカメラから離れた場合にどれほど音が小さくなるか。ゼロの場合は音座標に関わらず最大音量となる。
動作 効果音をループして鳴らす。loadse命令のループ版。停止するにはstopse命令を使う


playwave
記述 playwave 再生種別コード, ファイル名文字列, ループポイント
引数 再生種別コード 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。
ファイル名文字列 wavファイル名
ループポイント ループするBGMファイルなどの場合、ループで戻ってくる場所をサンプル数で指定。曲先頭に戻る場合は0、ちょうど1秒後に戻る場合は44100となる。記述しない、または負の値の場合はループしない。
動作 Windowsの標準PCMが入っているwavファイル、またはradファイルを再生し、R0にその再生時間を秒単位で代入する。再生終了を待つ場合はwaitstream命令を併用する。
playwave  VOICE,	"02_04.wav"  ;音声ファイルを台詞として再生する


provideweapon
記述 provideweapon UNIT_ID
引数 UNIT_ID 入手する機体・武器のUNIT番号
動作 機体・武器の入手。
provideweapon  211  ;対空型汎用ミサイルの入手


putgear
記述 putgear ラベルコード
引数 ラベルコード 車輪を出す対象となるユニットのラベルコード
動作 RSPファイルの指定に合わせ、ユニットに車輪を出す。子オブジェクト(UNIT_ID = 5)として呼び出すためsetlabel命令と組み合わせることで動作を制御できる。
putgear         L1             ;Label=1のプレイヤー機に車輪を出す


putgroup
記述 putgroup グループ番号
引数 グループ番号 読み込むグループ番号
動作 ユニットをマップに配置する。
putgroup  1  ;グループ番号1の敵を配置する


rand
記述 rand 要素数
引数 要素数 サイコロの「目」の数。0〜(要素数-1)の値のランダム値となる。
動作 ランダム値を生成する。R0に「0〜(要素数-1)」の値がランダムで代入される。
rand  100  ;R0に0〜99までの値をランダムで代入


releaseobject
記述 releaseobject ラベルコード
引数 ラベルコード 消去するユニットのラベルコード
動作 ユニットを戦場から消す。RSE1.0ではlostobject命令と併用する必要があったが、現在は内部でlostobjectを自動的に実行するためそのようなことは不要である。
releaseobject  L10,	0  ;Label=10のユニットを戦場から消す。
releaseobject  ALL_UNIT	   ;戦場からプレイヤー以外のすべてのユニットを消去


relrot
記述 relrot ラベルコード, (X,Y,Z), 子フラグ
引数 ラベルコード 回転させる対象となるユニットのラベルコード
(X,Y,Z) ピッチ、方位、バンクの角度。即値またはレジスタが指定可能。
子フラグ 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 ユニットを(X,Y,Z)で示される角度だけ相対回転させる。move命令の角度版ともいえる。連続で実行するとくるくる回ることになる。子フラグについてはmove命令の項で解説されているものと同様である。
relrot  L10, (0, 1, 0)  ;L10のオブジェクトをちょっと回転


reset
記述 reset リセット先ラベル
引数 リセット先ラベル 戻る場所を示すラベル
動作 スタックを掃除してラベルで指示された場所へ飛ぶ。深いループから抜けるとき、または増援処理などで戦況が変わった際にメインループを最初からやり直したい場合に使う。
reset  loop  ;#loopに戻って最初から条件判定をやりなおし


retryplayer
記述 retryplayer
引数 (なし)
動作 強制的にRetryを選択したことと同じにしてしまう。強制排除したい場合はexitplayer命令を使用する。
retryplayer  ;プレイヤーを初期状態にする。オンライン対戦で、プレイヤーが死んでいた場合、強制的に復活させる


return
記述 return 比較値左辺 比較演算子 比較値右辺
引数 比較値左辺 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
比較式演算子 右辺と左辺を比較する演算子、!= == < > <= >= の6つ。>=を間違えて=>と入力しないように注意。
比較値右辺 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
動作 (比較値左辺 比較演算子 比較値右辺)の比較式がTRUEの場合は、レジスタをスタックからPOPして、callした次の行へジャンプする。
return  R0>=2  ;R0が2以上ならリターン


rulesystem
記述 rulesystem 状態変更コード
引数 状態変更コード
NO_RIVIVAL オンライン対戦において、墜落後の再出撃を禁止する。
動作 全体ルールを変更する。
rulesystem  NO_REVIVAL  ;復活禁止にする


runaway
記述 runaway ラベルコード, (X座標,Z座標)
引数 ラベルコード 逃がすユニットのラベルコード
X座標 逃げ先のX座標
Z座標 逃げ先のZ座標
動作 ユニットを特定の座標へ逃がす。戦闘エリア外へ逃がすことも可能。避難先空域では旋回して待機。
runaway  L4,	(2500,-1000)  ;Label=4のユニットを南へ逃がす


set
記述 set 左辺値 演算子 右辺値
引数 左辺値 値を代入する先。レジスタとフラグが指定可能
演算子 左辺値に対して右辺値をどう扱うかを指定する。指定できる演算子には=(代入),+=(加算),-=(減算),*=(積算),/=(除算),%=(剰余)がある。レジスタを複数使えばかなり複雑な演算も可能
右辺値 代入すべき値。レジスタ・フラグ・カウンタ・即値が指定可能。
動作 左辺値に右辺値を代入
set  F1 = 5  ;フラグ1に5を代入
set  R0 += 5  ;R0+5の値をレジスタ0に代入
set  R0 -= R1  ;R0-R1の値をレジスタ0に代入


setbarrier
記述 setbarrier ラベルコード,フラグ
引数 ラベルコード 変化させるユニットのラベルコード
フラグ バリアを張るならON、解除するならOFF
動作 ユニットにバリアを張る。ダメージを受けなくなり、また、爆風の色が変化する。
setbarrier  L40,  ON  ;Label=40のラバーズにバリアーを張る。


setcolor
記述 setcolor ラベルコード,フラグ
引数 ラベルコード 変化させるスプライトのラベルコード
(r,g,b,a) それぞれ(赤、緑、青、アルファ)の色成分を表す。範囲は0〜255。(0,0,0,255)は黒であり、(255,255,255,255)は白である。即値かレジスタが指定可能。
動作 createsprite命令で生成した2Dスプライトや、3Dスプライトのユニットの色を変化させる。
setcolor  L200, (255,-1,-1,128)  ;Label=200のスプライトを赤半透明にする


setdefensive
記述 setdefensive ラベルコード,フラグ
引数 ラベルコード 変化させるユニットのラベルコード
フラグ プレイヤーに追随するならON、その設定を解除するならOFF
動作 RSのシステムでは、僚機・敵機共に初期配置座標から極端に離れないように飛行する。「防空フラグ」と呼び、通常はON。敵配置エディタでの「増援」設定をするとOFFになる。このフラグをOFFにすることで防空エリアに関わりなく戦闘を行うことが出来る。なお、OFFにしたからといってマップの範囲外へ飛び出すようなことはない。
setdefensive  L10,  OFF  ;Label=10の敵機を防空域に関わりなく飛ばす。


setduck
記述 setduck ラベルコード,フラグ
引数 ラベルコード 変化させるユニットのラベルコード
フラグ プレイヤーに追随するならON、その設定を解除するならOFF
動作 RSのシステムでは、僚機・敵機共にプレイヤーから極端に離れないように、プレイヤーの空域にあわせて移動する。通称「小鴨フラグ」。標準ではONである。これを意図的にOFFにすることにより、プレイヤーの位置に関わりなく、各機自由に敵を探索し攻撃を行うようになる。なお、防衛エリアの縛りは解除されないため、これを解除するにはsetdefensive命令を用いる必要がある。
setduck  L10,  OFF  ;Label=10の敵機をプレイヤーと関わりなく自由に戦わせる。


setheightoffset
記述 setheightoffset 高度オフセット
引数 高度オフセット 高度計の表示に加えるY値を指定する。1が10feetに相当。
動作 高度計にオフセットを加える。地下や成層圏を表現するのに使う。初期値はもちろん0feetである。
setheightoffset  -300  ;高度計に3000feetを引いて表示するようにする。


setheightstall
記述 setheightstall 失速高度
引数 失速高度 失速演算を開始する高度をY値で指定する。敵配置エディタの値と同様で、1が10feetに相当。
動作 失速演算を開始する高度を変更する。失速高度に到達した瞬間に失速するわけではない点に注意。初期値は600(6000feet)である。なお、上方向にもエリアオーバーの概念があるため、17000feet以上には上昇できない。超高空での戦いなどを演出したい場合はsetheightoffset命令を使う。
setheightstall  1200  ;12000feetまで上昇しても大丈夫なようにする。


sethp
記述 sethp ラベルコード,装甲値
引数 ラベルコード 変化させるユニットのラベルコード
装甲値 設定する装甲値
動作 ユニットの装甲値、つまりHPを変更する。ユニットを殺せないようにしたり、逆に瀕死にさせたりする。
sethp  L11,	9999  ;Label=11の姉を撃墜できないようにHPを9999にする。


setimportant
記述 setimportant ラベルコード, フラグ
引数 ラベルコード 変化させるユニットのラベルコード
フラグ ONかOFFで指定する。
動作 視界範囲外であってもHUDに表示させるようにする。重要な攻撃目標や目標地点などを分かりやすくする。
setimportant  L69, ON  ;L69の目標点を距離に関わり無くHUDに表示するようにする


setlabel
記述 setlabel 親ユニットのラベルコード,UNIT_ID,ラベルコード
引数 親ユニットのラベルコード ラベルコードを設定したいユニットの親
UNIT_ID ユニットID(負の値でユニット種別ナシ)
ラベルコード 設定するラベルコード値
動作 ”親ユニットのラベルコード”を持つユニットの子(や孫)のユニットのうち”UNIT_ID”に該当するユニットに対して”ラベルコード”の値を割り当てる。船舶に付属する機銃などはラベルコードを設定できないが、この命令によりスクリプト側から指定可能となる。こうすることで、各パーツごとの破損をスクリプトで取得できるようになる。
setlabel  L20,113,L21  ;Label=20の船舶に載っている機銃(UNIT_ID:133)をLabel=21に設定する


setlabelonline
記述 setlabelonline ユーザー,ラベルコード
引数 ユーザー ラベルコードを設定したいユーザーを示す。ログイン名、チーム名いずれも可能。"チーム名"に指定した文字列と同じ"ログイン名"を持つ場合、そのプレイヤーにもラベル設定されてしまうので注意。
ラベルコード 設定するラベルコード値
動作 オンラインプレイにおいてユーザーユニットに対して”ラベルコード”の値を割り当てる。そのユニットの子ユニットにはラベルが割り振られないので、子ユニットにもラベル割り振りを行う場合は、setlabel命令を使うこと。
setlabelonline  "Denpro",L21  ;ユーザー"Denpro"の操縦する機体に対してをLabel=21に設定する


setlabelonlineID
記述 setlabelonlineID ログインID,ラベルコード
引数 ログインID ラベルコードを設定したいユーザーを示す。ログインIDは1から割り当てられる(ゼロはサーバに割り当てられる)。
ラベルコード 設定するラベルコード値
動作 オンラインプレイにおいてユーザーユニットに対して”ラベルコード”の値を割り当てる。そのユニットの子ユニットにはラベルが割り振られないので、子ユニットにもラベル割り振りを行う場合は、setlabel命令を使うこと。
setlabelonlineID  1,L10  ;最初にログインしたユーザーの操縦する機体に対してをLabel=10に設定する
setlabelonlineID  2,L20  ;次にログインしたユーザーの操縦する機体に対してをLabel=20に設定する

setmaster
記述setmaster 制御対象ラベルコード, マスター指定のラベルコード
引数 制御対象ラベルコードマスターオブジェクトを変更させるユニットのラベルコード
マスター指定のラベルコード「マスター」になるユニットのラベルコード
動作「マスター」を変更する。RS2では空飛ぶトラックをグライダーに走らせるための専用命令。
setmaster  L14, L10  ;Label=14のトラックをLabel=10のFC4000に向けて走行開始


setmaster
記述 setmaster 制御対象ラベルコード, マスター指定のラベルコード
引数 制御対象ラベルコード マスターオブジェクトを変更させるユニットのラベルコード
マスター指定のラベルコード 「マスター」になるユニットのラベルコード
動作 「マスター」を変更する。RS2では空飛ぶトラックをグライダーに走らせるための専用命令。
setmaster  L14, L10  ;Label=14のトラックをLabel=10のFC4000に向けて走行開始


setmiso
記述 setmiso ラベルコード,フラグ
引数 ラベルコード 変化させるユニットのラベルコード
フラグ 攻撃対象にされないならばON、その設定を解除するならOFF
動作 ユニットが敵や僚機から狙われなくなる。流れ弾などに当たる危険があるため、無敵とは異なる。僚機にこれを設定した場合、当然ながら敵の攻撃対象が減るため、プレイヤーへの攻撃は激しくなる。
setmiso  L8,  ON  ;Label=8のレドーム機は攻撃を受けないようにする。


setname
記述 setname ラベルコード, 名前ID
引数 ラベルコード 名前を変更する対象となるユニットのラベルコード
名前ID 名前のID。基本的にはユニットのIDと同じ。ユニットIDは
動作 HUDに表示される名前を変更する。HUDの表記は画像扱いなので、文字列ではなくIDで変更する。つまり自分で作った名前に変えられるわけではない。通常は敵機の表示をUnknownに変更するために使う。UnknownのユニットIDは"4"である。
setlabel  L10,4  ;RX-66の表記をUnknownに変更


setnetworkdata
記述 setnetworkdata オフセット, データ
引数 オフセット オフセット番号0〜7(即値、レジスタ、フラグ、カウンタ)
データ代入先 共有変数の内容を代入する先(レジスタ、フラグ、カウンタ)
動作 自分が管理するネットワーク共有変数の「オフセット」番号の領域に「データ」を格納する。格納されたデータは1秒以内に全ノードへ配信されるが、遅延やロスト発生がある場合、データ更新は保障はされない。 一般的にはホストがこの命令を使用し、他クライアントへイベント進行などを伝達する用途が一般的。 ネットワーク共有変数の読み出しはgetnetworkdataを使用する。
setnetworkdata  0, 3  ;自分が管理するデータのうち0番に3を代入(networkdata[MyID][0]=3;というイメージ)


setoriginalparam
記述 setoriginalparam ラベルコード,フラグ
引数 ラベルコード 変化させるユニットのラベルコード
フラグ 以下の値を指定。初期状態は0。
0 共通パラメータを適用(デフォルト値)
1 「旋回性」について機体固有のパラメータを適用
2 「安定性」について機体固有のパラメータを適用
3 「旋回性」「安定性」について機体固有のパラメータを適用
4 「ベクター値」について機体固有のパラメータを適用
5 「旋回性」「ベクター値」について機体固有のパラメータを適用
6 「安定性」「ベクター値」について機体固有のパラメータを適用
7 「旋回性」「安定性」「ベクター値」について機体固有のパラメータを適用
動作 イベント時のsetpad命令による機体操縦は編隊飛行を容易にする観点から「機種に関わらずパラメータ一定」で飛行させている。この命令ではその制限を一部撤廃して「旋回性・安定性・ベクター値」に対しては機体本来の値を適用飛行させる。
setoriginalparam  L10,  1  ;Label=10の機体は、機体本来の旋回性で飛ばす。
setoriginalparam  L10,  7  ;Label=10の機体は、機体本来の旋回性・安定性・ベクター値で飛ばす。


setpad
記述 setpad ラベルコード, (操縦左右,操縦上下), 目標速度, 操縦入力時間
引数 ラベルコード 操縦対象のユニットのラベルコード
操縦左右 ユニットにつながる仮想的なゲームパッドの左右入力。右がプラス。
操縦上下 ユニットにつながる仮想的なゲームパッドの上下入力。下がプラス。
目標速度 この速度まで徐々に変化する
操縦入力時間 (操縦左右,操縦上下)の入力を行う時間。
動作 イベントシーンにおいて、ユニットを操縦して動作する。透明機体も操作できるので、カメラを貼り付けた透明機体を操縦させることでカメラをリアルに動かすことが出来る。
setpad  L10, (-10,5), 250, 40  ;L10の操縦桿を40フレームの間、10%左/5%手前に倒し、目標速度は250


setparent
記述 setmaster 制御対象ラベルコード, 親指定のラベルコード
引数 制御対象ラベルコード 親オブジェクトを変更させるユニットのラベルコード
親指定のラベルコード 「親オブジェクト」になるユニットのラベルコード
動作 親オブジェクトを変更する。この親子関係は3D処理での親子関係である。
setparent  L14, L10  ;Label=14のトラックをLabel=10に搭載する


setpos
記述 setpos ラベルコード, (X, Y, Z), 子フラグ
引数 ラベルコード 位置を変更するユニットのラベルコード
(X, Y, Z) 位置。即値またはレジスタが指定可能。
子フラグ 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 ユニットの座標を強制的に変更する。子フラグについてはmove命令の項で解説されているものと同様である。
setpos  L1, (2500, 190, 2500)  ;L1のプレイヤー機をマップ中央へ強制移動


setprintlist
記述 setprintlist (X, Y), "表示名", 表示する値
引数 ラベルコード 位置を変更するユニットのラベルコード
(X, Y) 表示位置。即値またはレジスタが指定可能。
表示名 数値の左に表示される文字。省略できないので、何も書きたくない場合は半角スペースなどを入れる。
表示する値 表示すべき値を指定。フラグ、カウンタまたはレジスタが指定可能。
動作 デバッグ用機能。指定座標に変数を表示する。将来仕様変更の可能性があるので、ゲーム内の「数字表示機能」として使ってはいけない。
setprintlist (210,10),"EventCode:",F5  ;フラグ5の値を画面上部左に表示


setrevivalpos
記述 setrevivalpos
引数 (なし)
動作 オンライン対戦の場合、墜落してもミッション終了とはならずにそのまま復活できるが、その復活時の場所を変更する。現在の自機の座標を復活位置とする
setrevivalpos  ;プレイヤーの現在の位置を復活位置にする。


setrot
記述 setrot ラベルコード, (X軸角, Y軸角, Z軸角), 子フラグ
引数 ラベルコード 向きを変更するユニットのラベルコード
(X, Y, Z) ピッチ、方位、バンクの角度。即値またはレジスタが指定可能。
子フラグ 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 ユニットの角度を強制的に変更する。子フラグについてはmove命令の項で解説されているものと同様である。
setrot  L10, (90, 190, 0)  ;L10の垂直上昇させる


setscale
記述 setscale ラベルコード, (X, Y, Z), 子フラグ
引数 ラベルコード 大きさを変更するユニットのラベルコード
(X, Y, Z) 各軸方向への拡大率
子フラグ 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 ユニットの拡大率を変更する。相対地ではなく絶対値である。子フラグについてはmove命令の項で解説されているものと同様である。
setscale  L10, (1, 0.2, 1)  ;L10のオブジェクトを平たくする


setscore
記述 setscore ラベルコード,スコア
引数 ラベルコード 大きさを変更するユニットのラベルコード
スコア ユニットのスコア
動作 ユニットのスコアを変更する。標準値は10、最大値は255である。
setscale  L10, 30   ;L10のオブジェクトのスコアを30に変更


setsection
記述 setsection ラベルコード, セクション
引数 ラベルコード 動作制御対象のユニットのラベルコード
セクション 行動を表す数値「セクション」
動作 ユニットの動作を切り替える。対空砲に任意で射撃を行ったり、TOYBOXユニットを使って落雷を発生させたりする。詳しくは「セクションについて」で解説。
setsection  L42,40  ;レーザー射撃


setspeed
記述 setspeed ラベルコード 速度
引数 ラベルコード 速度を変更するユニットのラベルコード
速度 ユニットの速度
動作 イベントシーンにおいて、ユニットの飛行速度を指定する。RSE1.0の仕様ミスである1フレームの猶予は不要になっている。
setspeed  L10, 310  ;L10の速度を310に強制変化。追い越すような速度になる


settarget
記述 settarget 制御対象ラベルコード, ロックオンする敵のラベルコード
引数 制御対象ラベルコード ターゲットを変更させるユニットのラベルコード
ロックオンする敵のラベルコード 「ターゲット」になるユニットのラベルコード
動作 ユニットのターゲットを変更する。イベント等で攻撃対象を指定する場合に使用する。
settarget  L5,	L12  ;ホーミングレイのロックオン対象をアルファ2に指定


settime
記述 settime 秒数
引数 秒数 ミッション制限時間を秒数で指定
動作 ミッションの制限時間を設定する。左上の時計に表示される。TimeUpでミッション失敗にさせるには、制限時間がゼロになったことをスクリプトで検知しなければいけない。
settime  600  ;ミッション制限時間を600秒(10分)に設定する


shootmissile
記述 shootmissile 発射元ラベルコード, 発射先ラベルコード
引数 発射元ラベルコード ミサイルを発射するユニットのラベルコード
発射先ラベルコード ミサイルで狙われるユニットのラベルコード
動作 ミサイルを発射する(発射元に使えるのは航空機のみ)。当たるかどうかは位置による。発射される武器は機体ごとに設定されたメイン武装であるが、このメイン武装がレーザーやグレネードだった場合の動作は未定義である。また、対空ミサイルなどにミサイルを撃たせたい場合はsetsection命令を使う。
shootmissile  L7,L1  ;バタフライ1(Label=7)からレパード1(Label=1)に向けてミサイル発射


startcounter
記述 startcounter カウンタ
引数 カウンタ 始動するカウンタ
動作 カウンタを指導させる。始動するとカウンタは1秒あたり1カウントアップする。既に始動しているカウンタの場合はリセットして0からカウント開始する。
startcounter  C0  ;カウンタ0を始動する


stopgun
記述 stopgun
引数 (なし)
動作 戦場全体で、機銃の使用を禁止する。


stopmissile
記述 stopmissile
引数 (なし)
動作 戦場全体で、ミサイルの使用を禁止する。


stopse
記述 stopse SE番号
引数 SE番号 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと
動作 効果音を停止する
playse  50,   ;効果音50を停止する。


stopthread
記述 stopthread スレッド番号
引数 スレッド番号 終了するスレッド番号
動作 スレッドを終了させる


stopwave
記述 stopwave, 再生種別コード
引数 再生種別コード 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。
動作 音声再生を停止させる。


stopweapon
記述 stopweapon 対象ラベルコード, 武器種類コード, フラグ
引数 対象ラベルコード ミサイルを発射するユニットのラベルコード
武器種類コード 武器の種類を表すコード。MAIN/SUB/CENTER/GUNの4つからどれか一つを指定
フラグ STOPで禁止、STARTで再許可
動作 武器を使用禁止にする。また、その禁止を解除する。stopgunやstopmissileより細かい指定が可能。
stopweapon  L5, MAIN, STOP  ;敵機(Label=5)のメインパイロン武器の使用を禁止する
stopweapon  L5, GUN, START  ;敵機(Label=5)の機銃使用禁止を解除する


supplydamage
記述 supplydamage 回復度
引数 回復度 ダメージ値の回復度を0〜100まで百分率で指定
動作 自機のダメージ値を回復させる
supplydamage  100  ;自機を全快させる


supplyweapon
記述 supplyweapon 補充度
引数 補充度 ミサイルの補充度を0〜100まで百分率で指定
動作 自機のミサイル類の残り数を回復させる
supplyweapon  50  ;弾数を50%分だけ補充


system
記述 system
引数 (なし)
動作 システムに1/60秒だけ処理を戻す。"waitframe 1"と同じだが、メインループの中で使う場合はこちらを推奨。


targetflag
記述 targetflag ラベルコード,フラグ
引数 ラベルコード 変化させるユニットのラベルコード
フラグ ターゲットにするならON、解除するならOFF
動作 ターゲットにしたり通常の敵にしたりする。RSE1.0で存在したオブジェクト管理の不具合は解決している。
targetflag  L21,OFF  ;Label=21の敵をターゲットに変更する。


teamid
記述 teamid ラベルコード,所属コード
引数 ラベルコード 所属変更対象ユニットのラベルコード
所属コード 所属を示すコード
FRIEND 友軍
ENEMY 敵軍
OBJECT 戦闘対象外。HUDにも表示されない
動作 ユニットの所属を変更する、敵を味方に変更するよりは、HUDから消したりすることに使うことが多い。OBJECTに設定すると、リザルトにおける撃破率の分母からも除外されるので、teamidでHUDから消しても敵殲滅ができなくなることは無い。
teamid  L21,ENEMY  ;Label=21のジェネレーターをHUDに表示、攻撃できるようにする。


teamname
記述 teamname ラベルコード,チーム名
引数 ラベルコード 所属変更対象ユニットのラベルコード
チーム名 設定するチーム名文字列
動作 ユニットの所属を変更する。主にオンライン用。オフラインのミッションではteamid命令を使用すること。
teamname  L100,"B"  ;Label=100のユニットをチーム名"B"に変更する。


viewmode
記述 viewmode カメラコード
引数 カメラコード カメラの撮影方式を選択する以下のコード
FIXED focus1を撮影するための空中固定カメラ
LONG focus1を中心にして、focus2を撮影
SHORT focus1内蔵のカメラからfocus2を撮影
SIDE focus1を横から撮影
ROUND focus1の周りをまわる
FLIGHT HUDの視点へ戻す
動作 カメラの撮影方式を変更する。focus1,focus2に関してはcamfocusの項目を参照。
viewmode  SHORT  ;視点モードを近距離対象撮影に変更


waitframe
記述 waitframe 待ち時間
引数 待ち時間 時間を1/60秒単位で入力。レジスタ・フラグ・カウンタ・即値が指定可能。
動作 スクリプトの動作を一時停止する。他のスレッドへは影響無し。フレーム数はFPS設定や実際の負荷に関わらず、ゲーム内での1/60秒が単位となる。
waitframe  6  ;6フレーム(0.1s)待つ


waitstream
記述 waitstream 追加待ち時間
引数 追加待ち時間 時間を秒で入力。
動作 直前の音声ファイルの再生が終わるまでスクリプトの動作を一時停止する。他のスレッドへは影響無し。台詞ファイルが隙間無く再生されると不自然なため、追加待ち時間に0.3〜0.5程度の値を入れると良い。
waitstream  0.3  ;直前の台詞再生が終わるまで待ち、さらに0.3秒待つ


waittime
記述 waittime 待ち時間
引数 待ち時間 時間を秒単位で入力。レジスタ・フラグ・カウンタ・即値が指定可能。即値の場合は小数指定可能。
動作 スクリプトの動作を一時停止する。他のスレッドへは影響無し。
waittime  0.5  ;0.5秒待つ