目次
00 01 02 03 04 05 06 07 09 0F(メッセージ) 16 19 21 25 29
2A 2B 30 31 4F(移動) 50 5A 69 6A 6B 6C A0 B6 B7 DC
------------------------------------------------------------
@@@@@@とかXXXXとかには実際は何かしらの値が入ります
2バイト以上に渡る値は1バイト毎に逆順に入力することに注意
例1:152→ 52 01
例2:21B9E6→ E6 B9 21
[800D]とかいうのは800D番目のメモリ上の領域(変数)を表す
□ 00
何もせずに次へ
□ 01
何もせずに次へ
□ 02 (end)
スクリプトの終点
□ 03 (return)
コマンド04(call) により呼び出されたスクリプトから
呼び出し元に戻る
□ 04 @@ @@ @@ 08 (call)
Offset @@@@@@ にあるスクリプトを呼び出す
□ 05 @@ @@ @@ 08 (goto)
Offset @@@@@@ にあるスクリプトまで移動する
□ 06 ** @@ @@ @@ 08 (if goto)
直前にある判定文(コマンド21(compare)等)の結果が条件をみたすとき
Offset @@@@@@ にあるスクリプトに移動する
** は条件判定にかかわる。
確認はしていないが
commands.htmlに↓こんな記述がある
00 - Lower (<<), also FALSE
01 - Equal (==), also TRUE 確認済
02 - Bigger (>>)
03 - Lower or equal (>=)
04 - Bigger or equal (<=)
05 - Not equal (!=)
用例:
$20C8D3 ダンバルを拾うイベントより
0F 00 F7 CA 20 08 メッセージ表示
09 05 はい/いいえ
21 0D 80 00 00 ↑の結果と 0(いいえ)を比較
06 01 ED C8 20 08 ↑の結果が "イコール" だったら分岐
□ 07 ** @@ @@ @@ 08 (if call)
ほとんど06と同じだが、こちらは移動の際 04(call)のような挙動をとる。
つまり移動先から03(return)で戻ってくる。
□ 09 ** (callstd/boxset)
メッセージボックスを表示する
メッセージ内容は直前にコマンド0F(msgbox)で指定する
**の値に応じて様々な効果が出る
01 - (特殊)「(アイテム名)を手に入れた!」と表示
04 - ボタンを押してもメッセージボックスをすぐには閉じない
05 - はい/いいえの選択肢を選ばせる。
結果は[800D]に格納される(はい…1 いいえ…0)
06 - 標準 ふつうにメッセージボックスを表示
□ 0F 00 @@ @@ @@ 08 (msgbox/message)
メッセージを表示する準備
Offset @@@@@@ に格納された文章を読み込む
→コマンド09で表示
00の部分に何かしらの値が入ることもありそう(見たことないが)
□ 16 XX XX NN NN (setvar)
メモリ上の領域[XXXX]に数値[NNNN]を代入する
□ 19 XX XX YY YY (copyvar)
メモリ上の領域[XXXX]に領域[YYYY]に格納された値を代入する
□ 21 XX XX NN NN (compare)
メモリ上の領域[XXXX]の値と、数値[NNNN]を比較する
結果がどう保持されるのかよくわからないが
直後のif文の条件になれる
□ 25 XX XX (special)
XX XX の値によっていろいろ起こる
98 00 - ロープウェイに乗る
9A 00 - 時計合わせ
9B 00 - 時計を見る
9C 00 - キモリ、アチャモ、ミズゴロウから一匹選択
9D 00 - ミツルがラルトスを捕まえる
9E 00 - ポケモンにニックネームをつける
9F 00 - 手持ちポケから一匹選択
A1 00 - きのみブレンダー
A2 00 - コインが たりません><
37 01 - コマンドB6 で指定したポケモンと戦闘 カイグラ仕様
38 01 - コマンドB6 で指定したポケモンと戦闘 レジ系仕様
□ 29 XX XX (setflag)
フラグ XX XX をONにする(People IDを持つイベントは以降表示されなくなる)
XX XXは People No を逆順に(93 00の場合、00 93)
□ 2A XX XX (clearflag)
フラグ XX XX をOFFにする(People IDを持つイベントを表示される)
XX XXは People No を逆順に(93 00の場合、00 93)
□ 2B XX XX (checkflag)
フラグチェック。
フラグ XX XX が立っているなら
[800D]に1を代入。そうでなければ0を代入する
□ 30 A1 XX XX 02 00 (cry)
XXXX番のポケモンの泣き声を鳴らす
A1 変えると鳴らない
02 00 変えても違いがわからない
□ 31 ** ** (fanfare)
ファンファーレを鳴らす
** **が
70 01 - ポケセン
71 01 - ちゃーちゃちゃー ちゃちゃちゃーちゃちゃー ちゃーちゃーー
72 01 - チャーンチャララチャンチャンチャンチャーン
73 01 - ちゃーらーらー ちゃちゃちゃちゃちゃちゃちゃー
74 01 - てってれれーー てってってってー
etc
その他 - ててててーん
□ 4F ** @@ @@ @@ 08 (applymovement)
キャラクターの移動(動作指定)
PeopleNo が ** のキャラクターを
Offset @@@@@@ に格納されたデータに従って移動させる
** に FF を指定すると、主人公が移動する
このコマンドで動作を指定しても、直ちに移動が行われるのではなく、
次にコマンド 50(pause) を実行したときに移動が行われる
このとき、複数のキャラクターの動作を指定しておけば一斉に移動する
□ 50 00 00 (pause)
コマンド 4F(applymovement)で指定された動作を実行。
完了するまでウェイト
□ 5A (faceplayer)
イベントが主人公の方を向く
□ 69 (lock)
6A (lock)
主人公の操作をロックする。ほとんどのイベントの始めに必要
2種類あるが違いは不明
□ 6B (release)
6C (release)
主人公の操作ロックを解除する
69 は 6B で
6A は 6C で解除される
□ A0 (checkgender)
主人公の性別を調べる。
[800D]に 1(男)か 0(女)を代入
□ B6 XX XX ** YY YY
ポケモンとの戦闘の準備
ポケモンコード XXXX
Lv **
所持アイテムYYYY
次にコマンドB7やコマンド25(の一部のもの)が実行された時、戦闘開始
□ B7
コマンドB6 で指定したポケモンと戦闘
□ DC **
**の部分が
01 - 画面をまっ暗にする
00 - まっ暗になった画面を元に戻す