標籤:

DOTA2中攻擊速度的秘密

溫馨提示:請不要對遊戲內數字(尤其是小數點)太糾結

==============================正文的分合鳥線============================

上一篇文章里講的是幾種常見的疊加機制,其中提到了攻擊速度。今天我將把攻擊速度講得更詳細一些(因為V社挖了一個大坑)。

首先還是像那篇文章一樣,我們明確幾個概念:基礎攻擊間隔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=frac{BAT}{100+IAS} 	imes 100frac{BAT}{AS} 	imes 100。每秒攻擊次數=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了?

開啟2級大招。

又,又變大了?

開啟三級大招。

誒?好像發現了一些規律?

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的英雄要達到當前攻擊間隔所需的攻擊速度)。

根據攻擊速度公式:

frac{1.7	imes 100}{x} =1.4,解得x=121.4。

frac{1.7	imes 100}{x} =1.2,解得x=141.6。

frac{1.7	imes 100}{x} =1.0,解得x=170。

可以看出,與實際符合得很好。

如果您能堅持看到這裡,請允許我表達對您的敬意,謝謝您並沒有「太長不看」而是看了下去,謝謝您的支持。

下面我要解釋一下為什麼做上面測試的時候一定要把敏捷偷光。

我們看下圖。

同樣是3級大招,除了敏捷之外無其他IAS,此時我們拿出剛才的公式:

依圖,AT為0.72,一個1.7秒的英雄想每0.72秒攻擊一次,需要多少攻擊速度呢?frac{1.7	imes 100}{x} =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的話不會到達最大攻速。

========================總結=================================

1.對於所有基礎攻擊間隔不為1.7的英雄來說,他們屬性面板的攻擊速度數值存在問題,無法公式用來計算真正的當前攻擊間隔。

2.造成數值出現問題的原因是遊戲中將BAT非1.7英雄的基礎攻擊速度換算成了BAT為1.7英雄的基礎攻擊速度,方式為在100的基礎上增加/減少一個數值。

3.因此,BAT不為1.7的英雄的攻擊速度區間為[20,600]偏移一定數值。

謝謝

資料來源:dota.huiji.wiki(建設中)

dota2.gamepedia.com


推薦閱讀:

"我看到你了!"----淺談DOTA2中的視野機制
7.00部分英雄測試效果
MDL2016決賽日賽事回顧
DOTA2英雄嘴上吟唱的那些詩歌,你還記得嗎?
亞洲邀請賽第二季第三日-賽事回顧

TAG:DotA | 刀塔DOTA2 |