欢迎光临散文网 会员登陆 & 注册

Dota 2 攻击速度公式推导

2023-01-11 15:44 作者:socovo  | 我要投稿

如何定义

每个英雄的攻击有快有慢,必须定义一个标准值来衡量他们的相对快慢,这样才能够进行比较。
定义攻击间隔1.7秒作为一个标准值,也就是本次攻击到下次攻击之间间隔的时间。
定义当攻击间隔为1.7秒时攻击速度为100,可得

在这个公式中,如果实际攻击间隔缩短为50%也就是0.85秒,那么攻击速度就是200,意思就是加倍了,这很容易理解。

这样定义之后,通过调整攻击间隔,每个英雄的攻击速度也会不同,相互之间就可以进行比较了,如果两个英雄的攻击速度相同,那攻击速度就是相同的。

每个英雄都有了自己的固有攻击间隔和对应的固有攻击速度。

这样我们就可以将通过敏捷或物品增加的攻击速度和英雄固有攻击速度分开了,我们定义增加100攻速的意思就是攻速提升100%,增加50攻速的意思就是攻速增加50%,可得

这样定义之后每个英雄增加相同的攻速所带来的效果是不同的,这取决于英雄的固有攻击速度,你的固有攻击速度高你的收益就更大。我们再将这个公式完善一下,可得

因为英雄介绍中提供的不是固有攻击速度,而是固有攻击间隔,利用公式将固有攻击速度转为英雄固有攻击间隔代入后,可得


化简后,可得


那么,知道当前攻击速度也可以求得当前攻击间隔,可得


然后将当前攻击速度用英雄固有攻击间隔替换,可得

化简后,可得

游戏验证

发现错误

之前说了,已经通过游戏验证了公式的通用性,并没有发现问题。直到我选出了主宰,发现数据怎么都对不上,只有凭空多出10敏捷的情况下才能完美对上数据,我还一度以为这是一个BUG。后来发现每个英雄的固有(基础)攻击速度和固有攻击间隔并不是如一开始推导的那个公式:                                      


英雄的固有(基础)攻击速度和固有攻击间隔相乘不是恒定的170,有几个英雄后面的系数不是100,他们是:


解决办法也很简单,只要将公式中的数值100改成这些英雄的固有(基础)攻击速度就可以了。


那么为什么要这么设计呢?

我们画一个函数图像就明白了:

我们假设主宰原来是 f 函数,如果只通过基础攻击间隔改动,那么结果就是 g 曲线,会发现整体下移了,意味着主宰的整个升级周期都会受到影响;而如果不改动基础攻击间隔而改动基础攻击速度,我们得到了h函数,h函数和 f 函数有一个重合点 – 初始点0级的时候,意思就是说主宰的前期和以前一样,但是削弱了他的后期攻速提升表现,增长变缓了,我想这就是这样设计的原因吧。


Dota 2 攻击速度公式推导的评论 (共 条)

分享到微博请遵守国家法律