DQ3 ストーリー変更(ラスボス4)

次は、ゾーマの城再突入時にフロア数を増やすようにします。全体としてやることは特に難しいことはありません。フロア初期化処理中の移動先データをフラグを見て差し替えるだけで条件に応じたフロアの追加は実現できます(この切り替え処理をミスってテストプレイをしてくれた方には階段に重なっても移動しないというご迷惑をかけしてしまいましたorz)。今回問題となるのは、フロア自体のギミックです。予定では

  • 裏技で突破できない回転床フロア
  • 無限回廊フロア

を追加する予定だったんですが、時間切れで回転床フロアしか実装できませんでした。無限回廊フロアはイメージ的にはDQ2のロンダルキアの洞窟クラスの嫌らしいのを用意したかったのですが、DQ3の無限回廊は簡単なものしかなく、いいお手本がないのでまだ実装出来ていません。DQ6のスフィーダの盾のダンジョン(でしたっけ?)でも見て参考にしようと思います。

  • SR: $0AA880 ゾーマの城B3F移動・宝箱・ドア・NPC情報設定
0AA88E-90NOP
0AA891JSL $CDF811SR: $0DF811ゾーマの城B3F階段移動データセット
  • SR: $0DF811 ゾーマの城B3F階段移動データセット(新SR)
0DF811LDA $35B4A=$35B4
0DF814AND #$0020A&=#$0020オルテガが竜の女王の石化の呪いを解いた
0DF817BEQ #$08if(z==on) goto $0DF821
0DF819LDX #$01B6X=#$01B6
0DF81CJSL $C614BBSR: $0614BB階段移動データ設定
0DF820RTLreturn
0DF821LDX #$00BBX=#$00BB
0DF824JSL $C614BBSR: $0614BB階段移動データ設定
0DF828RTLreturn

  • SR: $0AA8A1 ゾーマの城B4F移動・宝箱・ドア・NPC情報設定
0AA8A1-3NOP
0AA8A4JSL $CDF829SR: $0DF829ゾーマの城B4F階段移動データセット
  • SR: $0DF829 ゾーマの城B4F階段移動データセット(新SR)
0DF829LDA $35B4A=$35B4
0DF82CAND #$0020A&=#$0020オルテガが竜の女王の石化の呪いを解いた
0DF82FBEQ #$08if(z==on) goto $0DF839
0DF831LDX #$01BBX=#$01BB追加フロアに移動
0DF834JSL $C614BBSR: $0614BB階段移動データ設定
0DF838RTLreturn
0DF839LDX #$00BCX=#$00BC
0DF83CJSL $C614BBSR: $0614BB階段移動データ設定
0DF840RTLreturn

  • SR: $0DF7DA ゾーマの城追加フロア1進入時初期化処理
0DF7DALDA #$017AA=#$017A
0DF7DDJSL $C77365SR: $077365サブマップ画像情報取得
0DF7E1LDA #$001CA=#$001C
0DF7E4LDX #$0020X=#$0020
0DF7E7JSL $C777F9SR: $0777F9フロアのエンカウント(A),戦闘背景設定(X)
0DF7EBLDA #$000AA=#$000A
0DF7EEJSL $C7773FSR: $07773F移動単位設定?
0DF7F2JSL $CC997CSR: $0C997C
0DF7F6JSL $CADEC9SR: $0ADEC9フロア階層設定(B4F)
0DF7FAJSL $CADE4FSR: $0ADE4Fルーラ・キメラの翼使用不可(封印)設定
0DF7FEJSL $C7786DSR: $07786D 引数:1#$CDA5BFBGM設定
0DF805JSL $C77843SR: $077843 引数:1#$CDF841移動・宝箱・ドア・NPC情報設定用SRアドレス設定
0DF80CRTLreturn

  • SR: $0DF841 ゾーマの城追加フロア1移動・宝箱・ドア・NPC情報設定用SRアドレス設定
0DF841LDX #$01B7X=#$01B7
0DF844JSL $C614BBSR: $0614BB階段移動データ設定
0DF848LDX #$01B8X=#$01B8
0DF84BJSL $C614BBSR: $0614BB階段移動データ設定
0DF84FLDX #$01B9X=#$01B9
0DF852JSL $C614BBSR: $0614BB階段移動データ設定
0DF856LDX #$01C3X=#$01C3
0DF859JSL $C66696SR: $066696宝箱アイテム設定
0DF85DLDX #$01C4X=#$01C4
0DF860JSL $C66696SR: $066696宝箱アイテム設定
0DF864JSL $C738E2SR: $0738E2 引数:1#$00 引数:2#$01 引数:3#$CBB707サブマップイベント等設定?
0DF86DJSL $C738E2SR: $0738E2 引数:1#$00 引数:2#$00 引数:3#$CBB70Cサブマップイベント等設定?
0DF876JSL $C738E2SR: $0738E2 引数:1#$01 引数:2#$04 引数:3#$CAF7B7サブマップイベント等設定?
0DF87FRTLreturn

フロアの編集自体はDQ3マップエディタで回転床の編集もサポートしてもらったのでサクサクできました。直前のフロアの通行情報を見るに、1マス16×16の左上8×8のみに回転床属性をセットすればいいようです。ここで肝になるのは$0DF7EE-,$0DF864-,$0DF86D-の3箇所です。DQ3SFCは通常は1歩は8ピクセル分で16×16の1マスを2歩で移動しますが、$0DF7EE-でこの単位を変え、1歩16ピクセル分で16×16の1マスを1歩で移動するようにしています。$0DF864-,$0DF86D-は回転床の設定です(ここでまた回転床の種類の設定を逆にしてしまい、テストプレイをしてくれた方に指摘される始末。通行情報を作りなおすことも考えたのですが、SRの引数をオリジナルと逆にするだけで見た目正しく動くようになったのでそのままにしています)。

20100407224352.jpg

スポンサーリンク

コメントを書く

メールアドレスが公開されることはありません。コメントは管理者の承認後表示されます。