作者:王鑫然
四、职业对抗及数值平衡计算
有了各职业总属性和技能数值,就可以做职业对抗模拟了,模拟的目的是为了调整数值。模拟时选取各职业等级10级、20级、30级,进行两两对战。装备品质取蓝色。
之所以选定从10级开始,是因为MMORPG游戏,玩家进入游戏后一定等级之前,是不会PK的,装备也没穿全,对这个时候的各职业进行职业对抗模拟没有意义。到了一定等级之后才会去PK。
总共选取职业等级10级、20级、30级,三个等级位进行战斗模拟,是因为数值无法保证%的平衡,但要保证阶段性的平衡,10、20、30是游戏设定的最基本的三个阶段。
装备品质取蓝色纯属预期设定,实际游戏对抗模拟中,会取中、高两档装备进行对抗模拟,尤其是对于卖高级装备的游戏,要保证大R玩家穿着高品质高等级装备PK时,实力是相等的。
虽然此处取了蓝色品质装备做平衡计算,但计算结果应该保证白、绿、紫、橙四种品质装备下的各职业依然能够保持平衡
对抗时,先用炼金术士VS炼金术士,再用暗夜猎手VS暗夜猎手,这样会得出两个战斗回合数,因为炼金术士防御最强,暗夜猎手伤害最高,所以得出的战斗回合数,是整个游戏中,两两对抗战斗回合数的最大值和最小值,相应的,暗夜猎手VS炼金术士的战斗回合数,应该处在这个最大值和最小值之间。
4.1炼金术士VS炼金术士
炼金术士玩法和技能
分析炼金术士对打的特点:
炼金术士打架时,是开着毒对方。
炼金术士VS炼金术士,攻击距离相同,不存在追击问题,所以移动速度、位移等可以抛开不管。
由于炼金术士的开启后会给自己加魔法攻击、双防、移动速度,所以要计算不同技能在开了和没开时候的释放次数和伤害值。
由于不受命中和暴击影响,一定会命中,且不会暴击,所以计算的伤害期望值时,计算值=真实值
由于有生命恢复效果,每秒恢复一定最大生命值百分比,所以应在受到伤害后开启,使生命恢复效果不浪费。
和配合造成的眩晕效果,会影响普攻的释放次数,对长CD技能释放次数的影响可以不计。
动作会把对方举起来摔到身后,就意味着技能动作开始时,对方处于类似于眩晕的状态,眩晕时间=技能动作时间
的持续时间要分情况讨论,如果最后一次释放的时间内,战斗已经结束,说明技能的持续时间,有一部分不能计算入战斗中。
计算普攻释放次数时,要减去其他技能释放花费的动作时间。
战斗双方倒下的标准是,战斗时间内(战斗回合数)内,“生命值/伤害值”的数值,刚好小于1,意味着刚好双方在最后一秒输出结束后,双双躺地。
调用和计算炼金术士在开启前后的数据,如下
炼金术士开启前后的数据
计算战斗中各个技能数据的思路如下:
设定第一次开启的时间为战斗后1秒。
战斗时间手动设置,根据“生命值/伤害值”的数值大小最终确认。
疯狂药剂
开启次数=(战斗时间-第一次开疯狂药剂时间)÷技能CD时间
持续时间=if(战斗时间-第一次开启时间-(疯狂药剂开启次数-1)*技能CD时间技能持续时间,战斗时间-第一次开启时间-(疯狂药剂开启次数-1)*技能CD时间+(疯狂药剂开启次数-1)*技能持续时间,疯狂药剂开启次数*技能持续时间)
毒气
开启次数为1次,即战斗开始后,开启就一直没关闭。
在没有时造成的伤害=没开前造成的魔法伤害*(战斗时间-药剂持续时间-毒气释放次数*毒气动作时间),魔法攻击取疯狂药剂释放前的魔法攻击,毒气释放一次就会一直开下去。
在有时造成的伤害=开后造成的魔法伤害*药剂持续时间。
强力黏胶
的释放次数=战斗时间÷技能CD时间
对应的伤害,是普攻在眩晕时间内造成的伤害,给设定一个修正系数,表示不一定%把对方扔到上,同时这个修正系数也是对普攻的修正,所以最终,的伤害=开前的普攻物理伤害*rounddown(放次数*(战斗时间-药剂持续时间)/战斗时间,0)*单次眩晕时长*普攻修正值+开后的普攻物理伤害*rounddown(释放次数*药剂持续时间/战斗时间,0)*单次眩晕时长*普攻修正值
过肩摔
没开时的次数=战斗时间内释放的总次数*没有药剂的时间占总战斗时间的比值=(总战斗时间/技能CD时间)*(战斗时间-药剂持续时间)/战斗时间,结果向上取整。
开时的次数=战斗时间内释放总次数-没有药剂时释放的次数=(总战斗时间/技能CD时间)-没有药剂时释放的次数,结果向上取整。
伤害值分别通过魔法伤害公式计算。
普攻次数
没开时普攻次数=(战斗时间-药剂持续时间-释放次数*动作时间-释放次数*rounddown*动作时间-非狂释放次数*动作时间-释放次数*动作时间-在没有药剂BUFF时间内的眩晕时间)÷普攻动作时间,结果向下取整。
开时普攻次数=(药剂持续时间-释放次数*rounddown(药剂持续时间/战斗时间,0)*动作时间-狂释放次数*动作时间)/普攻动作时间
伤害值分别通过物理伤害公式计算。
总生命值
总生命值=总生命值*(1+释放次数*技能恢复生命比例)
伤害期望值
除外,其他伤害应该把命中率和暴击率算进去,得出伤害期望值
最终得出计算数据如下:
10级时,炼金术士VS炼金术士穿蓝色装备的对战数据
20级时,炼金术士VS炼金术士穿蓝色装备的对战数据
30级时,炼金术士VS炼金术士穿蓝色装备的对战数据
从以上数据可以看出,伤害占总伤害比重的60%以上,战斗时间随着炼金术士等级提升,越来越低,但变化不大,符合对炼金术士的玩法设定。但要注意,这里所引用的数据,最终要根据炼金术士VS暗夜猎手的对战数据,得出的最终结果进行调整。
4.2暗夜猎手VS暗夜猎手
暗夜猎手玩法和技能
分析暗夜猎手对打的特点:
暗夜猎手打架时,是靠普攻互相伤害。
暗夜猎手VS暗夜猎手,攻击距离相同,不存在追击问题,所以移动速度、位移等可以抛开不管。
会增加物理攻击,并降低的CD时间,所以计算时要对每一个造成物理伤害的技能,按照是否开启计算伤害。
造成的眩晕对普攻次数有影响,对其他长CD技能的释放次数影响可以不计。
并不一定能把对方射到障碍物上造成眩晕,所以要加一个修正。
将目标射到障碍物上造成的伤害,跟没射到建筑物上造成的伤害不同,要分开计算。
为了将持续时间利用最大化,暗夜猎手对打肯定是上来就开技能。
计算普攻释放次数时,要减去其他技能释放花费的动作时间。
调用和计算暗夜猎手在开启前后的数据,如下:
暗夜猎手开启前后的数据
计算战斗中各个技能数据的思路如下:
战斗时间手动设置,根据“生命值/伤害值”的数值大小最终确认
杀戮时刻
释放次数=战斗时间/杀戮时刻CD时间
持续时间=if(战斗时间-释放次数*技能动作时间-(释放次数-1)*技能CD时间技能持续时间,(释放次数-1)*技能持续时间)+战斗时间-释放次数*技能动作时间-(释放次数-1)*技能CD时间,技能持续时间*技能释放次数)
击退巨箭
没开时释放次数=在战斗时间内释放的总次数*没有的时间占总战斗时间的比值=(战斗时间/CD时间)*(战斗时间-可持续时间)/战斗时间,结果向上取整
没开时的伤害=没射墙造成的伤害+射墙造成的伤害=没开时的释放次数*眩晕时间修正*没开时造成的物理伤害+没开时的释放次数*(1-眩晕时间修正)*没开时造成的射墙物理伤害
开时释放次数=战斗时间内释放总次数-没有时的释放次数=战斗时间/CD时间-没有时的释放次数
开时的伤害=没射墙造成的伤害+射墙造成的伤害=开时的释放次数*眩晕时间修正*开时造成的物理伤害+开时的释放次数*(1-眩晕时间修正)*开时造成的射墙物理伤害
翻滚一箭
没开时释放次数=在战斗时间内释放的总次数*没有的时间占总战斗时间的比值=(战斗时间/技能CD时间)*(战斗时间-可持续时间)/战斗时间,结果向上取整
开时释放次数=可持续时间/(技能CD时间*(1-减少CD的百分比)),结果向上取整
伤害按照物理伤害计算公式分别计算
这里要注意的CD时间,在实际设计过程中,战斗策划会遇到这样一个问题——如果玩家开了后,再开,的剩余CD应该是多少,各位同学自己思考其中细节。
普攻
没开时普攻释放次数=(战斗时间-持续时间-没开时眩晕时间-释放次数*动作时间-没开时的释放次数*的动作时间-没开时的释放次数*的动作时间)/普攻动作时间,结果向下取整
开时普攻释放次数=(持续时间-持续时间内修正后眩晕-持续时间内释放次数*动作时间-持续时间内释放次数*动作时间)/普攻动作时间,结果向下取整
伤害按照物理伤害计算公式分别计算
暗夜猎手
释放次数=普攻释放次数÷3,结果向下取整,“÷3”是因为每3次普攻触发一次暗夜猎手
伤害期望值
各个技能和普攻伤害应该把命中率和暴击率算进去,得出伤害期望值。
在计算总伤害期望值时,应该把暗夜猎手造成的伤害,换算成真实伤害,并计入到总伤害期望值中。
最终得出计算数据如下:
10级时,暗夜猎手VS暗夜猎手穿蓝色装备的对战数据
20级时,暗夜猎手VS暗夜猎手穿蓝色装备的对战数据
30级时,暗夜猎手VS暗夜猎手穿蓝色装备的对战数据
从以上数据可以看出,普攻+暗夜猎手的伤害之和,占总伤害的60%左右,符合玩法设定。20级对战时,生命/总伤害期望值=0.92,有0.08的差距,说明战斗在10秒多时就已经结束。
这篇文章就写到这里。
转载请注明:http://www.0431gb208.com/sjszjzl/6993.html