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不會有任何變化。這個大家自己感受吧。
公式:或。每秒攻擊次數=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的英雄要達到當前攻擊間隔所需的攻擊速度)。
根據攻擊速度公式:
,解得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的話不會到達最大攻速。
========================總結=================================1.對於所有基礎攻擊間隔不為1.7的英雄來說,他們屬性面板的攻擊速度數值存在問題,無法公式用來計算真正的當前攻擊間隔。
2.造成數值出現問題的原因是遊戲中將BAT非1.7英雄的基礎攻擊速度換算成了BAT為1.7英雄的基礎攻擊速度,方式為在100的基礎上增加/減少一個數值。3.因此,BAT不為1.7的英雄的攻擊速度區間為[20,600]偏移一定數值。謝謝
資料來源:dota.huiji.wiki(建設中)
http://dota2.gamepedia.com
推薦閱讀:
※"我看到你了!"----淺談DOTA2中的視野機制
※7.00部分英雄測試效果
※MDL2016決賽日賽事回顧
※DOTA2英雄嘴上吟唱的那些詩歌,你還記得嗎?
※亞洲邀請賽第二季第三日-賽事回顧