与ダメ実験2
前回に引き続き、3種類の与ダメ実験をした。
結論
今日も長いので、結論を先に。
- 通常攻撃時のダメが、A*( (攻撃力)+(通常攻撃力上昇) )という式が、再確認できた。
- クリダメ増が x% のとき、クリダメは、通常の (1.5 + x/100) 倍になるという話をよく聞くけれど、それも確認できた。
- ダメ値の丸め処理は「切り捨て」であると分かった。
実験の概要
通常攻撃力上昇実験
前回の与ダメ実験で、通常攻撃のダメは
(ダメ値)=A*( (攻撃力)+(通常攻撃力上昇) )
という式で表されると書いた。けれど、実際には通常攻撃力上昇が19.2の場合しか検証していない。そこで、通常攻撃力上昇を別の値にして実験し、それでも実験結果が同じ式で説明できるか確認してみたい。
クリダメ実験
クリダメ上昇を x% とした場合、クリ時のダメはクリでないときに比べ(1.5+x/100)倍になると聞いたことがある。
これが本当なのか自分でも検証してみたい。これを次の二通りで検証してみる。
- 攻撃力を固定し、クリダメを変化させる
- クリダメを固定し、攻撃力を変化させる
通常攻撃力実験
まずは、通常攻撃力の実験の方から。訓練用の槌矛を2つ持っているので、片方に古代語の尖った(通常攻撃力上昇)を付けてみる。
叩く人、叩く相手、実験方法は前回と同じ。
通常攻撃力上昇だけ、前回の19.2から30.3に変化した。そのため、式が正しければダメは 0.6*((攻撃力)+30.3) という値になるはず。それを確認してみる。実験結果がこちら
x=物理攻撃力 | y=0.6*(x+30.3) | 実際のダメ |
---|---|---|
130 | 96.18 | 96 |
156 | 111.78 | 111 |
182 | 127.38 | 127 |
208 | 142.98 | 142 |
234 | 158.58 | 158 |
260 | 174.18 | 174 |
切り捨てた値が実際のダメ値に一致していることが確認できる。なので
(ダメ値)=A*( (攻撃力)+(通常攻撃力上昇) )
という式が再確認できた。
クリダメ実験
叩く人は50モンク、叩く相手はアラン西の木(幻想系)。 モンクの狩り技能(幻想系)はダメ5%アップ。
クリダメ実験1
攻撃力を194に固定し、クリダメ上昇を変化させる。その時のクリダメを測定してみる。
GP分(65%)と筋力ボーナス分(10%)で、クリダメアップ装備なしでは、クリダメ上昇が75%になる。
これに各種クリダメアップ装備を付け5%ずつ変化さる。
また、クリでないときのダメは117だった。
結果はこんな感じ
x=クリダメ上昇 | y=177*(1+x/100) | 実際のクリダメ |
---|---|---|
75% | 263.25 | 263 |
80% | 269.1 | 269 |
85% | 274.95 | 275 |
90% | 280.8 | 281 |
95% | 286.65 | 287 |
100% | 292.5 | 293 |
105% | 298.35 | 299 |
110% | 304.2 | 304 |
120% | 315.9 | 316 |
130% | 327.6 | 328 |
すこしズレているけれど、大まかにはあっている。そこで、例えば117というダメ値が内部的には117.3だったと仮定すると
x=クリダメ上昇 | y=177.3*(1+x/100) | 実際のクリダメ |
---|---|---|
75% | 263.925 | 263 |
80% | 269.79 | 269 |
85% | 275.655 | 275 |
90% | 281.52 | 281 |
95% | 287.385 | 287 |
100% | 293.25 | 293 |
105% | 299.115 | 299 |
110% | 304.98 | 304 |
120% | 316.71 | 316 |
130% | 328.44 | 328 |
となり、切り捨てた値が実際のクリダメに一致することが確認できる。なので、
クリ時の倍率は、端数を丸める前のダメ値にかけられる
と言えそう。
クリダメ実験2
次に、訓練用の槌矛を装備しクリダメ上昇を100%に固定する。バフなどで攻撃力を変化させながら、クリでないときのダメとクリのダメを記録する。
結果はこんな感じ
攻撃力 | 非クリダメ | クリダメ |
---|---|---|
130 | 84 | 210 |
156 | 97 | 244 |
182 | 111 | 278 |
208 | 125 | 312 |
234 | 138 | 347 |
260 | 152 | 381 |
クリダメ上昇が100%なので、クリのときは2.5倍のダメになるはず。
また、前回の実験から通常攻撃時のダメは A*( (攻撃力)+(通常攻撃力上昇) ) のはず。
そこで、今回の木相手の係数をA=0.5252とすると
x=攻撃力 | y=0.525*(x+30.3) | 実際のダメ | z=2.5*y | 実際のクリダメ |
---|---|---|---|---|
130 | 84.18956 | 84 | 210.4739 | 210 |
156 | 97.84476 | 97 | 244.6119 | 244 |
182 | 111.49996 | 111 | 278.7499 | 278 |
208 | 125.15516 | 125 | 312.8879 | 312 |
234 | 138.81036 | 138 | 347.0259 | 347 |
260 | 152.46556 | 152 | 381.1639 | 381 |
となり、切り捨てた値を実際のダメ、クリダメに一致させることができる。
端数処理
今までの検証では、ダメ値の丸め処理を「切り捨て」と決めつけていたけれど、実はまだどんな丸め処理を行っているかは分かっていなかった。
丸め処理の仕方は「切り捨て」「四捨五入」「切り上げ」の3通り考えられる。ロードスでは実際にこれらが場所ごとに使い分けられている。そのため、ダメ値にどの丸め処理が使われているかも検証しないといけない。そこで、今回のクリダメ実験2で、クリダメ上昇を100%としていたとき
非クリダメ 138、クリダメ 347
となったという結果に着目する。まず、「切り上げ」の可能性はないことを確認する。もし「切り上げ」ならば、内部的なダメ値をxとしたとき
137 < x <=138
という不等式が成り立つ。これを2.5倍すると
342.5 < 2.5x <= 345
となり、これを切り上げても347になり得ない。次に「四捨五入」の可能性もないことを確認する。もし「四捨五入」ならば
137.5 <= x < 138.5
が成立する。これを2.5倍して
343.75 <= x < 346.25
となり、これを四捨五入しても347になり得ない。最後に「切り捨て」ならつじつまが合うことを確認する。xが満たすべき条件は
138 <= x < 139 と 347 <= 2.5x < 348
であり、例えばx=138.8ならこの条件を満たす。