DQ3 使用できる呪文の変更2

残りは戦闘行動の設定と呪文習得の設定です。まず戦闘行動ですが、必須の設定項目は

  • 行動プログラムアドレス(6-8バイト)
  • 対象数(21バイト目0-1ビット)
  • 選択対象(22バイト目0-2ビット)

です(多分)。行動プログラムアドレスは「$C2D3E6」を設定します。アドレスはHiROMのアドレス(?)にする必要があるので注意してください。対象数は「3(全体)」にします。選択対象は「2(味方全部?)」にします。それからメガザルが実行されたときにハングしないように$02D3E6をすぐリターンするようにしておきます。

  • SR: $02D3E6 メガザル(仮)
02D3E6RTLreturn

実装はまた後で行うので後ろはある程度(100バイトくらい?)余裕を持ってあけておきましょう。

次に習得呪文の変更です。習得呪文は$3EF879で定義されています。1レコードは覚えるレベルと呪文番号(呪文基本データのインデックス)で1バイトずつ、計2バイトです。先頭から魔法使い、僧侶、勇者、賢者、盗賊、遊び人、商人の順で習得する呪文が並んでいます。それぞれの職業がどのレコードから始まる呪文を習得していくかは、職業 $120000*1の呪文習得アドレス(11-13バイト)で指定しておきます。魔法使いは$3EF879から、僧侶は$3EF8B7からという風になっており、対応しているのがわかると思います。習得する呪文数を変えた場合はこのアドレスも合わせて変更しておかないと正しく動作しません。今回はメガンテの代わりなので僧侶のメガンテをメガザルに変えればOKです。1点注意なのですが、呪文を習得しないようにするには「設定なし」にするだけでは不十分のようです(レベルアップ時に「○○は を覚えた」と余計なメッセージが表示される)。今回の改造では覚える呪文の数が減るケースがあるので空いたところは詰める必要がありますが、この作業は一通り終わってから行うことにします。

※まねまねの実装が終わったと思ったら思いっきり不十分でした・・・。実装やめようかなーと思うくらい面倒くさい。

*1:拡張パッチでアドレスが移動しています。これは移動後のアドレスです

コメント

タイトルとURLをコピーしました