泓泰

DNF:技能特化全揭秘:让我们用编程来模拟实战!

admin

作者:prosubway

前言

偶尔能看到《计算器打桩》的说法,即用40秒除以各个技能的最终冷【lěng】却【què】得到技能施放次数,然【rán】后把各个技【jì】能伤害和次【cì】数相【xiàng】乘求和得到最【zuì】后的打【dǎ】桩结【jié】果,这【zhè】样的方法【fǎ】因为完全无视了外在条件而经常【cháng】招来C友们的群嘲,今天我将通过一些简单的python代码,来实现真正的计算器打桩,为大家揭开技能特化最后的面纱!


模拟角色

要进行模拟,就必定先得有一个比较接近真实的数据模型。
现【xiàn】在我【wǒ】们假定这样【yàng】一个角色,不【bú】考虑【lǜ】觉醒【xǐng】、技能柔化,不考虑宠物减5%CD,结合职业数据表中,各等级技能的CD情况以及占比情况来综合考虑,该角色在实战中拥有10个技能:

得到下表

现在我们得到【dào】了一【yī】个相【xiàng】对原始的数据,后续的数【shù】据都【dōu】可以基于这个表进行【háng】优【yōu】化调整

要让这个数据更加接近真实,我们还需要一些优化:

1.现在大部分流派的常驻CD减少都在38%左右(魔女/海湾腰带+魔女戒指),所以我们给全技能上一个38%的减CD
2. 角色有3个护石技能,假设为2个高阶技能和1个中阶技能,3个护石技能的秒伤系数提升至0.9且符文9保其中一个技能,该技能的系数提升至1.1。冷却缩减提升至50%

优化后的技能表如下所示:

其中橙色高亮的技能是护石技能,蓝色高亮的技能是护石+9保技能
这个表基本上可以代表大部分职业的技能伤害结构

有可能你【nǐ】的职业技能【néng】伤害结构、符文护石配置和该表有【yǒu】较大出入,但【dàn】先别急,因为该攻略主要研究的是进【jìn】行技能特化后,在输出能【néng】力上会有何差异【yì】。结论的重点【diǎn】在于【yú】“技能结【jié】构【gòu】变化”带【dài】来的【de】影响【xiǎng】。


模拟环境

暂且设定了3种实战环境
1.40秒打桩环境,用于模拟修炼场40S桩的爆发输出能力

2.180秒【miǎo】打桩【zhuāng】环境,用于模拟在不考【kǎo】虑机制、走位的情况下【xià】,技能的长【zhǎng】线输出能力

3.180秒副【fù】本环境,用于模拟在需要躲避一定【dìng】机制、进行【háng】走位的【de】情况【kuàng】下,技能的长线输出【chū】能力

详细说一下这个副本环境是如何设定的,在副本环境中,每0.5秒钟都有概率出现BOSS机制、BOSS移动走开、BOSS无敌等情况,为简化说明,将这些情况统称为机制。
具体为,每0.5秒进行一次机制判定,有2%的概率会出现8秒钟的机制,4%的概率会出现4秒钟的机制,10%的概率会出现1秒钟的机制,在机制中不会重复进行判定。
也就是说,在副本环境中,有约50%的时间是机制时间(PS:这个50%是怎么计算的?答:我才懒得计算,我模拟了10万次然后取平均值),在【zài】机【jī】制时间里,不可以施放技能,考虑到真正的实【shí】战中玩家可以【yǐ】利用位移【yí】技能、无敌【dí】等塞【sāi】伤害,作【zuò】为弥补,允许已经施放的技能在机制时【shí】演出(好吧,也简化了代码,真是皆大欢喜(?))
可能有【yǒu】朋友看【kàn】到有一半的时间【jiān】都是机制时间,会觉得很【hěn】离谱,这输出不得【dé】腰斩?嗯【èn】,虽然从直觉上来说【shuō】,这个数据看【kàn】起来是有点夸【kuā】张,但真相【xiàng】却【què】是反直觉的,在这【zhè】样的【de】环【huán】境下,比起纯打桩的环【huán】境,输出只下降了【le】20%不到。如果你有闲工【gōng】夫【fū】去自己录制一次【cì】通【tōng】关因【yīn】果毁灭的视频【pín】,然后慢镜头去播放、计算【suàn】机制时【shí】间,你可能会【huì】发【fā】现实际情况可能比这还要夸张。


模拟战斗过程

对代码不感兴趣或者不想了解的朋友可以直接跳过该节。
代码用了python来写,属于业余小爱好【hǎo】,可【kě】能【néng】比较【jiào】丑陋,大家见笑,也非【fēi】常【cháng】欢迎对这方面比较熟悉【xī】的人提出【chū】批评和意见【jiàn】。
要模拟战斗过【guò】程,可【kě】能会【huì】优先【xiān】想到使用多线程,但【dàn】这点【diǎn】数据【jù】用【yòng】多【duō】线程有点杀鸡焉【yān】用宰牛刀的感【gǎn】觉,时间上也不允许,所以定【dìng】义了一个时间列【liè】表,每个下标代表0.5秒,也就是说最小的时间间隔是0.5秒,然后对列表进行for循环来实现整个过程。关键部分如下所示
角色的10个技能信息事先保存到技能列表skills

战斗前先初始化一下计数信息,然后对时间列表times进行循环,每循环一次,就代表时间经过了0.5秒,times中存放的都是布尔值,标识了当前时间下是否是机制时间。

在每【měi】次【cì】循环中,先根据时间更新一次技能冷【lěng】却的情【qíng】况,这个【gè】比较简【jiǎn】单

然后如果不是在机制时间,则施放一个当【dāng】前伤害最【zuì】高【gāo】且未进【jìn】入冷却的技能,并【bìng】且将【jiāng】相关【guān】信息储存【cún】起来方便后续【xù】计算

最后将保存的信息进行归纳计算,得出各项数据结果
由于最小时间间隔为0.5秒,也就是说0.5秒内最多放一次技能,但实际上DNF中有很多几乎是瞬发的技能,因此在这方面会与实际存在误差。

常规流派伤害表现和分析

先上数据,为了减少偶然性,在副本环境模拟中,取100次模拟结果的平均值,

先看40秒桩和180秒桩,为什么会有这种数据差异呢?
主要体现在以下3点:
1.在短线桩中,主要体现的是角色的爆发能力

2.中低位技能由于【yú】施放优先【xiān】级可能【néng】不高,在短【duǎn】线桩【zhuāng】中【zhōng】会【huì】存在一定程度的空转,尤其是【shì】这【zhè】个模拟【nǐ】还没有考虑【lǜ】演出时间更长的觉醒技能

3.高位技能,或者说长CD高伤害的技能,在短线作战中可以“透支”秒伤,例如95级技能的CD37秒,在40秒钟内可以使用2次,在打桩结束后,95技能的CD可能还要30多秒来转好,也就是高位的技能【néng】提前透支了大量打桩结【jié】束后【hòu】的秒伤。这【zhè】也是为【wéi】什【shí】么很【hěn】多人会通过一【yī】些牺【xī】牲伤害换CD的手段来在40秒钟内多使用出一次高位技能。

然后再单独看一【yī】看长线【xiàn】桩的【de】占比情况【kuàng】,会【huì】发现部分高位技能的占比突然拉了,反而是中【zhōng】低位【wèi】技能都站【zhàn】起来了。
这是因为越是长【zhǎng】线的作战,技能伤害占比与该技能的【de】秒伤系数(就是数据表里各种的秒伤【shāng】数据)的【de】相关性越【yuè】强【qiáng】,还【hái】记得我们之前设【shè】置的技能数据吗【ma】?在【zài】不考虑符文护石的情况下【xià】,我【wǒ】为【wéi】高位技能设置了0.6的系数,中位是0.7,低位是0.8,可能这样的设定不具有普遍性,但【dàn】技能【néng】秒伤【shāng】数据的【de】作【zuò】用【yòng】在这【zhè】里已经完全被体现出来。
这也就是计算器打桩的说法被嘲讽的一大原因,很多低阶短CD技能往往秒伤数据很优秀,但是通常不会选择其作为主力技能。

再看看一下常规流派在副本中的表现。
我们【men】会发现,在副【fù】本【běn】实战中,因为【wéi】存在机制、走位等【děng】各种【zhǒng】情【qíng】况,各技能的施放次数有【yǒu】了一定程度的降低。总体【tǐ】输【shū】出则是【shì】降低了20%左右。
且越是短CD的【de】技能,技【jì】能次数、占【zhàn】比下降程度越明显,秒伤【shāng】数据可【kě】能不是很优秀的高位【wèi】技能反而能稳住脚【jiǎo】跟【gēn】,在副本【běn】中的发挥和打桩环境比较相【xiàng】近。而【ér】护石技能和被9保的技能占比提升明显,这也非常符合我们的认知。

技能特化在实战副本中的提升

高位技能特化(主要以7580级技能为主)主【zhǔ】要以恩特精灵鞋子、深潜【qián】迷航护腿【tuǐ】、蓝灵【líng】项链等自定义装【zhuāng】备为核心,在以牺牲其他技能伤害为代价,换取【qǔ】特化技能【néng】的伤害提【tí】升【shēng】和【hé】CD进一步减少。
75级技能为例,恩特鞋子、深潜护腿为75级技能额外提供了大量伤害,最终约提升60%的技能伤害,秒伤系数来到1.8,但作为代价,其他技能的伤害普遍降低了10~20%不等,另外一个高位技能,即80级技能,由于恩特鞋子的影响CD也增加了10%左右,让我们稍【shāo】稍控制变【biàn】量【liàng】,重新调【diào】整一下技【jì】能列表,使得特化流派【pài】和常规流派【pài】的长【zhǎng】线打桩输出近似【sì】:

请【qǐng】注意,这个数据只是略【luè】近似【sì】于实际,不能完【wán】全代【dài】表实际,只是【shì】为了说【shuō】明特【tè】化流派在实战【zhàn】中【zhōng】的表现,实际的特化流派伤【shāng】害【hài】结构可能比该表更为夸张

然后将数据填入变量,进行模拟得到:

结果应该是意料之中的。

首先看两个流派180秒长线桩的对比,由于采用了小幅度的控制变量,将180秒桩作为基准,在【zài】尽【jìn】量【liàng】将两个流派的长线伤害平齐的情【qíng】况【kuàng】下修改【gǎi】技能【néng】数【shù】据,所以特化流派180秒的【de】秒伤数据【jù】和常【cháng】规流派是平齐的,只【zhī】是技能【néng】占比【bǐ】发生了变【biàn】化,被特化的技能占比来到了34.5%

然后可以注意到,特化流派40秒桩提升了非常多,这是否与实际不符呢?非也,仔细观察会发现40秒桩里,特化技能因为CD进一步减少,额外【wài】打出了一次(有点以【yǐ】前灵通鞋、灵通【tōng】肩多塞大技能的味道),所以导【dǎo】致了总【zǒng】输出【chū】大幅提升,参考价【jià】值【zhí】不是很大【dà】。
重点在于180秒的副本模拟,虽然两【liǎng】个流派的长线打桩【zhuāng】伤【shāng】害【hài】很接近,但在副【fù】本【běn】中,特化流派【pài】很【hěn】稳定地比常规流派高出了4.6%,其中特化技能占比39.09%。后续【xù】我通过继续修【xiū】改技能列表【biǎo】,在保证长线打桩伤【shāng】害的不变前【qián】提下,进【jìn】一步【bù】扩【kuò】大特【tè】化技能的占比【bǐ】,发现提升比较微小,最终也是稳定在5%不到
结论呼之【zhī】欲【yù】出——在总体伤【shāng】害【hài】不变的前提下,逐渐拉高某【mǒu】个技能的占比【bǐ】,这样【yàng】的伤害结【jié】构在副本环境下伤害也【yě】会逐渐【jiàn】提升【shēng】,最终会稳定在某一个【gè】数值左右(可能是5%不到)


还没结束,论技能特化的实际提升

由【yóu】前面的实验,我们已【yǐ】经知道技【jì】能【néng】特化在副本中会有小幅优势,但是特化流【liú】派的伤害【hài】只仅【jǐn】限于此吗【ma】?
并非!前面【miàn】为了平齐长线【xiàn】伤害,特化流【liú】派其【qí】他技【jì】能的数据被我额外调【diào】得更【gèng】低了一些,现在让我们把数据【jù】调回来【lái】,让数据更接【jiē】近现实
以劳力士直伤攻速流为例,换掉鞋子裤子项链变成特化75直伤流,其中,75级技能提升60%,冷却缩减(不考虑宠物)来到约60%95技能和80技能伤害下降10%(因为深潜裤子提供了3个高位技能技工),剩下技能下降15%80级技能CD增加约10%,最终技能表应该是这个样子:

代入程序跑一跑,最后得到以下数据:

直伤劳力士特化75之后,180秒长线稳定输出比一般流派提升了9.05%,副本输出对比常规流派提升了12.93%
注:这【zhè】个【gè】提升率和前面【miàn】设定的技能【néng】秒伤系数和冷【lěng】却时间紧密相关,即【jí】高位技能【néng】0.6、中位技能0.7、低位技能0.8、护石技能0.9,你可以查阅各职业数据表来类比该模型,你可以想【xiǎng】象【xiàng】成【chéng】护石技【jì】能拥【yōng】有【yǒu】9W的秒伤,实际上这完【wán】全不【bú】夸张。假设以蓝拳为例【lì】,按【àn】照之【zhī】前设定第三个【gè】技能的【de】原始冷却45秒来计算,75级最强怒击在该模型下秒伤为122735/45*34.2=93278.6,已经超过9W

最后总结
数据表【biǎo】明,特化在合适的情况下,可以有效地全【quán】面提升角色的【de】作【zuò】战能力,包括但不【bú】限【xiàn】于长线输出【chū】、实战输出,实际稳【wěn】定提【tí】升率【lǜ】可能会来到10%左右,在副本实战条件下会更高
并【bìng】且,很明显,特化的提升和你【nǐ】准备特化的【de】技能秒伤数据【jù】息息相关,什么情况【kuàng】下适合进行特化【huà】呢【ne】?如果你的职业【yè】拥有807535秒伤数据优秀形态良好支持特化的技能,进行特化将给你带来整体伤害和实战副本伤害的双重提升!


标签: #怪物猎人p3护石代码怎么用