ステージの各イベントは 16 ビットのワードの並びです。命令コード 3D31〜3D79 のあとにその引数が続き、条件命令 3E00〜3E1D が条件ブロックを作り、コンテキストマーカー 3DD0〜3DDB が現在の主人公のルートや選択肢に応じて実行する部分を選び、FFFF でイベントが終わります。ミニステージでは命令を {"op": "3D45", "args": [1]} のように書き、条件命令とマーカーも同じ書き方です。
このページは config/data/original-jp-v1.json の stage_scripts テーブルから生成しています。「コードで確認」はゲームの処理関数から意味を確認済み、「構造を確認」は読み書きする場所は分かっているものの、役割はまだ完全には分かっていないことを示します。
各項目の根拠(どのゲームコードに基づくか)とゲーム内での検証結果は中国語で記録しています。各項目から中国語のページの該当箇所へリンクしています。
イベントの種類
イベントの種類によって、いつ判定されるかと 4 つの発動条件(header)の読み方が決まります。
| 種類 | 名前 | 判定のタイミング | 発動条件 |
|---|---|---|---|
| 0 | ターン開始 | フェイズ 0 | 1. ターン数:現在のターン ≥ この値 2. フェイズ:現在のフェイズ 8010F5E8 と一致すること(1 味方 / 2 敵) 3. 予約 4. 予約 |
| 1 | 遅延カウント(3D52 で開始) | フェイズ 0 | 1. 初期状態:実行時に 3D52 が 0xFD に書き換える 2. フェイズ:実行時に 3D52 が書き換える。4 = 任意 3. 予約 4. 予約 |
| 2 | ユニット撃破/退場 | 常時 | 1. 条件変数:100〜115 の場合、変数が 3 の間は発動しない(8009DE7C が各ステージ開始時に 100〜114 を 3 にし、スクリプトが 0 を書くと有効になる)。それ以外の番号は調べない。0 は条件なし 2. キャラクター:このキャラクターが乗る機体の HP 割合が 0 になる 3. 予約 4. 予約 |
| 3 | HP が割合を下回る | 常時 | 1. キャラクター:キャラクター 138 は特例:機体の HP < 11 のときだけ続行 2. 割合:HP% ≤ この値 かつ出撃中 3. 予約 4. 予約 |
| 4 | 交戦イベント(戦闘後、フェイズ 7) | フェイズ 7 | 1. キャラクター A:0 = 任意 2. キャラクター B:0 = 任意 3. 予約 4. 予約 |
| 5 | 交戦イベント(戦闘前、フェイズ 4) | フェイズ 4 | 1. キャラクター A:0 = 任意 2. キャラクター B:0 = 任意 3. 予約 4. 予約 |
| 6 | 敵全滅 | 常時 | 1. 最終ターン:現在のターン(0 起算)≤ この値 のときだけ発動。8009E834 はこの値 < 現在のターンで戻る 2. フェイズ:4 = 任意 3. 予約 4. 予約 |
| 7 | 陣営の残り数 | 常時 | 1. 陣営の選択:2 → 第三勢力の数 0x9B2、それ以外は敵の数 0x9B1 2. 上限数:残り数 ≤ この値 3. フェイズ:4 = 任意 4. 条件変数:100〜115 の場合、変数が 3 の間は発動しない(8009DE7C が各ステージ開始時に 100〜114 を 3 にし、スクリプトが 0 を書くと有効になる)。それ以外の番号は調べない |
| 8 | エリア到達(3D57 で有効化) | フェイズ 0、フェイズ 1、フェイズ 2、フェイズ 6 | 1. ターンまたはモード:数値 = 現在のターン ≥ この値。0xFF = 到達で発動。0xFE = 味方が全員離脱 2. 対象:N×1000 + キャラクター(または 500 + 陣営。21 = リストで最初に出撃中のキャラクター) 3. x の範囲:x0×10 + 幅 4. y の範囲:y0×10 + 高さ |
| 9 | 説得(0x992、フェイズ 6) | フェイズ 0、フェイズ 1、フェイズ 2、フェイズ 6 | 1. 説得する側:800A4634 が登録順に、未実行・条件成立・両者が上下左右に隣接している最初の枠を探し、engine+0x992 に書き込む 2. 相手:相手の陣営は問わない 3. 条件変数:0xFFF8(−8)は条件なし。それ以外は 変数 == 条件値 のときだけ「説得」が出る。ステージをまたぐ多段階の説得はこれでつなぐ 4. 条件値 |
| 10 | 登録のみ(ポーリングしない) | なし | 1. 予約 2. 予約 3. 予約 4. 予約 |
| 11 | 登録のみ(ポーリングしない) | なし | 1. 予約 2. 予約 3. 予約 4. 予約 |
| 12 | 開幕イベント(フェイズ C1) | engine+4 = 0xC1 | 1. 予約 2. 予約 3. 予約 4. 予約 |
| 13 | フェイズ C2 イベント(初期配置) | engine+4 = 0xC2 | 1. 予約 2. 予約 3. 予約 4. 予約 |
| 14 | 終了イベント(フェイズ C3、3D4A の後) | engine+4 = 0xC3 | 1. 予約 2. 予約 3. 予約 4. 予約 |
命令
3D31 · ワールドマップ:地点に配置(3D32 と同じ処理)
引数(1 ワード) · コードで確認 · 処理関数 0x800A0E64
- 地点 —
world_location
3D32 · ワールドマップ:地点に配置
引数(1 ワード) · コードで確認 · 処理関数 0x800A0E64
- 地点 —
world_location
3D33 · ワールドマップ:目的地へ移動
引数(1 ワード) · コードで確認 · 処理関数 0x800A0EFC
- 地点 —
world_location
3D34 · マップ切り替えと位置へのスクロール(マップ番号, x, y, 種類)
引数(4 ワード) · コードで確認 · 処理関数 0x8009F6FC
- マップ番号 —
map:マップ番号(base:map_assets。8010F5EE に書き込む) - x —
x:マス x - y —
y:マス y - 種類 —
raw:未解明
3D35 · カメラを位置へスクロール(位置, 待機フラグ)
引数(2 ワード) · コードで確認 · 処理関数 0x800A03E8
- 位置 —
position:上位バイト x/下位バイト y。0x40〜0x44 は 3D54 で記憶した位置からの相対 - 待機フラグ —
raw:未解明
3D36 · 画面振動(強さ)
引数(1 ワード) · コードで確認 · 処理関数 0x8009F880
- 強さ —
raw:未解明
3D37 · マップエフェクト表示(エフェクト番号, 位置)
引数(2 ワード) · コードで確認 · 処理関数 0x8009FF2C
- エフェクト番号 —
raw:未解明 - 位置 —
position:上位バイト x/下位バイト y。0x40〜0x44 は 3D54 で記憶した位置からの相対
3D38 · 待機(フレーム数)
引数(1 ワード) · コードで確認 · 処理関数 0x800A00F0
- フレーム数 —
count:カウント
3D39 · 効果音を再生
引数(1 ワード) · コードで確認 · 処理関数 0x8009FA4C
- 効果音 —
se:効果音番号
3D3A · BGM 再生(0 = 停止)
引数(1 ワード) · コードで確認 · 処理関数 0x8009FA70
- 曲 —
bgm:曲番号
3D3B · フェードイン/アウト(モード)
引数(1 ワード) · コードで確認 · 処理関数 0x8009F948
- モード —
raw:未解明
3D3C · ユニットを位置へ移動(パイロット, 位置)
引数(2 ワード) · コードで確認 · 処理関数 0x800A0360
- パイロット —
actor:キャラクター番号(base:actors) - 位置 —
position:上位バイト x/下位バイト y。0x40〜0x44 は 3D54 で記憶した位置からの相対
3D3D · 出撃(–, –, –, 機数:0 = 母艦選択、200 = 全自動、それ以外 = 出撃選択の上限, 基準グループ)
引数(5 ワード) · コードで確認 · 処理関数 0x800A09D0
- 予約(原作スクリプトは基準座標 x を写す) —
raw:未解明 - 予約(原作スクリプトは基準座標 y を写す) —
raw:未解明 - 引数(原作スクリプトでは常に 0) —
raw:未解明 - 機数(0 母艦/200 自動/それ以外は上限) —
raw:未解明 - 基準グループ —
group:出撃データのグループ番号
3D3E · 会話 · 表示モード 0
引数(1 ワード) · 会話の表示モード 0 · コードで確認 · 処理関数 0x8009F654
- テキスト —
text:テーブル 0 のテキスト番号
3D3F · 会話 · 表示モード 1
引数(1 ワード) · 会話の表示モード 1 · コードで確認 · 処理関数 0x8009F670
- テキスト —
text:テーブル 0 のテキスト番号
3D40 · 会話 · 表示モード 2
引数(1 ワード) · 会話の表示モード 2 · コードで確認 · 処理関数 0x8009F68C
- テキスト —
text:テーブル 0 のテキスト番号
3D41 · 会話 · 表示モード 3
引数(1 ワード) · 会話の表示モード 3 · コードで確認 · 処理関数 0x8009F6A8
- テキスト —
text:テーブル 0 のテキスト番号
3D42 · 会話 · 表示モード 4
引数(1 ワード) · 会話の表示モード 4 · コードで確認 · 処理関数 0x8009F6C4
- テキスト —
text:テーブル 0 のテキスト番号
3D43 · 会話 · 表示モード 5
引数(1 ワード) · 会話の表示モード 5 · コードで確認 · 処理関数 0x8009F6E0
- テキスト —
text:テーブル 0 のテキスト番号
3D44 · 選択肢を表示(ウィンドウ枠, 選択肢の数, 選択肢テキスト)
引数(3 ワード) · コードで確認 · 処理関数 0x8009FA94
- ウィンドウ枠 —
raw:未解明 - 選択肢の数 —
count:カウント - 選択肢テキスト —
text:テーブル 0 のテキスト番号
3D45 · 出撃データのグループを配置(登場)
引数(1 ワード) · コードで確認 · 処理関数 0x8009FC04
- グループ —
group:出撃データのグループ番号
3D46 · ユニット退場(キャラクターまたはグループ, 即時)
引数(2 ワード) · コードで確認 · 処理関数 0x8009FDC4
- キャラクターまたはグループ —
actor_or_group:500 未満はキャラクター番号、500 以上はグループ(値 − 500) - 即時 —
bool:スイッチ
3D47 · 会話ウィンドウを閉じて 32 フレーム待機
引数なし · コードで確認 · 処理関数 0x800A013C
3D48 · 会話ウィンドウを閉じる
引数なし · コードで確認 · 処理関数 0x800A0194
3D49 · スクリプト戦闘演出(戦闘テーブル A, 戦闘テーブル B)
引数(2 ワード) · コードで確認 · 処理関数 0x800A10F0
- 戦闘テーブル A —
battle_entry - 戦闘テーブル B —
battle_entry
3D4A · ステージクリア処理
引数なし · コードで確認 · 処理関数 0x800A01CC
3D4B · 次のシーン番号を設定(500 = 8010F5F2 を復元)
引数(1 ワード) · コードで確認 · 処理関数 0x800A0260
- シーン番号 —
scene:シーン番号
3D4C · ゲームオーバー
引数なし · コードで確認 · 処理関数 0x800A02E0
3D4D · ワールドマップから戦場へ切り替え
引数なし · コードで確認 · 処理関数 0x800A031C
3D4E · ウィンドウを閉じて 1 フレーム譲る
引数なし · コードで確認 · 処理関数 0x800A0468
3D4F · ユニット撃破(キャラクターまたはグループ)
引数(1 ワード) · コードで確認 · 処理関数 0x8009FE9C
- キャラクターまたはグループ —
actor:キャラクター番号(base:actors)
3D50 · 機体の変形(キャラクター, 元の機体, 変形後の機体)
引数(3 ワード) · コードで確認 · 処理関数 0x800A04AC
- キャラクター —
actor:キャラクター番号(base:actors) - 元の機体 —
unit:機体番号(base:units) - 変形後の機体 —
unit:機体番号(base:units)
3D51 · MAP 兵器を発射(キャラクター, 機体, MAP 兵器, 方向, –)
引数(5 ワード) · コードで確認 · 処理関数 0x800A051C
- キャラクター —
actor:キャラクター番号(base:actors) - 機体 —
unit:機体番号(base:units) - MAP 兵器 —
weapon - 方向 —
raw:未解明 - – —
raw:未解明
3D52 · 遅延カウントイベントを開始(枠, ターン数, フェイズ)
引数(3 ワード) · コードで確認 · 処理関数 0x800A05D0
- タイプ 1 の枠 —
event_slot_type1:このシーンのタイプ 1 イベントの登録順 - ターン数 —
count:カウント - フェイズ —
side:フェイズ 1 味方 / 2 敵 / 3 第三勢力(4 = 任意)
3D53 · 遅延カウントイベントを停止(枠)
引数(1 ワード) · コードで確認 · 処理関数 0x800A0638
- タイプ 1 の枠 —
event_slot_type1:このシーンのタイプ 1 イベントの登録順
3D54 · キャラクターの位置を記憶
引数(1 ワード) · コードで確認 · 処理関数 0x800A0678
- キャラクター —
actor:キャラクター番号(base:actors)
3D55 · 精神コマンド発動/キャラクターへカメラ切り替え(キャラクター, 精神番号または 30)
引数(2 ワード) · コードで確認 · 処理関数 0x800A0714
- キャラクター —
actor:キャラクター番号(base:actors) - 精神番号 —
spirit
3D56 · 緑の目標エリアを表示(座標 A, 座標 B, –)
引数(3 ワード) · コードで確認 · 処理関数 0x800A0780
- 座標 A —
raw:未解明 - 座標 B —
raw:未解明 - 予約 —
raw:未解明
3D57 · エリア到達イベント枠を有効化(枠, 値)
引数(2 ワード) · コードで確認 · 処理関数 0x800A0BD0
- タイプ 8 の枠 —
event_slot_type8:このシーンのタイプ 8 イベントの登録順 - 値 —
bool:スイッチ
3D58 · ユニットの所属変更(キャラクター, 変更先の陣営)
引数(2 ワード) · コードで確認 · 処理関数 0x800A0C14
- キャラクター —
actor:キャラクター番号(base:actors) - 変更先の陣営 —
raw:未解明
3D59 · 出撃不可(キャラクター。500 以上は 500 + 機体番号)
引数(1 ワード) · コードで確認 · 処理関数 0x800A0C80
- キャラクターまたは 500 + 機体 —
raw:未解明
3D5A · 部隊編成(キャラクター, 引数, 機体, モード/旧機体)
引数(4 ワード) · コードで確認 · 処理関数 0x800A0B3C
- キャラクター —
actor:キャラクター番号(base:actors) - 引数 —
raw:未解明 - 機体 —
unit:機体番号(base:units) - モード/旧機体 —
raw:未解明
3D5B · 資金を加算:引数 × 1000
引数(1 ワード) · コードで確認 · 処理関数 0x800A0D24
- 千単位 —
value:数値
3D5C · 合体/分離(キャラクター, 1 = 合体、0 = 分離)
引数(2 ワード) · コードで確認 · 処理関数 0x800A0D68
- キャラクター —
actor:キャラクター番号(base:actors) - モード —
raw:未解明
3D5D · 合体ロボの形態を設定(1 = 合体、0 = 分離, 系統 0 = ダンクーガ、1 = コン・バトラーV)
引数(2 ワード) · コードで確認 · 処理関数 0x800A1010
- 形態 —
raw:未解明 - 系統 —
raw:未解明
3D5E · 部隊名入力画面を開く
引数なし · コードで確認 · 処理関数 0x800A1050
3D5F · 全パイロットの気力 −30(下限 50)
引数(1 ワード) · コードで確認 · 処理関数 0x800A1078
- 引数 —
raw:未解明
3D60 · 味方部隊を隊列に並べる(開始 x, 開始 y, 1 列の数)
引数(3 ワード) · コードで確認 · 処理関数 0x800A10AC
- x —
x:マス x - y —
y:マス y - 1 列の数 —
count:カウント
3D61 · 「味方全滅で敗北」判定を一時停止(スイッチ)
引数(1 ワード) · コードで確認 · 処理関数 0x800A1328
- 停止 —
bool:スイッチ
3D62 · キャラクターの差し替え(キャラクター → キャラクター)
引数(2 ワード) · コードで確認 · 処理関数 0x800A1224
- 元のキャラクター —
actor:キャラクター番号(base:actors) - 新しいキャラクター —
actor:キャラクター番号(base:actors)
3D63 · 着地/飛行の切り替え(キャラクター)
引数(1 ワード) · コードで確認 · 処理関数 0x800A1264
- キャラクター —
actor:キャラクター番号(base:actors)
3D64 · 同乗パイロットを降ろす(キャラクター。500,500 = アイシャがマナミの母艦へ移る)
引数(2 ワード) · コードで確認 · 処理関数 0x800A12CC
- キャラクター —
actor:キャラクター番号(base:actors) - モード —
raw:未解明
3D65 · 勝利/敗北条件を設定(勝利条件, 敗北条件)
引数(2 ワード) · コードで確認 · 処理関数 0x800A1360
- 勝利条件 —
victory_condition - 敗北条件 —
defeat_condition
3D66 · 会話中にカメラを話し手へ移さない(スイッチ)
引数(1 ワード) · コードで確認 · 処理関数 0x800A13A4
- 話し手を追わない —
bool:スイッチ
3D67 · 機体強化/合体演出(演出番号)
引数(1 ワード) · コードで確認 · 処理関数 0x800A13F0
- 演出番号 —
raw:未解明
3D68 · カメラを選択中のユニットへ戻す
引数なし · コードで確認 · 処理関数 0x800A1458
3D69 · ユニットの行動状態を設定(キャラクター, 1 = 行動可能、0 = 行動不能)
引数(2 ワード) · コードで確認 · 処理関数 0x800A14A4
- キャラクター —
actor:キャラクター番号(base:actors) - 行動状態 —
raw:未解明
3D6A · ゴッドマーズ合体処理(モード)
引数(1 ワード) · コードで確認 · 処理関数 0x800A14E4
- モード —
raw:未解明
3D6B · 選択マークの切り替え(キャラクター, 機体, 1 = 付ける、0 = 外す)
引数(3 ワード) · コードで確認 · 処理関数 0x800A158C
- キャラクター —
actor:キャラクター番号(base:actors) - 機体 —
unit:機体番号(base:units) - スイッチ —
raw:未解明
3D6C · 機体の改造段階を設定(機体, 段階)
引数(2 ワード) · コードで確認 · 処理関数 0x800A15D0
- 機体 —
unit:機体番号(base:units) - 段階 —
value:数値
3D6D · 現在のフェイズを 1(味方フェイズ)にする
引数(1 ワード) · コードで確認 · 処理関数 0x800A1610
- 引数 —
raw:未解明
3D6E · ユニット退場(キャラクター)
引数(1 ワード) · コードで確認 · 処理関数 0x800A1644
- キャラクター —
actor:キャラクター番号(base:actors)
3D6F · 武器を解放(武器番号)
引数(1 ワード) · コードで確認 · 処理関数 0x800A1680
- 武器番号 —
raw:未解明
3D70 · 同乗キャラクターを乗せる(パイロット, 同乗キャラクター)
引数(2 ワード) · コードで確認 · 処理関数 0x800A16BC
- パイロット —
actor:キャラクター番号(base:actors) - 同乗キャラクター —
actor:キャラクター番号(base:actors)
3D71 · エンディングへ(戻らない)
引数なし · コードで確認 · 処理関数 0x800A02B8
3D72 · ワールドマップの移動手段を設定(乗り物番号)
引数(1 ワード) · コードで確認 · 処理関数 0x800A0FCC
- 乗り物番号 —
raw:未解明
3D73 · 部隊分割:既定のリストで選択(1 = リスト A、0 = リスト B)
引数(1 ワード) · コードで確認 · 処理関数 0x800A16FC
- リスト —
raw:未解明
3D74 · 部隊分割の選択マークをすべて外す
引数なし · コードで確認 · 処理関数 0x800A1924
3D75 · 母艦の搭載ユニットを発進(キャラクター。艦長なら全搭載ユニット、999 = 46 ブライト)
引数(1 ワード) · コードで確認 · 処理関数 0x800A197C
- キャラクター(艦長なら全機発進、999 = 46) —
actor:キャラクター番号(base:actors)
3D76 · 処理関数なし
引数なし · コードで確認
3D77 · 処理関数なし
引数なし · コードで確認
3D78 · 何もしない(到達不能)
引数なし · コードで確認 · 処理関数 0x800A01BC
3D79 · 何もしない(到達不能)
引数なし · コードで確認 · 処理関数 0x800A01C4
条件命令
条件命令は ACC レジスタと変数を判定・設定します。「開始」はブロックを始め、偽のときは対応する「ブロック終了」(3E1D)まで飛ばします。ブロックは入れ子にできます。
3E00 · ACC = 0
引数なし · 種類:文 · コードで確認 · 処理関数 0x800A2388
3E01 · キャラクターの HP 割合 < しきい値(かつ出撃中)なら ACC = 値
引数(3 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A1FBC
- キャラクター —
actor:キャラクター番号(base:actors) - 割合 —
value:数値 - ACC の値 —
value:数値
3E02 · 変数 ≠ 値 なら
引数(2 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A207C
- 変数 —
flag:2 ビット変数 0〜199 - 値 —
value:数値
3E03 · 変数 = 値 なら ACC = 値 2
引数(3 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A20C4
- 変数 —
flag:2 ビット変数 0〜199 - 値 —
value:数値 - ACC の値 —
value:数値
3E04 · 現在のターン < ターン数 なら ACC = 値
引数(2 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A2344
- ターン数 —
value:数値 - ACC の値 —
value:数値
3E05 · 常に真(未実装)
引数なし · 種類:開始 · コードで確認
3E06 · ACC = !(レベル[キャラクター A] < レベル[キャラクター B])
引数(2 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A22CC
- キャラクター A —
actor:キャラクター番号(base:actors) - キャラクター B —
actor:キャラクター番号(base:actors)
3E07 · 常に真(未実装)
引数なし · 種類:開始 · コードで確認
3E08 · ACC = 値 なら
引数(1 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A23C4
- 値 —
value:数値
3E09 · ACC ≥ 値 なら
引数(1 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A23EC
- 値 —
value:数値
3E0A · ACC ≠ 値 なら
引数(1 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A2438
- 値 —
value:数値
3E0B · ACC ≥ 値 なら
引数(1 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A23EC
- 値 —
value:数値
3E0C · ACC < 値 なら
引数(1 ワード) · 種類:開始 · コードで確認 · 処理関数 0x800A2414
- 値 —
value:数値
3E0D · ACC = 撃墜数[キャラクター]
引数(1 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A228C
- キャラクター —
actor:キャラクター番号(base:actors)
3E0E · 変数 = (変数 + 1) mod 4
引数(1 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A2198
- 変数 —
flag:2 ビット変数 0〜199
3E0F · 変数 = (変数 − 1) mod 4(0 以下なら 3)
引数(1 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A220C
- 変数 —
flag:2 ビット変数 0〜199
3E10 · 選択肢の結果 = 1 番目 なら
引数なし · 種類:開始 · コードで確認 · 処理関数 0x800A2394
3E11 · 選択肢の結果 = 2 番目 なら
引数なし · 種類:開始 · コードで確認 · 処理関数 0x800A23A4
3E12 · 選択肢の結果 = 3 番目 なら
引数なし · 種類:開始 · コードで確認 · 処理関数 0x800A23B4
3E13 · 変数 = 値
引数(2 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A2158
- 変数 —
flag:2 ビット変数 0〜199 - 値 —
value:数値
3E14 · ACC = 値
引数(1 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A2138
- 値 —
value:数値
3E15 · ACC = 陣営のユニット数
引数(1 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A24FC
- 陣営 —
faction:陣営 0 味方 / 1 敵 / 2 第三勢力
3E16 · ACC = 交戦相手のキャラクター(引数のキャラクター以外)
引数(1 ワード) · 種類:文 · 構造を確認 · 処理関数 0x800A2478
- キャラクター —
actor:キャラクター番号(base:actors)
3E17 · ACC = engine+0x9B6(符号付きバイト)
引数なし · 種類:文 · 構造を確認 · 処理関数 0x800A2460
3E18 · ACC = 現在のシーン番号
引数なし · 種類:文 · コードで確認 · 処理関数 0x800A2570
3E19 · engine+0x998 = engine+0x9A8
引数なし · 種類:文 · 構造を確認 · 処理関数 0x800A2590
3E1A · ACC = engine+0x998
引数なし · 種類:文 · 構造を確認 · 処理関数 0x800A25A0
3E1B · ACC = キャラクターの出撃状態(0 不在 / 1 出撃中 / 3 退場済み)
引数(1 ワード) · 種類:文 · コードで確認 · 処理関数 0x800A1F7C
- キャラクター —
actor:キャラクター番号(base:actors)
3E1C · 無条件ブロック開始(常に真)
引数なし · 種類:開始 · コードで確認 · 処理関数 0x800A2584
3E1D · 条件ブロック終了
引数なし · 種類:ブロック終了 · コードで確認 · 処理関数 0x800A1D60
コンテキストマーカー
マーカーに来たとき、現在の状況に合えばそのまま続け、合わなければ次に合うマーカーかイベントの終わりまで飛ばします。
| マーカー | 名前 | 一致の条件 |
|---|---|---|
3DD0 |
共通部分(どの状況でも) | 常に |
3DD1 |
アークライト・ブルー ルート | 現在の主人公 |
3DD2 |
セレイン・メネス ルート | 現在の主人公 |
3DD3 |
ブラッド・スカイウィンド ルート | 現在の主人公 |
3DD4 |
マナミ・ハミル ルート | 現在の主人公 |
3DD5 |
リアル系主人公(3DD1/3DD2) | 主人公の分類 |
3DD6 |
スーパー系主人公(3DD3/3DD4) | 主人公の分類 |
3DD7 |
男性主人公(3DD1/3DD3) | 主人公の分類 |
3DD8 |
女性主人公(3DD2/3DD4) | 主人公の分類 |
3DD9 |
選択肢 1 番目 | 選択肢の結果 |
3DDA |
選択肢 2 番目 | 選択肢の結果 |
3DDB |
選択肢 3 番目 | 選択肢の結果 |
引数の種類
引数の種類は値の範囲を表します。表にない種類は各命令の引数名を参照してください。
| 種類 | 意味 |
|---|---|
actor |
キャラクター番号(base:actors) |
text |
テーブル 0 のテキスト番号 |
unit |
機体番号(base:units) |
flag |
2 ビット変数 0〜199 |
scene |
シーン番号 |
group |
出撃データのグループ番号 |
position |
上位バイト x/下位バイト y。0x40〜0x44 は 3D54 で記憶した位置からの相対 |
x |
マス x |
y |
マス y |
count |
カウント |
frames |
フレーム数 |
se |
効果音番号 |
bgm |
曲番号 |
event_slot_type1 |
このシーンのタイプ 1 イベントの登録順 |
event_slot_type8 |
このシーンのタイプ 8 イベントの登録順 |
actor_or_group |
500 未満はキャラクター番号、500 以上はグループ(値 − 500) |
bool |
スイッチ |
value |
数値 |
side |
フェイズ 1 味方 / 2 敵 / 3 第三勢力(4 = 任意) |
deploy_side |
出撃データの陣営 0/1/2(3 → 0、4 → 2) |
raw |
未解明 |
faction |
陣営 0 味方 / 1 敵 / 2 第三勢力 |
map |
マップ番号(base:map_assets。8010F5EE に書き込む) |
変数
2 ビット(値 0〜3)の変数が 200 個あり、0x8015E818 に置かれます。条件命令で読み書きし、ステージをまたいで保持されます。
出撃データ(28 バイト)
出撃データはステージのユニット配置で、1 件 14 ハーフワード、グループ番号 999 で終わります。「ミニステージの項目」はステージ定義の deployments での項目名です。
| オフセット | バイト | 名前 | ミニステージの項目 | 確認の程度 |
|---|---|---|---|---|
+0 |
2 | グループ番号 | group |
コードで確認 |
+2 |
2 | x | x |
コードで確認 |
+4 |
2 | y | y |
コードで確認 |
+6 |
2 | パイロット | actor |
コードで確認 |
+8 |
1 | 未解明のバイト | byte8 |
未解明 |
+9 |
1 | レベル補正 | level_offset |
コードで確認 |
+10 |
2 | 機体 | unit |
コードで確認 |
+12 |
2 | 改造インデックス | upgrade |
コードで確認 |
+14 |
6 | 未解明 | raw14, raw16, raw18 |
未解明 |
+20 |
2 | 陣営 | faction |
コードで確認 |
+22 |
2 | 行動フラグ | behavior |
構造を確認 |
+24 |
2 | 追加値 | extra |
構造を確認 |
+26 |
2 | 未解明 | raw26 |
未解明 |