ラグマスにおける対人の防御パラメータの上限について調査したので、備忘録として記載する。

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

本記事は、Ragnarok M: Eternal Love に関する情報であって、日本版のラグマスでは適用外の可能性もある。

TL;DR

種族耐性

種族耐性は、RaceParam[1]の中で定義されるが、一部を抜粋する。

  if (maptype == PVP_MAPS) and targetUser:GetNpcID() ~= 40022_EMPERIUM then
    local pvpReduce = 0
    local B = raceRed - raceInc
    B = B < -1 and -1 or 1 or B
    B = math.floor(B * 1000) / 1000
    B = B + 0.4 * (1 - math.sin(B * 3.14 / 2))
    A = 1 - B
  end
  if A <= 0.2 then
    A = 0.2
  end
  return A

一般に、防御側の種族ダメージ軽減と攻撃側の種族ダメージ増加の差(B)が計算に用いられる。
対人マップにおいては、この値(B)にいくつか補正がかかる。
まず、-1 から 1 の間に制限がかかる。
次に、小数点以下を切り捨てた後、π/2 をかけ、正弦を取ったものを 1 から引いて 0.4 倍したものを加算補正する。

横軸が補正前の B で、縦軸が補正後の B になる。 いくつか例を挙げる。

  • 防御側の種族ダメージ軽減と攻撃側の種族ダメージ増加が同じ値だった場合、差(B)は 0 となるため、補正後は 0.4 となる。

  • 防御側の種族ダメージ軽減が 100% で攻撃側の種族ダメージ増加が 0% だった場合、差(B)は 100%(1) となるため、補正後は 1 となる。

  • 防御側の種族ダメージ軽減が 0% で攻撃側の種族ダメージ増加が 100% だった場合、差(B)は -100%(-1) となるため、補正後は -0.2 となる。

補正後の値(B)を 1 から引いた値(A)が種族に関するパラメータで計算されるが、0.2 が最低保障として定義されている。 そのため、防御側の種族ダメージ軽減と攻撃側の種族ダメージ増加の差が約 78% で最大軽減を得られる。

属性耐性

属性耐性は、ElementParam2[2]の中で定義されるが、一部を抜粋する。

  if (maptype == PVP_MAPS) and targetUser:GetNpcID() ~= 40022_EMPERIUM then
    local pvpReduce = 0
    local Master = targetUser:GetMasterUser()
    if targetUser:GetNpcID() == 0 or Master ~= nil then
      pvpReduce = 0.2
    end
    local B = elementRed - elementAtk
    B = B < -1 and -1 or 1 or B
    B = math.floor(B * 1000) / 1000
    B = B + 0.3 * (1 - math.sin(B * 3.14 / 2)) + pvpReduce
    result = 1 - B
  end
  if result <= 0.1 then
    result = 0.1
  end
  return result

一般に、防御側の属性ダメージ軽減と攻撃側の属性ダメージ増加の差(B)が計算に用いられる。
対人マップにおいては、この値(B)にいくつか補正がかかる。
まず、-1 から 1 の間に制限がかかる。
次に、小数点以下を切り捨てた後、π/2 をかけ、正弦を取ったものを 1 から引いて 0.3 倍したものを加算補正する。 加えて、対人ボーナスで 0.2 も加算補正する。

横軸が補正前の B で、縦軸が補正後の B になる。 いくつか例を挙げる。

  • 防御側の属性ダメージ軽減と攻撃側の属性ダメージ増加が同じ値だった場合、差(B)は 0 となるため、補正後は 0.5 となる。

  • 防御側の属性ダメージ軽減が 100% で攻撃側の属性ダメージ増加が 0% だった場合、差(B)は 100%(1) となるため、補正後は 1.2 となる。

  • 防御側の属性ダメージ軽減が 0% で攻撃側の属性ダメージ増加が 100% だった場合、差(B)は -100%(-1) となるため、補正後は -0.2 となる。

補正後の値(B)を 1 から引いた値(result)が属性に関するパラメータで計算されるが、0.1 が最低保障として定義されている。 そのため、防御側の種族ダメージ軽減と攻撃側の種族ダメージ増加の差が約 66% で最大軽減を得られる。