这个公式用于确定角色实际参与伤害计算的攻击力。系统会在物理攻击或魔法攻击的最终计算值中取对应类型的攻击属性,同时设置最低值为 1.0。
也就是说,不管角色攻击力有多低,最终用于计算的攻击属性都不会低于 1.0。这样可以避免攻击属性为 0 或负数时导致伤害公式异常。
简单理解就是:
攻击属性越高,基础伤害越高;攻击属性是整个伤害计算的最底层数值。
这个公式用于确定目标实际参与伤害计算的防御力。系统会根据伤害类型选择物理防御或魔法防御,并且设置最低值为 0.0。
也就是说,防御属性不会低于 0。防御力越高,通常会降低攻击方的伤害曲线收益。
简单理解就是:
防御属性决定攻击方打在目标身上时,攻击力会被削弱多少。
这个公式用于计算攻击属性和防御属性之间的相对差距。它不是简单地用攻击力减防御力,而是把防御属性的一半作为参考基准。
可以理解为:
攻击属性 > 防御属性 / 2 时,x >= 0
攻击属性 < 防御属性 / 2 时,x < 0
所以,x 是判断攻击方是否“破防”或“被防御压制”的关键指标。
也就是攻击/防御属性是否过线的标准。
当 x 为正数时,说明攻击属性高于目标防御的一半,伤害曲线进入正向收益区间。 当 x 为负数时,说明攻击属性低于目标防御的一半,伤害曲线进入负向惩罚区间。
这个公式用于处理攻击方攻击力不足的情况,也就是 攻击属性低于防御属性一半 的情况。
此时 x 是负数,伤害曲线会低于基础值 60。攻击力越低,x 越负,伤害曲线越低,最终基础攻击伤害也会下降。
这个区间可以理解为:
攻击力不够时,防御会明显压低伤害。
不过由于后面还有 clamp 限制,伤害曲线最低不会让最终伤害彻底归零。
这个公式用于处理攻击方攻击力较高的情况,也就是 攻击属性高于防御属性一半 的情况。
此时 x 是正数,伤害曲线会高于基础值 60。攻击属性越高,x 越大,伤害曲线越高。
但这个公式不是线性增长,而是边际收益递减。也就是说,攻击力越堆越高时,伤害曲线虽然继续上涨,但上涨速度会逐渐变慢。
简单理解就是:
攻击力超过防御门槛后仍然有收益,但收益不会无限放大。
这个公式用于计算最基础的攻击伤害。
它由两部分组成:攻击属性与伤害曲线修正倍率
其中:
表示把伤害曲线转换成倍率。例如伤害曲线为 60 时,对应倍率就是 0.6。
同时系统使用 clamp 限制倍率范围:
最低 0.05
最高 1.5
也就是说,基础攻击伤害不会因为防御太高而低到 0,也不会因为攻击力过高而无限膨胀。
这个公式可以理解为:
基础攻击伤害 = 攻击力 × 攻防关系修正后的倍率。
这个公式用于确定技能最终参与计算的总倍率。
输入技能系数通常是技能本身的倍率,比如某个技能是 300%、500% 或 1200%。
追加伤害系数可以理解为额外追加的技能倍率。
如果追加伤害系数存在,那么它会和原本技能系数相加。
简单理解就是:
技能总系数越高,同样的基础攻击伤害最终打出来的数值越高。
暴击类公式可以继续分成两部分: 暴击率计算 和 暴击伤害倍率计算。
这个公式用于计算攻击方暴击属性和目标暴击抗性之间的相对差距。
当暴击属性高于暴抗属性时,xc 为正数,暴击率基础值会上升。 当暴击属性低于暴抗属性时,xc 为负数,暴击率基础值会下降。
简单理解就是:
xc 决定你的暴击属性相对于敌人暴抗是否占优势。 也就是暴击属性是否过线的标准。
这个公式用于处理暴击属性低于暴抗属性的情况。
当 xc 为负数时,暴击率基础值会低于 0.3,也就是低于 30%。 暴抗越高,或者自身暴击越低,暴击率基础值就越低。
这个区间可以理解为:
暴击被敌方暴抗压制,暴击率下降。
这个公式用于处理暴击属性高于暴抗属性的情况。
当 xc 为正数时,暴击率基础值会高于 0.3,也就是高于 30%。 但是这个增长同样是边际递减的。暴击属性越高,暴击率还会继续增加,但增加速度会越来越慢。
简单理解就是:
暴击属性越高,暴击率越高,但不会线性暴涨。
这个公式用于计算最终暴击率。
最终暴击率由两部分组成:
暴击率基础值 额外暴击率加成 / 额外受暴击率加成
其中额外暴击率加成会以百分比形式加入。例如额外暴击率加成 10,就相当于增加 0.1,也就是 10%。
最终暴击率被限制在:最低 5%,最高 75%
所以无论暴击属性多低,最低也有 5% 暴击率;无论暴击属性和加成多高,最高也只能到 75%。
简单理解就是:
暴击率有上下限,堆暴击不能突破 75%。
这个公式用于计算攻击方暴击伤害属性和目标暴击伤害抗性之间的相对差距。
当暴伤属性高于暴伤抗性时,xm 为正数,暴击伤害倍率会上升。 当暴伤属性低于暴伤抗性时,xm 为负数,暴击伤害倍率会下降。
简单理解就是:
xm 决定暴击之后能打出多少额外伤害。 同样也是爆伤属性是否过线的标准。
这个公式用于处理暴击伤害属性低于目标暴伤抗性的情况。
此时暴伤基础值会低于 0.75,也就是低于 75%。 目标暴伤抗性越高,攻击方暴击后的额外伤害越低。
简单理解就是:
暴伤被暴伤抗性压制时,暴击虽然触发,但暴击收益会下降。
这个公式用于处理暴击伤害属性高于目标暴伤抗性的情况。
此时暴伤基础值会高于 0.75。暴伤属性越高,暴击后的额外伤害越高。
但这个公式也有边际递减效果。也就是说,暴伤堆得越高,继续增加暴伤的收益会逐渐变低。
简单理解就是:
暴伤越高,暴击后的伤害越高,但后期收益会递减。
这个公式用于计算最终暴击伤害倍率。
它由两部分组成:
暴伤基础值 额外暴伤加成 / 额外受暴伤加成
最终结果被限制在:最低 0.2,最高 1.5
这里的暴击伤害倍率不是最终暴击乘区本身,而是暴击时额外增加的伤害部分。
暴击伤害倍率 = 0.75 暴击乘区 = 1 + 0.75 = 1.75
也就是说,暴击后造成 175% 伤害。
这个公式用于判断本次攻击是否触发暴击。
如果没有暴击,暴击乘区就是 1,不增加伤害。 如果触发暴击,暴击乘区就是 1 + 暴击伤害倍率
简单理解就是:
暴击率决定暴击能不能触发,暴击伤害倍率决定暴击触发后有多痛。
这个公式用于计算普通伤害加成类乘区。
它包括:
物理伤害加成 / 魔法伤害加成 技能专属伤害加成
系统会把它们相加,并且设置最低值为 0.2。
也就是说,即使角色被大量减伤效果影响,这个乘区也不会低于 0.2。
简单理解就是:
普通伤害乘区主要影响某一类伤害或某个技能的整体输出倍率。
这个公式用于计算最终阶段的伤害加成或减免。
它在中间伤害之后才参与计算,因此属于比较靠后的乘区。 终伤基础项一般可以理解为直接以小数形式参与计算的最终伤害加成。 终伤附加项则是百分比形式,需要乘以 0.01 后再加入。
最低值同样是 0.2,避免最终伤害乘区过低。
简单理解就是:
最终伤害乘区是最后阶段的整体放大或削弱,通常权重很高。
这个公式用于计算进入最终伤害乘区之前的伤害值。
它综合了以下因素:
基础攻击伤害 技能总系数 暴击乘区 效果倍率 性格/克制加成 普通伤害乘区
其中 trunc 表示直接截断小数部分,不进行四舍五入。
这个公式可以理解为:
中间伤害 = 基础伤害经过技能、暴击、克制、普通伤害加成后的结果。
需要注意的是,这里有一个 * 0.01,说明技能总系数大概率是按照百分比数值存储的。例如技能系数 500,实际参与计算时相当于 5 倍。
这是最后一步伤害结算。
系统会把中间伤害乘以最终伤害乘区,然后再次截断小数,得到最终显示或生效的伤害值。
简单理解就是:
最终伤害 = 中间伤害 × 最终伤害乘区。
最终伤害乘区属于最后结算阶段,因此它会影响前面所有计算结果。
整套伤害计算公式的逻辑如下:
先确定攻击和防御 ↓ 计算攻防差距 x ↓ 通过伤害曲线得到基础攻击伤害 ↓ 计算技能倍率 ↓ 计算是否暴击,以及暴击后的倍率 ↓ 加入效果倍率、克制加成、普通伤害乘区 ↓ 得到中间伤害 ↓ 最后乘最终伤害乘区 ↓ 得到最终伤害 公式是从方法里拼出来的,常量是从<GlobalWeight> 字典里读出来的。 如果实际运用时发现有误,欢迎在评论区里指出。
