Wikiに書いている計算式では必ず1~100ほどダメージがずれるので
ダメージ計算方法を試行錯誤した結果以下の式で100%一致しました
「ceil(ceil(表示攻撃力 / 10) / 防御固有値 * 装備倍率 * 乱数)」
ここでの100%一致とは、乱数が0.1%刻みという前提で
ベース攻撃力(ceil(表示攻撃力 / 10) / 防御固有値 * 装備倍率)に実測ダメージと最も近くなる乱数倍率を掛け
小数点を切り上げた値が記録した実測データ全てと一致した事を指します
取りうる全てのデータを記録しているわけではないため、間違えを含む可能性はありますが
いくつものサンプルで一致しているため、その点に関しては無視するものとします(計測にかかる時間が倍以上になるため)
手動で計算すると時間がかかるので自作ツールで確認しています
(単純に実測ダメージと攻撃力を割って倍率を求め、攻撃力に倍率を掛けているだけです)
http://gbf.xzz.jp/damage.html
※5/27 2:35 切り捨てと切り上のラベルが逆になっていたのを修正しました
元々は実測値と防御固有値を入力し、理論攻撃力を求めるために作った物ですが
現在は全ての実測値が一致するかの確認用に使っています
最後に、表示攻撃力が基準に計算されているかを調べました
表示攻撃力は四捨五入で計算されているため切り上(0.5~1.0の間)、切り捨て(0.0~0.5の間)の2パターンチェックしました
武器による倍率は一律で1.67 * 2.8 * 1.15 * 2.05です
- 40290.149999999994の場合(切り捨で表示攻撃力40290)、4029、4030どちらで計算されているか
- 実測値 43260 43038 42683 44948 46014 43038 45037 46502 43749 44148 42505
- 結果 4029 * 1.67 * 2.8 * 1.15 * 2.05で一致したため4029で計算されていました(4030は一致する倍率0個)
- 40600.899999999994の場合(切り上で表示攻撃力40601)、4060、4061どちらで計算されているか
40290.149999999994の結果により小数点以下は無視されているためおそらく表示攻撃力基準と思われます
そのため、小数点を無視しているだけなら4060、表示攻撃力が基準なら4061で計算されることになります
- 実測値 46021 46827 45439 45215 45260 42887 46737 46827 46603 46424 43738 42887 44768
- 結果 4061 * 1.67 * 2.8 * 1.15 * 2.05で一致したため4061で計算されていました(4060は一致する倍率0個)
以上の結果により、表示攻撃力が基準で計算されていると推測されます