イベントスクリプト

Last-modified: 2023-03-31 (金) 18:53:08

マップ上で発生するイベントを作成するためのスクリプト一覧
ERROR氏作成のものを転載の上、編集しています。

目次

記号の説明

下にあるスクリプト一覧にて使われている記号の詳細。

記号説明詳細
@@ @@ @@ @@オフセット
mb mb mb mbメモリバンクorオフセット0x00000000~0x00000003でメモリバンクのオフセットを参照する
vp vp vp vp仮想オフセット
VA VAイベント変数フラグページ参照
va va値の直接指定orイベント変数~0x3FFFは値の直接指定、0x4000~はイベント変数の値として扱われる
nn値の直接指定
テキスト変数20byteのストレージ領域
00:FD 02/01:FD 03/02:FD 04
文字コードページ参照
アニメーション変数4byteのストレージ領域
0x00~0x03の4種類
メモリバンク4byteのストレージ領域
0x00~0x03の4種類
複数使用しない限りは00

スクリプト個別解説

00:nop/無し

01:nop1/無し

02:end/スクリプトの終了

02

03:return/呼び出し元へ戻る

03

04で呼び出されたスクリプトの終端に記載する。呼び出し元のスクリプトへと移動し、後続のスクリプトを処理する。
呼び出し元が存在しない場合はスクリプトを終了する。

04:call/別のオフセットを呼び出し

04 [@@ @@ @@ @@]

指定オフセットにあるスクリプトを呼び出す。呼び出し元のスクリプトアドレスは03000EBCに最大20つまで記録され、03スクリプトで戻ってくる。

05:goto/別のオフセットへジャンプ

05 [@@ @@ @@ @@]

指定オフセットにあるスクリプトへと移動する。04スクリプトと異なり03スクリプトで戻る事ができない為、後続のスクリプトが使用される事はない。
後ろには02を付けておくと安全。

06:if/条件分岐ジャンプ

06 [nn] [@@ @@ @@ @@]

21スクリプト等比較系のスクリプトと合わせて使用する。
比較した結果がnnの条件を満たしていれば指定オフセットにあるスクリプトへと移動する。

  • nnの値
    0x00A<BAがB未満
    0x01A=BAとBが等しい
    0x02A>BAがB超過
    0x03A≦BAがB以下
    0x04A≧BAがB以上
    0x05A≠BAとBが等しくない

07:ifcall/条件分岐呼び出し

07 [nn] [@@ @@ @@ @@]

21スクリプト等比較系のスクリプトと合わせて使用する。
比較した結果がnnの条件を満たしていれば指定オフセットにあるスクリプトを呼び出す。
06スクリプトのcall版。

08:gotostd/定形スクリプトジャンプ

08 [nn]

定形スクリプトnnへと移動する。
定形スクリプトの値はイベントスクリプトテンプレート参照。

09:callstd/定形スクリプト呼び出し

09 [nn]

アイテム入手やセリフ表示等のあらかじめ設定された定形スクリプトnnを呼び出す。
定形スクリプトの値はイベントスクリプトテンプレート参照。

0A:gotostdif/条件分岐定形スクリプトジャンプ

0A [n1] [n2]

21スクリプト等比較系のスクリプトと合わせて使用する。
比較した結果がnnの条件を満たしていれば定形スクリプトn2へと移動する。
定形スクリプトの値はイベントスクリプトテンプレート参照。

0B:callstdif/条件分岐定形スクリプト呼び出し

0B [n1] [n2]

21スクリプト等比較系のスクリプトと合わせて使用する。
比較した結果がnnの条件を満たしていれば定形スクリプトn2を呼び出す。
定形スクリプトの値はイベントスクリプトテンプレート参照。

0C:jumpram/詳細不明

0C

ふしぎなおくりもの用スクリプト

0D:killscript/詳細不明

0D

ふしぎなおくりもの用スクリプト
ふしぎなカード内蔵スクリプトを削除する?

0E:mysterybyte/詳細不明

0E [nn]

ふしぎなおくりもの用スクリプト
メモリ0x0203AA20にnnを書き込む。

0F:loadpointer/メモリバンクにオフセットを読み込み

0F [mb] [@@ @@ @@ @@]

メモリバンクmbに指定オフセットを読み込む。

10:loadbyte/メモリバンクに値を読み込み

10 [mb] [nn]

メモリバンクmbにnnを読み込む。

11:writebyte/メモリに値を書き込み

11 [nn] [@@ @@ @@ @@]

指定オフセットにnnを書き込む。

12:loadfarbyte/メモリバンクに指定オフセットの値を読み込み

12 [mb] [@@ @@ @@ @@]

メモリバンクmbに指定オフセットの値1byteを読み込む。

13:setfarbyte/メモリバンクからメモリに書き込み

13 [mb] [@@ @@ @@ @@]

指定オフセットにメモリバンクmbの値1byteを書き込む。

14:copybank/メモリバンクから別のメモリバンクにコピー

14 [m1] [m2]

メモリバンクm1に別のメモリバンクm2の値4byteをコピーする。

15:copybyte/メモリの値を別のメモリにコピー

15 [@1 @1 @1 @1] [@2 @2 @2 @2]

オフセット@1の値にオフセット@2の値をコピーする。

16:setvar/イベント変数に代入

16 [VA VA] [nn nn]

イベント変数VA VAの値にnn nnを代入する。

17:addvar/イベント変数加算

17 [VA VA] [nn nn]

イベント変数VA VAの値にnn nn加算する。

18:subvar/イベント変数減算

18 [VA VA] [va va]

イベント変数VA VAの値にva va減算する。

19:copyvar/イベント変数のコピー1

19 [V1 V1] [V2 V2]

イベント変数V1 V1の値にイベント変数V2 V2の値をコピーする(V1←V2)

1A:setvarifnotzero/イベント変数のコピー2

1A [VA VA] [va va]

イベント変数VA VAの値にva vaを代入する。
va vaが~0x3FFFなら値の直接代入、0x4000~なら指定したイベント変数の値を代入する。
16スクリプトと19スクリプトの複合版とも言えるスクリプト。

1B:cmpbanks/メモリバンクの値同士を比較

1B [m1] [m2]

メモリバンクm1の値1byteとm2の値1byteを比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

1C:cmpbank/メモリバンクの値と任意の値を比較

1C [mb] [nn]

メモリバンクmbの値1byteとnnを比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

1D:cmpbankfarbyte/メモリバンクの値とメモリの値を比較

1D [mb] [@@ @@ @@ @@]

メモリバンクmbの値1byteと指定オフセットの値を比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

1E:cmpfarbytebank/メモリの値とメモリバンクの値を比較

1E [@@ @@ @@ @@] [mb]

指定オフセットの値とメモリバンクmbの値1byteを比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

1F:cmpfarbyte/メモリの値と任意の値を比較

1F [@@ @@ @@ @@] [nn]

指定オフセットの値とnnを比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

20:cmpbyte/メモリの値同士を比較

20 [@1 @1 @1 @1] [@2 @2 @2 @2]

オフセット@1の値とオフセット@2の値を比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

21:cmpvar/イベント変数の値と任意の値を比較

21 [VA VA] [nn nn]

イベント変数VA VAの値とnn nnを比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

22:cmpvars/イベント変数の値同士を比較

22 [V1 V1] [V2 V2]

イベント変数V1 V1の値とV2 V2の値を比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

23:callasm/アセンブリコード実行(THUMB)

23 [@@+1 @@ @@ @@]

アドレス@@ @@ @@ @@のアセンブリ(THUMB形式) を実行する。
bx命令でTHUMB形式の処理を呼び出す際はアドレスに+1する決まりがある。
大抵のアセンブリはこのスクリプトで呼び出す。

24:callasm2/アセンブリコード実行(ARM)

24 [@@ @@ @@ @@]

アドレス@@ @@ @@ @@のアセンブリ(ARM形式)を実行する。
0x8000000(ROM領域の先頭アドレス)からはARMで開始されるので、
24 00 00 00 08を実行するとソフトが最初から読み込み直されてコピーライトに戻る。

25:special/Specialコードの実行

25 [nn nn]

Specialコードnn nnを実行する。
値はSpecialコードページ参照

26:special2/Special2コードの実行

26 [VA VA] [nn nn]

Specialコードnn nnを実行し、値をイベント変数VA VAに返す。
値はSpecialコードページ参照

27:waitstate/画面切り替えウェイト

27

ワープや一部Specialコード等画面切り替えを挟むスクリプトの処理が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
対応スクリプトを実行していない状態で使用するとフリーズする。

28:wait/指定時間ウェイト

28 [nn nn]

nn nnフレーム経過するまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

29:setflag/フラグをONに

29 [va va]

フラグva vaの値を1に設定する。
オブジェクトに設定されているフラグが一致した場合は非表示になる。
オブジェクト対象が画面内に入っている場合は画面から外れるまで反映されない。

2A:clearflag/フラグをOFFに

2A [va va]

フラグva vaの値を0に設定する。
オブジェクトに設定されているフラグが一致した場合は表示されるようになる。
オブジェクト対象が画面内に入っている場合は画面から外れるまで反映されない。

2B:checkflag/フラグを比較

2B [va va]

フラグva vaの値を1と比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

2C:無し(RSEのRTC関連?)

2D:無し(RSEのRTC関連?)

2E:resetvars/イベント変数をリセット

2E

イベント変数0x8000/0x8001/0x8002に0x0を代入する。
RSEでは現在時刻を代入する?(未確認)

2F:sound/効果音を再生

2F [nn nn]

ファンファーレナンバーnn nnを再生する。

30:soundwait/効果音ウェイト

30

2Fスクリプトで再生した効果音の再生が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

31:fanfare/ファンファーレを再生

31 [nn nn]

ファンファーレナンバーnn nnを再生する。

32:fanfarewait/ファンファーレウェイト

32

31スクリプトで再生したファンファーレの再生が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

33:music/BGM変更1

33 [n1 n1] [n2]

BGMをミュージックナンバーn1 n1に変更する。
n2の値は通常は00。戦闘後もBGMの変更を継続する場合は01に設定する。

34:music2/BGM変更2

34 [nn nn]

マップスクリプト専用で通常のイベントでは使用できない。
BGMをミュージックナンバーnn nnに変更する。

35:defaultmusic/BGM変更を解除

35

33スクリプト等で変更したBGMをフェードアウトし、元のBGMを再生する。

36:fademusic/BGM変更3

36 [nn nn]

現在のBGMをフェードアウトし、ミュージックナンバーnn nnのBGMを再生する。

37:fadeout/BGMフェードアウト

37 [nn]

現在のBGMをnn秒掛けてフェードアウトし、一時停止する。
BGMのフェードアウトが終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
このスクリプトを実行後、38スクリプトでBGMを再開する前にBGMの異なるマップにワープすると暗転フリーズする。
自転車、波乗り、マップ移動等のBGM遷移中にこのスクリプトを実行すると38スクリプトでBGMを再開しても上記の暗転フリーズを回避できなくなる不具合がある。

38:fadein/BGMフェードイン

38 [nn]

BGMの一時停止を解除し、現在のBGMをnn秒掛けてフェードインする。
37スクリプトと異なり操作のロックはされず、ウェイトも無い。
テキストスクリプト17のBGM一時停止も解除可能。

39:warp/ワープ

39 [BN] [MN] [en] [v1 v1] [v2 v2]

バンク番号BN、マップ番号MNのマップに移動する。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。
移動先のタイルアクションは有効。
このスクリプトを含むワープスクリプトは使用すると69/6Aスクリプトのロックが解除される。
プレイヤーの操作の割り込みを防ぐ為、直後に必ず27スクリプトを使用する必要がある。

3A:warpmute/無音ワープ

3A [BN] [MN] [en] [v1 v1] [v2 v2]

バンク番号BN、マップ番号MNのマップに無音で移動する。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。
移動先のタイルアクションは有効。

3B:warpdoor/ドアワープ

3B [BN] [MN] [en] [v1 v1] [v2 v2]

ドア効果音と共に1歩上に歩き、バンク番号BN、マップ番号MNのマップに移動する。
歩いた先がドアのタイルだった場合は扉を開くアニメーションが再生される。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。
移動先のタイルアクションは有効。

3C:warphole/落下ワープ

3C [BN] [MN]

バンク番号BN、マップ番号MNのマップに無音で移動し、空から降ってくる。
座標は移動元のマップの現在座標と同じ。
移動先のタイルアクションは無効化される。

3D:warppanel/ワープパネルワープ

3D [BN] [MN] [en] [v1 v1] [v2 v2]

バンク番号BN、マップ番号MNのマップにワープパネルのアニメーションで移動する。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。
移動先のタイルアクションは無効化される。

3E:warpbattle/戦闘時ワープ

3E [BN] [MN] [en] [v1 v1] [v2 v2]

戦闘中にのみ使用可能。バンク番号BN、マップ番号MNのマップに無音で移動する。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。
移動先のタイルアクションは有効。

3F:setwarp/ワープ先の変更

3F [BN] [MN] [en] [v1 v1] [v2 v2]

移動先がワープNo0xFF/バンク番号0xFF/マップ番号0xFFに設定されたワープイベントの移動先をバンク番号BN、マップ番号MNのマップに変更する。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。

40:詳細不明(warp4)

40 [n1] [n2] [n3] [n4 n4] [n5 n5]

41:詳細不明(warp5)

41 [n1] [n2] [n3] [n4 n4] [n5 n5]

42:getplayerpos/主人公の座標を取得

42 [V1 V1] [V2 V2]

主人公の現在位置X座標をイベント変数V1 V1に代入し、Y座標をV2 V2に代入する。

43:countpokemon/手持ちポケモン数を取得

43

手持ちのポケモンの数をイベント変数0x800Dに代入する。

44:additem/アイテム追加

44 [v1 v1] [v2 v2]

バッグにアイテムコードv1 v1のアイテムをv2 v2個追加する。
バッグに空きがないorアイテム個数が上限を超える場合は追加せず、イベント変数0x800Dに0x0を代入する。入手に成功した場合は0x1を代入する。
このスクリプト単体ではメッセージは表示されない。
09スクリプトに含まれている。

45:removeitem/アイテム削除

45 [v1 v1] [v2 v2]

バッグのアイテムコードv1 v1のアイテムをv2 v2個削除する。
アイテムを持っていないor指定個数に満たない場合は削除せず、イベント変数0x800Dに0x0を代入する。削除に成功した場合は0x1を代入する。

46:checkitemspace/アイテムを追加できるか判定

46 [v1 v1] [v2 v2]

バッグにアイテムコードv1 v1のアイテムをv2 v2個入手出来る空きがある場合はイベント変数0x800Dに0x1を代入する。空きがない場合は0x0を代入する。

47:checkitem/所持アイテム判定

47 [v1 v1] [v2 v2]

バッグにアイテムコードv1 v1のアイテムをv2 v2個以上持っている場合はイベント変数0x800Dに0x1を代入する。持っていない場合は0x0を代入する。

48:checkitemtype/アイテムポケット判定

48 [va va]

アイテムコードva vaのアイテムポケット設定をイベント変数0x800Dに代入する。
0x1=どうぐ/0x2=たいせつなもの/0x3=モンスターボール/0x4=わざマシンケース/0x5=きのみぶくろ

49:addpcitem/主人公のパソコンにアイテム追加

49 [v1 v1] [v2 v2]

主人公のパソコンにアイテムコードv1 v1のアイテムをv2 v2個追加する。
パソコンに空きがないorアイテム個数が上限を超える場合は追加せず、イベント変数0x800Dに0x0を代入する。入手に成功した場合は0x1を代入する。

4A:checkpcitem/主人公のパソコンにアイテムを追加できるか判定

4A [v1 v1] [v2 v2]

主人公のパソコンにアイテムコードv1 v1のアイテムをv2 v2個入手出来る空きがある場合はイベント変数0x800Dに0x1を代入する。空きがない場合は0x0を代入する。

4B:adddecoration/【RS/Em】もようがえグッズ追加

4B [va va]

RSEのみ使用可能。FRでは引数は読み込まれるが効果は無い。

4C:removedecoration/【RS/Em】もようがえグッズ削除

4C [va va]

RSEのみ使用可能。FRでは引数は読み込まれるが効果は無い。

4D:testdecoration/【RS/Em】もようがえグッズを追加できるか判定

4D [va va]

RSEのみ使用可能。FRでは引数は読み込まれるが効果は無い。

4E:checkdecoration/【RS/Em】所持もようがえグッズ判定

4E [va va]

RSEのみ使用可能。FRでは引数は読み込まれるが効果は無い。

4F:applymovement/オブジェクト移動

4F [va va] [@@ @@ @@ @@]

現在マップの人Nova vaのオブジェクトを指定オフセットの移動コマンドで移動させる。
値は主人公を移動させる場合は0xFFに、カメラを移動させる場合は0x7Fにする
カメラの移動には事前にSpecial 0x113でカメラ位置を固定している必要がある。
移動させたオブジェクトは画面から外れると初期位置に戻る。
移動コマンドは移動コマンドページ参照。

50:applymovementpos/指定マップのオブジェクト移動

50 [va va] [@@ @@ @@ @@] [BN] [MN]

バンク番号BN、マップ番号MNの人Nova vaのオブジェクトを指定オフセットの移動コマンドで移動させる。
移動させたオブジェクトは画面から外れると初期位置に戻る。
マップを跨いだ移動スクリプトで使用する。

51:waitmovement/オブジェクト移動ウェイト

51 [va va]

現在マップの人Nova vaのオブジェクトの移動が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
対象を全てのオブジェクトにする場合は値を0x0にする。

52:waitmovementpos/指定マップのオブジェクト移動ウェイト

51 [va va] [BN] [MN]

バンク番号BN、マップ番号MNの人Nova vaのオブジェクトの移動が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
対象を全てのオブジェクトにする場合は値を0x0にする。
マップを跨いだ移動スクリプトで使用する。

53:deleteobject/オブジェクト消去

53 [va va]

現在マップの人Nova vaのオブジェクトを即座に消去する。
消去対象にフラグが設定されていた場合はそのフラグをONにする。

54:deleteobjectpos/指定マップのオブジェクト消去

53 [va va] [BN] [MN]

バンク番号BN、マップ番号MNの人Nova vaのオブジェクトを即座に消去する。
消去対象にフラグが設定されていた場合はそのフラグをONにする。

55:showobject/オブジェクト表示

55 [va va]

現在マップの人Nova vaのオブジェクトを即座に表示する。設定されたフラグが既にONの状態でも強制的に表示される。
表示されたオブジェクトは画面から外れると再び非表示に戻る。

56:showobjectpos/指定マップのオブジェクト表示

56 [va va] [BN] [MN]

バンク番号BN、マップ番号MNの人Nova vaのオブジェクトを即座に表示する。設定されたフラグが既にONの状態でも強制的に表示される。
表示されたオブジェクトは画面から外れると再び非表示に戻る。

57:moveobject/オブジェクトの位置を変更

57 [v1 v1] [v2 v2] [v3 v3]

人Nov1 v1のオブジェクトの位置をX座標v2 v2、Y座標v3 v3に即座に変更する。
移動させたオブジェクトは画面から外れると初期位置に戻る。

58:visible/オブジェクト透明化を解除

58 [va va] [BN] [MN]

59スクリプトで設定したバンク番号BN、マップ番号MNの人Nova vaのオブジェクトの透明状態を解除する。
主人公に適用する場合はバンク番号/マップ番号の設定は不要。

59:invisible/オブジェクト透明化

59 [va va] [BN] [MN]

バンク番号BN、マップ番号MNの人Nova vaのオブジェクトを透明状態にする。画面から外れると効果が切れる。
画像が見えなくなるだけでオブジェクト自体はその場に残っている。
主人公に適用する場合はバンク番号/マップ番号の設定は不要。
58スクリプトで解除。

5A:faceplayer/オブジェクトがプレイヤーの方向を向く

5A

話しかけると発動するイベントスクリプトで使用。
話しかけたオブジェクトがプレイヤーの方向を向く。(対象の人Noはメモリ0x030050B4依存)

5B:changeface/オブジェクトの向きを変更

5B [va va] [nn]

人Nova vaのオブジェクトの向きをnnに変更する。
(0x01=下/0x02=上/0x03=左/0x04=右)

5C:trainer/トレーナー戦

5C [n1] [n2 n2] [n3 n3] …

トレーナーNon2 n2との戦闘を開始する。
引数1で戦闘タイプを指定する。戦闘タイプによって引数4以降の設定方法が異なる。
戦闘タイプ毎の引数の設定方法は以下。

5C 00:通常トレーナーシングル

5C 00 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2]
  • 指定したトレーナーNoが撃破済みの場合はこのスクリプトをスキップし、後続のスクリプトを処理する
  • @1は戦闘開始時のセリフ、@2は撃破時のセリフのテキストアドレスを指定
  • 戦闘勝利後にスクリプトを終了する

5C 01:ジムリーダーシングル

5C 01 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2] [S3 S3 S3 S3]
  • 指定したトレーナーNoが撃破済みの場合はこのスクリプトをスキップし、後続のスクリプトを処理する
  • 戦闘開始時の視線BGMが無い
  • @1は戦闘開始時のセリフ、@2は撃破時のセリフのテキストアドレスを指定
  • 戦闘勝利後にS3のスクリプトを実行する

5C 02:通常トレーナーシングル 勝利後スクリプト実行

5C 02 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2] [S3 S3 S3 S3]
  • 指定したトレーナーNoが撃破済みの場合はこのスクリプトをスキップし、後続のスクリプトを処理する
  • @1は戦闘開始時のセリフ、@2は撃破時のセリフのテキストアドレスを指定
  • 戦闘勝利後にS3のスクリプトを実行する

5C 03:イベント戦

5C 03 [TT TT] [00 00] [@1 @1 @1 @1]
  • 指定したトレーナーNoが撃破済みの場合でも戦闘可能
  • 戦闘開始時のセリフと視線BGMが無い
  • @1は撃破時のセリフのテキストアドレスを指定
  • 戦闘勝利後に後続のスクリプトを処理する

5C 04:通常トレーナーダブル

5C 04 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2] [@3 @3 @3 @3]
  • 指定したトレーナーNoが撃破済みの場合はこのスクリプトをスキップし、後続のスクリプトを処理する
  • @1は戦闘開始時のセリフ、@2は撃破時のセリフ、@3は戦闘拒否時のセリフのテキストアドレスを指定
  • 戦闘勝利後にスクリプトを終了する

5C 05:通常トレーナー再戦シングル

5C 00 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2]
  • バトルサーチャー使用時の再戦用 詳細不明

5C 06:通常トレーナーダブル 勝利後スクリプト実行

5C 08 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2] [@3 @3 @3 @3] [S4 S4 S4 S4]
  • 指定したトレーナーNoが撃破済みの場合はこのスクリプトをスキップし、後続のスクリプトを処理する
  • @1は戦闘開始時のセリフ、@2は撃破時のセリフ、@3は戦闘拒否時のセリフのテキストアドレスを指定
  • 戦闘勝利後にS4のスクリプトを実行する

5C 07:通常トレーナー再戦ダブル

5C 04 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2] [@3 @3 @3 @3]
  • バトルサーチャー使用時の再戦用 詳細不明

5C 08:ジムリーダーダブル

5C 08 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2] [@3 @3 @3 @3] [S4 S4 S4 S4]
  • 指定したトレーナーNoが撃破済みの場合はこのスクリプトをスキップし、後続のスクリプトを処理する
  • 戦闘開始時の視線BGMが無い
  • @1は戦闘開始時のセリフ、@2は撃破時のセリフ、@3は戦闘拒否時のセリフのテキストアドレスを指定
  • 戦闘勝利後にS4のスクリプトを実行する

5C 09:イベント戦 敗北時にセリフ表示

5C 09 [TT TT] [00 00] [@1 @1 @1 @1] [@2 @2 @2 @2]
  • 指定したトレーナーNoが撃破済みの場合でも戦闘可能
  • 戦闘開始時のセリフと視線BGMが無い
  • @1は撃破時のセリフ、@2は敗北時のセリフのテキストアドレスを指定
  • 戦闘勝利後に後続のスクリプトを処理する
  • 引数3を03にする(5C 09 TT TT 03 00…)とチュートリアル仕様になる(オーキドの説明が入る+敗北しても撃破フラグが立ちイベント続行)

5D:詳細不明(repeattrainer)

5E:詳細不明(endtrainer)

5F:詳細不明(endtrainer2)

トレーナー戦のシステムスクリプトで使用されている。

60:cmptrainer/トレーナー撃破フラグを比較

60 [va va]

トレーナー番号va vaが撃破済みなら0x1、未撃破なら0x0として扱われる。
その後06スクリプト等条件分岐系のスクリプトで分岐する。

61:settrainer/トレーナー撃破フラグを立てる

61 [va va]

トレーナー番号va vaのトレーナーを戦闘済みにする。

62:cleartrainer/トレーナー撃破フラグを折る

62 [va va]

トレーナー番号va vaのトレーナーを戦闘前にする。

63:moveobject/オブジェクトの初期位置を変更

63 [v1 v1] [v2 v2] [v3 v3]

人Nov1 v1のオブジェクトの初期位置をX座標v2 v2、Y座標v3 v3に変更する。
画面内に対象のオブジェクトがいる場合は一度画面から外さないと反映されない。

64:moveobjectcurrentpos/オブジェクトの初期位置を現在位置に変更

64 [va va]

人Nova vaのオブジェクトの初期位置を現在の座標に変更する。

65:objectaction/オブジェクトのアクションを変更

65 [va va] [nn]

人Nova vaのオブジェクトのアクションをアクションNonnに変更する。
画面内に対象のオブジェクトがいる場合は一度画面から外さないと反映されない。
アクションの値はオブジェクトアクションページ参照。

66:waitmsg/メッセージウェイト

66

表示中のテキストメッセージが全て表示されるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

67:msg/メッセージ表示

67 [mb mb mb mb]

指定オフセット、もしくは指定メモリバンクに代入されたオフセットのテキストメッセージを表示する。
0Fスクリプトで読み込んだテキストメッセージを表示する場合はメモリバンクを指定する。
09スクリプトに含まれている。

68:closemsg/表示中のメッセージウィンドウを閉じる

68

表示されているメッセージウィンドウを閉じる。メッセージの表示途中でも使用可能。

69:lockall/プレイヤーの操作をロック1

69

主に踏むと発動するイベントスクリプトで使用。
プレイヤーの操作をロックし、全てのオブジェクトは一時停止する。
6Bスクリプトで解除。

6A:lock/プレイヤーの操作をロック2

6A

主に話しかけると発動するイベントスクリプトで使用。
プレイヤーの操作をロックし、話しかけたオブジェクトを立ち止まらせる。それ以外のオブジェクトは一時停止する。
6Cスクリプトで解除。

6B:releaseall/プレイヤーの操作のロックを解除1

6B

69スクリプトのロックを解除し、表示中のメッセージウィンドウを閉じる。

6C:release/プレイヤーの操作のロックを解除2

6C

6Aスクリプトのロックを解除し、表示中のメッセージウィンドウを閉じる。

6D:waitkey/ボタンを押すまでウェイト

6D

AボタンかBボタンを押すまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
直後に6B/6Cスクリプトが使用されている場合は全てのボタンが対象になる。

6E:yesnobox/はい/いいえの選択肢を表示

6E [xx] [yy]

はい/いいえの選択肢ウィンドウを表示する。引数1、引数2の座標設定はRSのみ有効。
選択するまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
はいを選択した場合はイベント変数0x800Dに0x1を代入する。いいえを選択orBボタンを押した場合は0x0を代入する。
09スクリプトに含まれている。

6F:multichoice/選択肢を表示1

6F [xx] [yy] [n1] [n3]

選択肢IDn1の選択肢ウィンドウを指定した座標に表示する。n3でBボタンでキャンセル可能か指定する。(0x00=Bボタン可/0x01=Bボタン不可)
選択するまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
選択した項目の順番をイベント変数0x800Dに代入する。Bボタンでキャンセルした場合は0x7Fを代入する。

70:multichoice2/選択肢を表示2

70 [xx] [yy] [n1] [n2] [n3]

6Fスクリプトと異なりn2で選択肢カーソルの初期位置を設定できる。

71:multichoice3/選択肢を表示3

71 [xx] [yy] [n1] [n2] [n3]

6Fスクリプトと異なりn2で選択肢を横に並べる数を設定できる。
n2の値は選択肢の数に対して割り切れる数に設定する必要がある。(割り切れなかった余りの選択肢が表示されなくなる)
選択肢の文字のフォントは縦長フォントが使用され、メニューの横幅は文字数に応じて自動的に設定される。

72:showwindow/【RS】ウィンドウ枠を表示

72 (xx) (yy) (n1) (n2)

RSのみ使用可能。FRでは引数も読み込まれない。
横幅n3、縦幅n4のウィンドウ枠を指定した座標に表示する。

73:deletewindow/【RS】ウィンドウ枠を消す

73 [xx] [yy] [n1] [n2]

RSのみ使用可能。FRでは引数が6byte分読み込まれるが効果は無い?
指定した座標から横幅n1、縦幅n2の範囲内にあるウィンドウの表示を消す。

74:multichoice4/【RS】選択肢を表示4

74 (xx) (yy) (n1) (n2)

RSのみ使用可能。FRでは引数も読み込まれない。
選択肢IDn1の選択肢の文字部分だけを指定した座標に表示する。n2でBボタンでキャンセル可能か指定する。(0x00=Bボタン可/0x01=Bボタン不可)
選択するまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。
選択した項目の順番をイベント変数0x800Dに代入する。Bボタンでキャンセルした場合は0x7Fを代入する。

75:showpokemon/ポケモン画像ウィンドウを表示

75 [va va] [xx] [yy]

ポケモンコードva vaのポケモンの正面画像を指定した座標に表示する。
画面外にでない値の範囲はxx:00~14、yy:00~0A

76:hidepokemon/ポケモン画像ウィンドウを消す

76

75スクリプトで表示したポケモン画像を消す。

77:showcontestwinner/【RS/Em】コンテスト似顔絵を表示する

77 [nn]

78:braille/点字メッセージ表示

78 [@@ @@ @@ @@]

指定オフセットの点字メッセージを表示する。
点字の文字コードは文字コードページ参照。

79:givepokemon/ポケモン入手

79 [va va] [n2] [n3 n3] [00 00 00 00 00 00 00 00 00]

ポケモンコードva va、レベルn2、持ち物n3 n3のポケモンを入手する。手持ちに空きがない場合はボックスに転送される。
イベント変数0x800Dに手持ちに空きがある場合は0x0、手持ちに空きがなくボックスに転送された場合は0x1、手持ちにもボックスにも空きがない場合は0x2を返す。
転送先のボックスに空きが無い場合は空きのあるボックス番号をイベント変数0x4037に代入し、フラグ0x843をオフにする。
後半9byteは00固定?

7A:giveegg/タマゴ入手

7A [va va]

ポケモンコードva vaのタマゴを入手する。出会った場所は0xFD(たびの おじさん から もらった)に設定される。
手持ちに空きがない場合はボックスに転送される。
イベント変数0x800Dに手持ちに空きがある場合は0x0、手持ちに空きがなくボックスに送られた場合は0x1、手持ちにもボックスにも空きがない場合は0x2を返す。
ボックスに転送された場合はイベント変数0x4037にボックスNoを代入する。

7B:changeattack/技の変更

7B [n1] [n2] [n3 n3]

手持ちのn1番目のポケモンのn2番目の技を技コードn3 n3の技に変更する。

7C:checkattack/手持ち全体に指定した技を覚えているポケモンがいるか判定

7C [nn nn]

手持ちに技コードnn nnの技を覚えているポケモンがいる場合はイベント変数0x800Dにそのポケモンの順番を代入する。いない場合は0x6を代入する。
複数いた場合は上の方にいるポケモンが優先される。

7D:bufferpokemon/テキスト変数に種族名を代入

7D [nn] [va va]

va vaのポケモンコードの種族名をテキスト変数nnに代入する。

7E:bufferfirst/テキスト変数に手持ちポケモン先頭の種族名を代入

7E [nn]

手持ちの先頭のポケモンの種族名をテキスト変数nnに代入する。

7F:buffernickname/テキスト変数に手持ちポケモンのニックネームを代入

7F [nn] [va va]

手持ちのva va番目のポケモンのニックネームをテキスト変数nnに代入する。

80:bufferitem/テキスト変数にアイテム名を代入

80 [nn] [va va]

va vaのアイテムコードのアイテム名をテキスト変数nnに代入する。

81:bufferdecoration/【RS/Em】テキスト変数にもようがえグッズ名を代入

81 [nn] [va va]

va vaのアイテムコードのもようがえグッズ名をテキスト変数nnに代入する。

82:bufferattack/テキスト変数に技名を代入

82 [nn] [va va]

va vaの技コードの技名をテキスト変数nnに代入する。

83:buffernumber/テキスト変数に数値を代入

83 [nn] [va va]

va vaの値をテキスト変数nnに代入する。

84:bufferstd/テキスト変数に予約語を代入

84 [nn] [va va]

va vaの予約語をテキスト変数nnに代入する。

85:bufferstring/テキスト変数に指定したオフセットの文字列を代入

85 [nn] [@@ @@ @@ @@]

指定オフセットのテキストをテキスト変数nnに代入する。

86:mart/ショップメニューを表示

86 [@@ @@ @@ @@]

指定オフセットのアイテムを販売するショップを表示する。
オフセットはアイテムコードを連続して入力し、最後に00 00 6C 02と打ち込む。
例:[n1 n1 n2 n2 00 00 6C 02]と設定するとアイテムコードn1 n1とn2 n2が販売される。

87:mart2/模様替えショップメニューを表示(詳細不明)

87 [@@ @@ @@ @@]

指定オフセットの模様替えグッズのショップを表示する。

88:mart3/模様替えショップメニューを表示2(詳細不明)

88 [@@ @@ @@ @@]

指定オフセットの模様替えグッズのショップを表示する。
87スクリプトとの違いは不明

89:slot/スロットマシーン開始

89 [va va]

台パターンva vaのスロットマシーンを開始する。
台パターンは0x0~0x5の6種類で、それ以外の値を設定すると0x0として扱われる。(値が大きい程当たりやすい?)

8A:無し

8B:choosecontestpkmn/【RS/Em】コンテスト出場ポケモンを選択(詳細不明)

8B

FRで使用するとフリーズする

8C:startcontest/【RS/Em】コンテスト開始(詳細不明)

8C

8D:showcontestresults/【RS/Em】コンテスト結果発表開始(詳細不明)

8D

8E:無し

8F:random/乱数生成

8F [va va]

va vaの値-1の乱数を生成し、イベント変数0x800Dに代入する。

90:addmoney/所持金加算

90 [nn nn nn nn] [00]

所持金を[nn nn nn nn]増やす。
所持金が999999円を上回る場合は999999円で切り捨てる。
引数2は00固定。00以外だとこのスクリプトを実行しない。

91:submoney/所持金減算

91 [nn nn nn nn] [00]

所持金を[nn nn nn nn]減らす。
所持金が0円を下回る場合は0円で切り捨てる。
引数2は00固定。00以外だとこのスクリプトを実行しない。

92:checkmoney/所持金判定

92 [nn nn nn nn] [00]

所持金が[nn nn nn nn]以上ならイベント変数0x800Dに0x0を代入する。そうでないなら0x1を代入する。
引数2は00固定。00以外だとこのスクリプトを実行しない。

93:showmoney/所持金ウィンドウを表示

93 [xx] [yy] [00]

所持金ウィンドウを指定した座標に表示する。
このスクリプトを実行した時点では表示されず、次に67スクリプトを実行したタイミングで表示される。
画面に所持金ウィンドウを表示している状態で所持金を増減させても画面に表示されている金額は変化しない。
引数3は00固定。00以外だとこのスクリプトを実行しない。

94:hidemoney/所持金ウィンドウを消す

94 (00) (00)

93スクリプトで表示した所持金ウィンドウを消す。
引数1、引数2はRSのみ設定が必要でFR/LG/Emでは省略可能。

95:updatemoney/所持金ウィンドウの表示を更新

95 [xx] [yy] [00]

所持金ウィンドウに表示されている金額を現在の所持金に更新する。引数1、引数2の座標設定はRSのみ有効。
引数3は00固定。00以外だとこのスクリプトを実行しない。

96:無し

97:fadescreen/画面効果1

97 [nn]

nnの画面効果を再生する。画面切り替えで効果が切れる。
(0x00=暗転フェードアウト/0x01=暗転フェードイン/0x02=発光フェードアウト/0x03=発光フェードイン)

98:fadescreen2/画面効果2

98 [n1] [n2]

n1の画面効果をn2の速度で再生する。速度は値が大きい程遅い。画面切り替えで効果が切れる。
アニメーションが終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

99:dark/暗闇の視野範囲を設定

99 [va va]

暗闇の視野範囲をva vaに設定する。画面切り替えで効果が反映される。
値は0x0~0x4まで使用可能。大きい程視野範囲が狭く、0x4でフラッシュ使用前、0x1でRSEフラッシュ使用後と同じ範囲。

9A:light/暗闇の視野範囲が広がるアニメーション

9A [nn]

表示されている暗闇の視野範囲がnnに広がるアニメーションを再生する。画面切り替えで効果が切れる。
現在設定されている値よりも小さい値にする(見える範囲を広げる)事しかできない。
暗闇が表示されていない状態で使用するとフリーズする。

9B:詳細不明(msg2)

9B [@@ @@ @@ @@]

指定オフセットのテキストメッセージを表示する。
通信開始時のメッセージ表示に使用。67スクリプトとの違いは不明。

9C:playanimation/アニメーション再生

9C [va va]

アニメーションva vaを再生する。引数が必要なアニメーションは事前に9Dスクリプトで設定を行う必要がある。
詳細はイベントスクリプトテンプレート

9D:setanimation/アニメーション設定

9D [nn] [va va]

9Cスクリプトのアニメーションの設定。
アニメーション引数nnをアニメーション変数va vaに設定する。アニメーションによって設定方法が異なる。
詳細はイベントスクリプトテンプレート

9E:waitanimation/アニメーションウェイト

9E [va va]

9Cスクリプトで再生したアニメーションva vaの再生が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

9F:sethealing/最後に休んだ場所を変更

9F [va va]

全滅時/テレポート使用時に移動する場所をフライトポジションva vaに設定する。
値はフライトポジション拡張を参照。

A0:checkgender/主人公の性別を判定

A0

イベント変数0x800Dに主人公が男なら0x0を、女なら0x1を代入する。

A1:cry/鳴き声を再生

A1 [va va] [nn nn]

ポケモンコードva vaのポケモンの鳴き声をnn nnのエフェクトで再生する。
nn nnは0x0で通常、0x2で高め(伝説ポケモンで使用)
エフェクトは0x0~0xCの13種類?(0x0=通常/0x2=伝説ポケモン戦闘開始時/0x5=瀕死時)

A2:setmaptile/マップタイルの変更

A2 [v1 v1] [v2 v2] [v3 v3] [v4 v4]

X座標v1 v1、Y座標v2 v2の位置のマップタイルをブロックv3 v3に変更する。
移動エリアはv4 v4の値が0x0の場合は移動可能、0x1の場合は移動不可。
元々移動不可の場所を移動可能にする場合、移動エリアの設定が0になる。
元々移動できる場所を移動可能のままにする場合、移動エリアの設定を引き継ぐ。
画面切り替え、もしくはSpecial 0x8Eで反映される。

A3:resetweather/マップ天候を初期状態に設定

A3

天候をマップで指定されている天候に設定する。
画面切り替え、もしくはA5スクリプトで設定が反映される。

A4:setweather/マップ天候を設定

A4 [va va]

天候をva vaに設定する。
画面切り替え、もしくはA5スクリプトで設定が反映される。
天候の値は小ネタ集ページ参照

A5:doweather/マップ天候の設定を反映

A5

A3/A4スクリプトで設定したマップ天候を即座に反映させる。

A6:settileaction/踏むと変化するタイルアクション有効化

A6 [nn]

FRでは[A6 04]のみ使用可能。
タイルアクション0x26/0x27(割れる氷の床)のアニメーションが有効になる。
EMでは開始直後の「トラックのなか」にA6 05がマップスクリプトとして設定されている。

A7:setmapfooter/マップ地形を変更

A7 [va va]

マップスクリプト専用で通常のイベントでは使用できない。
使用するマップフッター(マップの地形設定)をマップフッターIDva vaに変更する。
マップフッターIDはAM1.95のConnection listを参照。

A8:lockcurrentlayer/オブジェクトの現在層をロック

A8 [va va] [BN] [MN] [n4]

バンク番号BN、マップ番号MNの人Nova vaのオブジェクトの層を現在の状態で固定し、別の層へ移動できなくする。画面から外れると効果が切れる。
主人公に適用する場合はバンク番号/マップ番号の設定は不要。
引数4は00固定?

A9:releasecurrentlayer/オブジェクトの現在層のロックを解除

A9 [va va] [BN] [MN]

A8スクリプトで設定したバンク番号BN、マップ番号MNの人Nova vaのオブジェクトの現在層固定化状態を解除する。
主人公に適用する場合はバンク番号/マップ番号の設定は不要。

AA:backobject/背景オブジェクトの生成

AA [n1] [n2] [v3 v3] [v4 v4] [n5] [n6]

衝突判定のないオブジェクトを生成する。画面切り替えで削除される。
OW画像Non1のオブジェクトをX座標v3 v3、Y座標v4 v4に表示する。背景オブジェクトNoはn2、層はn5、向きはn6で設定する。
背景オブジェクトNoは自由に設定可能だが同じ値の背景オブジェクトを複数生成するとAAスクリプトの効果が正しく反映されなくなる。
このスクリプトで生成した背景オブジェクトは通常のオブジェクト用のスクリプトを使用する事はできない。

AB:facebackobject/背景オブジェクトの向きを変更

AB [n1] [n2]

背景オブジェクトNon1の向きをn2に変更する。
同じ値の背景オブジェクトが複数存在した場合は最後に生成した背景オブジェクトにのみ効果が反映される。

AC:opendoor/扉を開くアニメーション

AC [v1 v1] [v2 v2]

X座標v1 v1、Y座標v2 v2の位置のドアのタイルをアニメーションさせる。
ドアアニメーションを複数同時に再生する事はできない。
既に開いた状態のドアがある時に別のドアをアニメーションさせると開いた状態のドアも同時にアニメーションしてしまう為、
別のドアをアニメーションさせる際は事前に全てのドアを閉じておく必要がある。

AD:closedoor/扉を閉じるアニメーション

AC [v1 v1] [v2 v2]

X座標v1 v1、Y座標v2 v2の位置のドアのタイルをアニメーションさせる。
ドアアニメーションを複数同時に再生する事はできない。
既に開いた状態のドアがある時に別のドアをアニメーションさせると開いた状態のドアも同時にアニメーションしてしまう為、
別のドアをアニメーションさせる際は事前に全てのドアを閉じておく必要がある。

AE:waitdoor/扉アニメーションウェイト

AE

AC/ADスクリプトのアニメーションの再生が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

AF:opendoor2/扉を開く

AF [v1 v1] [v2 v2]

X座標v1 v1、Y座標v2 v2の位置のドアのタイルを開いた状態に変更する。
ACスクリプトと異なりアニメーションと効果音は無い。

B0:closedoor2/扉を閉じる

B0 [v1 v1] [v2 v2]

X座標v1 v1、Y座標v2 v2の位置のドアのタイルを閉じた状態に変更する。
ADスクリプトと異なりアニメーションと効果音は無い。

B1:無し

B2:無し

B3:getcoin/所持コイン枚数取得

B3 [VA VA]

イベント変数VA VAに所持コイン枚数を代入する。

B4:addcoin/所持コイン加算

B4 [va va]

所持コインをva va増やし、イベント変数0x800Dに0x0を代入する。
所持コインが9999枚を上回る場合は9999枚で切り捨てる。
所持コインが9999枚の場合はイベント変数0x800Dに0x1を代入する。

B5:subcoin/所持コイン減算

B5 [va va]

所持コインをva va減らし、イベント変数0x800Dに0x0を代入する。
所持コインが0枚を下回る場合はコインを減らさず、イベント変数0x800Dに0x1を代入する。

B6:setwild/イベント野生戦ポケモン設定

B6 [n1 n1] [n2] [n3 n3]

B7スクリプト、もしくはSpecial138と合わせて使用。出現する野生ポケモンの設定を行う。
ポケモンコードn1 n1、レベルn2、持ち物n3 n3のポケモンデータをランダムに生成し、メモリ0x02023F8Cに書き込む。
持ち物の設定は100%有効ではない?
このスクリプトで設定したポケモンはイベントフラグが立っていない為、出現させたミュウ/デオキシスは捕獲しても言うことを聞かない。
伝説シンボルエンカウント(BGM変更/「*が あらわれた!」表記)にする場合はSpecial138、
イベントフラグの立ったポケモンを出現させる場合はSpecial1BBを使用する。

B7:wildbattle/イベント野生戦開始

B7

B6スクリプト、もしくはSpecial1BBと合わせて使用。
メモリ0x02023F8Cのポケモンデータのポケモンとの野生戦を開始する。

B8:【ふしぎなおくりもの用】setvirtualaddres/仮想オフセット定義

B8 [vp vp vp vp]

このスクリプトが呼び出されたオフセット=引数で指定したオフセットとして仮想オフセットを定義する。

例:

0x02028E30: B8 50 02 00 08 //0x02028E30=0x08000250として仮想オフセット定義
0x02028E35: 6A
0x02028E36: BD 5F 02 00 08 //0x02028E3Fを参照させたい場合、(0x02028E3F - [B8が呼び出されたオフセット] + [B8で定義したオフセット]) を指定すれば良い
0x02028E3B: 66
0x02028E3C: 6D
0x02028E3D: 6C
0x02028E3E: 02 <= スクリプト終了
//ここからテキストデータ
0x02028E3F: 1C 0C 38 15 00 05 08 28 23 19 00 5D 58 78 9D 64 FE //ふしぎな おくりもの スクリプト\n
0x02028E50: 63 5D 64 26 03 00 72 A0 5E AE 8D 00 44 0D AB FF //テストよう メッセージ です!終

B9:【ふしぎなおくりもの用】virtualgoto/別の仮想オフセットへジャンプ

B9 [vp vp vp vp]

機能的には05スクリプトと同様。
指定した仮想オフセットにあるスクリプトへと移動する。BAスクリプトと異なり03スクリプトで戻る事ができない為、後続のスクリプトが使用される事はない。
後ろには02を付けておくと安全。
仮想オフセット指定方法はB8スクリプトの項を参考にすること。

BA:【ふしぎなおくりもの用】virtualcall/別の仮想オフセットを呼び出し

BA [vp vp vp vp]

機能的には04スクリプトと同様。
指定した仮想オフセットにあるスクリプトを呼び出す。呼び出し元のスクリプトアドレスは0x03000EBCに最大20つまで記録され、03スクリプトで戻ってくる。
仮想オフセット指定方法はB8スクリプトの項を参考にすること。

BB:【ふしぎなおくりもの用】virtualgotoif/条件付き仮想オフセットジャンプ

BB [nn] [vp vp vp vp]

機能的には06スクリプトと同様。
21スクリプト等比較系のスクリプトと合わせて使用する。
比較した結果がnnの条件を満たしていれば指定した仮想オフセットにあるスクリプトへと移動する。
仮想オフセット指定方法はB8スクリプトの項を参考にすること。

  • nnの値
    0x00A<BAがB未満
    0x01A=BAとBが等しい
    0x02A>BAがB超過
    0x03A≦BAがB以下
    0x04A≧BAがB以上
    0x05A≠BAとBが等しくない

BC:【ふしぎなおくりもの用】virtualcallif/条件付き仮想オフセット呼び出し

BC [nn] [vp vp vp vp]

機能的には07スクリプトと同様。
21スクリプト等比較系のスクリプトと合わせて使用する。
比較した結果がnnの条件を満たしていれば指定した仮想オフセットにあるスクリプトを呼び出す。
BBスクリプトのcall版。
仮想オフセット指定方法はB8スクリプトの項を参考にすること。

BD:【ふしぎなおくりもの用】virtualmsgbox/仮想オフセット用メッセージ表示

BD [vp vp vp vp]

機能的には67スクリプトと同様。
指定した仮想オフセットに配置されたテキストメッセージを表示する。
仮想オフセット指定方法はB8スクリプトの項を参考にすること。

BE:【ふしぎなおくりもの用】virtualloadpointer/文字列の展開

BE [vp vp vp vp]

指定した仮想オフセットのテキストデータを0x02021C88に代入する。
仮想オフセット指定方法はB8スクリプトの項を参考にすること。

BF:【ふしぎなおくりもの用】virtualbuffer/仮想オフセットの文字列をテキスト変数にセット

BF [nn] [vp vp vp vp]

機能的には85スクリプトと同様。
指定した仮想オフセットのテキストをテキスト変数nnに代入する。
仮想オフセット指定方法はB8スクリプトの項を参考にすること。

C0:showcoin/所持コインウィンドウを表示

C0 [xx] [yy]

所持コインウィンドウを指定した座標に表示する。
このスクリプトを実行した時点では表示されず、次に67スクリプトを実行したタイミングで表示される。
画面に所持コインウィンドウを表示している状態でコインを増減させても画面に表示されている金額は変化しない。

C1:hidecoin/所持コインウィンドウを消す

C1 [xx] [yy]

C0スクリプトで表示した所持コインウィンドウを消す。

C2:updatecoin/所持コインウィンドウの表示を更新

C2 [xx] [yy]

所持金ウィンドウに表示されている金額を現在の所持コインに更新する。

C3:addhidevar/隠し変数加算

C3 [nn]

隠し変数nnの値に+1加算する。
値の上限は0x00FFFFFF(16777215)でそれ以上は上がらない。
隠し変数の値はフラグページ参照

C4:setescape/脱出マップ設定

C4 [BN] [MN] [en] [v1 v1] [v2 v2]

あなぬけのヒモ/あなをほる使用時に移動するマップをバンク番号BN、マップ番号MNに設定する。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。

C5:waitcry/鳴き声ウェイト

C5

A1スクリプトで再生したポケモンの鳴き声の再生が終わるまでプレイヤーの操作をロックし、以降のスクリプトを実行しない。

C6:bufferbox/テキスト変数にボックスの名前を代入

C6 [nn] [va va]

ボックス番号va vaの名前をテキスト変数nnに代入する。

C7:setfont/フォントを指定

C7 [nn]

テキストメッセージが指定したフォントで表示されるようになる。
nnの値が00だと男性フォント、01だと女性フォント、02だとノーマルフォントに変更、FFでフォントの指定を解除する。
テキストスクリプト06のフォント変更を使用した場合はそちらの設定が優先される。

C8:詳細不明

C8 [@@ @@ @@ @@]

C9:詳細不明

CA:signmsg/メッセージウィンドウを看板に変更

CA

以降に表示されるメッセージウィンドウは看板仕様になる。

CB:releasemsg/メッセージウィンドウの設定を解除

CB

CAスクリプトの設定を解除する。

CC:cmphidevar/隠し変数の値と任意の値を比較

CC [n1] [n2 n2 n2 n2]

隠し変数n1の値とn2 n2 n2 n2を比較する。
その後06スクリプト等条件分岐系のスクリプトで分岐する。
21スクリプトの隠し変数版だが比較対象の値が4byteになっている。
隠し変数の値はフラグページ参照

CD:setpokemonflag/手持ちポケモンにイベントフラグを立てる

CD [va va]

手持ちのva va番目のポケモンにミュウ/デオキシスの言うことを聞くフラグを立てる。
Special0x1BBで出現させたポケモンは最初からこのフラグが立っている。

CE:checkpokemonflag/手持ちポケモンのイベントフラグを判定

CE [va va]

手持ちのva va番目のポケモンにミュウ/デオキシスの言うことを聞くフラグが立っているならイベント変数0x800Dに0x1を代入する。そうでないなら0x0を代入する。

CF:詳細不明(executeram)

CF

ふしぎなおくりもの用スクリプト
ふしぎなカード内蔵スクリプトへと移動する。ふしぎなカードを持っていない場合はそのまま後続のスクリプトを処理する。

D0:setworldmapflag/マップ突入フラグをONに

D0 [va va]

フラグva vaの値を1に設定する。
マップスクリプトでマップ進入フラグをONにする際に使用。
街に初めて入った時にあらすじに記録され、ダンジョンに初めて入った時のダンジョン一枚絵が通常より長く表示される。

D1:warppanel2/ワープパネルワープ2

D1 [BN] [MN] [en] [v1 v1] [v2 v2]

バンク番号BN、マップ番号MNのマップに無音で移動し、ワープパネルのアニメーションで降りてくる。
3Dスクリプトと異なり移動時のアニメーションが無い。
座標は移動先のマップのイベント番号en。enの値が0xFFに設定されている場合はX座標v1 v1、Y座標v2 v2に移動する。
移動先のタイルアクションは無効化される。

D2:setcatchlocation/手持ちポケモンの出会った場所を変更

D2 [va va] [nn]

手持ちのva va番目のポケモンの出会った場所をマップ名IDnnに変更する。
該当マップが無い場合は「つうしんこうかん」、0xFFは「うんめいてきな であい」と表示される。

  • EMで該当マップが存在せず、かつ自分のポケモンの場合は「どこかで であった」と黒字で表示される。
    また、タマゴから孵った場合は「どこかで かえった」となり、やはり黒字になる。
    上記2種は専用のテキストが割り当てられているため、該当マップ無しは想定の範囲内と思われる。

D3:詳細不明(braille2)

海外版にのみ存在するスクリプト。

D4:詳細不明(bufferitems)

海外版にのみ存在するスクリプト。

D5:無し

アセンブリ指定

コード
000x162CC40x069791
010x162CC80x069795
020x162CCC0x069799
030x162CD00x069889
040x162CD40x069895
050x162CD80x069871
060x162CDC0x0698AD
070x162CE00x0698E9
080x162CE40x069A11
090x162CE80x069A41
0A0x162CEC0x069A71
0B0x162CF00x069ABD
0C0x162CF40x069B09
0D0x162CF80x069B1D
0E0x162CFC0x069B35
0F0x162D000x069B75
100x162D040x069BD5
110x162D080x069BBD
120x162D0C0x069B99
130x162D100x069BF1
140x162D140x069C15
150x162D180x069C35
160x162D1C0x069C51
170x162D200x069E45
180x162D240x069E6D
190x162D280x069C75
1A0x162D2C0x069CA1
1B0x162D300x069CED
1C0x162D340x069D1D
1D0x162D380x069D45
1E0x162D3C0x069D71
1F0x162D400x069D9D
200x162D440x069DBD
210x162D480x069DE1
220x162D4C0x069E11
230x162D500x069855
240x162D540x0697A5
250x162D580x0697BD
260x162D5C0x0697FD
270x162D600x069865
280x162D640x06A271
290x162D680x06A0ED
2A0x162D6C0x06A101
2B0x162D700x06A115
2C0x162D740x06A295
2D0x162D780x06A299
2E0x162D7C0x06A29D
2F0x162D800x06A929
300x162D840x06A955
310x162D880x06A969
320x162D8C0x06A98D
330x162D900x06A9A1
340x162D940x06A9E1
350x162D980x06A9F5
360x162D9C0x06AA15
370x162DA00x06AA3D
380x162DA40x06AA89
390x162DA80x06A325
3A0x162DAC0x06A3AD
3B0x162DB00x06A435
3C0x162DB40x06A4BD
3D0x162DB80x06A531
3E0x162DBC0x06A64D
3F0x162DC00x06A6CD
400x162DC40x06A751
410x162DC80x06A7D1
420x162DCC0x06A8D1
430x162DD00x06A90D
440x162DD40x069ED1
450x162DD80x069F1D
460x162DDC0x069F61
470x162DE00x069FA5
480x162DE40x069FE9
490x162DE80x06A015
4A0x162DEC0x06A059
4B0x162DF00x06A09D
4C0x162DF40x06A0B1
4D0x162DF80x06A0D9
4E0x162DFC0x06A0C5
4F0x162E000x06AAC1
500x162E040x06AB05
510x162E080x06AB71
520x162E0C0x06ABC5
530x162E100x06AC19
540x162E140x06AC41
550x162E180x06AC71
560x162E1C0x06AC99
570x162E200x06ACC9
580x162E240x06ADB1
590x162E280x06ADE1
5A0x162E2C0x06AE7D
5B0x162E300x06AEB5
5C0x162E340x06BAB9
5D0x162E380x06BACD
5E0x162E3C0x06BAD9
5F0x162E400x06BAED
600x162E440x06BB01
610x162E480x06BB25
620x162E4C0x06BB41
630x162E500x06AD31
640x162E540x06AD89
650x162E580x06AEE9
660x162E5C0x06B139
670x162E600x06B0CD
680x162E640x06B14D
690x162E680x06AF9D
6A0x162E6C0x06AFC5
6B0x162E700x06B01D
6C0x162E740x06B055
6D0x162E780x06B2FD
6E0x162E7C0x06B341
6F0x162E800x06B36D
700x162E840x06B3A9
710x162E880x06B3FD
720x162E8C0x06B3F9
730x162E900x06B44D
740x162E940x06B459
750x162E980x06B45D
760x162E9C0x06B499
770x162EA00x06B4B9
780x162EA40x06B4C5
790x162EA80x06B7C5
7A0x162EAC0x06B845
7B0x162EB00x06B871
7C0x162EB40x06B89D
7D0x162EB80x06B51D
7E0x162EBC0x06B561
7F0x162EC00x06B5B1
800x162EC40x06B5F9
810x162EC80x06B62D
820x162ECC0x06B649
830x162ED00x06B685
840x162ED40x06B6C9
850x162ED80x06B709
860x162EDC0x06BBA1
870x162EE00x06BBB5
880x162EE40x06BBC9
890x162EE80x06BBDD
8A0x162EEC0x06BC05
8B0x162EF00x06BC0D
8C0x162EF40x06BC19
8D0x162EF80x06BC1D
8E0x162EFC0x06BC21
8F0x162F000x069E9D
900x162F040x06B919
910x162F080x06B94D
920x162F0C0x06B981
930x162F100x06B9C1
940x162F140x06BA11
950x162F180x06BA1D
960x162F1C0x06BC09
970x162F200x06A1F9
980x162F240x06A221
990x162F280x06A1BD
9A0x162F2C0x06A1A1
9B0x162F300x06B11D
9C0x162F340x06BC25
9D0x162F380x06BC4D
9E0x162F3C0x06BC9D
9F0x162F400x06BCC9
A00x162F440x06BCE5
A10x162F480x06BCFD
A20x162F4C0x06BD49
A30x162F500x06A2D9
A40x162F540x06A2BD
A50x162F580x06A2E5
A60x162F5C0x06A2F1
A70x162F600x06A309
A80x162F640x06AE11
A90x162F680x06AE4D
AA0x162F6C0x06AF11
AB0x162F700x06AF81
AC0x162F740x06BDC9
AD0x162F780x06BE21
AE0x162F7C0x06BE7D
AF0x162F800x06BE91
B00x162F840x06BED5
B10x162F880x06BF19
B20x162F8C0x06BF1D
B30x162F900x06BF21
B40x162F940x06BF41
B50x162F980x06BF79
B60x162F9C0x06BB5D
B70x162FA00x06BB91
B80x162FA40x069925
B90x162FA80x069941
BA0x162FAC0x069965
BB0x162FB00x069989
BC0x162FB40x0699CD
BD0x162FB80x06B501
BE0x162FBC0x06B731
BF0x162FC00x06B755
C00x162FC40x06BA4D
C10x162FC80x06BA89
C20x162FCC0x06BA9D
C30x162FD00x06A131
C40x162FD40x06A851
C50x162FD80x06BD35
C60x162FDC0x06B789
C70x162FE00x06B0AD
C80x162FE40x06B0E9
C90x162FE80x06B111
CA0x162FEC0x06BFB1
CB0x162FF00x06BFBD
CC0x162FF40x06A149
CD0x162FF80x06BFC9
CE0x162FFC0x06C001
CF0x1630000x069B4D
D00x1630040x06A181
D10x1630080x06A5B9
D20x16300C0x06C039
D30x1630100x069791