作者:prosubway
前言
偶尔能看到《计算器打桩》的说法,即用40秒除以各个技能的最终冷却得到技能施放次数。然后把各个技能伤害和次数相乘求和得到最后的打桩结果,这样的方法因为完全无视了外在条件而经常招来C友们的群嘲,今天我将通过一些简单的python代码,来实现真正的计算器打桩,为大家揭开技能特化最后的面纱!
模拟角色
要进行模拟,就必定先得有一个比较接近真实的数据模型。
现在我们假定这样一个角色,不考虑觉醒、技能柔化,不考虑宠物减5%CD,结合职业数据表中,各等级技能的CD情况以及占比情况来综合考虑,该角色在实战中拥有10个技能:
得到下表
现在我们得到了一个相对原始的数据,后续的数据都可以基于这个表进行优化调整
要让这个数据更加接近真实,我们还需要一些优化:
1.现在大部分流派的常驻CD减少都在38%左右(魔女/海湾腰带+魔女戒指),所以我们给全技能上一个38%的减CD
2. 角色有3个护石技能,假设为2个高阶技能和1个中阶技能,3个护石技能的秒伤系数提升至0.9且符文9保其中一个技能,该技能的系数提升至1.1。冷却缩减提升至50%
优化后的技能表如下所示:
其中橙色高亮的技能是护石技能,蓝色高亮的技能是护石+9保技能
这个表基本上可以代表大部分职业的技能伤害结构
有可能你的职业技能伤害结构、符文护石配置和该表有较大出入,但先别急,因为该攻略主要研究的是进行技能特化后,在输出能力上会有何差异。结论的重点在于“技能结构变化”带来的影响。
模拟环境
暂且设定了3种实战环境
1.40秒打桩环境,用于模拟修炼场40S桩的爆发输出能力
2.180秒打桩环境,用于模拟在不考虑机制、走位的情况下,技能的长线输出能力
3.180秒副本环境,用于模拟在需要躲避一定机制、进行走位的情况下,技能的长线输出能力
详细说一下这个副本环境是如何设定的,在副本环境中,每0.5秒钟都有概率出现BOSS机制、BOSS移动走开、BOSS无敌等情况,为简化说明,将这些情况统称为机制。
具体为,每0.5秒进行一次机制判定,有2%的概率会出现8秒钟的机制,4%的概率会出现4秒钟的机制,10%的概率会出现1秒钟的机制,在机制中不会重复进行判定。
也就是说,在副本环境中,有约50%的时间是机制时间(PS:这个50%是怎么计算的?答:我才懒得计算,我模拟了10万次然后取平均值),在机制时间里,不可以施放技能,考虑到真正的实战中玩家可以利用位移技能、无敌等塞伤害,作为弥补,允许已经施放的技能在机制时演出(好吧,也简化了代码,真是皆大欢喜(?))。
可能有朋友看到有一半的时间都是机制时间,会觉得很离谱,这输出不得腰斩?嗯,虽然从直觉上来说,这个数据看起来是有点夸张,但真相却是反直觉的,在这样的环境下,比起纯打桩的环境,输出只下降了20%不到。如果你有闲工夫去自己录制一次通关因果毁灭的视频,然后慢镜头去播放、计算机制时间,你可能会发现实际情况可能比这还要夸张。
模拟战斗过程
对代码不感兴趣或者不想了解的朋友可以直接跳过该节。
代码用了python来写,属于业余小爱好,可能比较丑陋,大家见笑,也非常欢迎对这方面比较熟悉的人提出批评和意见。
要模拟战斗过程,可能会优先想到使用多线程,但这点数据用多线程有点杀鸡焉用宰牛刀的感觉,时间上也不允许,所以定义了一个时间列表,每个下标代表0.5秒,也就是说最小的时间间隔是0.5秒,然后对列表进行for循环来实现整个过程。关键部分如下所示
角色的10个技能信息事先保存到技能列表skills中
战斗前先初始化一下计数信息,然后对时间列表times进行循环,每循环一次,就代表时间经过了0.5秒,times中存放的都是布尔值,标识了当前时间下是否是机制时间。
在每次循环中,先根据时间更新一次技能冷却的情况,这个比较简单
然后如果不是在机制时间,则施放一个当前伤害最高且未进入冷却的技能,并且将相关信息储存起来方便后续计算
最后将保存的信息进行归纳计算,得出各项数据结果
由于最小时间间隔为0.5秒,也就是说0.5秒内最多放一次技能,但实际上DNF中有很多几乎是瞬发的技能,因此在这方面会与实际存在误差。
常规流派伤害表现和分析
先上数据,为了减少偶然性,在副本环境模拟中,取100次模拟结果的平均值,
先看40秒桩和180秒桩,为什么会有这种数据差异呢?
主要体现在以下3点:
1.在短线桩中,主要体现的是角色的爆发能力
2.中低位技能由于施放优先级可能不高,在短线桩中会存在一定程度的空转,尤其是这个模拟还没有考虑演出时间更长的觉醒技能
3.高位技能,或者说长CD高伤害的技能,在短线作战中可以“透支”秒伤,例如95级技能的CD是37秒,在40秒钟内可以使用2次,在打桩结束后,95技能的CD可能还要30多秒来转好,也就是高位的技能提前透支了大量打桩结束后的秒伤。这也是为什么很多人会通过一些牺牲伤害换CD的手段来在40秒钟内多使用出一次高位技能。
然后再单独看一看长线桩的占比情况,会发现部分高位技能的占比突然拉了,反而是中低位技能都站起来了。
这是因为越是长线的作战,技能伤害占比与该技能的秒伤系数(就是数据表里各种的秒伤数据)的相关性越强,还记得我们之前设置的技能数据吗?在不考虑符文护石的情况下,我为高位技能设置了0.6的系数,中位是0.7,低位是0.8,可能这样的设定不具有普遍性,但技能秒伤数据的作用在这里已经完全被体现出来。
这也就是计算器打桩的说法被嘲讽的一大原因,很多低阶短CD技能往往秒伤数据很优秀,但是通常不会选择其作为主力技能。
再看看一下常规流派在副本中的表现。
我们会发现,在副本实战中,因为存在机制、走位等各种情况,各技能的施放次数有了一定程度的降低。总体输出则是降低了20%左右。
且越是短CD的技能,技能次数、占比下降程度越明显,秒伤数据可能不是很优秀的高位技能反而能稳住脚跟,在副本中的发挥和打桩环境比较相近。而护石技能和被9保的技能占比提升明显,这也非常符合我们的认知。
技能特化在实战副本中的提升
高位技能特化(主要以75、80级技能为主)主要以恩特精灵鞋子、深潜迷航护腿、蓝灵项链等自定义装备为核心,在以牺牲其他技能伤害为代价,换取特化技能的伤害提升和CD进一步减少。
以75级技能为例,恩特鞋子、深潜护腿为75级技能额外提供了大量伤害,最终约提升60%的技能伤害,秒伤系数来到1.8,但作为代价。其他技能的伤害普遍降低了10~20%不等,另外一个高位技能,即80级技能,由于恩特鞋子的影响CD也增加了10%左右,让我们稍稍控制变量,重新调整一下技能列表,使得特化流派和常规流派的长线打桩输出近似:
请注意,这个数据只是略近似于实际,不能完全代表实际,只是为了说明特化流派在实战中的表现,实际的特化流派伤害结构可能比该表更为夸张
然后将数据填入变量,进行模拟得到:
结果应该是意料之中的。
首先看两个流派180秒长线桩的对比,由于采用了小幅度的控制变量,将180秒桩作为基准,在尽量将两个流派的长线伤害平齐的情况下修改技能数据,所以特化流派180秒的秒伤数据和常规流派是平齐的,只是技能占比发生了变化,被特化的技能占比来到了34.5%
然后可以注意到,特化流派40秒桩提升了非常多,这是否与实际不符呢?非也,仔细观察会发现40秒桩里,特化技能因为CD进一步减少,额外打出了一次(有点以前灵通鞋、灵通肩多塞大技能的味道),所以导致了总输出大幅提升,参考价值不是很大。
重点在于180秒的副本模拟,虽然两个流派的长线打桩伤害很接近,但在副本中,特化流派很稳定地比常规流派高出了4.6%,其中特化技能占比39.09%。后续我通过继续修改技能列表,在保证长线打桩伤害的不变前提下,进一步扩大特化技能的占比,发现提升比较微小,最终也是稳定在5%不到。
结论呼之欲出——在总体伤害不变的前提下,逐渐拉高某个技能的占比,这样的伤害结构在副本环境下伤害也会逐渐提升,最终会稳定在某一个数值左右(可能是5%不到)
还没结束,论技能特化的实际提升
由前面的实验,我们已经知道技能特化在副本中会有小幅优势,但是特化流派的伤害只仅限于此吗?
并非!前面为了平齐长线伤害,特化流派其他技能的数据被我额外调得更低了一些。现在让我们把数据调回来,让数据更接近现实
以劳力士直伤攻速流为例,换掉鞋子裤子项链变成特化75直伤流,其中,75级技能提升60%,冷却缩减(不考虑宠物)来到约60%,95技能和80技能伤害下降10%(因为深潜裤子提供了3个高位技能技工),剩下技能下降15%,80级技能CD增加约10%,最终技能表应该是这个样子:
代入程序跑一跑,最后得到以下数据:
直伤劳力士特化75之后,180秒长线稳定输出比一般流派提升了9.05%,副本输出对比常规流派提升了12.93%
注:这个提升率和前面设定的技能秒伤系数和冷却时间紧密相关,即高位技能0.6、中位技能0.7、低位技能0.8、护石技能0.9,你可以查阅各职业数据表来类比该模型,你可以想象成护石技能拥有9W的秒伤,实际上这完全不夸张。假设以蓝拳为例,按照之前设定第三个技能的原始冷却45秒来计算,75级最强怒击在该模型下秒伤为122735/45*34.2=93278.6,已经超过9W。
最后总结
数据表明,特化在合适的情况下,可以有效地全面提升角色的作战能力,包括但不限于长线输出、实战输出,实际稳定提升率可能会来到10%左右,在副本实战条件下会更高
并且,很明显,特化的提升和你准备特化的技能秒伤数据息息相关,什么情况下适合进行特化呢?如果你的职业拥有80、75、35等秒伤数据优秀、形态良好且支持特化的技能,进行特化将给你带来整体伤害和实战副本伤害的双重提升!