|
11月入了个新坑-ARPG手游,战斗力计算为属性加权,本身该公式就不严谨,加上人物有设置了大量的百分比属性,容差已经突破天际,遂有了改良公式的想法,废话不多说直接上正文
1.1原战斗力公式
战斗力=HP*A+AP*B+DP*C+...........
理论上这条公式的战斗力的算法并不严谨,但此公式能给用户带来非常直观的提升体验,同时此公式也是ARPG游戏的常用公式,因此公式并不存在方向性错误,我们只需要就此公式存在的缺陷进行改良,尽量的避免容差即可。
公式存在问题
在只存在攻、防、血三个属性的计算内,此公式并无存在很大的隐患,在诸如暴击率、暴击伤害、无视防御、免爆率、暴击抵抗、免伤等百分比的属性加入后,随着角色面板属性的增加,角色实际战斗力会逐渐高于面板计算得出战斗力,从而出现高战玩家打不赢低站玩家的情况出现。
注:
高战玩家:等级较高获得较多基础属性,百分比的高级属性较少。
低战玩家:等级较低基础属性稍微低一点,有较高的百分比属性。
战斗结果分析
从战斗结果上来说“低战玩家”玩家的定义上存在偏差的,这些偏差是由以上的百分比属性对角色攻击或血量进行百分比加成,对角色的战斗力进行直接的放大,回到战斗的本源最后结果属性其实只有两个,其他的属性均可以转换为以下两个属性:
生存属性:HP
攻击属性:AP
1.2业内当下流行公式
以下为业内当前比较常用的战斗力计算公式
战斗力=HP*A+AP*B+DP*C+...........+M*LV^2*增伤+N*LV^2免伤
此公式内加入了增伤与免伤对战斗力的加成部分,但M*LV^2 与N*LV^2部分处理上过于粗暴,脱离了战斗计算中增伤、免伤的影响对象攻击力、血量, 再者我们的等级设置跨度很大(目前1~400,并且很快就会拓展),等级的影响过大,因此以上公式并不严谨,同时也不适合我们。
变形公式
在只存在HP、AP两个基础属性的战斗计算中,可近似的认为:
EDPS=AP*(1+增伤)
EHP=HP*(1+免伤)
即:
△EDPS=AP*增伤
△EHP=HP*免伤
由此可得
增伤战斗力=AP*B*增伤
免伤战斗力=HP*A*免伤
增伤计算:
命中:在命中未达到100%时命中率≈增伤
无视防御:在无视防御未达到100%时无视防御≈增伤
伤害加成=增伤
暴击率、暴击伤害:暴击率*(暴击基础伤害倍数+暴击伤害)+1-暴击率≈增伤
麻痹:在麻痹未达到100%时麻痹≈增伤(麻痹效果不能移动不能使用技能,暂且粗暴处理,最后再做容差修正)
定身:在定身未达到100%时定身≈增伤(定身效果不能移动不能使用技能,暂且粗暴处理,最后再做容差修正)
以上属性在计算时是同级关系,因此在计算总增伤时使用乘法处理,由于以上属性均需进行概率性判断处理,因此在最后结果需要进行一次开方减小容差(兰切斯特方程猜想???)
即:
△增伤=((1+命中)*(1+无视防御)*(1+伤害加成)*(1+麻痹)*(1+定身)*(暴击率*(暴击基础伤害倍数+暴击伤害)+1-暴击率)-1)^0.5
免伤计算
闪避:在闪避未达到100%时闪避≈免伤
格挡:在格挡未达到100%时格挡≈免伤
伤害减免=免伤
免暴率、暴击抵抗:免暴率*(暴击基础伤害倍数+暴击抵抗)+1-免暴率≈免伤
麻痹抵抗:在麻痹抵抗未达到100%时麻痹抵抗≈免伤(麻痹效果不能移动不能使用技能,暂且粗暴处理,最后再做容差修正)
定身抵抗:在定身抵抗未达到100%时定身抵抗≈免伤(定身效果不能移动不能使用技能,暂且粗暴处理,最后再做容差修正)
以上属性在计算时是同级关系,因此在计算总增伤时使用乘法处理,由于以上属性均需进行概率性判断处理,因此在最后结果需要进行一次开方减小容差(有点兰切斯特方程演变的迹象)
即:
△免伤=((1+闪避)*(1+格挡)*(1+伤害减免)*(1+麻痹抵抗)*(1+定身抵抗)*(免暴率*(暴击基础伤害倍数+暴击抵抗)+1-免暴率)-1)^0.5
1.3新公式
人物总战斗力=基础战斗力+增伤战斗力+免伤战斗力
基础战斗力=HP*A+AP*B+DP*C+..........
增伤战斗力=((1+命中)*(1+无视防御)*(1+伤害加成)*(1+麻痹)*(1+定身)*(暴击率*(暴击基础伤害倍数+暴击伤害)+1-暴击率)-1)^0.5*AP*B
免伤战斗力=((1+闪避)*(1+格挡)*(1+伤害减免)*(1+麻痹抵抗)*(1+定身抵抗)*(免暴率*(暴击基础伤害倍数+暴击抵抗)+1-免暴率)-1)^0.5*HP*A
注:以上计算需在命中、无视防御、麻痹、定身、暴击率此类会溢出的属性在未溢出的前提下,即这些属性在投放是需注意不要溢出。
|
|