DQ3 ストーリー変更(メルキド襲撃5)

次はイベント中のメルキドの町の変更を行います。作業の手間を省くために、「メルキド民家2F」「メルキド格闘場」へはNPCを配置して移動できないようにします。また、イベント中は宿屋に泊まれないようにしてあるので、代替の回復手段として下のほうにいる王様気取りのじいさんに回復してもらうようにします(もっとも死人は生き返らないし、いったん戦闘が始まったらボス戦までノンストップですが)。今回もNPC1の設定については省略します。

  • SR: $0A8E4A メルキド移動・宝箱・ドア・NPC情報設定
0A8EA1 JSL $CCFC07 SR: $0CFC07 メルキドNPC・ルーラ設定
  • SR: $0CFC07 メルキドNPC・ルーラ設定(新SR)
0CFC07 JSL $CCB7AF SR: $0CB7AF メルキドNPC設定
0CFC0B JSL $CCFBFC SR: $0CFBFC メルキド襲撃中にルーラを使用不能にする
0CFC0F RTL return
  • SR: $0CB7AF メルキドNPC設定
0CB7C4 JSL $CCFC93 SR: $0CFC93 メルキドNPC設定(サブ)
  • SR: $0CFC93 メルキドNPC設定(サブ)
0CFC93 LDA #$01AA A=#$01AA
0CFC96 JSL $C75828 SR: $075828 NPC1設定
0CFC9A JSL $CCF2E1 SR: $0CF2E1 メルキド襲撃イベントが終わっているか(該当c=on)
0CFC9E BCC #$07 if(c==off) goto $0CFCA7
0CFCA0 LDA #$058A A=#$058A
0CFCA3 JSL $C75828 SR: $075828
0CFCA7 JSL $CCF193 SR: $0CF193 メルキドにモンスター襲撃中か(襲撃中c=on)
0CFCAB BCS #$0F if(c==on) goto $0CFCBC
0CFCAD LDA #$01A5 A=#$01A5
0CFCB0 JSL $C75828 SR: $075828
0CFCB4 LDA #$01A7 A=#$01A7
0CFCB7 JSL $C75828 SR: $075828
0CFCBB RTL return
0CFCBC LDA #$057F A=#$057F 商人のNPC(メルキド民家2Fに行けないように配置)
0CFCBF JSL $C75828 SR: $075828
0CFCC3 LDA #$0580 A=#$0580 男のNPC(格闘場に行けないように配置)
0CFCC6 JSL $C75828 SR: $075828
0CFCCA LDA #$0581 A=#$0581 ガライのNPC(町の入り口に配置)
0CFCCD JSL $C75828 SR: $075828
0CFCD1 LDA #$0582 A=#$0582 兵士のNPC(町の入り口に配置)
0CFCD4 JSL $C75828 SR: $075828
0CFCD8 LDA #$0583 A=#$0583 兵士のNPC(町の入り口に配置)
0CFCDB JSL $C75828 SR: $075828
0CFCDF LDA #$0584 A=#$0584 モンスターのNPC
0CFCE2 JSL $C75828 SR: $075828
0CFCE6 LDA #$0585 A=#$0585 モンスターのNPC
0CFCE9 JSL $C75828 SR: $075828
0CFCED LDA #$0586 A=#$0586 モンスターのNPC
0CFCF0 JSL $C75828 SR: $075828
0CFCF4 LDA #$0587 A=#$0587 モンスターのNPC
0CFCF7 JSL $C75828 SR: $075828
0CFCFB LDA #$0588 A=#$0588 モンスターのNPC
0CFCFE JSL $C75828 SR: $075828
0CFD02 LDA #$0589 A=#$0589 モンスターのNPC
0CFD05 JSL $C75828 SR: $075828
0CFD09 RTL return

モンスターのNPCは初期座標をX=#$FF Y=#$FFにしてあります。

  • SR: $0B2F48 NPC1_TalkSR_01AA(メルキド町長?会話処理)
0B2F48 LDA $3545 A=$3545
0B2F4B AND #$0008 A&=#$0008 ゾーマを倒しているか
0B2F4E BNE #$03 if(z==off) goto $0B2F53
0B2F50 JMP $2F59 ($0B2F59) goto $0B2F59
0B2F53 BRK $0353 ($0B0353) goto $00FFE6(メッセージ表示) #$0353
0B2F56 JMP $2F5C ($0B2F5C) goto $0B2F5C
0B2F59 JSR $F19D SR: $0BF19D メルキド町長?会話処理
0B2F5C RTL return
  • SR: $0BF19D メルキド町長?会話処理(新SR)
0BF19D JSL $CCF193 SR: $0CF193 メルキドにモンスター襲撃中か(襲撃中c=on)
0BF1A1 BCC #$17 if(c==off) goto $0BF1BA
0BF1A3 BRK $1015 ($0B1015) goto $00FFE6(メッセージ表示) #$1015
0BF1A6 JSL $CDACD2 SR: $0DACD2
0BF1AA JSL $C3D332 SR: $03D332 生存者HPMP回復
0BF1AE JSL $C737BE SR: $0737BE 引数:1#$1016
0BF1B4 JSL $CDA8AD SR: $0DA8AD 回復SE再生
0BF1B8 BRA #$03 goto $0BF1BD
0BF1BA BRK $0343 ($0B0343) goto $00FFE6(メッセージ表示) #$0343
0BF1BD RTS return

その他のNPCの会話処理はこれといって特筆すべき点もないので省略します。次回は今回のイベントの肝である連続戦闘の部分を実装します。