roratorio-hub / ratorio

ラグナロクオンラインのダメージ計算機「ROラトリオHub」です
https://roratorio-hub.github.io/ratorio/
Other
6 stars 8 forks source link

インペリアルガードのデータ #345

Closed usachoco closed 5 months ago

usachoco commented 6 months ago

Googleフォームより

【インペリアルガード】220/40
S 50+9、A 80+3、V 125+9、I 120+10、D 100+9、L 1+3
P 0+5、St 83+4、W 0+3、Sp 0+6、Co 0+1、Cr 0+0
ATK 107+120、Matk 291+0、Hit 537、Cri 2(別件:ラトリオ上だと何故かCri4.5表示に)

装備=+0グングニール[0]、+0金剛石の盾
習得スキル(ステータスアイコンは騎乗修練5のみ)
・フェイス10、槍修練1、デーモンベイン5、ディバインプロテクション5、盾修練10

【対象:ポリン】プロンテラフィールド08(プロ南) 全て3回ずつ確認
・RoG 全てx7Hit
<RoG Lv.1> 178 x7Hit
<RoG Lv.1+ホーリーシールドLv.3> 204
<RoG Lv.2> 356
<RoG Lv.2+ホーリーシールドLv.3> 409
<RoG Lv.3> 534
<RoG Lv.3+ホーリーシールドLv.3> 613
<RoG Lv.4> 712
<RoG Lv.4+ホーリーシールドLv.3> 818
<RoG Lv.5> 890
<RoG Lv.5+ホーリーシールドLv.3> 1022
<RoG Lv.6> 1068
<RoG Lv.6+ホーリーシールドLv.3> 1227
<RoG Lv.7> 1246
<RoG Lv.7+ホーリーシールドLv.3> 1431
<RoG Lv.8> 1424
<RoG Lv.8+ホーリーシールドLv.3> 1636
<RoG Lv.9> 1602
<RoG Lv.9+ホーリーシールドLv.3> 1840
<RoG Lv.10> 1780
<RoG Lv.10+ホーリーシールドLv.3> 2045

<クロスレインLv.1> 809 1Hitで死亡
<クロスレインLv.1+ホーリーシールドLv.3> 1502 1Hitで死亡
<クロスレインLv.2> 1432 1Hitで死亡
<クロスレインLv.2+ホーリーシールドLv.3> 2576 1Hitで死亡
<クロスレインLv.3> 2055 1Hitで死亡
<クロスレインLv.3+ホーリーシールドLv.3> 3650 1Hitで死亡
<クロスレインLv.4> 2680 1Hitで死亡
<クロスレインLv.4+ホーリーシールドLv.3> 4724 1Hitで死亡
<クロスレインLv.5> 3303 1Hitで死亡
<クロスレインLv.5+ホーリーシールドLv.3> 5798 1Hitで死亡

・ジャッジメントクロス 全てx10Hit
<ジャッジメントクロスLv.1> 6058
<ジャッジメントクロスLv.1+ホーリーシールドLv.3> 6958
<ジャッジメントクロスLv.2> 7928
<ジャッジメントクロスLv.2+ホーリーシールドLv.3> 9106
<ジャッジメントクロスLv.3> 9798
<ジャッジメントクロスLv.3+ホーリーシールドLv.3> 11254
usachoco commented 5 months ago

結論としてクリティカルが4.5であることは修正の必要が無さそうです

この参考情報 によれば表示クリティカルの算出式は1+LUK/3です

これに対して計算機ではBaseLvが加算されています

foot.js

cri = 0;
// その他の支援/設定「クリティカル率を0にする」の場合
if (n_A_PassSkill8[16]) {
    cri = 0;
}
// それ以外の場合
else {
    // ステータスによるクリティカル率
    cri += 0.3 * n_A_LUK;
    // 装備特性
    cri += w;
    // カタール装備時は2倍
    if (n_A_WeaponType == ITEM_KIND_KATAR) {
        cri *= 2;
    }
    // ベースレベルによるクリティカル率
    cri += 0.1 + (n_A_BaseLV / 100);
    // 条件不問の基礎加算値
    cri += 1;
    // 小数点以下第二位で切り捨て
    cri = Math.floor(cri * 10) / 10;
    // 負数は0に補正
    cri = Math.max(0, cri);

BaseLvが加算されている理由はこの参考情報によるものと思われます 表示クリティカルが0でも実際にはクリティカルが発生するため、計算機では実際のクリティカル発生率を表示しているのだと解釈できます

更新履歴のこの部分が該当すると思われます

Image

usachoco commented 5 months ago

ホーリーシールド状態の魔法ダメージUpは以下のコードで共通処理されており手直しの必要性は感じられません

ro4/m/js/hmjob.js

// 「インペリアルガード」スキル「ホーリーシールド」による効果
if ((sklLv = UsedSkillSearch(SKILL_ID_HOLY_SHIELD)) > 0) {
    // 盾装備時限定
    if (n_A_Equip[EQUIP_REGION_ID_SHIELD] != ITEM_ID_NOEQUIP_SHIELD) {
        // 聖属性魔法
        if ([ITEM_SP_MAGICAL_DAMAGE_UP_ELM_HOLY].indexOf(spid) >= 0) {
            spVal += 5 * sklLv;
        }
    }
}

属性耐性についても正しく実装されています

usachoco commented 5 months ago

参考情報 https://rrenewal-ro.daa.jp/skill_re_imperialguard.html#CrossRain