你可能不知道的DOTA2细节

V5手游


今天我将把攻击速度讲得更详细一些(因为V社挖了一个大坑)。

你可能不知道的DOTA2细节-dota2eg

首先我们明确几个概念:基础攻击间隔BAT,攻击速度AS,额外攻击速度IAS,基础攻击速度,攻击间隔(每X秒攻击一次,AT),每秒攻击次数。为了叙述方便,下文均用英文代替。

除了肉山,每个单位的初始攻击速度都是100,因此下文不再引用初始攻击速度的名词,直接用100来代替。

BAT的定义是一个英雄在没有任何IAS时的AT。

举例,1级炼金的BAT为1.7,若敏捷被偷成0,不学技能不买物品,那么他的AT即为1.7,即每1.7秒攻击一次。如果是神谕者,则每1.4秒攻击一次。下文会上图。

AS=100+IAS,这个不多赘述。

IAS指的是除了100攻击速度之外的任何攻击速度加成。比如敏捷、加速手套、振奋宝石、兽王光环等。

AT即为攻击力面板显示的每XX秒攻击一次。

每秒攻击次数=AT的倒数。

AS有范围,20-600。对于BAT为1.7的英雄来说,AS不会低于20,超过600不会有任何变化。这个大家自己感受吧。

公式:AT=

每秒攻击次数=1/AT。

好,以上为知识背景,下面开始正文。

为什么上边举例都是用BAT为1.7的英雄做例子?因为V社在处理BAT不等于1.7的英雄的时候用了一种看似高明实则愚蠢的方法:“为了让不同英雄间的攻击速度比较更直观”,他们将BAT不等于1.7的英雄的AS“换算”成BAT为1.7的英雄的AS。下面我们用炼金的例子看一下。

查表可知,炼金术士的BAT为1.7。

扣除所有敏捷后(后文会解释这样做的原因),未开大炼金AS为100,AT为1.7,符合实际情况。

开启1级大招。

保持其他情况不变,嗯?怎么AS变大了?怎么变成121了?

又,又变大了?

开启三级大招。

诶?好像发现了一些规律?

1.0=1.0*100/100=1.7*100/170!

我们在3级大招的时候发现了规律:为了保持相同的AT,系统将BAT不是1.7的英雄拥有AS换算成了一个BAT为1.7的英雄要达到当前的AT所需要的AS。(用汉语翻译一下:为了保持相同的攻击间隔,系统将基础攻击间隔不是1.7的英雄所拥有的攻击速度换算成了基础攻击间隔是1.7的英雄要达到当前攻击间隔所需的攻击速度)。

根据攻击速度公式:

解得x=121.4。

解得x=141.6。

解得x=170。

可以看出,与实际符合得很好。

如果您能坚持看到这里,请允许我表达对您的敬意,谢谢您并没有“太长不看”而是看了下去,谢谢您的支持。

下面我要解释一下为什么做上面测试的时候一定要把敏捷偷光。

我们看下图。

同样是3级大招,除了敏捷之外无其他IAS,此时我们拿出刚才的公式:

依图,AT为0.72,一个1.7秒的英雄想每0.72秒攻击一次,需要多少攻击速度呢?

解得x=236.1。

这与图中AS=210匹配得很不好,可以说差之千里。

这是为什么呢?

然而我们仔细一看,会发现:

170+40=210,170是经过换算后的基础攻击速度,40是敏捷提供的IAS。

原来是这样!V社的程序员并没有将所有的AS都做了“换算”处理,而只是将基础攻击速度做了“换算”处理。而如果不测试的话很难发现这一点,至少手选一个JUGG出门发现攻击速度不等于100+敏捷的时候是一脸懵逼的。

所以我们会发现,如果不把敏捷偷光(即把所有IAS都去掉只剩下基础攻击速度),直接用“换算”的方式来处理AS的话,是得不到正确的结果的。这就是我说 V社这样的处理方式“看似高明实则愚蠢”的原因。。。

接下来是攻击速度范围。

前文说过AS范围为20-600,那么对于BAT非1.7的单位来讲,以炼金为例,根据换算得到的AS范围应该是20*170%-600*170%,即34-1020。

那么实际情况是不是这样呢?

最低AS为90。

最高AS为670。

3级大的炼金攻速范围为90-670,而并不是34-1020。

不难看出,经过“换算”得到的AS中,只有基础攻击速度做了换算,IAS都没有换算。

也就是说,3级大招下的炼金要使攻击力面板上的攻击速度到达670才能到达满攻速(1秒攻击6次,0.167秒攻击一次),只有600的话不会到达最大攻速

标签: