PAYLの検証(最終更新:2005/11/26)

PAYLについて調べた内容と、計算式の推測。
[2005/11/26]
試行錯誤して考えた計算式などがすべて記載されていて、少しごちゃごちゃしていたので、 最終結果を中心に整理しました。 データも少し追加。

PAYLの依存ステータス

検証内容から、「PAYL」は「種族」、「職業」、「STR」、「VIT」に依存すると考えられます。
ここで、以下のように定義した 「PrmPAYL」 について、
PrmPAYL = [STR*2/3]+[VIT/3]
※ 式内の [X] は、Xの小数点以下切り捨て
「PrmPAYL」 が同じなら「STR」、「VIT」が異なっていても「PAYL」は同じ値になっていました。
よって、「STR」、「VIT」の「PAYL」への影響を、 「PrmPAYL」 の「PAYL」への影響に置き換えて考えることができます。
なのでこれ以降、「STR」、「VIT」の代わりに「PrmPAYL」を使います。

PAYLの計算式

PAYL = [(400+PrmPAYL)*種族係数*職業係数]
※ [X]はXの小数点以下切り捨て。
種族係数:エミル=1.3, タイタニア=0.9, ドミニオン=1.1
職業係数:ノービス=0.7, F系=1.0, SU系=0.8, BP系=1.3
上記の計算式で、ほとんどの測定データと一致します。
一致しないデータは、「エミル/ソードマン」の「PrmPAYL=10,PAYL=532」と「PrmPAYL=30,PAYL=558」です。
この2つのデータには共通点があり、PrmPAYLを先ほどの式に当てはめると小数点以下の端数がでません。
PAYL = [(400+10)*1.3*1.0] = [533]
PAYL = [(400+30)*1.3*1.0] = [559]
このことから、実際のゲームでは上記の演算を浮動小数点数を用いて行っていて、
浮動小数点数の丸め誤差のために結果がずれている可能性が考えられます。
実際にC言語を用いて、単精度浮動小数点数を使って上記の計算をしてみたところ、
PAYL = [(400+10)*1.3] = [532.999980] = 532
PAYL = [(400+30)*1.3] = [558.999979] = 558
となりました。小数の1.3が、丸めによって1.3よりほんの僅か小さい数になっているようです。
(倍精度浮動小数点を使った場合は誤差が充分小さい、もしくは正方向であるため、誤差無しと同じ結果が出ました。)
また、机上で小数点以下の端数がでないデータとして、「ドミニオン/ソードマン」の「PrmPAYL=10,PAYL=451」もありますが、
こちらで同じように単精度浮動小数点数を使うと
PAYL = [(400+10)*1.1] = [451.000010] = 451
となり、誤差の影響が出ません。(誤差は存在しますが正の方向にずれているので切り捨て結果への影響なし。)
というわけで、小数を浮動小数点数で扱う際の誤差を考慮すれば、上で示した式で測定データの説明ができます。
余談ですが、こういう誤差を出したくない場合は、下のような式にすればいいです。
もっとも、今回の場合はむしろ誤差を再現したいので下の式は使いませんが…。
PAYL = [(400+PrmPAYL)*種族係数*職業係数/100]
種族係数:エミル=13, タイタニア=9, ドミニオン=11
職業係数:ノービス=7, F系=10, SU系=8, BP系=13

PAYLの測定データ(最終更新:2005/11/26)

エミル/ノービス
PrmPAYL PAYL
8 371
9 372
10 373
11 374
12 374
13 375
14 376
15 377
16 378
17 379
18 380
19 381
20 382
21 383
22 384
23 384
24 385
25 386
26 387
27 388
28 389
29 390
30 391
31 392
32 393
タイタニア/ノービス
PrmPAYL PAYL
5 255
6 255
7 256
8 257
9 257
10 258
11 258
12 259
13 260
19 263
ドミニオン/ノービス
PrmPAYL PAYL
6 312
7 313
8 314
9 314
10 315
11 316
12 317
13 318
14 318
15 319
16 320
17 321
21 324
エミル/ソードマン
PrmPAYL PAYL
10 532
11 534
12 535
13 536
14 538
15 539
16 540
17 542
24 551
25 552
26 553
27 555
28 556
29 557
30 558
31 560
32 561
タイタニア/ウァテス
PrmPAYL PAYL
5 291
6 292
7 293
8 293
9 294
10 295
11 295
12 296
13 297
14 298
15 298
16 299
17 300
18 300
19 301
タイタニア/シャーマン
PrmPAYL PAYL
5 291
6 292
7 293
8 293
9 294
10 295
11 295
12 296
13 297
ドミニオン/ ウィザード
PrmPAYL PAYL
6 357
7 358
8 359
9 359
10 360
11 361
12 362
13 363
14 364
15 365
16 366
17 366
18 367
19 368
20 369
21 370
22 371
23 372
24 373
25 374
26 374
27 375
28 376
29 377
30 378
エミル/マーチャント
PrmPAYL PAYL
8 689
9 691
10 692
11 694
12 696
13 697
14 699
15 701
16 703
17 704
18 706
19 708
20 709
21 711
22 713
23 714
24 716
25 718
26 719
27 721
28 723
29 725
30 726
31 728
32 730
33 731
34 733
35 735
36 736
37 738
38 740
39 741
40 743
41 745
42 746
ドミニオン/ソードマン
PAYL = [(PrmPAYL+0)*11/10]+440
エミル・クロニクル・オンライン攻略WIKIStatusより

CAPAについて(最終更新:2005/11/26)

CAPA = [ ([DEX/5] + [INT/10] + 200) * C * スキルパッキング倍率]
※ 式内の [X] は、Xの小数点以下切り捨て
で、Cが職業ごとに異なる。
ノービス: C=0.85
F系, SU系: C=1.00
BP系: C=1.13
(実際に検証した職はノービス・ソードマン・ウァテス・シャーマン・マーチャント。)
マーチャント(パッキング無し)でDEX5未満,INT10未満の時CAPA=225なので計算式とずれますが、 PAYLの時と同様の誤差を考えれば説明がつきます。

CAPAの測定データ(最終更新:2005/11/26)

マーチャント
[DEX/5] + [INT/10] CAPA (パッキングLV別)
LV0 LV1 LV2 LV3 LV4 LV5
0 225 - - - - -
1 227 249 - - - -
2 228 251 273 296 319 342
3 229 252 275 298 321 344
4 230 253 276 299 322 345
5 231 254 277 301 324 347
6 232 256 279 302 325 349
7 - - - - - 350
8 - - - - - 352
9 - - - - - 354
10 - - - - - 355
11 - - - - - 357
12 - - - - - 359
13 - - - - - 361
ノービス
[DEX/5] + [INT/10] CAPA
0 170
1 170
2 171
3 172
4 173
5 174
6 175
7 175
8 176