成長限界上昇パッチ本部にURLがのってしまったので多くの改造野郎がきてくれたらしく、カウンタの上がる速度がかなり上がるようになりました。有益な情報を提供できるように鋭意努力する次第です。前回指摘した「素早さのリミットが500になると一定値を超えると確実に先手が取れる」についてまず検証をしてみます。周知の事実ですが、DQでは素早さの値にランダム値を掛けてターンごとの素早さを決定しているので必ずしも素早さ通りには順番は回ってきません。DQ3では$025D56でターンごとの各キャラクターの素早さを決定し、その後$0263A2で多少の補正をして行動順が最終的に決まります。呼んで先ほどの20を加算してある素早さとかけて上2バイトに1を足して素早さを決定しています。ここでポイントになるのが$001457です。今までこれを$70-$80の間の乱数発生と思っていたので素早さが一定値以上になるとモンスター側の最大値(255)がターン中の素早さで上回れないと予想したのですが、実際プログラムを走らせてみると$70-$80以外の範囲の値も返ってきます。いうわけで、次にこの中を見てみます。$0014D4は(A+(#$00-X))*16の下位1バイトを返す乱数発生SRです。考えてみると、例えば(#$88+#$08)*16なんていう場合には下位1バイトは#$00になるわけですね。この場合はもともとの素早さがいくらあろうとターン中の素早さは0(+1)になってしまうわけです。いうわけで「確実に先手が取れる」というのは間違いでした。いえ、もともとの素早さが十分大き(511に近い)ければ、先手を取れる確率が高くなるのは確かだと思います。この点は何らか考える必要があると思います。1点問題を見つけました。素早さが255以上のキャラクターにピオリムをかけるとすばやさが「65xxxあがった」というメッセージが表示されます。ピオリムによって素早さが255になったので255-元の素早さがマイナスになりFFXXのような値になっているために発生している問題だと思われます。A-=(DP($00)+c)略$029A6Bで、戦闘中の現在の素早さを取得し、$029A73でステータス上の素早さを取得して足し、結果が255(#$FF)以上の場合は255でクリップし、$029A83でその結果を戦闘中の素早さとして設定しています。その後、設定後の素早さ(A)から設定前の素早さ($00)を引いて0でなければ、「すばやさが○○上がった」のメッセージを表示するという処理になっているため、この問題が発生します。この点に関しては255と比較するのではなく、511(#$01FF)と比較すればいいのかもしれません。コメントをキャンセルメールアドレスが公開されることはありません。コメントは管理者の承認後表示されます。