PVP进阶RO知识点-伤害计算(纯PVP源码向,慎入)

修改于2023/08/037757 浏览冒险攻略
一. 前言
本攻略涉及到源码解读,非新手向,且只针对PVP内容,计算规则PVE均不适用。
RO发展至今,已经有太多的增伤、减伤系统,而且PVP里面还加入了复杂的PVP修正,修正里面又有“压缩”的乘算修正和直接“增减”式的加算修正,伤害计算系统可以说是主打一个复杂。授人以鱼不如授人以渔,这篇文章将从源码角度彻底揭示伤害计算的各项细节,提高玩家对伤害计算的认知,在配装以及配卡方面,争取都能自己做出判断。讲解的同时也会遵循由浅入深的原则,尽量让所有人都能看得懂。
horizontal linehorizontal line
二. 伤害计算
2.1. 伤害计算公式
在常规理解中,最简单的伤害计算应该是这样的(如下式)
攻击力×技能倍率=伤害
如果加入一项增伤/减伤,那公式无非就变得稍微复杂一点(如下式),为了方便理解,我会把攻击力以黄色底纹标出,倍率以绿色底纹标出,而伤害增减项目,则以蓝色底纹标出。
攻击力×(1+增伤量)×(1-减伤量技能倍率=伤害
如果游戏设计者为了增加玩家内卷程度,一般会把增伤项和减伤项结合在一起,形成一对所谓的穿刺对应关系,公式就会变成这样(如下式)
攻击力×(1+增伤量-减伤量)×技能倍率=伤害
可是,我们的RO游戏中不止一个“攻击力”,RO游戏设定下,攻击力的种类一共有3中。分别是:
装备攻击:来自装备、存入、Buff、被动,神碑等方式增加的攻击
素质攻击:单纯由素质点带来的攻击力
精炼攻击:武器精炼以及工会精炼得到的攻击
这三种攻击中,装备攻击数值最高,一般来说素质攻击和精炼攻击较低一点。是而且其受到的伤害增减项目不一样。所以公式就变得相当复杂了(如下式)
{[装备攻击×(1+增伤量-减伤量)]+[素质攻击×(1+增伤量-减伤量)]+[精炼攻击×(1+增伤量-减伤量)]}×技能倍率=伤害
解读一下公式呢,其实就是各项攻击受到的伤害增减项目的乘算改变之后,加起来,然后乘以技能倍率,得到伤害,很容易理解。
但是有些伤害增减项目是可以同时影响两项或者三项攻击的,因此这些减伤项在公式中可以进行一个乘法分配律[a×(b±c)=a×b±a×c]的优化(如下式)。
{[装备攻击×(1+增伤量-减伤量)+素质攻击]×(1+增伤量-减伤量)+精炼攻击(1+增伤量-减伤量)×技能倍率=伤害
上面这个公式,就是RO计算伤害的最终公式规则:各项攻击受到的伤害增减项目的乘算改变之后加起来,然后乘以技能倍率,得到伤害,很简单了。
horizontal linehorizontal line
2.2. 各项攻击受何种伤害增减项目影响
攻击类型
TapTap
精炼概括一下重点就是:物理装备攻击部分受到体型影响,而精炼和素质部分无元素、无体型概念,而魔法则是不受体型影响,且所有魔法攻击均受元素影响
horizontal linehorizontal line
2.3. PVP里面伤害增减项目单项计算方法
前面为了方便大家理解,具体增减项的计算我都是以(1+增伤量-减伤量)的形式表达的,其实吧,完全不是单纯的加减这么简单的事,数学难度将再次升级!咱们一个个看。
horizontal linehorizontal line
2.3.1. 体型结算
源码:
TapTap
翻译成人话:体型结算=1+我方体型增伤-敌方体型减伤;体型结算最小值为0.15
解读:当敌方体型减伤大于我方85%的时候达到体型减伤最大值,减伤最大值为85%
大家记住这个公式,因为,这是最简单的,目前还是(1+增伤量-减伤量)的形式
horizontal linehorizontal line
2.3.2. 元素结算
源码:
TapTap
大家可以发现元素的源码突然就多了很多,不再是简单的加减计算,里面甚至有一个Sin三角函数,遇到这种公式,看似复杂,实际上我们一句一句读就好,请看下面源码人话翻译:
PVP修正=0.2;
x=敌方元素防御-我方元素攻击;(我这里把B换成x,方便后续讲解)
限制-1<x<1;(这里人话翻译一下,意思就是你的元素攻击超过别人100%的部分,就无效了;同理,别人元素防御超过你元素攻击100%的部分,也无效)
元素结算=1-x-0.3(1-sin(xπ/2))-0.2;(这一步可能有点点跳跃,元素结算是1-x,最后两句合并后就是这样)
使用这个公式绘制一下减伤曲线:
TapTap
解读:可以看出公式很复杂,但是绘制曲线之后,会变得很直观,最重要的结论就是:
1. 图中的这个点,它的意义是:当你的元素减伤超过进攻方元素增伤58.9%时,你能获得元素结算的最大减伤量85%,再往后做的元素减伤就是无效的,牢记元素58.9%
2. x=0的时候y值不是1,而是0.5,它的意义是:当你元素增伤和元素减伤持平,完全抵消时,并不是无事发生,进攻方打不出100%的伤害,而是只能打出50%的伤害,这就是所谓的“PVP修正”,元素的修正有50%
horizontal linehorizontal line
2.3.3. 种族结算
源码见下图:
TapTap
翻译成人话:跟元素大差不差,但是有点小区别,具体解析看下面:
PVP修正=0;
x=敌方种族减伤-我方种族增伤;(我这里把B换成x,方便后续讲解)
限制-1<x<1;(这里人话翻译一下,意思就是你的种族增伤超过别人100%的部分,就无效了;同理,别人种族减伤超过你种族增伤100%的部分,也无效)
种族结算=1-x-0.4(1-sin(xπ/2));(跟元素同理)
使用这个公式绘制一下减伤曲线:
TapTap
曲线解读:
1. 图中的这个点,它的意义是:当你的种族减伤超过进攻方种族增伤83.6%时,你能获得种族结算的最大减伤量85%,再往后做的种族减伤就是无效的,牢记种族83.6%
2. x=0的时候y值不是1,而是0.6,它的意义是:当你种族增伤和种族减伤持平,打不出100%的伤害,而是只能打出60%的伤害,种族的修正有40%
horizontal linehorizontal line
2.3.4.物免减伤
源码见下图:
TapTap
翻译成人话:主体计算方式和元素一模一样,就是最初的属性内卷里面,物穿除了面板部分之外,还有0.9%*12,共计10.8的隐藏精炼穿刺,后面的公式其实是和元素一毛一样的直接照搬元素的公式就好:
x=1-(1+0.108+我方物穿-敌方物免)*技能减伤;(我这里把B换成x,方便后续讲解,后面还有个技能减伤,不是面板的那个技减,这里是各种技能释放的减伤,比如钢心、能量护盾这种所以这一类技能都是通过倍数缩小物免系数来减伤的)
PVP修正=0.2;
限制-1<x<1;
物免减伤=1-x-0.3(1-sin(xπ/2))-0.2
绘制曲线:我在绘制时去掉精炼的10.8隐藏穿刺,可以更直观体现出面板需求
TapTap
曲线解读:
1. 图中的这个点,它的意义是:当你的物伤减免超过进攻方物理穿刺69.8%时,你能获得物免结算的最大减伤量85%,再往后做的物伤减免就是无效的,牢记物免69.8%
2. x=0的时候y值不是1,而是0.55,它的意义是:当你物理穿刺和物伤减免持平,打不出100%的伤害,而是只能打出55%的伤害,物免的修正有45%(其实修正是50%,只不过我把隐藏穿刺融进去了,方便大家观看)
horizontal linehorizontal line
2.3.5. 魔免减伤
源码见下图:
TapTap
翻译成人话:主体计算方式和种族一模一样,就是最初的属性内卷里面,魔穿除了面板部分之外,还有0.9%*12,共计10.8的隐藏精炼穿刺,后面的公式其实是和种族一毛一样的直接照搬种族的公式就好:
x=1-(1+0.108+我方魔穿-敌方魔免)*技能减伤;(我这里把B换成x,方便后续讲解,后面还有个技能减伤,不是面板的那个技减,这里是各种技能释放的减伤,比如钢心、疾风步这种所以这一类技能都是通过倍数缩小魔免系数来减伤的)
PVP修正=0.2;
限制-1<x<1;
魔免减伤=1-x-0.4(1-sin(xπ/2))
绘制曲线:绘制时去掉精炼的10.8隐藏穿刺,更直观体现出面板需求
TapTap
曲线解读:
1. 图中的这个点,它的意义是:当你的魔伤减免超过进攻方魔法穿刺94.4%时,你能获得魔免结算的最大减伤量85%,再往后做的魔伤减免就是无效的,牢记魔免94.4%。哭死,不记也行的,超过94要求太高了,不愧是高人一等的魔法。这也是魔免收益不高的主要原因
2. x=0的时候y值不是1,而是0.64,它的意义是:当你魔法穿刺和魔伤减免持平,打不出100%的伤害,而是只能打出64%的伤害,魔免的修正有36%(其实修正是40%,只不过我把隐藏穿刺融进去了,方便大家观看)
horizontal linehorizontal line
2.3.6.技能增减
源码见下图:
TapTap
翻译成人话:技减主体计算方式和种族一模一样,直接照搬种族的公式就好:
x=敌方技减-我方技增;
限制-1<x<1;
技能结算=1-x-0.4(1-sin(xπ/2))
绘制曲线:
TapTap
曲线解读:
1. 图中的这个点,它的意义是:当你的技减超过进攻方技能增83.6%时,你能获得技能结算的最大减伤量85%,再往后做的技能减伤就是无效的
2. x=0的时候y值不是1,而是0.6,它的意义是:当你魔法穿刺和魔伤减免持平,打不出100%的伤害,而是只能打出60%的伤害,这就是最近增加的40%技减PVP修正
horizontal linehorizontal line
2.3.7. 物理防御减伤
源码见下图:
TapTap
翻译成人话:防御减伤源码很多对理解无帮助的信息,所以我直接用红色框框画出重点内容,然后对重点内容进行解读帮助理解:
PVP环境中,限定防御%在-1~1之间(解读:看到这句所以大家注意,防御有自我限制,就算你做10000000%的防御%,最后PVP中用于减伤的部分也只有100%
PVP防御%=面板防御%+0.5×[1-sin(面板防御%×π/2)]
把PVP防御百分比收益画个图
TapTap
图片解释:主要有两个点,1. x(面板防御%)=0时,y(PVP防御%)=0.5,意思是你就算没有防御%,PVP也有50%修正。2. x(面板防御%)=1时,y(PVP防御%)=1。意思是你做100%防御,PVP也只有100%防御,到防御%上限了。
PVP修正=0.2
最终防御=防御力×(1+ PVP防御%-忽视物防+0.2)+体质×(1+1+体质百分比%)
最终防御不小于0
(解读:在这条源码之前,都是讲挨打方自己的防御计算,到这一条,就是正式有进攻方的破防加入了,可以看出,进攻方只要达到220,就可以彻底无视敌方防御%。但还没完,后面还跟了个尾巴,体质*2的防御,所以完全破开”防御要比220稍高一点,需要更多的破防把“防御力×(1+ PVP防御%-忽视物防+0.2)”变成负数,抵消体质*2带来的防御,这样才叫完全破开)
把最终防御再画个图,这里我假设基础防御是5000,防御百分比是100%,体质是400,给大家看看以破防和最终防御的关系。
TapTap
图片解释:其实就是跟前面公式解读内容差不多,只不过图片可能更直观,破防达到220%的时候,敌方防御%会被完全破掉,但是此时仍然存在体质*2的防御,因此需要继续做破防,把敌方防御%变成负数,抵消体质*2的防御,才能真正把防御破完。具体这个数字那就是不确定的了,公式里面我设置的防御是基础5000,百分比100%,所需要的破防就是236%,总之需要比220高一点点
防御减伤1=(4000+最终防御)/(4000+最终防御×10)
防御减伤2=1/(1+6×最终防御/敌方面板物攻)
防御减伤系数取防御减伤1和防御减伤2中数值更高的那个(其实就是更有利于进攻的那个)
把防御减伤-最终防御再画个图,直观看一下防御减伤到底咋样,由于防御减伤是量筒不同的计算下,取更高值,因此我把两个图画在一起,其中敌方攻击力我设置4万(后面只会比4万更高)
TapTap
TapTap
图片解读:可以看出,在10000防御~20000防御甚至更高的尺度下,都是第二种计算系数更高,以后攻击力越来越高,这个趋势会更加明显。物理这块,如果物攻有40000,就算0破防,让别人有10000防御没被破开,减伤也只有60%。很难达到别的减伤那样85%水平(为忽可怜默哀)。攻击力越高,防御带来的减伤越小。更别说别人还会做破防了。
防御是真的麻烦,最难写的一个,望大家看的舒服。
horizontal linehorizontal line
三. 结语
有人可能会说
TapTap
诶你还别说,就是这些数学公式能让我们知道怎么有效率的花钱,同时也能知道自己的终极搭配是什么,能更加有方向的设计配装。
由于时间关系,我暂时就更新这些项目,后面我再持续更新关于防御减伤、以及一些特殊技能(舍命、心灵真伤、生物爆炸等特殊伤害的计算)先到这里吧
85
187
124