技効果スクリプト

Last-modified: 2024-01-29 (月) 22:58:50

技効果スクリプトコマンド一覧
コマンド内の文字列
・記号についての注釈(特に断りが無ければ逆順,16進数で入力すること)

[@@ @@ @@ 08]オフセットジャンプ先をリトルエディアンした数値
[MM MM MM MM]メモリオフセット主に0202から始まる
[XX]指定値各コードごとに用意された任意の数値.1~4byteまで様々なパターンがある
[TT]対象00 相手
01 自分
08 味方2人
09 相手2人
[CC]条件00 一致(=)
01 不一致(≠)
02 超過(>指定値xx)
03 未満(<指定値xx)
04 1bitでも一致(and)
05 1bitも一致しない(not and)
[**]不明値よく判らない値

目次

スクリプト

00:PP切れ判定

00
  • 関数参照アドレス:0x01CF71 ~ 0x01D31E
  • 眠り,凍り,麻痺,混乱,メロメロ,PP切れ等で技が出せない場合の判定を行っている.
    大抵の技スクリプトの最初に入っている.PP切れ以外の判定は1度しか行われない.02023D30周辺に判定済みのフラグがある.
    03の後に入れるとPPを減らしてから攻撃する前にPP切れで技が止まる事がある

01:命中判定

01[@@ @@ @@ 08][XX XX]
  • 関数参照アドレス:0x01D5D5 ~ 0x01D9E6
  • 技が外れた場合は[@@ @@ @@ 08]のオフセットに飛ぶ.
    [XX XX]は通常の場合『00 00』,相手の回避率を無視する技では『FF FF』が入る.
  • 命中の判定を行い,命中しなかった場合回避フラグを立て@@ @@ @@ @@へジャンプする
    @@ @@ @@ 08の部分を変える事によりその後のメッセージ表示等の挙動が変わる.

 例) 1A A9 1B 08 … 「しかし~の攻撃は外れた」
   AE BD 1B 08 … 「しかし 上手く決まらなかった」
   AC BD 1B 08 … 「しかし 上手く決まらなかった(PPを消費)」

 『そらをとぶ』『あなをほる』等,2ターン技の判定もここで処理される.
 「Effects.xlsx」では全部で6バイトの様に書かれているが,恐らく全部で7バイトが正しい.

  • 『くろいまなざし』のスクリプト中には[XX XX]が『FE FF』になっている箇所が存在する.

02:メッセージウィンドウの表示

02
  • 関数参照アドレス:0x01D9E9 ~ 0x01DA3A
  • 「~の(技名)」,「~は(技名)を使った」等,使用した技名もここで表示される.
    02を複数入れても最初の1回のみしか表示されない

03:PPの消費

03
  • 関数参照アドレス:0x01DA3D ~ 0x01DC16
  • 02023CA8の使用した技ナンバー(0~3)を参照してPPを1減らす処理を行う.0の場合は減らない

04:急所判定

04
  • 関数参照アドレス:0x01DC19 ~ 0x01DDAA
  • 急所に当たった際,急所フラグ02023CD1を 01→02 にする.
    04を複数入れても急所率は変わらない

05:ダメージ値計算

05
  • 関数参照アドレス:0x01DDAD ~ 0x01DE9A
  • 技の威力と攻撃または特攻の実数値,ランク補正からダメージを計算し,02023CB0に値を書き出す.
    この計算は攻守両者のステータスが反映される
  • 上記の04により急所フラグがオンになった場合,値に反映される
  • ダメージ倍率02023F32が反映される.

06:タイプ相性判定

06
  • 関数参照アドレス:0x01E059 ~ 0x01E2C6
  • タイプ相性テーブルから威力倍率を読み込み,02023CB0のダメージ値を変化させる.タイプ一致も反映される
    相性による効果なしの場合はフラグを立てて次の処理へ進み,「こうかがないみたいだ」のメッセージを表示させる.
  • ふゆう等の無効特性ごとに処理へジャンプし,ダメージのリセットと「こうかがないみたいだ」のメッセージを表示させる.

07:ダメージ修正計算(通常時)

07
  • 関数参照アドレス:0x01E915 ~ 0x01EAC2
  • “きあいのハチマキ”,『こらえる」等のダメージ修正を行い,HPが1残るように02023CB0のダメージを変化させる.

08:ダメージ修正計算(自滅時)

08
  • 関数参照アドレス:0x01EAC5 ~ 0x01EC4E
  • 自滅時の“きあいのハチマキ”や技『こらえる』等のダメージ修正を行う.
    上記の07とほぼ同じ内容であり,違いは『みねうち』判定の有無のみ.

09:戦闘アニメーションの表示

09
  • 関数参照アドレス:0x01EC51 ~ 0x01ED96
  • 02023CAAの使用中の技IDに応じた戦闘アニメーションを表示する.
    不正位置を参照するとフリーズの原因となる

0A:戦闘アニメ―ションのタイミング管理

0A
  • 関数参照アドレス:0x01ED99 ~ 0x01EDB6
  • アニメーションの表示タイミング.なくても動作は可能だが詳細は未調査

0B:HPゲージ更新

0B [TT]
  • 関数参照アドレス:0x01EDB9 ~ 0x01EE92
  • 02023CB0の値の分HPゲージを更新して減らす.このコードでゲージが減っても値はそのまま.後述の0Cとセットで使用される.
  • 失敗時反動のスクリプトでは失敗した場合は[TT]の箇所が『01』となっており自分のHPゲージを更新する.

0C:ダメージ反映

0C [TT]
  • 関数参照アドレス:0x01EE95 ~ 0x01F28A
  • 02023CB0で算出されたダメージ数値を反映させる.前述の『0B』とセットで使用される.
  • 失敗時反動のスクリプトでは失敗した場合は[TT]の箇所が『01』となっており自分がダメージを受ける.

0D:急所評価文字列表示

0D
  • 関数参照アドレス:0x01F28D ~ 0x01F2DE
  • 急所フラグを参照し"きゅうしょにあたった"を表示する.急所に当たった時だけ表示される.

0E:打撃音

0B
  • 関数参照アドレス:0x01F2E1 ~ 0x01F3AE
  • 02023D2Cのフラグを参照し,タイプ相性で音を変える

0F:相性評価文字列表示

0F
  • 関数参照アドレス:0x01F3B1 ~ 0x01F55E
  • 相性以外にも一撃必殺,技をこらえた,等が表示される

   02023D2Cの値(ビットフラグ)
   01:回避   02:効果抜群 04:効果今ひとつ 08:効果なし   
   10:一撃必殺 20:技失敗  40:こらえた   80:ハチマキ

10:戦闘時定型文を表示

10 [XX XX]
  • 関数参照アドレス:0x01F561 ~ 0x01F59E
  • [XX XX]で指定されたIDに応じた戦闘時定型文を表示する.
  • 表示する時間は直後の12で指定する.

11:定型文を表示

11 [XX XX]
  • 関数参照アドレス:0x01F5A1 ~ 0x01F5E2
  • コード『10』と内容は同じ.定型文ナンバーが[XX XX]の定型文を表示する.
  • 戦闘システム外のスクリプト.ポケモンボックスがいっぱいの状態でポケモンを捕獲した際に,
    『ボックスが いっぱいで\nこれいじょう つかまえられない!\p終』のメッセージを表示する.

12:メッセージ表示の待機時間

12 [XX XX]
  • 関数参照アドレス:0x01F5E5 ~ 0x01F63E
  • コード『0D』『0F』『10』 などで文章が表示されたときに待ち時間を入れる.
    通常は[40 00]を入れるが,処理時間が長い場合は時間短縮の目的で[20 00]等に変えるのも有り 
    コード『02』のウィンドウ表示には効果がない
  • 文章の表示に関係なく待ち時間を入れる際は39を使用する.

13:戦闘時定型文を表示(フラグ切り替え式)

13 [@@ @@ @@ 08]
  • 関数参照アドレス:0x01F641 ~ 0x01F692
  • 定型文ナンバーが書かれたアドレスを直接指定する.定型文の内容はコード10と同じものを使用している.
  • 02023DE7の値によって定型文ナンバーの読み込み位置がずれる.
    仮に02023DE7に01が代入された場合は読み込み定型文が1つ分後ろにずれることになる.

14:定型文を表示(フラグ切り替え式)

14 [@@ @@ @@ 08]
  • 関数参照アドレス:0x01F695 ~ 0x01F6F6
  • 効果そのものは13と同様.

15:追加効果の発動

15
  • 関数参照アドレス:0x020935 ~ 0x020A1E
  • 02023DE5の値に応じた追加効果が設定した確率で発動する.
  • 効果IDが40以上の時は自分に効果が現れ,81以上の時は発動率に関係無く必ず効果が出るようになる.
    処理後は20203DE5に00が書き込まれる.相性による効果無しのフラグが立っている場合は効果が無い

16:追加効果の発動

16
  • 関数参照アドレス:0x020A21 ~ 0x020A2E
  • 02023DE5の値に応じた追加効果を発動.
     コード『15』異なり必ず効果が出るが,効果IDが81以上の時はフリーズする.
     相性による効果無しのフラグが立っていても効果がある.

17:追加効果の発動

17
  • 関数参照アドレス:0x020A31 ~ 0x020A3E
  • 02023DE5の値に応じた追加効果を発動する.効果は必ず発動され,特定の状態変化が解除されるとリセットされる.
  • ちいさくなる等の技で使用されている.

18:追加効果用フラグクリア

18 [TT]
  • 関数参照アドレス:0x020A41 ~ 0x020ABA
  • 0x02023DE5にセットされた追加効果IDから対応するビットフラグを取得し、対象のステータスメモリの状態変化/状態異常管理フラグからクリアする。
  • 2ターン技に使用するフラグのクリア等に使用している。

19:敗北処理

19 [TT] [**] [** ** ** **]
  • 関数参照アドレス:0x020ABD ~ 0x020DAE
  • HPが0の時撃破の処理をして次の処理へ戻る.
    自滅する場合がある技のスクリプトでは対象が変化しており,
    19 01 00 00 00 00 00となっている部分もある.

1A:戦闘ポケモン敗北時の判定1

1A [TT]
  • 関数参照アドレス:0x020DB1 ~ 0x020DEA
  • 『ほごしょく』のスクリプト後にある領域(1BC630以降)で使用されている.
    Ex)1BC630のスクリプト
      56 [01] 39 [40 00] 1A [01] 1B [01] 10 [1C 00] 10 [30 01] 3C
      56 [00] 39 [40 00] 1A [00] 1B [00] 10 [1D 00] 10 [30 01] 3C

1B:戦闘ポケモン敗北時の判定2

1B [TT]
  • 関数参照アドレス:0x020DED ~ 0x020E4E
  • 『ほごしょく』のスクリプト後にある領域(1BC630以降)で使用されている.

1C:状態異常による分岐

1C [TT] [XX XX XX XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x020E51 ~ 0x020EC6
  • 指定した対象の状態異常を判定して,1bitでも一致すれば@@ @@ @@ 08のオフセットに飛ぶ.
  • 状態異常分岐
       1ビットでも一致で@@ @@ @@ @@へ分岐 備考
       10 00 00 00 やけど
       20 00 00 00 凍り
       40 00 00 00 麻痺
       80 00 00 00 猛毒
       07 00 00 00 眠り(眠り状態は3ビットのターン数が毎ターン減っていく)
       08 00 00 00 毒

   88 00 00 00 毒+猛毒
   D8 00 00 00 毒+火傷+麻痺+猛毒 (技『からげんき』のスクリプトで使用)
   FF 00 00 00 全状態異常(混乱は別計算なので除く)

1D:状態変化による分岐

1D [TT] [XX XX XX XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x020EC9 ~ 0x020F3E
  • 指定した対象の状態変化を判定して,1bitでも一致すれば@@ @@ @@ 08のオフセットに飛ぶ.
  • 状態変化分岐
     1ビットでも一致で@@ @@ @@ @@へ分岐
       80 00 00 00 :          00 00 08 00 : メロメロ 敵2
       70 00 00 00 : さわぐ      00 00 04 00 : メロメロ 味方2
       08 00 00 00 : ひるみ      00 00 02 00 : メロメロ 敵1
       07 00 00 00 : 混乱       00 00 01 00 : メロメロ 味方1
       00 E0 00 00 : バインド     00 00 00 80 : いちゃもん
       00 10 00 00 : 複数ターン攻撃  00 00 00 40 : まるくなる
       00 0C 00 00 : あばれる     00 00 00 20 : みやぶる
       00 03 00 00 : がまん      00 00 00 10 : 呪い
       00 00 80 00 : いかり      00 00 00 08 : 悪夢
       00 00 40 00 : 反動で動けない  00 00 00 04 : 逃走不可
       00 00 20 00 : へんしん     00 00 00 02 : みちづれ
       00 00 10 00 : 気合溜め     00 00 00 01 : みがわり

1E:特性による分岐

1E [TT] [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x020F41 ~ 0x021026
  • 特性IDが[XX]と一致するなら[@@ @@ @@ 08]に分岐
  • 主にHP吸収時のダメージ等で使用されている.
     特性が『ヘドロえき』立った場合のカウンターダメージ判定などが使用例.
  • 似たような効果をもつコードに『43』がある.此方は技の仕様者の特性を比較することしかできない.

1F:壁の有無の分岐

1F [TT] [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x021029 ~ 0x02109E
  • 壁系の技効果が存在する時[@@ @@ @@ 08]にジャンプ
      [XX XX]の数値
       01 00 リフレクター
       02 00 ひかりのかべ
       20 00 しんぴのまもり

20:メモリ領域数値による分岐

20[TT][CC][rr][XX][@@ @@ @@ 08]
  • 関数参照アドレス:0x0210A1 ~ 0x021196
  • 指定した対象のメモリの数値を[XX]と条件比較し,条件に合えば@@ @@ @@ 08にジャンプ
    特性,PPの量,懐き度などを指定して分岐できるので1E,22などの上位互換といえる.
  • 比較数値[rr]の内容
      00 ランク補正 体力   0C 技枠1のPP      18~1D ニックネーム
      01 ランク補正 攻撃   0D 技枠2のPP      24~29 親の名前
      02 ランク補正 防御   0E 技枠3のPP      30~33 性格値
      03 ランク補正 素早さ  0F 技枠4のPP      34~37 状態異常
      04 ランク補正 特攻   10 現在HP(1byte目)  38~3B 状態変化
      05 ランク補正 特防   11 現在HP(2byte目)  3C~3D ID
      06 ランク補正 命中   13 懐き度        3B~3F 裏ID
      07 ランク補正 回避   14 最大HP(1byte目)
      08 特性         15 最大HP(2byte目)
      09 タイプ1        16 持ち物(1byte目)
      0A タイプ2        17 持ち物(2byte目)
  • ランク補正選択時の指定値
      能力最大上昇時の値:  0C
      能力5段階上昇時の値: 0B
      能力4段階上昇時の値: 0A
      能力3段階上昇時の値: 09
      能力2段階上昇時の値: 08
      能力1段階上昇時の値: 07
      (戦闘開始時の値  : 06
      能力1段階下降時の値: 05
      能力2段階下降時の値: 04
      能力3段階下降時の値: 03
      能力4段階下降時の値: 02
      能力5段階下降時の値: 01
      能力最低下降時の値:     00

21:体勢による分岐

21 [TT] [XX XX XX XX] [CC] [@@ @@ @@ 08]
  • 関数参照アドレス:0x021199 ~ 0x02121A
  • 指定した対象の体勢と指定値[XX XX XX XX]を比較し,条件に合う場合[@@ @@ @@ 08]にジャンプする.
     [@@ @@ @@ 08]の前の[CC]の値を00から01に変えると不一致の時にジャンプに変化する.
  • これで指定する数値は02023D30で指定される体勢分岐の物のため,後述の35でも使用される.

  体勢フラグ(ビットフラグ)
  00 01 00 00  小時威力二倍    ちいさくなる使用時 『ふみつけ』
  40 00 00 00  空飛時威力二倍   そらをとぶ使用時 『かみなり』,『ぼうふう』等
  80 00 00 00  穴掘時威力二倍   あなをほる使用時 『じしん』,『じならし』等
  00 00 04 00  潜水時威力二倍   ダイビング使用時 『なみのり』
  00 04 00 00  交代不能+回復 ねをはる使用時 『ねをはる』

  00 00 02 00  必中判定

22:ポケモンのタイプによる分岐

22 [TT] [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x02121D ~ 0x021276
  • 指定した対象のポケモンのタイプID[XX]と一致した場合[@@ @@ @@ 08]にジャンプ
  • タイプIDの内容
    • 00:ノーマル
    • 01:かくとう
    • 02:ひこう
    • 03:どく
    • 04:じめん
    • 05:いわ
    • 06:むし
    • 07:ゴースト
    • 08:はがね
    • 09:???
    • 0A:ほのお
    • 0B:みず
    • 0C:くさ
    • 0D:でんき
    • 0E:エスパー
    • 0F:こおり
    • 10:ドラゴン
    • 11:あく
  • 似た効果を持つコードに『42』がある

23:経験値入手処理

23 [TT]
  • 関数参照アドレス:0x021279 ~ 0x021BF6
  • この処理の後は勝利した扱いになり野生なら勝利後の曲が流れる.
    基本的に[TT]は相手になるため『23 00』となるが,『23 01』にした場合,自分が倒された際の経験値が自分に入る.

24:未調査

24 [@@ @@ @@ 08]
  • 関数参照アドレス:0x021BF9 ~ 0x021D96
  • 未調査

25:各種判定の初期化

25
  • 関数参照アドレス:0x021DD9 ~ 0x021DE8
  • 命中判定フラグ,急所フラグ,追加効果判定フラグなどを初期化する.連続攻撃や全体攻撃のループの先頭に使用される

26:連続攻撃回数指定

26 [XX]
  • 関数参照アドレス:0x021DF1 ~ 0x021E06
  • 02023D2Cに[XX]の数値を書き込む.
  • 同じような効果の物にコード『8D』があるが, コード『26』はランダム数値生成がない為,2~5回連続攻撃の時はそちらでなければならない.

27:連続攻撃の残り回数比較

27 [@@ @@ @@ 08]
  • 関数参照アドレス:0x021E09 ~ 0x021E4E
  • 0x02023CD2から1byteロードし、0x01減算して同アドレスに1byteストアする。
  • 減算処理後、0x02023CD2の値が0でなければ@@ @@ @@ 08にジャンプ。0x02023CD2は連続攻撃の残り回数が書き込まれるメモリのアドレス

28:別のオフセットへジャンプ

28[@@ @@ @@ 08]
  • 関数参照アドレス:0x021E51 ~ 0x021E6E
  • それ以上でもそれ以下でもないが最も重要なコード.次にある[@@ @@ @@ 08]へジャンプする.RAM領域へのジャンプも出来る.

29:メモリ条件比較1バイト

29 [CC] [MM MM MM MM] [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x021E71 ~ 0x021F0E
  • 参照メモリ[MM MM MM MM]と指定値[XX]を[CC]の条件で比較して[@@ @@ @@ 08]へ分岐する
  • 参照メモリは02023D2Cになることが多い.
    02023D2Cはフラグを参照して技命中時の打撃音の管理を行っているメモリ.このメモリは0Fの相性評価文字列表示でも参照している.

  02023D2Cの値(ビットフラグ)
  01:回避   02:効果抜群 04:効果今ひとつ 08:効果なし   
  10:一撃必殺 20:技失敗  40:こらえた   80:ハチマキ

2A:メモリ条件比較2バイト

2A [CC] [MM MM MM MM] [XX XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x021F11 ~ 0x021FB6
  • 参照メモリ[MM MM MM MM]と指定値[XX XX]を[CC]の条件で比較して[@@ @@ @@ 08]へ分岐する

2B:メモリ条件比較4バイト

2B [CC] [MM MM MM MM] [XX XX XX XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x021FB9 ~ 0x02206A
  • 参照メモリ[MM MM MM MM]と指定値[XX XX XX XX]を[CC]の条件で比較して[@@ @@ @@ 08]へ分岐する
  • 参照メモリは02023D30であることが多い.
     02023D30はコード21等で使用されている相手の体勢を指定するメモリ.
     2ターン技で使用される時の1ターン目の体勢などで分岐を決める際に使用されている.

2C:メモリ対メモリ一致比較

2C [MM MM MM MM①] [MM MM MM MM②] [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x02206D ~ 0x0220F2
  • 参照メモリ[MM MM MM MM①]と[MM MM MM MM②]を[XX]バイト比較して一致なら[@@ @@ @@ 08]へ分岐する

2D:メモリ対メモリ不一致比較

2D[MM MM MM MM①][MM MM MM MM②][XX][@@ @@ @@ 08]
  • 関数参照アドレス:0x0220F5 ~ 0x022176
  • 参照メモリ[MM MM MM MM①]と[MM MM MM MM②]を[XX]バイト比較して不一致なら[@@ @@ @@ 08]へ分岐する

2E:メモリに値を代入

2E [MM MM MM MM] [XX]
  • 関数参照アドレス:0x022179 ~ 0x02219E
  • 指定したメモリ領域に1バイト書き込みを行う.
  • 1byteの代入なので大量の値を書き込む場合は31などでコピーしてしまった方が良い.

2F:メモリの値に加える

2F [MM MM MM MM] [XX]
  • 関数参照アドレス:0x0221A1 ~ 0x0221CA
  • [XX]で指定した1バイト分[MM MM MM MM]に加算する.繰り上がりは起きないので2バイトの加算は出来ない.

30:メモリの値から引く

30 [MM MM MM MM] [XX]
  • 関数参照アドレス:0x0221CD ~ 0x0221F6
  • [XX]で指定した1バイト分[MM MM MM MM]に減算する.繰り下がりは起きないので2バイトの減算は出来ない.

31:メモリの値をコピー

31[MM MM MM MM①][MM MM MM MM②][XX]
  • 関数参照アドレス:0x0221F9 ~ 0x02224A
  • [MM MM MM MM②]に書かれた値を[MM MM MM MM①]に[XX]バイト分コピーして書き込む.ROM領域からRAM領域へのコピーも出来る
    ROM領域の値をメモリに直接書き込みできるので,大きな数値書き換えを行う場合は2Eより此方の方が便利

32:相対コピー

32[MM MM MM MM①][MM MM MM MM②][MM MM MM MM③][XX]
  • 関数参照アドレス:0x02224D ~ 0x0222B6
  • 0x1BCA53に存在する.詳細は未調査

33:1バイトフラグオン

33 [MM MM MM MM] [XX]
  • 関数参照アドレス:0x0222B9 ~ 0x0222E2
  • [MM MM MM MM]に[XX]の論理和を書き込む
  • 主に『ねこだまし』や『とびひざげり』の失敗時に,02023D2C等技の成功判定やメッセージを失敗時の物に書き換えることに使用されている.

34:2バイトフラグオン

34 [MM MM MM MM] [XX XX]
  • 関数参照アドレス:0x0222E5 ~ 0x02231A
  • [MM MM MM MM]に[XX XX]の論理和を書き込む

35:4バイトフラグオン

35 [MM MM MM MM] [XX XX XX XX]
  • 関数参照アドレス:0x02231D ~ 0x02235E
  • [MM MM MM MM]に[XX XX XX XX]の論理和を書き込む
  • 主にコード『1D』で扱った状態変化や,コード『21』の体勢変化等のフラグ書き込みに使用される.

36:1バイトフラグオフ

36 [MM MM MM MM] [XX]
  • 関数参照アドレス:0x022361 ~ 0x02238A
  • [MM MM MM MM]から[XX]の1のビット部を0にする

37:2バイトフラグオフ

37 [MM MM MM MM] [XX XX]
  • 関数参照アドレス:0x02238D ~ 0x0223C2
  • [MM MM MM MM]から[XX XX]の1のビット部を0にする

38:4バイトフラグオフ

38 [MM MM MM MM] [XX XX XX XX]
  • 関数参照アドレス:0x0223C5 ~ 0x022406
  • [MM MM MM MM]から[XX XX XX XX]の1のビット部を0にする

39:待機時間

39[XX XX]
  • 関数参照アドレス:0x022409 ~ 0x022446
  • 文章やアニメーションの状況に関係なく好きなタイミングで待ち時間を設定できる.

3A:HPが0になるかチェック

3A
  • 関数参照アドレス:0x022449 ~ 0x022466
  • 02023b28が0ならスクリプトアドレスを+1して更新,02023b28が0でないなら終了.
    ダメージ計算の結果の値から0BでHPの更新,0Cでバーの更新を行い,それが0になっているかどうか確認をおこなう.

3B:個別移動(未調査)

3B[**]
  • 関数参照アドレス:0x022469 ~ 0x0224BE
  • 恐らくコード『3C』と似た効果.
    コード『3C』のような“40で指定したアドレスからもどる個別移動”と考えられるが,
    『3C』と『41』の箇所を『3B』と『40』に置換すると 技の効果やアニメーションが全てとばされる.

3C:41で指定するアドレスから戻る

3C
  • 関数参照アドレス:0x0224C1 ~ 0x0224CA
  • 3Cがあればどこでも41の指定アドレスの次の位置にジャンプできる.技スクリプト内に『3C』がある場合,直前の『41』にジャンプしてしまうため,オリジナル

技スクリプトを作成する際は『41』の位置に注意

3D:技スクリプト終了処理

3D
  • 関数参照アドレス:0x0224CD ~ 0x0224EA
  • 技スクリプの終了.通常攻撃のスクリプト中に含まれている他,通常攻撃に接続しないスクリプトの末端にも含まれている.

3E:技スクリプト終了処理

3E
  • 関数参照アドレス:0x0224ED ~ 0x022502
  • コード『3D』と『3E』の相違点は,02023D2Cに#0x01を書き込む処理が『3D』にはあり,『3E』にはないという点

3F:技スクリプト終了処理

3F
  • 関数参照アドレス:0x022505 ~ 0x02253E
  • 効果はコード『3E』と同じ技スクリプトの終了処理.天候変化時の特性『てんきや』の処理終了にある

40:独立移動(未調査)

40 [@@ @@ @@ 08]
  • 関数参照アドレス:0x01D3B1 ~ 0x01D41A
  • 恐らくコード『41』と似た効果.3Bとセット.

41:独立移動

41 [@@ @@ @@ 08]
  • 関数参照アドレス:0x022541 ~ 0x02256E
  • 41の後ろに設定した[@@ @@ @@ 08]にジャンプする.『3C』とセットになっており,
    41で指定したアドレスから『3C』を読み込むと独立ルートで読み込みアドレスの次の番地にジャンプできる.

42:使用者のタイプで分岐(のろい用)

42 [TT] [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x022571 ~ 0x0225CA
  • 効果そのものは『22』と大差ない.指定した対象のポケモンのタイプID[XX]と一致したら[@@ @@ @@ 08]にジャンプする.
    のろい用のコード

43:使用者の特性による分岐

43 [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x0225CD ~ 0x022616
  • 特性IDが[XX]と一致するなら[@@ @@ @@ 08]に分岐
  • 似たような効果をもつコードに1Eがある.此方は特性の対象を比較することができない.

44:未調査

44
  • 関数参照アドレス:0x022619 ~ 0x022632
  • 02023CCBに02023F48の内容を元にした計算を行った結果を書き込んでいるように見える
    02023CCBは動作主体が書き込まれるアドレス。何故,意図的に書き戻しているかは未調査.
  • 直後に呼び出される定型文を見る限りだと『いちゃもん』や『ちょうはつ』などの技スクリプト付近にある.

45:能力変化時のアニメ―ション表示

45 [TT] [XX] [MM MM MM MM]
  • 関数参照アドレス:0x022635 ~ 0x0226F2
  • 1AAE64から定義されているID[XX]のアニメーションを表示する
    [MM MM MM MM]で指定されているメモリ02023F34はアニメーション表示の数値を記録する場所.
    技使用時の能力変化アニメーションを表示する.

46:メモリ比較

46 [TT] [MM MM MM MM①] [MM MM MM MM②]
  • 関数参照アドレス:0x0226F5 ~ 0x0227BE
  • 前述のコード『2C』と同様の効果.前後のメモリの比較を行う.コード『2C』と異なり完全一致でしか機能しない.
  • 1BCA43と1BCAE3で確認できるが,どちらも

46[01][34 3F 02 02][00 00 00 00]

となっており比較対象に何があるかは不明.
恐らく1BCA49~1BCA4Cと1BCAE9~1BCAECに任意のメモリを代入する仕組みがあると思われる.

47:能力変化エフェクトの設定

47
  • 関数参照アドレス:0x0227C1 ~ 0x02281A
  • 後述のコード『89』で変化した能力に応じて(上昇,下降,種類)エフェクトの種類を決め,コード『45』でそのエフェクトを表示する.

48:ステータス変動特性の比較

48 [TT] [RR] [rr]
  • 関数参照アドレス:0x02281D ~ 0x022A0E
  • 特性「クリアボディ」「白い煙」「鋭い目」「怪力鋏」との比較.主にステータス変動に関係する特性を参照している.

[RR]は比較したいステータスのビットフラグ(1:体力 + 2:攻撃 + 4:防御 + 8:素早 + 10:特攻 + 20:特防)
[rr]:ビットフラグ(8:ランク補正上昇無効効果(白い霧, 特性等), 4:アニメーションの有無, 2:アニメの種類指定2{0:1段階,1:2段階以上}, 1:アニメの種類指定{0:上昇,1:下降})

ビットフラグで複数のステータスを指定する場合は数値を足し算する.
Ex)攻撃と特攻:2 + 10 = 12

49:攻撃後の処理・接触特性の判定

49 [**] [**]
  • 関数参照アドレス:0x022A11 ~ 0x023436
  • 通常攻撃のスクリプトの最後の方にあり,接触時に発動する特性の判定を行う.接触特性を無効にしたい技がある場合は分岐でコード『49』を避けるようにする

  • 不明値は 00 00 ,00 01 ,02 10 等のパターンがある.何を指定しているかは未調査,詳細不明

4A:無効化特性の比較

4A
  • 関数参照アドレス:0x023439 ~ 0x023686
  • 特性「浮遊」「不思議な守り」との比較.主に特定のタイプを無効化する特性の比較に使用される.
  • 恐らく,48と4Aは02023B64,02023BBCなどを参照することで技の使用者や相手の特性ID,タイプIDをもとに比較を行っているものと思われる.

4B:未調査

4B
  • 関数参照アドレス:0x023689 ~ 0x0236D6
  • BC738などにある.直前の1BC732の10で『(味方)\00 もういい!\nもどれ!終』のメッセージを呼び出しているので技には関係ないスクリプトだと思われる.

4C:バトンタッチのポケモン入れ替え

4C [TT]
  • 関数参照アドレス:0x0236D9 ~ 0x023746
  • バトルポケモンを選択したポケモンに更新する.4Cをバトンタッチから削除すると,引っ込めたポケモンがまた出る.

4D:バトンタッチ交換後のメッセージ

4D [TT]
  • 関数参照アドレス:0x023749 ~ 0x0238D2
  • 「ゆけっ! ○○」に入れるポケモン名を変更する
    ポケモンコードを入れ替えて汎用変数にメッセージを格納する際に入れ替えたポケモンコード参照できるようにしていると思われる

4E:ポケモン使用状況把握

4E [TT] [**]
  • 関数参照アドレス:0x0238D5 ~ 0x02397E
  • 控えに瀕死状態でないポケモンがいるかどうかの判定を行う.

4F:戦闘可能是非分岐

4F [**] [@@ @@ @@ 08]
  • 関数参照アドレス:0x023981 ~ 0x023B8A
  • 戦えるポケモンが他にいない場合[@@ @@ @@ 08]に分岐する.不明値には81が入っている.

50:能力変化の引き継ぎ

50 [**] [@@ @@ @@ 08]
  • 関数参照アドレス:0x023BE1 ~ 0x02443A
  • これを削除するとバトンタッチでも能力変化,状態変化などがすべてリセットされるようになる.
      ・能力変化を引き継がないこと
      ・根を張るを引き継がないこと
      ・みがわりを引き継がないこと   消去した際,これらの挙動を確認済み.
  • プログラムに置いて関数を呼び出す際,引数が過不足なく指定されてなければならないのと同様に、
    50のコード内で50から5バイト先までを読み込む処理がある為,50のコードを正常動作させるために
    指定されていると考えられる.

51:未調査

51 [TT] [**]
  • 関数参照アドレス:0x02443D ~ 0x02462A
  • 恐らくバトンタッチの判定の一つ

52:状態変化の引き継ぎ

52 [TT]
  • 関数参照アドレス:0x02462D ~ 0x0248CA
  • バトンタッチ判定で使用.50で引き継げない状態変化などを引き継ぐ

53:未調査

53 [**]
  • 関数参照アドレス:0x0248D1 ~ 0x02490E
  • 1BC7AE以降にある.
    直前のコード『10』で『\1cの \1d\nとの しょうぶに かった!\p終』を指定している為,恐らく戦闘勝利の処理お何か

54:未調査

54 [** **]
  • 関数参照アドレス:0x024911 ~ 0x02494A
  • 1BDAD6等にある.直前の10で『\1cの \1dは\n\16を つかった!終』を指定している為,アイテム関連の何か

55:未調査

55 [** **]
  • 関数参照アドレス:0x02494D ~ 0x024986
    1BC9B1以降にある.直後の10で『\00は\nレベル\01 に あがった!待\p終』を指定してる為,レベル上昇時の処理の何か

56:敗北時のメッセージ判定

56 [TT]
  • 関数参照アドレス:0x024989 ~ 0x0249B6
  • 戦闘不能になった対象が自分のポケモン立ったばあい『\0f(手持ち)は たおれた!\p終』
    相手のポケモンだった場合は『\10(相手)は たおれた!\p終』を表示させる.

57:未調査

57
  • 関数参照アドレス:0x0249B9 ~ 0x0249EE
  • 1BC88Eにある.直後の10で『\1cの \1d\nとの しょうぶに かった!\p終』を指定している為,勝利時の処理の何か

58:未調査

58 [TT]
  • 関数参照アドレス:0x0249F1 ~ 0x024A22
  • バトンタッチの判定の一つ.詳細未調査

59:

59 [@@ @@ @@ 08] [@@ @@ @@ 08] [**]
  • 関数参照アドレス:0x024A25 ~ 0x024B6E
  • 1BC9BEにある.直前の10で『\00は\nレベル\01 に あがった!待\p終』を指定してる為,レベル上昇時の処理の何か

5A:技を忘れさせる際の是非(その1)

5A [@@ @@ @@ 08]
  • 関数参照アドレス:0x024B71 ~ 0x024ED2
  • 1BC9E8にある.レベルアップ時に技を4つ以上習得した状態で技を更に習得すると
    『しかし \00は わざを 4つ\nおぼえるので せいいっぱいだ!\p終』のメッセージの後に表示される
  • ウィンドウで『はい』を選ぶと『@201 @0f2の @0f…@0f…@0f… @0f*3100ポカン!\p終』のメッセージ
    を表示させる.

5B:技を忘れさせる際の是非(その2)

5B [@@ @@ @@ 08]
  • 関数参照アドレス:0x024ED5 ~ 0x02500E
  • 1BC9F7にある.『@20それでは…… \01を\nおぼえるのを あきらめますか?終』のメッセージ時に
    『いいえ』を選択すると『しかし \00は わざを 4つ\nおぼえるので せいいっぱいだ!\p終』のメッセージ表示のアドレス箇所までジャンプして巻き戻す.

5C:ダメージ時の点滅

5C [TT]
  • 関数参照アドレス:0x025011 ~ 0x02509E
  • 相手からの被ダメージ時の点滅アニメーションを行う.通常は[TT]は00になっているが01に設定すると自分が点滅するようになる.

5D:全滅時判定

5D [@@ @@ @@ 08]
  • 関数参照アドレス:0x0250A1 ~ 0x025256
  • 戦闘時に手持ちポケモンが全員瀕死状態に成った際[@@ @@ @@ 08]にジャンプ.
    『\23は\nめのまえが まっくらに なった!止終』のメッセージ表示アドレスにジャンプさせる

5E:未調査

5E [TT]
  • 関数参照アドレス:0x025259 ~ 0x02530A
  • 未調査,現時点で使用箇所すら不明.

5F:未調査

5F
  • 関数参照アドレス:0x02530D ~ 0x02535A
  • 1BC930にある.何の分岐かは未調査.恐らくは状態変化のリセット関連の処理.

60:はねる,わるあがき使用回数のカウント

60 [XX]
  • 関数参照アドレス:0x02535D ~ 0x02538A
  • 技の使用回数をカウントする.XXが1Aで『はねる』,1Bで『わるあがき』の指定となる.

61:未調査

61 [TT]
  • 関数参照アドレス:0x02538D ~ 0x025452
  • 1BC73Bにある.何の分岐かは未調査

62:未調査

62 [TT]
  • 関数参照アドレス:0x025455 ~ 0x025482
  • 1BC745にある.何の分岐かは未調査

63:未調査

63 [**]
  • 関数参照アドレス:0x025485 ~ 0x0254E6
  • 『ねごと』,『ねこのて』のスクリプトにある.

64:未調査

64 [TT]
  • 関数参照アドレス:0x0254E9 ~ 0x025576
  • 『いびき』,『ねごと』のスクリプト中にある.

65:状態変化時のメッセージ分岐

65 [TT] [XX XX XX XX]
  • 関数参照アドレス:0x025579 ~ 0x02561E
  • 1BD095にある.何の対象がビットフラグの状態変化を起こしている時, ターン終了時にその効果とメッセージを読み込む.
  • 状態変化の例
      65 [01] [07 00 00 00] 混乱状態.  『わけも わからず\nじぶんを こうげきした!終』
      65 [01] [00 00 0F 00] メロメロ状態(全員共通) 『\0fは メロメロで\nわざが だせなかった!終』
      65 [01] [00 00 00 08] のろい状態.  『\0fは\nのろわれている!終』
      65 [01] [00 00 00 10] その他あらゆる状態  何らかの方法で分岐。98でガラガラの幽霊のセリフに分岐

66:暴れる効果の混乱部分設定

66 [TT] [**] [XX XX XX XX]
  • 関数参照アドレス:0x025621 ~ 0x0256B2
  • 対象が『あばれる』を使用し,効果を発揮した際に,『\0fは\nつかれはてて こんらんした!終』の表示と混乱の状態変化数値を書き込む.

67:未調査

67
  • 関数参照アドレス:0x0256B5 ~ 0x02578E
  • 恐らく,戦闘時,相手のポケモンが負けた際の判定
    直後に『\1cの \1dは\n\01を くりだそうと している\p\23も ポケモンを\nいれかえますか?終』の定型文

68:未調査

68
  • 関数参照アドレス:0x025791 ~ 0x0257C6
  • 1BC772にある.詳細不明.

69:固定ダメージ技でのこらえる等判定

69
  • 関数参照アドレス:0x0257C9 ~ 0x025942
  • 固定ダメージ技でも『こらえる』判定中はHPが1残るようにダメージを変更する.
    『サイコウェーブ』,『ソニックブーム』,『ミラーコート』,『カウンター』等,ダメージ計算でコード『05』を使用しない技のダメージ量を-1する

6A:アイテム消費

6A [TT]
  • 関数参照アドレス:0x025945 ~ 0x0259B2
  • 1BD502にある.きのみアイテム消費時のスクリプトにある.このコードを通すことで木の実を00 00のIDに描きかえる.詳細は未調査

6B:未調査

6B
  • 関数参照アドレス:0x0259B5 ~ 0x0259EE
  • 1BC933にある.未調査.

6C:未調査

6C
  • 関数参照アドレス:0x0259F1 ~ 0x025BEA
  • 1BC9BDにある.未調査.恐らく戦闘中のレベル上昇時の設定の何か

6D:未調査

6D
  • 関数参照アドレス:0x025FB5 ~ 0x025FCA
  • 1BC9BDにある.未調査.

6E:未調査

6E
  • 関数参照アドレス:0x025FCD ~ 0x025FEA
  • 未調査

6F:未調査

6F [TT]
  • 関数参照アドレス:0x025FED ~ 0x02601E
  • 未調査

70:未調査

70
  • 関数参照アドレス:0x026021 ~ 0x026062
  • 未調査

71:未調査

71
  • 関数参照アドレス:0x02607D ~ 0x026092
  • 未調査

72:未調査

72 [@@ @@ @@ 08]
  • 関数参照アドレス:0x026095 ~ 0x0260D6
  • 未調査

73:HPチェック

73 [TT]
  • 関数参照アドレス:0x0260D9 ~ 0x026182
  • ステータス管理レジスタの現在HPと最大HPをチェックする

74:ダブルバトルのチェック

74 [TT]
  • 関数参照アドレス:0x026185 ~ 0x026232
  • [TT]で指定する側のダブルバトルの有無をチェックする.

75:未調査

75
  • 関数参照アドレス:0x026235 ~ 0x02628A
  • 未調査

76:未調査

76 [TT] [**]
  • 関数参照アドレス:0x02628D ~ 0x026742
  • のろいのスクリプトでは不明値は03.テレポートのスクリプトでは不明値は02.

77:まもる,みきりの効果

77
  • 関数参照アドレス:0x026745 ~ 0x02687E
  • 使用者のIDから守る状態フラグに01をフラグオンする.
      02023DEC:自分1匹目の守る状態管理
      02023DFC:相手1匹目の守る状態管理
      02023E0C:自分2匹目の守る状態管理
      02023E1C:相手2匹目の守る状態管理

78:強制ジャンプ

78
  • 関数参照アドレス:0x026881 ~ 0x02699A
  • 1BD36Bのアドレスに強制的にジャンプする.処理中のコードが他にある場合でも優先される.

79:未調査

79
  • 関数参照アドレス:0x02699D ~ 0x0269FA
  • 未調査,おきみやげの何れかの処理

7A:

7A [@@ @@ @@ 08]
  • 関数参照アドレス:0x0269FD ~ 0x026A9E
  • フィールド全体攻撃時に威力分散などの判定を行う.
     全体攻撃の際に対象となるポケモンが全て選択されたか判定するし,選択されていないポケモンがいた場合[@@ @@ @@ 08]にジャンプ.
  • シングルバトルまたは対象が1体のみ場合は後述の『C2』のコードが使用される.

7B:最大HPの半分回復

7B [@@ @@ @@ 08] [TT]
  • 関数参照アドレス:0x026AA1 ~ 0x026B1A
  • じこさいせい,ミルクのみ のスクリプトにある.体力が満タン時に直後のアドレスに分岐する.
  • [TT]で回復する対象を選択することが出来る.応用次第で『いやしのはどう』等の技に使用可能.

7C:オウムがえし判定

7C
  • 関数参照アドレス:0x026B1D ~ 0x026C7E
  • 02023CACから直前に使用された技IDを参照し, 02023CAAに数値をコピーする.オウムがえしが無効に設定されている技IDの場合は失敗する

7D:あまごい比較

7D
  • 関数参照アドレス:0x026C81 ~ 0x026CD2
  • 02023E7Cに任意の天候数値を書き込み天候を雨に変更する.
  • 2byteと思われるが2byte目は00,天候状態(01雨、08砂、60晴、80霰)
     BWパッチの適応下では天候状態の値が以下のように変化している
     技での天候状態(01雨、04砂、10晴、40霰)
     特性での天候状態(03雨降らし、0C砂おこし、30日本晴れ、C0雪降らし)
  • 他の天候状態でも上記のフラグは共通

7E:リフレクター判定

7E
  • 関数参照アドレス:0x026CD5 ~ 0x026D9E
  • リフレクターの効果.下記のメモリをフラグオンする.
      02023D3E 味方フィールドの壁判定(2匹で兼用)
      02023D40 相手フィールドの壁判定(2匹で兼用)

7F:やどりぎのタネ判定

7F
  • 関数参照アドレス:0x026DA1 ~ 0x026E5E
  • やどりぎのタネの効果発動

80:ダメージ量の再計算

80 [XX]
  • 関数参照アドレス:0x026E61 ~ 0x026EDE
  • [XX]の1バイトの内容によって処理を切り替えており,
    [01]だった場合にとびげり・とびひざげりの失敗時のダメージ量計算
    [02]の場合はダメージ量を倍にする処理(ダメージ量をロードして左1ビットシフト(値を2倍)してセーブし直す)?
    [00]の場合はダメージ量を反転させ,ダメージ量分回復する.
  • [01]に指定した際の反動ダメージはあくまで02023cb0に格納されるダメージ量を変更する処理なので,
    ダメージを与える対象の決定自体は「外すと反動ダメージ」のスクリプトないで手動で行う必要がある.
  • [02]をしていしている部分は袋叩きのスクリプトであり,
    袋叩きのスクリプトは通常とダメージ計算が違い,急所時のダメージ倍率を反映できないため,
    専用のコード『80』を用いて疑似的に急所時ヒット時のダメージ倍率上昇を再現している

81:HP最大で分岐

81 [@@ @@ @@ 08]
  • 関数参照アドレス:0x026EE1 ~ 0x026FAE
  • HPが最大時のみ後ろの[@@ @@ @@ 08]にジャンプする.

82:ねこだまし失敗判定

82 [@@ @@ @@ 08]
  • 関数参照アドレス:0x026FB1 ~ 0x026FF6
  • ねこだましの技自体の失敗条件時に直後のアドレスにジャンプ

83:未調査

83
  • 関数参照アドレス:0x026FF9 ~ 0x027006
  • さわぐ判定・詳細未調査

84:特性『やるき』『不眠』の判定

84 [@@ @@ @@ 08]
  • 関数参照アドレス:0x0270A5 ~ 0x02711E
  • 状態異常の眠りの判定の際に使用される.
    特性IDを参照し,『やるき』または『不眠』ならば眠りの際に減少していくカウンターフラグの数値を減算する.

85:たくわえる使用回数

85
  • 関数参照アドレス:0x027121 ~ 0x02719A
  • たくわえるを使用した場合,使用回数分の数値を書き込む
  • アドレスは下記となっている
      02023D75 味方1匹目
      02023D91 相手1匹目
      02023DAD 味方2匹目
      02023DC9 相手2匹目

86:はきだす技効果

86 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02719D ~ 0x0272BA
  • コード『85』にて加算する数値が『0』の場合直後のアドレスにジャンプする.
  • たくわえる効果で記録したメモリ値から威力を算出する.

87:のみこむ効果

87 [@@ @@ @@ 08]
  • 関数参照アドレス:0x0272BD ~ 0x02739E
  • たくわえる効果で記録したメモリ値から回復値を算出する.

88:体力吸収回復値のセット

88
  • 関数参照アドレス:0x0273A1 ~ 0x0273D2
  • 吸収技の回復値を計算する.与えたダメージ02023CB4(4バイト)の半分を02023CB0(4バイト)に負数で回復量をセット.

89:特性で効果が無効化された際の分岐

89 [XX] [@@ @@ @@ 08]
  • 関数参照アドレス:0x027859 ~ 0x0278A2
  • しんぴのまもり,特性で無効化された場合『@@ @@ @@ 08』のアドレスにジャンプする.
     [XX]は01なら相手 41なら自分.
  • 補助技の状態異常技のスクリプトで使用される

8A:くろいきり効果

8A
  • 関数参照アドレス:0x0278A5 ~ 0x0278F6
  • 全てのポケモンのランク補正メモリを06に書き換える.

8B:がまん判定

8B
  • 関数参照アドレス:0x0278F9 ~ 0x027966
  • 使用から2ターンの累積ダメージをメモリから読み込み,値を2倍して02023CB0に書き込む.

8C:あばれる系の技の処理?

8C
  • 関数参照アドレス:0x027969 ~ 0x0279A6
  • あばれる系の技の処理の何か.未調査.

8D:2~5回連続攻撃用乱数生成

8D [XX]
  • 関数参照アドレス:0x0279A9 ~ 0x0279F2
  • 2~5回連続攻撃の乱数生成を行う.
    [XX]が0の場合は02023CD2に2~5の数値をランダムで書き込み
    [XX]が0以外の場合は02023CD2にその数値を書き込む.
  • コード『26』と似ているが,此方は乱数生成が出来る.

8E:未調査

8E
  • 関数参照アドレス:0x0279F5 ~ 0x027A1A
  • トリプルキック内、連続攻撃スクリプト(8Dの直後)にある。未調査

8F:ほえる判定

8F [@@ @@ @@ @8]
  • 関数参照アドレス:0x027AE5 ~ 0x027DDA
  • 相手のポケモンを控えのポケモンとランダム入れ替え,@@ @@ @@ 08にジャンプ.入れ替えるポケモンの選択は不可.

90:テクスチャー失敗判定

90 [@@ @@ @@ 08]
  • 関数参照アドレス:0x027DDD ~ 0x027F7E
  • 相手の習得している技が全てテクスチャーに選ばれない技だった場合直後のアドレスにジャンプ.

91:未調査

91
  • 関数参照アドレス:0x027F81 ~ 0x028012
  • 未調査

92:ひかりのかべ判定

92
  • 関数参照アドレス:0x028015 ~ 0x0280DE
  • ひかりの壁の効果.下記のメモリをフラグオンする.メモリ位置はリフレクターと共用
      02023d3e 味方フィールドの壁判定(2匹で兼用)
      02023d40 相手フィールドの壁判定(2匹で兼用)

93:一撃必殺技の命中判定

93
  • 関数参照アドレス:0x0280E1 ~ 0x028432
  • 技『ぜったいれいど』,『じわれ』等の命中判定.

94:未調査

94
  • 関数参照アドレス:0x028435 ~ 0x02846E
  • 未調査

95:すなあらし比較

95
  • 関数参照アドレス:0x028471 ~ 0x0284C6
  • 02023E7Cに任意の天候数値を書き込み天候を砂嵐に変更する.

96:未調査

96
  • 関数参照アドレス:0x0284C9 ~ 0x028666
  • 未調査

97:メロメロ判定

97 [@@ @@ @@ 08]
  • 関数参照アドレス:0x028669 ~ 0x02881E
  • 対象としているポケモンに応じて状態変化フラグを『メロメロ状態』にする.
    既にメロメロになっている等で失敗した場合は直後のアドレスにジャンプする.

98:状態異常アイコンの更新

98 [TT]
  • 関数参照アドレス:0x028821 ~ 0x0289A6
  • 状態異常アイコンを現在の状態に合わせて更新する.
    アロマセラピー,リフレッシュ等の状態異常回復技使用時はアイコンをリセットする目的で使用される.

99:しろいきり判定

99
  • 関数参照アドレス:0x0289A9 ~ 0x028A4E
  • しろいきりの効果.メモリの書き込まれたターン数が0になるまでランクメモリの変化を止める.
  • 参照メモリは下記の通り
      02023D48 味方1匹目
      02023D54 相手1匹目
      02023D60 味方2匹目
      02023D6C 相手2匹目

9A:きあいだめ判定

9A
  • 関数参照アドレス:0x028A51 ~ 0x028AAA
  • きあいだめの効果.

9B:へんしん判定

9B
  • 関数参照アドレス:0x028AAD ~ 0x028C4A
  • 対象のポケモンIDからメモリ領域を対象のものからコピーし,グラフィックを更新する.

9C:じこあんじ判定

9C
  • 関数参照アドレス:0x028C4D ~ 0x028D06
  • 相手のランク数変化を自分のランス数アドレスに書き込み.詳細は未調査.

9D:ものまね判定

9D [@@ @@ @@ 08]
  • 関数参照アドレス:0x028D51 ~ 0x028F2A
  • 20d1f0~20d117の判定リストからものまねに選ばれない技が出た場合,直後のアドレスにジャンプする.
    この判定リストは『ゆびをふる』『ねこのて』等でも使用する

9F:レベル分の固定ダメージをセット

9F
  • 関数参照アドレス:0x028FD5 ~ 0x029002
  • 使用者のレベルをメモリ領域から参照し,レベルの値を威力メモリにコピー.
  • 07を通さないで威力計算するため,たすきや頑丈を適応させる場合は69を入れる必要がある.

A0:サイコウェーブダメージ生成

A0
  • 関数参照アドレス:0x029005 ~ 0x029056
  • 使用者のレベルを参照して02023CB0にダメージ値を書き込む.

A1:物理攻撃を受けているかどうかで分岐

A1 [@@ @@ @@ 08]
  • 関数参照アドレス:0x029059 ~ 0x02914E
  • 物理攻撃を受けていない場合[@@ @@ @@ 08]へジャンプ.
  • 物理攻撃を受けた場合は02023CB0に被ダメージの2倍の値を書き込む

A2:特殊攻撃を受けているかどうかで分岐

A2 [@@ @@ @@ 08]
  • 関数参照アドレス:0x029151 ~ 0x029246
  • 特殊攻撃を受けていない場合[@@ @@ @@ 08]へジャンプ.
  • 特殊攻撃を受けた場合は02023CB0に被ダメージの2倍の値を書き込む

A3:かなしばり判定

A3 [@@ @@ @@ 08]
  • 関数参照アドレス:0x029249 ~ 0x02938C
  • 事前に相手から受けた技IDをメモリから参照し,かなしばり状態にする.
  • 参照メモリは以下の通り
      02023CF8 自分1匹目
      02023CFA 相手1匹目
      02023CFC 自分2匹目
      02023CFE 相手2匹目

A4:アンコール判定

A4 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02938D ~ 0x0294BE
  • 事前に相手から受けた技IDをメモリから参照し,アンコール状態にする.参照メモリは未調査

A5:いたみわけ判定

A5[@@ @@ @@ 08]
  • 関数参照アドレス:0x0294C1 ~ 0x029582
  • 対象と使用者の現在HPの値をシェアし,値を再書き込み.ゲージ更新は0Bと0Cで行う.

A6:テクスチャー2失敗判定

A6[@@ @@ @@ 08]
  • 関数参照アドレス:0x029585 ~ 0x029782
  • 相手が直前に使用した技が『のろい』『へんしん』『ゆびをふる』『ねごと』『オウムがえし』『スケッチ』『ものまね』だった場合直後のアドレスにジャンプ

A7:ロックオン判定

A7
  • 関数参照アドレス:0x029785 ~ 0x0297DA
  • ロックオンの効果.次のターンの技の命中率を必中に書き換え.

A8:スケッチ判定

A8 [@@ @@ @@ 08]
  • 関数参照アドレス:0x0297DD ~ 0x029996
  • 対象が最後に使用した技IDに書き換える.

A9:未調査

A9 [@@ @@ @@ 08]
  • 関数参照アドレス:0x029A69 ~ 0x029B9E
  • 恐らくねごと判定のいずれか.未調査

AA:みちづれ判定

AA
  • 関数参照アドレス:0x029BA1 ~ 0x029BCE
  • みちづれの効果.このコードを読み込んだターンに倒された場合,自身倒した相手のHPを0に書き換えゲージ更新.

AB:未調査

AB
  • 関数参照アドレス:0x029C31 ~ 0x029C46
  • 一撃必殺判定,若しくは状態変化リセット関連の処理の可能性もあり.未調査

AC:じたばた,きしかいせい処理

AC
  • 関数参照アドレス:0x029C49 ~ 0x029CAE
  • 使用者の現在体力数値から20d218~20d223の威力表を参照し技威力を決定する.残り体力が低い程高威力がセットされる.

AD:うらみ判定

AD [@@ @@ @@ 08]
  • 関数参照アドレス:0x029CB1 ~ 0x029E86
  • うらみの技効果。最後にダメージを受けた相手の技IDを参照しPPを減らす.

AE:未調査

AE
  • 関数参照アドレス:0x029E89 ~ 0x02A16A
  • 未調査

AF:のろい判定

AF [@@ @@ @@ 08]
  • 関数参照アドレス:0x02A16D ~ 0x02A1EE
  • のろい効果.対象を状態変化のメモリをフラグオンしてのろい状態にする.

B0:まきびし回数判定

B0 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02A1F1 ~ 0x02A27A
  • まきびしが既に最大まで撒かれているなら分岐
  • まきびし最大数は0x02A20Eの値で指定

B1:みやぶる,かぎわける判定

B1
  • 関数参照アドレス:0x02A27D ~ 0x02A2AA
  • 見破る系の技の効果.ゴーストタイプのノーマル無効をなくす.

B2:ほろびのうた判定

B2 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02A2AD ~ 0x02A362
  • ほろびのうたの効果.フィールドにいる全てのポケモンにカウントメモリをセットする.
  • 参照メモリは以下の通り
      02023D5C ほろびのうたフラグ 0 (自分1匹目)
      02023D60 ほろびのうたフラグ 1 (相手1匹目)
      02023D64 ほろびのうたフラグ 2 (自分2匹目)
      02023D68 ほろびのうたフラグ 3 (相手2匹目)

B3:ころがる判定

B3
  • 関数参照アドレス:0x02A365 ~ 0x02A4DE
  • 連続で命中した場合の威力上昇

B4:相手のランク補正がこれ以上上げれるかの分岐

B4 [rr] [@@ @@ @@ 08]
  • 関数参照アドレス:0x02A4E1 ~ 0x02A546
  • いばる,おだてる等で技でランクがこれ以上上げることが出来るかの判定.
     [rr]値は『いばる』では01,『おだてる』では04なので,恐らくランク補正の指定値
  • ランク補正比較[rr]の内容
      00 たいりょく(未使用)
      01 こうげき
      02 ぼうぎょ
      03 すばやさ
      04 とくこう
      05 とくぼう
      06 めいちゅう
      07 かいひ
  • 既に指定したランク補正値が限界まで上昇している場合は直後のアドレスにジャンプする.

B5:れんぞくぎり判定

B5
  • 関数参照アドレス:0x02A549 ~ 0x02A5FA
  • れんぞくぎりの効果.対象のメモリを参照し数値に応じた威力を02023EB0に書き込む.命中した場合数値を01加算する
  • 対象となるメモリが以下の通り
    れんぞくぎり命中回数
      02023D7C 味方1匹目
      02023D98 相手1匹目
      02023DB4 味方2匹目
      02023DD0 相手2匹目

B6:おんがえし判定

B6
  • 関数参照アドレス:0x02A5FD ~ 0x02A67E
  • 使用ポケモンの懐き度から威力テーブルを参照し,威力を02023EB0の値に書き込む.
    懐き度の数値が高い程威力は上がる

B7:プレゼント判定

B7
  • 関数参照アドレス:0x02A681 ~ 0x02A74A
  • 技IDを書き換え,任意の確率で効果を分岐する.分岐先のアドレスに終了処理は依存する.

B8:しんぴのまもり判定

B8
  • 関数参照アドレス:0x02A74D ~ 0x02A7F2
  • 神秘の守りの効果.対応するメモリに20を,カウンターに05をフラグオン
  • 対応するメモリは以下の通り.
  • しんぴのまもりフラグ
      02023D3E 味方側
      02023D40 相手側

 しんぴのまもりターンカウント
  02023D4A 味方側
  02023D56 相手側

B9:マグニチュード判定

B9
  • 関数参照アドレス:0x02A7F5 ~ 0x02A916
  • 乱数生成で威力を算出し,02023EB0に値を書き込む.
  • マグニチュード乱数確率
    威力確率書き込み数値
    1050A
    30101E
    502032
    703046
    90205A
    110106E
    150596

BA:おいうち使用チェック

BA
  • 関数参照アドレス:0x02A919 ~ 0x02AAAA
  • 詳しい内容は未調査

BB:にほんばれ比較

BB
  • 関数参照アドレス:0x02AAAD ~ 0x02AB02
  • 02023E7Cに任意の天候数値を書き込み天候を晴れに変更する.
  • フラグは7Dのものと同じ.

BC:はらだいこ判定

BC [@@ @@ @@ 08]
  • 関数参照アドレス:0x02AB05 ~ 0x02AB82
  • 最大体力の半分のHPを計算し,ゲージ更新.攻撃ランクを0Cに書き換えてアニメーション後に専用定型文を表示する.
  • 既に攻撃ランクが最大時に@@ @@ @@ 08にジャンプ

BD:じこあんじ判定

BD [@@ @@ @@ 08]
  • 関数参照アドレス:0x02AB85 ~ 0x02ABCA
  • じこあんじ効果.相手のランク補正を自分ランクメモリにコピーする.

BE:未調査

BE
  • 関数参照アドレス:0x02ABCD ~ 0x02AD16
  • 未調査

BF:まるくなる判定

BF
  • 関数参照アドレス:0x02AD19 ~ 0x02AD46
  • 使用者のD1状態変化フラグに00 00 00 40をフラグオンし,“まるくなる状態”にする.防御上昇判定も込.

C0:あさのひざし体力満タン時の判定

C0[@@ @@ @@ 08]
  • 関数参照アドレス:0x02AD49 ~ 0x02AE4E
  • あさのひざしを使用した際,既に体力が満タンの場合分岐する.分岐先は失敗判定.

C1:めざめるパワー処理

C1
  • 関数参照アドレス:0x02AE51 ~ 0x02AF4A
  • 使用ポケモンの個体値に応じてタイプを決定し,
    威力は02023EB0,タイプは02000023に書き込む.
  • タイプ計算式: (H1+A2+B4+S8+C16+D32)×15÷63+1 =タイプID

C2:攻撃対象初期化

C2
  • 関数参照アドレス:0x02AF4D ~ 0x02AFBE
  • 全体攻撃での対象の初期化をおこなうコード.全体攻撃を行う際に相手数が1体だった場合分岐する.
  • コード『7A』と共に全体攻撃で使用される.

C3:貯め技,2ターン後に攻撃する技の判定

C3[@@ @@ @@ 08]
  • 関数参照アドレス:0x02AFC1 ~ 0x02B0E6
  • 未来予知などの効果.詳細未調査.

C4:

C4 [①@@ @@ @@ 08] [②@@ @@ @@ 08]
  • 関数参照アドレス:02B0E9 ~ 0x02B2F6
  • ポケモン総数のカウントを参照し,値が00ならば①に,値が00以上ならば②のアドレスにジャンプする.
    ポケモン数参照メモリは未調査.

C5:回避して2ターン目に攻撃する技の判定(その1)

C5
  • 関数参照アドレス:0x02B2F9 ~ 0x02B37A
  • あなをほる,そらをとぶ等で使用される.詳細未調査

C6:回避して2ターン目に攻撃する技の判定(その2)

C6
  • 関数参照アドレス:0x02B37D ~ 0x02B40A
  • あなをほる,そらをとぶ等で使用される.詳細未調査

C7:ちいさくなる判定

C7
  • 関数参照アドレス:02B40D ~ 0x02B44A
  • 使用者の1D状態変化フラグにフラグオンすることで小さくなる状態にする.

C8:あられ比較

C8
  • 関数参照アドレス:0x02B44D ~ 0x02B4A2
  • 02023E7Cに任意の天候数値を書き込み天候を霰に変更する
  • フラグは7Dのものと同じ

C9:おきみやげの失敗判定

C9 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02B4A5 ~ 0x02B53E
  • おきみやげの失敗判定.相手の攻撃特攻ランクが最低の場合分岐する.

CA:このゆびとまれ処理

CA
  • 関数参照アドレス:0x02B541 ~ 0x02B58A
    攻撃対象のフラグを使用者のIDにかきかえる.

CB:じゅうでん処理

CB
  • 関数参照アドレス:0x02B58D ~ 0x02B5EE
  • じゅうでんの効果.

CC:しぜんのちから判定

CC
  • 関数参照アドレス:0x02B665 ~ 0x02B6E6
  • 0820d224から始まるテーブル上の効果を戦闘フィールドに応じて発揮する.
  • 0820d224を変更すれば"特定の場面のみで発動する技”を作成することが可能.

CD:リフレッシュ判定

CD [@@ @@ @@ 08]
  • 関数参照アドレス:0x02B6E9 ~ 0x02B73E
  • 状態異常を回復し,状態異常アイコンをリセットして更新.

CE:いちゃもん判定

CE [@@ @@ @@ 08]
  • 関数参照アドレス:0x02B6E9 ~ 0x02B73E
  • 相手が最後に選択した技を対象メモリに記録し,フラグが0になるまで使用不可にする.フラグ位置は未調査

CF:攻撃を受けたかの分岐

CF [@@ @@ @@ 08]
  • 関数参照アドレス:0x02B741 ~ 0x02B79A
  • きあいパンチのスクリプトで使用されている.被ダメージが書き込まれた後の場合@@ @@ @@ 08にジャンプする.

D0:ちょうはつ判定

D0 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02B79D ~ 0x02B80E
  • ちょうはつの効果.対象のIDのポケモンのメモリを参照し,変化技を選択できなくする.

D1:てだすけ判定

D1 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02B811 ~ 0x02B8B6
  • てだすけ効果.対象となったポケモンの技威力を1.5倍する.

D2:トリック判定

D2 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02B8B9 ~ 0x02BB66
  • 対象と使用者のアイテムIDをスワップ.

D3:なりきり判定

D3 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02BB69 ~ 0x02BBDE
  • ステータス管理メモリからなりきりで選択した相手の特性を読み出し特性がなしorふしぎなまもりの場合は処理終了.
    それ以外の場合は自分の特性を相手の特性で書き換える処理.

D4:ねがいごと判定

D4 [TT] [@@ @@ @@ 08]
  • 関数参照アドレス:0x02BBE1 ~ 0x02BCB2
  • ねがいごとの効果.詳細未調査

D5:ねをはる判定

D5 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02BCB5 ~ 0x02BD0A
  • 使用者の1D状態変化フラグをフラグオンすることで根を張る状態にする.
    吹き飛ばし等の判定はほえるのスクリプト側で処理している.

D6:リベンジ処理

D6
  • 関数参照アドレス:0x02BD0D ~ 0x02BD6A
  • 攻撃を受けた時にダメージを2倍にして値をセットする.技『しっぺがえし』,『リベンジ』で使用されている.

D7:あくび判定

D7 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02BD6D ~ 0x02BDDA
  • あくびの効果.さわぐ等を受けている状態の場合や相手が既に状態異常の場合は@@ @@ @@ 08にジャンプ.

D8:がむしゃら判定

D8 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02BDDD ~ 0x02BE46
  • 相手の現在HPがと自分の現在HPを参照し,相手が自分の現在HP以下の値の場合は分岐する.

D9:ふんか,しおふき判定

D9
  • 関数参照アドレス:0x02BE49 ~ 0x02BEAA
  • 使用者の残りHPから威力を計算する.
     
  • 計算式は以下の通り.しぼりとる等の威力計算と僅かに違うので,完全再現を目指す場合は注意.

  ふんか :設定威力×残HP÷最大HP(計算結果が0になった場合は1に設定し直す)
  しぼりとる :設定威力×残HP÷最大HP+1(計算結果が設定威力を超えた場合は設定威力に設定し直す)

DA:スキルスワップ判定

DA [@@ @@ @@ 08]
  • 関数参照アドレス:0x02BEAD ~ 0x02BF42
  • 相手と自分の特性IDを交換する.相手が使用者と同じ特性IDの場合ジャンプする.

DB:ふういん判定

DB [@@ @@ @@ 08]
  • 関数参照アドレス:0x02BF45 ~ 0x02C04A
  • 対象のメモリを参照し,該当するIDの技を封印状態にする.全ポケモン共通なので他のポケモンもそのIDの技は使用不可

DC:おんねん判定

DC [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C04D ~ 0x02C0A2
  • おんねんの効果.詳細未調査

DD:けたぐり判定

DD
  • 関数参照アドレス:0x02C0A5 ~ 0x02C13A
  • 対象のステータス管理メモリからポケモンコードを取得し、図鑑情報から重さを導き出し
  • 各ポケモンごとに設定されている重さの値と20d238~20d24f「けたぐり」おもさ・威力リストを比較し威力を算出する.

DE:ねこのて判定

DE [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C13D ~ 0x02C2BA
  • 猫の手の効果.手持ちの習得技を一度書き込み,ランダムで選択する.20d1f0~20d117の「ゆびをふる・ねこのて」選ばれない技リスト
    (FE FFまでが「ものまね」も失敗する技)の技は失敗する.

DF:マジックコート判定

DF [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C2BD ~ 0x02C33E
  • マジックコートの効果.詳細未調査
    相手から受けた状態異常を跳ね返すマジックこーと状態にする.詳細未調査.

E0:よこどり効果

E0 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C341 ~ 0x02C3BA
  • あいてが回復技のIDを選択しなかった場合@@ @@ @@ 08にジャンプ

E1:未調査

E1 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C3BD ~ 0x02C496
  • 直前に自身の攻撃を下げる判定があるので恐らく補助技の能力下降の何か

E2:交代時の自然回復の処理

E2
  • 関数参照アドレス:0x02C499 ~ 0x02C512
  • とんぼがえり等の交代時に特性の自然回復処理を行う.

E3:連続攻撃の途中で相手のHPが0になった場合の攻撃中断分岐

E3 [TT] [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C515 ~ 0x02C566
  • [TT]で指定した対象の体力が0になった時点で[@@ @@ @@ 08]に分岐する.

E4:ひみつのちから処理特定

E4
  • 関数参照アドレス:0x02C569 ~ 0x02C61E
  • 使用フィールドに応じて0820d224のテーブルから追加効果や威力を参照する

E5:戦闘後アイテム入手処理

E5
  • 関数参照アドレス:0x02C621 ~ 0x02C706
  • 戦闘終了時に読み込む.特性『ものひろい』のポケモンが手持ちにいた際,20d250~20d28f
     特性「ものひろい」アイテム・確率リストに設定されたアイテムIDのから確立でアイテムを入手する.

E6:グラフィックを更新

E6
  • 関数参照アドレス:0x02C709 ~ 0x02C76E
  • 表示グラフィックを更新するだけなので対象を指定しないと不具合が生じる.詳細未調査
    1BD2BAにある

E7:天候関係のターン経過処理?

E7
  • 関数参照アドレス:0x02C771 ~ 0x02C7AE
  • 天候のターン経過処理に含まれるので恐らくそれらの処理の何か.

E8:みずあそび,どろあそび処理

E8 [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C7B1 ~ 0x02C866
  • 技スクリプトではなくアセンブリで分岐しているので外見上は『みずあそび』と『どろあそび』は同一のスクリプト.
    効果中にこのコード『E8」がある箇所を通過すると分岐する.

E9:ウェザーボール判定

E9
  • 関数参照アドレス:0x02C869 ~ 0x02C91E
  • 天候フラグを参照し,天候ごとに設定されたタイプ,威力の技に分岐する.

EA:リサイクル判定

EA [@@ @@ @@ 08]
  • 関数参照アドレス:0x02C921 ~ 0x02C9C6
  • 使用後のアイテムをかき戻す.

EB:ほごしょく判定

EB
  • 関数参照アドレス:0x02C9C9 ~ 0x02CA76
  • 20d290~20d299 「ほごしょく」変化するタイプリストに応じてタイプを変化させる.

EC:未調査

EC
  • 関数参照アドレス:0x02CA79 ~ 0x02CB3A
  • 未調査

ED:未調査

ED
  • 関数参照アドレス:0x02CB3D ~ 0x02CB8E
  • 未調査

EE:かわらわり判定

EE
  • 関数参照アドレス:0x02CB91 ~ 0x02CC0A
  • 相手の『ひかりのかべ』,『リフレクター』等の効果をフラグオフする.
      02023d3e 味方フィールドの壁判定(2匹で兼用)
      02023d40 相手フィールドの壁判定(2匹で兼用)

EF:未調査

EF
  • 関数参照アドレス:0x02CC0D ~ 0x02CFD6
  • 未調査

F0:未調査

F0
  • 関数参照アドレス:0x02CFD9 ~ 0x02D132
  • 未調査