補正処理

  • ナイフのヒット時に呼ばれる補正用ヘルパーのIDを専用のものに変更
  • Statedef -2で専用のHelperがその時点でいくつ呼ばれているかを取得し、設定された補正値*Helperの個数を計算する

仕様

この場合、本来の

(元補正率)*(1-技ごとの補正率)*(1-技ごとの補正率)

ではなく、

(元補正率)*(1-技ごとの補正率*補正用Helperの個数)

という処理になるため、例えば今回問題になっているナイフの場合、本来

1*(1-0.02)*(1-0.02) = 0.9604

ではなく、

1*(1-0.02*2) = 0.96

となるため、多少値の精度が落ちてしまう*1

追記

実験したところ、Helperではなくvarを使うことで補正がかかるようになった。ただしそれでも同時当ての問題は残っており、1HIT目からでも補正がかかってしまう。このため、初段にナイフを使用した場合、通常

1*(1-0.02*2) = 0.96

となるところ*2が、

1*(1-0.02*3) = 0.94

となってしまい、通常よりも2%ほど補正がきつくなってしまう。

これについては同時当てを完全に回避する方法が無いのと、影響があるのが初段のみ(それ以降の場合通常の補正式が適用され、三つとも補正がかかる)ということで、致し方ないが仕様としておく。

*1:ただし、ダメージ計算に使用されるのは通常小数点第二位程度までで、それ以上は恐らくHitdefのceil()で切り落とされる

*2:初段には補正がかからないため