DQ6 勇者の転職条件を変える

久しぶりの質問回答コーナーです。お題は

DQ6の主人公の勇者転職条件に魔法戦士、パラディンマスターを加える

です。

DQ6の主人公の転職条件はぼんやり「どれか上級職1つ」と認識していたりしたので、パラディンをマスターしただけでは勇者に転職できなかったなあと今更ながら思い出しました。オリジナルでは「主人公はバトルマスター・賢者・スーパースター・レンジャーのどれか1つ」「それ以外のキャラクターは4職業全部マスター」が勇者への転職条件です。ダーマでの転職処理をたまたま見つけたので中を見ていたらそれほど難しもなさそうだったのでちゃちゃっとやってしまいます。まずはオリジナルの実装。

  • SR:$043674 職業熟練度一覧情報作成
043806LDA $4928A=$4928
043809CMP #$0001A==#$0001?キャラクターIDが主人公か?
04380CBEQ #$1Cif(z==on) goto $04382A
04380ELDA $493CA=$493C
043811BEQ #$15if(z==on) goto $043828バトルマスターをマスター状態か
043813LDA $4942A=$4942
043816BEQ #$10if(z==on) goto $043828賢者をマスター状態か
043818LDA $4944A=$4944
04381BBEQ #$0Bif(z==on) goto $043828スーパースターをマスター状態か
04381DLDA $4946A=$4946
043820BEQ #$06if(z==on) goto $043828レンジャーをマスター状態か
043822LDA #$0011A=#$0011勇者の職業ID
043825JSR $3891SR: $043891指定職業IDをリストに加える
043828BRA #$14goto $04383E
04382ALDA $493CA=$493Cバトルマスターをマスター状態か
04382DBNE #$F3if(z==off) goto $043822
04382FLDA $4942A=$4942賢者をマスター状態か
043832BNE #$EEif(z==off) goto $043822
043834LDA $4944A=$4944スーパースターをマスター状態か
043837BNE #$E9if(z==off) goto $043822
043839LDA $4946A=$4946レンジャーをマスター状態か
04383CBNE #$E4if(z==off) goto $043822

ここより前で下級職を含めたマスター状態をテンポラリの変数にセットしています(戦士:$7E492A、武闘家:$7E492C…)。上記のプログラムの前半は主人公以外、後半は主人公になっているので前半は4つの上級職が全てマスターになっている時のみ勇者をリストに追加、後半はどれかがマスターになっていれば勇者をリストに追加、という実装になっているのがわかります。というわけでここまでくれば後はやることはだいたい見えてきました。魔法戦士のマスター状態は$7E493E、パラディンのマスター状態は$7E3940に保持されているのでそれを追加でチェックすればいいということになります。

  • SR:$043674 職業熟練度一覧情報作成
043839JSR $FFD1SR: $04FFD1レンジャー・魔法戦士・パラディンのどれかがマスターか(該当c=on)
04383CBCS #$E4if(c==on) goto $043822
  • SR:$04FFD1 レンジャー・魔法戦士・パラディンのどれかがマスターか(該当c=on)(新SR)
04FFD1LDA $4946A=$4946レンジャーがマスター状態か
04FFD4BNE #$0Cif(z==off) goto $04FFE2
04FFD6LDA $493EA=$493E魔法戦士がマスター状態か
04FFD9BNE #$07if(z==off) goto $04FFE2
04FFDBLDA $4940A=$4940パラディンがマスター状態か
04FFDEBNE #$02if(z==off) goto $04FFE2
04FFE0CLCc=off
04FFE1RTSreturn
04FFE2SECc=on
04FFE3RTSreturn

お手軽にやるならこんな感じ。個人的には判定SRは分けないで1ヶ所に書いたほうがいいと思いますが。証拠画像は↓のようになります。

DQ6_Extended006

転職時の職業選択画面

DQ6_Extended007

転職後の職業熟練度画面。パラディンしかマスターしてないのに勇者になっていることがわかります。

スポンサーリンク

コメント

  1. 匿名 より:

    質問したものです。詳細ありがとうございます( ^^)
    なるほど、すごい技術ですね。ちなみに、制作主の開発環境はどのようなものでしょうか??
    どんなツールを使っているか簡単に教えていただきたいです。

    管理者より返信:

    開発環境は自作のSFCGENEditorです。

コメントを書く

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