DQ3 性格と職業の相性を考慮した成長率補正をする

性格と職業には相性の設定があり、ダーマでの転職時に「ねっからの〇〇じゃのう」や「世も末じゃ(意訳)」といったコメントで知ることができますが、実際にはいくら褒められたところで何が変わるわけではありません。というわけで、各性格の成長補正値にこういった職業との相性を加味することで、性格の存在意義を高めよう、というのが目的です。具体的な実装方法は、相性に応じたボーナス値(プラス、マイナス両方ある)を設定しておき、各性格のステータス補正値にさらに加算(減算)する、というものです。簡略化のためにボーナス値は全ステータス(力~運の良さ)で共通とします。

  • SR: $043F20 性格に応じた補正値を取得
043F2D JSL $041E31 SR: $041E31 職業との相性を考慮した補正値取得
  • SR: $041E31 職業との相性を考慮した補正値取得
041E31 JSL $046C63 SR: $046C63 性格に対応するステータス補正値(ベース:128)を取得
041E35 JSR $1E41 SR: $041E41 職業と性格の相性から補正ボーナス値を取得する
041E38 RTL return
  • SR: $041E31 職業と性格の相性から補正ボーナス値を取得する
041E42 PHX Push X
041E43 PHA Push A
041E44 PHY Push Y
041E45 LDX $40C7 X=$7E40C7
041E48 LDY $40C9 Y=$7E40C9
041E4B JSL $090501 SR: $090501 引数:1#$01 引数:2#$0010 引数:3#$D21C00 引数:4#$78 構造体アクセス Y番目の先頭アドレスを$00,第4引数にセット
041E56 JSL $03F800 SR: $03F800 職業と性格の相性チェック(職業数拡張版)
041E5A BCS #$05 if(c==on) goto $041E61
041E5C LDA #$0000 A=#$0000
041E5F BRA #$0B goto $041E6C
041E61 ASL A<<1
041E62 TAX X=A
041E63 LDA $121C81,X A=$121C81+X ボーナス定数値取得
041E67 CLC c=off
041E68 ADC $03,S A+=Stack($03)
041E6A STA $03,S Stack($03)=A
041E6C PLY Pull Y
041E6D PLA Pull A
041E6E PLX Pull X
041E6F PLP Pull P Flag
041E70 RTS return

また、これに伴い、相性値に応じたボーナス値を$121C81-に設定します。ぶとうかが装備すると弱くなる武器($043ADA-)と同じく、符号付き2バイトで定義します。

ID ボーナス値 転職時コメント
00 0 (なし)
01 24 ねっからの〇〇じゃのう
02 -16 なんという〇〇じゃ。まあ よい…
03 -24 〇〇の分際で(中略)結構わらかしてくれるぞ
04 16 さすが〇〇の性格のことはあるのう
05 -24 〇〇になりたいとは世の中がいけないからかのう
06 -8 ちょっと大変そうな気がする
07 -32 ウケ狙いか
08 32 天職とも言えるナイスチョイス
09 -8 〇〇になりたいとはずいぶん成長したのう

これにより、例えばセクシーギャルで賢者など、性格と相性の悪い職業だと成長率が最大25%悪くなります。ただ、これだけだと、単に職業を変えたときに性格を変える装備品を装備すればいいだけなので、不十分かなと思います。性格を変える消耗品はまだいいと思うのですが、装備すると性格の変わるアイテムは便利すぎるのでもうちょっと何とかならんかなーと思います。いい案は思いつかないけど。