DQ3 ストーリー変更(アレフガルド船入手)

追加ダンジョンクリアによってオリハルコンが入手できるため、マイラまで徒歩で行けば王者の剣が入手できます(オリハルコンの価格を低くして王者の剣入手にかかるコストを高くしました)。このタイミングで船の取得を可能にします。流れとしては

  1. 太陽の石入手後、カンダタに話し掛けて船の手配を依頼する
  2. 王者の剣入手後、カンダタに話し掛けて必要経費(20000G)を払えば船取得

となります。フラグを立てるだけのお使いイベント的なものです。ポイントは

  • 船を入手した時点で船をラダトーム西に出現させる

くらいですが、これもバイナリwikiにアレフガルドの船の座標のアドレスがばっちり出ているので苦労はしません。あと、若干カンダタのキャラを変えて勇者を「だんな」呼ばわりすることにしましたw。これといって難しいこともないので実装も本エントリで終わらせてしまいます。

  • SR: $0A5DD4 ラダトーム2F進入時初期化処理
0A5DE3JSL $CCF661SR: $0CF661ラダトーム2Fイベント設定・NPC他設定
0A5DE7-9NOP

  • SR: $0CF661 ラダトーム2Fイベント設定・NPC他設定(新SR)
0CF661JSL $C77843SR: $077843 引数:1#$CAA5BD移動・宝箱・ドア・NPC上方設定用SRアドレス設定
0CF668JSL $C7785FSR: $07785F 引数:1#$CDEEB6イベント設定
0CF66FRTLreturn

  • SR: $0CC9F1 ラダトーム2FNPC設定
0CC9F1-3NOP
0CC9F4JSL $CCF670SR: $0CF670ラダトーム2FNPC設定
0CC9F8RTLreturn

  • SR: $0CF670 ラダトーム2FNPC設定(新SR)
0CF670JSL $CCF4A5SR: $0CF4A5カンダタに船入手依頼中か調べる(該当c=on)
0CF674BCS #$07if(c==on) goto $0CF67D
0CF676LDA #$0456A=#$0456
0CF679JSL $C75828SR: $075828NPC1設定
0CF67DRTLreturn

  • SR: $0B9CC4 NPC1_TalkSR_0456(カンダタのNPC)
0B9CE4JSR $FA80SR: $0BFA80ラダトームカンダタ会話処理
  • SR: $0BFA80 ラダトームカンダタ会話処理(新SR)
0BFA80LDA $35B1A=$35B1
0BFA83AND #$0004A&=#$0004アレフガルドで船を手に入れた
0BFA86BEQ #$05if(z==on) goto $0BFA8D
0BFA88BRK $1045 ($0B1045)goto $00FFE6(メッセージ表示) #$1045
0BFA8BBRA #$28goto $0BFAB5
0BFA8DJSL $CCF64FSR: $0CF64F王者の剣を入手していてカンダタに船入手を依頼しているか(該当c=on)
0BFA91BCC #$29if(c==off) goto $0BFABC
0BFA93BRK $1046 ($0B1046)goto $00FFE6(メッセージ表示) #$1046
0BFA96JSL $C3226FSR: $03226F 引数:1#$16 引数:2#$12ウィンドウ表示
0BFA9CJSL $C322C6SR: $0322C6 引数:1#$16ウィンドウ消去?
0BFAA1BCS #$14if(c==on) goto $0BFAB7
0BFAA3JSL $CDEEC8SR: $0DEEC8カンダタに船の代金20000Gを支払う処理(支払い完了c=on)
0BFAA7BCC #$09if(c==off) goto $0BFAB2
0BFAA9BRK $1047 ($0B1047)goto $00FFE6(メッセージ表示) #$1047
0BFAACJSL $CCF362SR: $0CF362アレフガルド船取得処理
0BFAB0BRA #$03goto $0BFAB5
0BFAB2BRK $1048 ($0B1048)goto $00FFE6(メッセージ表示) #$1048
0BFAB5BRA #$03goto $0BFABA
0BFAB7BRK $1049 ($0B1049)goto $00FFE6(メッセージ表示) #$1049
0BFABABRA #$31goto $0BFAED
0BFABCLDA $3544A=$3544
0BFABFAND #$0020A&=#$0020
0BFAC2BEQ #$30if(z==on) goto $0BFAF4
0BFAC4LDA $35B4A=$35B4
0BFAC7AND #$0040A&=#$0040
0BFACABNE #$0Bif(z==off) goto $0BFAD7
0BFACCBRK $105A ($0B105A)goto $00FFE6(メッセージ表示) #$105A
0BFACFLDA #$0040A=#$0040
0BFAD2TSB $35B4A or $35B4ラダトームのカンダタと会話した
0BFAD5BRA #$03goto $0BFADA
0BFAD7BRK $1042 ($0B1042)goto $00FFE6(メッセージ表示) #$1042
0BFADAJSL $CDAC66SR: $0DAC66はい/いいえ選択処理(はいc=on)
0BFADEBCC #$0Fif(c==off) goto $0BFAEF
0BFAE0BRK $1043 ($0B1043)goto $00FFE6(メッセージ表示) #$1043
0BFAE3LDA #$0080A=#$0080
0BFAE6TSB $35B3A or $35B3
0BFAE9JSL $CDADD8SR: $0DADD8カウンタに1000をセット
0BFAEDBRA #$03goto $0BFAF2
0BFAEFBRK $1044 ($0B1044)goto $00FFE6(メッセージ表示) #$1044
0BFAF2BRA #$09goto $0BFAFD
0BFAF4BRK $07DE ($0B07DE)goto $00FFE6(メッセージ表示) #$07DE
0BFAF7LDA #$0040A=#$0040
0BFAFATSB $35B4A or $35B4
0BFAFDRTSreturn

  • SR: $0CF58F NPC1_MoveSR_0456(カンダタのNPC)(新SR)
0CF58FCOPgoto $00FFE4
0CF590JSL $CDAEB1SR: $0DAEB1カウンタが1000になるまで待機
0CF594JSL $CCD392SR: $0CD392キャラクターイベント中移動フラグON
0CF598JSL $CCD35ESR: $0CD35E移動速度4/3倍セット
0CF59CLDX #$0018X=#$0018
0CF59FLDA #$0021A=#$0021
0CF5A2JSL $C75474SR: $075474キャラクター移動先座標指定
0CF5A6JSL $CCD58CSR: $0CD58C指定座標にX軸→Y軸の順でキャラクター移動
0CF5AALDX #$0022X=#$0022
0CF5ADLDA #$001BA=#$001B
0CF5B0JSL $C75474SR: $075474キャラクター移動先座標指定
0CF5B4JSL $CCD58CSR: $0CD58C指定座標にX軸→Y軸の順でキャラクター移動
0CF5B8JSL $C1E32ESR: $01E32E 引数:1#$0053BGM再生
0CF5BEJSL $C75930SR: $075930キャラクター消滅
0CF5C2JSL $CDADE6SR: $0DADE6カウンタに2000をセット
0CF5C6RTLreturn

  • SR: $0DEEB6 ラダトーム2F追加イベント処理(新SR)
0DEEB6COPgoto $00FFE4
0DEEB7JSL $CCE1D1SR: $0CE1D1イベント開始待ち?
0DEEBBJSL $CDAED1SR: $0DAED1カウンタが2000になるまで待機
0DEEBFJSL $CDD65CSR: $0DD65CPC表示?
0DEEC3JSL $CCD298SR: $0CD298イベント終了時処理?
0DEEC7RTLreturn

カンダタに船入手の依頼をする際にイベントを起こしていますが、きわめて簡単なので省略します。続いて王者の剣入手後の実装を行います(半分くらいは上に書いてしまっていますが)。

  • SR: $0DEEC8 カンダタに船の代金20000G支払う処理(支払い完了c=on)(新SR)
0DEEC8JSL $C45AB0SR: $045AB0 引数:1#$70所持金取得
0DEECDLDA $72A=DP($72)
0DEECFAND #$00FFA&=#$00FF
0DEED2CMP #$0001A>=#$0001?所持金3バイト目が1以上(65536以上所持)か
0DEED5BCS #$0Aif(c==on) goto $0DEEE1
0DEED7LDA $70A=DP($70)
0DEED9CMP #$4E20A>=#$4E20?
0DEEDCBCS #$03if(c==on) goto $0DEEE1
0DEEDECLCc=off
0DEEDFBRA #$16goto $0DEEF7
0DEEE1SEP #$20m=on(A/M:8b)
0DEEE3STZ $72DP($72)=#$00
0DEEE5REP #$20m=off(A/M:16b)
0DEEE7LDA #$4E20A=#$4E20
0DEEEASTA $70DP($70)=A
0DEEECJSL $C45B66SR: $045B66 引数:1#$70所持金減額
0DEEF1JSL $C32251SR: $032251 引数:1#$12ウィンドウ表示
0DEEF6SECc=on
0DEEF7RTLreturn

  • SR: $0CF362 アレフガルド船取得処理(新SR)
0CF362LDA #$0004A=#$0004
0CF365TSB $35B1A or $35B1アレフガルドで船を入手したフラグON
0CF368LDA #$00C0A=#$00C0
0CF36BSTA $3516$3516=A
0CF36ELDA #$00DDA=#$00DD
0CF371STA $3522$3522=A船の座標指定
0CF374RTLreturn

あと、船着場の親子のセリフもあわせて変更しておきます。

20100330224804.jpg

スポンサーリンク

コメントを書く

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