TOP > > 属性値の上限について
属性値の上限について
今作は属性を強化するスキルや効果で属性を強化する場合、
武器の属性値が一定値までしか強化されない。
上限は元の属性を1.3倍し、一の位を四捨五入した数値が属性の上限になる。
ボウガンの属性弾の場合、属性弾の属性値の一の位を四捨五入した数値が属性の上限になる。
属性値に攻撃力の影響があるが、この上限とは別に計算されるので、
攻撃力がいくつであっても属性値の上限は決まっている。
滅龍弾以外は属性強化スキル
LV3までしか効果がない。
滅龍弾は龍属性強化
LV2までしか効果がない。
ver1.05~ |
元の属性 |
上限 |
滅龍弾以外 |
270 |
351(会心撃【属性】がないと350) |
滅龍弾 |
180 |
234(会心撃【属性】がないと230) |
実際は属性値が決定した後の会心撃【属性】(属性会心)の補正後に四捨五入される。
例えば、ボウガンの火炎弾で火属性強化LV3を発動している場合、
270 * 1.3 = 351
になり、その後に会心撃【属性】(属性会心)の補正が入り、
351 * 1.3 = 456.3
になり、四捨五入されて460になる。
例外として
属性値450の場合は
450 x 1.3 = 585→590
になるはずなのだが、
浮動小数点の誤差問題というものに引っかかっているらしく、上限は580になる。
450 x 1.3 = 585
の時点で四捨五入されることで起きるので、
属性会心が発動する場合は一の位の5は0にならずに計算される。
浮動小数点の誤差問題とは
プログラム内では小数点は内部ではちゃんとした小数点にはなっていない。
例を挙げると小数点以下がこうなっている。
.99999999999999911182
この小数点に対して四捨五入や切り捨てを行うとこのように誤差が発生してしまう。
属性値は本来は10分の1された数値なのでこの問題の影響を受けてしまう。
これが起こるのは属性値だけではなく、ダメージや攻撃力にも影響がある。
今回は小数点は四捨五入されるので、小数点第一位が0.5でないと発生しない。
必ずこの浮動小数点の誤差が発生するわけではありません。