少し前にスレ11の548で指摘のあった点です。自分も試してみましたが、遅いような遅くないような、いまいち判断付きませんでした。86氏の指摘では「耐性防具を増やした際の余計なループが関係しているのでは」ということでした。確かに耐性防具の数はオリジナルの15から64に大幅に拡張され、さらに耐性判定の際には武器~アクセサリまで5回ループするので、ループ数は最大75(15*5)から320(64*5)へと大幅に増えます(回避判定時にも同じような部分があります)*1。そこで指摘した方に確認をしてもらいたいのですが、DQ3 Extendedを当てた状態で下記の部分を変更して、有意な違い(オリジナルと同じ動作)が得られるかどうかやってみてください。結果はスレに書いてもらえばOKです。
02876A-B を#003Cから#$0008に変更(特殊回避判定)
02BC4D-E を#003Fから#$000Eに変更(耐性判定)
この仮説が正しい場合、問題の原因は余計なループをしているから、ということになるので、対処法は余計なループをしないようにする、ということになります。やり方としては2種類あって
- 「耐性アイテム」のアイテムIDが0x00ならループをやめるようにプログラムを変える
- 耐性アイテムや特殊回避アイテムを増やすたびに上記の値を変更する
のどちらかになります。1のほうがスマートではありますが、「気をつければいい」という類のものではあるので値自体はオリジナルのままにして、readmeに注意事項として記載、でもいいかなとは思います。
(2011-05-15追記)
その後86氏から再度連絡をいただき、やはり耐性判定部分が関係しているようです。「スマートな方法」で”そのうち”対応してくださるそうです。それまでは気になる人は2の方法でもループの回数を減らせるのでそっちで現象を回避してください。
(2011-05-17追記)
5/15のうちに86氏が修正版のDQ3 Extended ver1.444をろだにうpしてくださいました。これは上記1の対応がされています。一応周知のためにここにも書きます。86氏作業乙でした。
*1:耐性防具を装備していない序盤はループ回数が常に最大になるので顕著だと思います。
コメント