ラグマスにおける状態異常の計算式について調査したので、備忘録として記載する。

免責事項に記載の通り、可能な限り正確な情報を掲載するよう努めていますが、誤情報が入り込んだり、情報が陳腐化することもあります。必ずしも正確性を保証するものではありません。また合法性や安全性なども保証しません。 また、掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。

本記事は、Reddit で記載されていた内容に加え、追加調査した内容を踏まえて記載する。また、Ragnarok M: Eternal Love に関する情報であって、日本版のラグマスでは適用外の可能性もある。また、本計算式のパラメータ名は説明のために命名したものである。

状態異常の計算式

状態異常確率の計算式は下記となる。

状態異常確率 = スキルの固有状態異常確率 * 固有状態異常比較 * 状態異常比較 * 確率ステータス比較

状態異常効果時間の計算式は下記となる。

状態異常効果時間 = スキルの固有状態異常効果時間 * 固有状態異常比較 * 状態異常比較 * 効果時間ステータス比較

スキルの固有状態異常確率・スキルの固有状態異常効果時間

当該パラメータは、各スキルに設定されている状態異常の確率・効果時間となり、ルーンなどの効果も含まれる。例えば、チェインライトニング―震動 をすべて取得している場合、スキルの固有状態異常確率が "1(100%)" となり、スキルの固有状態異常効果時間が "1秒" となる。

固有状態異常比較

当該パラメータは、(1 + 固有状態異常攻撃 - 固有状態異常耐性) で計算される。下記例の場合、"0.75" となる。

  • 固有状態異常攻撃

当該パラメータは、スタンの場合はスタン状態異常攻撃となる。レイス★カード や日本未実装の Christmas Reindeer Horn などカードや装備で加算することができる。 例えば、レイス★カード の場合、"0.25(25%)"となる。

  • 固有状態異常耐性

当該パラメータは、スタンの場合はスタン状態異常耐性となり、ゲーム内のステータス画面から確認できる。プパカードメテオプレート などカードや装備で加算することができる。 例えば、メテオプレート の場合、"0.5(50%)" となる。

状態異常比較

当該パラメータは、(1 + 状態異常攻撃 - 状態異常耐性) で計算される。特別な場合を除いて、"1" となるため、基本的には無視できる。

  • 状態異常攻撃

当該パラメータは、汎用状態異常攻撃となる。しかしながら、少なくとも EP5 時点では加算することができるスキル、カードや装備がないとのこと。

  • 状態異常耐性

当該パラメータは、汎用状態異常耐性となる。しかしながら、少なくとも EP5 時点ではジェネティックの ライフフュージョン―強化 のみ影響するとのこと。ライフフュージョン―強化 使用時にステータス画面の状態異常耐性が変化がないのは、固有状態異常耐性 ではなく、汎用状態異常耐性 に影響するためである。

確率ステータス比率・効果時間ステータス比率

当該パラメータは、ステータスによる影響となる。ラグマス公式で言及されている[1]ステータスが状態異常の発生率および耐性に関与する部分である。状態異常によって参照するステータスや係数が異なる。そのため、Jobと状態異常にも相性がある。確率ステータス比率 の場合、前述の チェインライトニング のスタン確率を求める際、攻撃側は Str を参照するため、ウィザード系は他のJobと比較して多少数値が落ちる。効果時間ステータス比率 の場合、後述する通り、防御側に関しては、最大値が設けられているため耐性目的のためにステータスを配分する場合は注意が必要となる。

確率ステータス比率 関連ステータスおよび係数

STR AGI VIT INT DEX LUK
防(0.3)
防(0.3)
攻(0.5)
出血
防(0.3)
攻(0.5)
防(0.3)
発火
防(0.3)
防(0.3)
攻(0.5)
スタン
攻(0.3)
防(0.3)
防(0.3)
凍結
攻(0.3)
防(0.3)
防(0.3)
石化
攻(0.3)
防(0.3)
防(0.3)
睡眠
防(0.3)
攻(0.3)
防(0.3)
恐怖
防(0.3)
攻(0.5)
防(0.3)
バインド
防(0.3)
攻(0.4)
防(0.3)
沈黙
防(0.3)
防(0.3)
攻(0.5)
呪い
攻(0.5)
防(0.3)
防(0.3)
暗闇
攻(0.5)
防(0.3)
防(0.3)

効果時間ステータス比率 関連ステータスおよび係数

STR AGI VIT INT DEX LUK
防(0.4)
攻(0.6)
出血
防(0.4)
攻(0.6)
発火
防(0.4)
攻(0.6)
スタン
攻(0.6)
防(0.4)
凍結
攻(0.6)
防(0.4)
石化
攻(0.6)
防(0.4)
睡眠
防(0.4)
攻(0.6)
恐怖
防(0.4)
攻(0.6)
バインド
攻(0.6)
防(0.4)
沈黙
防(0.4)
攻(0.6)
呪い
攻(0.6)
防(0.4)
暗闇
攻(0.6)
防(0.4)

詳細な各状態異常に関する 確率ステータス比率 および 効果時間ステータス比率 を記載するが、状態異常によって係数が異なる。

確率ステータス比率 = 1 + Max(0.1, Luk * 0.5 / 100) - Min(0.8, (Vit * 0.3 + Int * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Luk * 0.6 / 100) - Min(0.8, (Vit * 0.4) / 100)

確率に関しては、攻撃側は Luk、防御側は Vit および Int のステータスを参照する。 攻撃側は、Luk の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Vit および Int の値によって増加する。最大値として "0.8" が設定されている。

効果時間に関しては、攻撃側は Luk、防御側は Vit のステータスを参照する。 攻撃側は、Luk の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Vit の値によって増加する。最大値として "0.8" が設定されている。

出血

確率ステータス比率 = 1 + Max(0.1, Int * 0.5 / 100) - Min(0.8, (Vit * 0.3 + Int * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Int * 0.6 / 100) - Min(0.8, (Vit * 0.4) / 100)

確率に関しては、攻撃側は Int、防御側は Vit および Int のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Vit および Int の値によって増加する。最大値として "0.8" が設定されている。

効果時間に関しては、攻撃側は Int、防御側は Vit のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Vit の値によって増加する。最大値として "0.8" が設定されている。

発火

確率ステータス比率 = 1 + Max(0.1, Int * 0.5 / 100) - Min(0.8, (Vit * 0.3 + Agi * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Int * 0.6 / 100) - Min(0.8, (Vit * 0.4) / 100)

確率に関しては、攻撃側は Int、防御側は Vit および Agi のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Vit および Agi の値によって増加する。最大値として "0.8" が設定されている。

効果時間に関しては、攻撃側は Int、防御側は Vit のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Vit の値によって増加する。最大値として "0.8" が設定されている。

スタン

確率ステータス比率 = 1 + Max(0.1, Str * 0.3 / 100) - Min(0.8, (Vit * 0.3 + Agi * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Str * 0.6 / 100) - Min(0.8, (Vit * 0.4) / 100)

確率に関しては、攻撃側は Str、防御側は Vit および Agi のステータスを参照する。 攻撃側は、Str の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Vit および Agi の値によって増加する。最大値として "0.8" が設定されている。

効果時間に関しては、攻撃側は Str、防御側は Vit のステータスを参照する。 攻撃側は、Str の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Vit の値によって増加する。最大値として "0.8" が設定されている。

凍結

確率ステータス比率 = 1 + Max(0.1, Int * 0.3 / 100) - Min(0.8, (Int * 0.3 + Dex * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Int * 0.6 / 100) - Min(0.8, (Int * 0.4) / 100)

確率に関しては、攻撃側は Int、防御側は Int および Dex のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Int および Dex の値によって増加する。最大値として "0.8" が設定されている。

効果時間に関しては、攻撃側は Int、防御側は Int のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Int の値によって増加する。最大値として "0.8" が設定されている。

石化

確率ステータス比率 = 1 + Max(0.1, Int * 0.3 / 100) - Min(0.8, (Int * 0.3 + Dex * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Int * 0.6 / 100) - Min(0.8, (Int * 0.4) / 100)

確率に関しては、攻撃側は Int、防御側は Int および Dex のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Int および Dex の値によって増加する。最大値として "0.8" が設定されている。

効果時間に関しては、攻撃側は Int、防御側は Int のステータスを参照する。 攻撃側は、Int の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Int の値によって増加する。最大値として "0.8" が設定されている。

睡眠

確率ステータス比率 = 1 + Max(0.1, Dex * 0.3 / 100) - Min(0.5, (Int * 0.3 + Luk * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Dex * 0.6 / 100) - Min(0.8, (Int * 0.4) / 100)

確率に関しては、攻撃側は Dex、防御側は Int および Luk のステータスを参照する。 攻撃側は、Dex の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Int および Luk の値によって増加する。最大値として "0.5" が設定されている。

効果時間に関しては、攻撃側は Dex、防御側は Int のステータスを参照する。 攻撃側は、Dex の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Int の値によって増加する。最大値として "0.8" が設定されている。

恐怖

確率ステータス比率 = 1 + Max(0.1, Dex * 0.5 / 100) - Min(0.5, (Int * 0.3 + Luk * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Dex * 0.6 / 100) - Min(0.8, (Int * 0.4) / 100)

確率に関しては、攻撃側は Dex、防御側は Int および Luk のステータスを参照する。 攻撃側は、Dex の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Int および Luk の値によって増加する。最大値として "0.5" が設定されている。

効果時間に関しては、攻撃側は Dex、防御側は Int のステータスを参照する。 攻撃側は、Dex の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Int の値によって増加する。最大値として "0.8" が設定されている。

バインド

確率ステータス比率 = 1 + Max(0.1, Agi * 0.4 / 100) - Min(0.6, (Vit * 0.3 + Str * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Agi * 0.6 / 100) - Min(0.8, (Vit * 0.4) / 100)

確率に関しては、攻撃側は Agi、防御側は Vit および Str のステータスを参照する。 攻撃側は、Agi の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Vit および Str の値によって増加する。最大値として "0.6" が設定されている。

効果時間に関しては、攻撃側は Agi、防御側は Vit のステータスを参照する。 攻撃側は、Agi の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Vit の値によって増加する。最大値として "0.8" が設定されている。

沈黙

確率ステータス比率 = 1 + Max(0.1, Dex * 0.5 / 100) - Min(0.6, (Vit * 0.3 + Str * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Dex * 0.6 / 100) - Min(0.8, (Vit * 0.4) / 100)

確率に関しては、攻撃側は Dex、防御側は Vit および Str のステータスを参照する。 攻撃側は、Dex の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Vit および Str の値によって増加する。最大値として "0.6" が設定されている。

効果時間に関しては、攻撃側は Dex、防御側は Vit のステータスを参照する。 攻撃側は、Dex の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Vit の値によって増加する。最大値として "0.8" が設定されている。

呪い

確率ステータス比率 = 1 + Max(0.1, Str * 0.5 / 100) - Min(0.5, (Int * 0.3 + Dex * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Str * 0.6 / 100) - Min(0.8, (Int * 0.4) / 100)

確率に関しては、攻撃側は Str、防御側は Int および Dex のステータスを参照する。 攻撃側は、Str の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Int および Dex の値によって増加する。最大値として "0.5" が設定されている。

効果時間に関しては、攻撃側は Str、防御側は Int のステータスを参照する。 攻撃側は、Str の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Int の値によって増加する。最大値として "0.8" が設定されている。

暗闇

確率ステータス比率 = 1 + Max(0.1, Str * 0.5 / 100) - Min(0.5, (Int * 0.3 + Dex * 0.3) / 100)

効果時間ステータス比率 = 1 + Max(0.3, Str * 0.6 / 100) - Min(0.8, (Int * 0.4) / 100)

確率に関しては、攻撃側は Str、防御側は Int および Dex のステータスを参照する。 攻撃側は、Str の値によって増加する。最小値として "0.1" が設定されている。 防御側は、Int および Dex の値によって増加する。最大値として "0.5" が設定されている。

効果時間に関しては、攻撃側は Str、防御側は Int のステータスを参照する。 攻撃側は、Str の値によって増加する。最小値として "0.3" が設定されている。 防御側は、Int の値によって増加する。最大値として "0.8" が設定されている。

想定パターン

いくつかの想定パターンを用いて計算式を紹介する。

状態異常確率の計算式は下記となる(再掲)。

状態異常確率 = スキルの固有状態異常確率 * 固有状態異常比較 * 状態異常比較 * 確率ステータス比較

状態異常効果時間の計算式は下記となる(再掲)。

状態異常効果時間 = スキルの固有状態異常効果時間 * 固有状態異常比較 * 状態異常比較 * 効果時間ステータス比較

100% 耐性の有用性

  • 攻撃側

    • STR "200"

    • アンブッシュ: スタン確率 "1(100%)"

  • 防御側

    • AGI "0"

    • VIT "0"

    • 固有状態異常耐性(スタン耐性) "1(100%)"

このとき、スタンの確率は、"0(0%)" となる。 固有状態異常比較 が "0" になるため、アンブッシュ のスタン確率が "1(100%)" であっても、攻撃側が STR "200" であっても効果がない。

確率 = 1 * (1 + 0 - 1) * (1 + 0 - 0) * (1 + 200 * 0.3 /100 - 0) = 0

レイス★カードの有用性

  • 攻撃側

    • STR "200"

    • アンブッシュ: スタン確率 "1(100%)"

  • 防御側

    • AGI "0"

    • VIT "0"

    • 固有状態異常耐性(スタン耐性) "1(100%)"

このとき、スタンの確率は、"0.4(40%)" となる。 レイス★カード の効果で、固有状態異常比較 が "0" にならないため、スタン確率が生じる。 また、攻撃側の関連ステータスの STR が "200" あるので、スタン確率が向上する。

確率 = 1 * (1 + 0.25 - 1) * (1 + 0 - 0) * (1 + 200 * 0.3 /100 - 0) = 0.4

関連ステータスの有用性

  • 攻撃側

    • STR "0"

    • アンブッシュ: スタン確率 "1(100%)"

  • 防御側

    • AGI "200"

    • VIT "200"

    • 固有状態異常耐性(スタン耐性) "0"

このとき、スタンの確率は、"0.3(30%)" となる。 アンブッシュ のスタン確率が "100%" であっても、攻撃側の関連ステータスが低く、防御側の関連ステータスが高いため、スタン確率が低下する。 なお、確率ステータス比率 の計算では、攻撃側が STR "0" であり、防御側が AGI および VIT "200" のため、それぞれ最小値 "0.1" と最大値 "0.8" が採用される。

確率 = 1 * (1 + 0 - 0) * (1 + 0 - 0) * (1 + 0.1 - 0.8) = 0.3

まとめ

  • 固有状態異常耐性 が "100%" に達した場合でも レイス★カード 等によって 固有状態異常攻撃 が加算されている場合、状態異常になる場合がある。

  • ステータスで状態異常の確率や効果時間を変化させることができるが、その他の乗算パラメータで 0 になっている場合は効果がないので状態異常関連でステータスを上げる場合は注意が必要となる。

  • ステータスで状態異常の確率や効果時間を変化させることができるが、最大値および最小値が設定されているので注意が必要となる。

  • ナイトメアカードマルクカード などのカードは無効化する効果があるので、固有状態異常攻撃 を加算したところで効果がない。