明日の朝も日が昇る如く、ゼオルム火山へ通う魔道士です。こんにちは。

経験値一覧表を作成するためには、ほぼ全ての経験値の実測値を確認した上でアップしていました。しかしながら、5チェーンなど自力で達成しにくい取得経験値を予測するために、計算も併用で活用していました。実際に、一覧表の5チェーンの一部は予測値を載せています。

従来は、実測値と計算値が同一の値でした。所が、サンクション追加ボーナスが14%の場合に、実測値と計算値が異なるケースが出て参りました。早速、確認です(・∀・)。

従来の計算方法(誤り)
 経験値 =
  int{int(元経験値 × サンクション追加ボーナス) × ボーナス倍率}


  例)1チェーン目 = int{int(240 × 1.14) × 1.2}

この方法が、サンクション追加ボーナス14%時に、崩れました。詳しくは下表にまとめてみました。


実測値
サンクション14%の場合(実測)
チェーン 0 1 2 3 4
敵LV ↓元経験値 0 1.2 1.25 1.3 1.4
LV79 240 273 328 342 355 383
LV80 280 319 383 399 414 446
LV81 300 342 410 427 444 478

従来の計算方法(個人的に)
サンクション14%の場合(従来計算)
チェーン 0 1 2 3 4
敵LV ↓元経験値 1.2 1.25 1.3 1.4 1.5
LV79 240 273 328 342 354 382
LV80 280 319 382 398 414 446
LV81 300 342 410 427 444 478
 緑色 実測値と異なる部分

この様にすれば上手くいきました
サンクション14%の場合(計算(240×1.14を元に。)
チェーン 0 1 2 3 4
敵LV ↓元経験値 0 1.2 1.25 1.3 1.4
LV79 240 273.60 328.32 342.00 355.68 383.04
LV80 280 319.20 383.04 399.00 414.96 446.88
LV81 300 342.00 410.40 427.50 444.60 478.80
 ※ ↑実際は、全て切り捨てになります↑ ※
 赤色 素のままの状態(0チェーン時はそのまま計算し、切り捨てる。)
 水色 0チェーンの(赤色)の切り捨て前を元に計算し、切り捨てる。


経験値は次のように求めると、つじつまが合うようになります。
 経験値 =
   int{元経験値 × サンクション追加ボーナス × ボーナス倍率}


 例) 0チェーン目 = int{240 × 1.14}
 例) 1チェーン目 = int{240 × 1.14 × 1.2}
 例) 2チェーン目 = int{240 × 1.14 × 1.25}



【まとめ】
今までは0チェーンの値は整数だったために、不整合が発生しなかったのだと思います。今回のように、サンクション追加ボーナスが偶数の場合に小数点以下が発生し、その結果不整合が出ていたのですね。

現時点では、この方法で説明がつくようになりました。
 確認済み : サンクション追加ボーナス 10%、14%、15%

。。。細かいことが、気になってしまう魔道士でした。たまに何をやっているのだろうと、思うことも(*´д`*)