DQ3 「みのまもり」を導入する4

前回で基本的なSRを一通り実装したので今回はレベルアップ時のステータス変更部分を実装します。レベルアップ時に固定長データ「職業」を参照するため、みのまもり分のレコードサイズを13バイト拡張します。(登録所キャラメイク用性格レコードID(1Byte)、男初期値(1Byte)、女初期値(1Byte)、成長段階1~5のレベル、成長値(それぞれ5Byte)がその内訳です)これにより職業の1レコードのサイズは$180になるため、プログラム中でレコードサイズを指定している部分及び開始アドレスを変更する必要があります(詳細は省略)。

  • SR: $043C83 レベルアップ時のステータスアップ,呪文習得処理?
043D60JSR $2307SR: $042307身の守りレベルアップ時処理
043D64JSR $2300SR: $042300体力取得+メモリセット(レベルアップ時用)
  • SR: $042307 身の守りレベルアップ時処理(新SR)
042307PHXPush X
042308JSL $041F21SR: $041F21身の守り取得
04230CSTA $40CB$7E40CB=A
04230FLDX #$0174X=#$0174
042312JSR $3E84SR: $043E84ステータス上昇分計算
042315BCS #$0Cif(c==on) goto $042323
042317LDX #$0176X=#$0176
04231AJSR $3EE8SR: $043EE8ステータス小数点部分計算?
04231DLDX #$0010X=#$0010
042320JSR $3F20SR: $043F20性格に応じた補正値を取得
042323PLXPull X
042324JSL $041FAESR: $041FAEレベルアップ時の身の守りステータスアップ処理
042328JSL $041F21SR: $041F21身の守り取得
04232CCMP $40CDA>=$7E40CD?
04232FBCS #$10if(c==on) goto $042341
042331LDA $40CDA=$7E40CD
042334JSL $041F3BSR: $041F3B身の守り変更
042338LDA #$0000A=#$0000
04233BJSL $041F58SR: $041F58身の守り小数点部分変更
04233FBRA #$E7goto $042328
042341SECc=on
042342SBC $40CBA-=$7E40CB
042345STA $4082$7E4082=Aみのまもり上昇分保持用バッファ
042348RTSreturn
  • SR: $042300 体力取得+メモリセット(レベルアップ時用)(新SR)
042300JSR $354CSR: $04354C体力取得
042303STA $40CB$7E40CB=A
042306RTSreturn

レベルアップ時のステータスアップ表示も変更する必要があります。ちなみにSFC版ではFC版と異なり、幸せの靴を装備していてもフィールド上でレベルアップ処理が行われることはないので、戦闘終了後のレベルアップ部分を変更するだけで事足ります。ステータスアップのメッセージ($2F-31)も力・素早さ、身の守り・体力、賢さ・運のよさの順になるように変えます。

  • SR: $02A7EC レベルアップ表示処理
02A86DJSR $EC5DSR: $02EC5Dレベルアップ時ステータスに変化がないか調べる(変化なしc=off)
02A890LDA $4082A=$7E4082身の守りアップ値セット
02A899LDA $4071A=$7E4071体力アップ値セット
02A8A5-7NOP
02A8A8JSR $EC4DSR: $02EC4Dレベルアップ時賢さ・運の良さセット
  • SR: $02EC5D レベルアップ時ステータスに変化がないか調べる(変化なしc=off)(新SR)
02EC5DLDA $406DA=$7E406D
02EC60ORA $406FAor=$7E406F
02EC63ORA $4071Aor=$7E4071
02EC66ORA $4073Aor=$7E4073
02EC69ORA $4075Aor=$7E4075
02EC6CORA $4082Aor=$7E4082
02EC6FBEQ #$02if(z==on) goto $02EC73
02EC71SECc=on
02EC72RTSreturn
02EC73CLCc=off
02EC74SECc=on
  • SR: $02EC4D レベルアップ時賢さ・運の良さセット(新SR)
02EC4DLDA $4073A=$7E4073
02EC50STA $BE81$7EBE81=A
02EC53JSR $A8E3SR: $02A8E3レベルアップ時のステータスの桁揃え処理
02EC56LDA $4075A=$7E4075
02EC59STA $BE85$7EBE85=A
02EC5CRTSreturn

とりあえず今回はこの辺まで。次回は転職時、すごろく時の変更を行います。

20110308022514.jpg

スポンサーリンク

コメントを書く

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