常见的游戏中都有属于自己的一套伤害机制,最近发现DOTA2中攻速计算公式与明日方舟中的几乎一致,因此在学习之余记录下来。
1.名词概念
在介绍计算公式前,先引入几个基本概念
基础攻击间隔BAT(Base Attack Time):最核心的数据,所有的计算都必须依赖基础攻击间隔,是一个与模型(英雄单位)有关的常量,各个英雄的攻速差异主要体现在此常量上,也是代码中设定最核心的部分。
基础攻击速度BAS(Base Attack Speed):人为设定的数据,为了建立计算公式而人为规定的常量,基础攻击速度都设定为100
攻击速度AS(Attack Speed):人为定义的概念,游戏中自己单独的定义,并没有什么现实意义
攻速提升IAS(Increased Attack Speed,IAS):一个单位通过各种途径的获得的攻击速度提升
(实际)攻击间隔AT(Attack Time):一个单位进行持续攻击时,两次连续攻击中间隔的时间,也是实际游戏中玩家所能感受的表现。
攻击频率APS(Attack Per Second):一个单位进行持续攻击时,一秒内能攻击的次数,注意:区别于攻击速度
其中,
基础攻击速度+攻速提升=攻击速度
攻击间隔*攻击频率=1
2.计算公式
攻击频率(每秒攻击次数)=(基础攻击速度+攻速加成)/(基础攻击间隔*100)
攻击间隔= 1 / 攻击频率
也就是说,对于一个攻速加成为50,基础攻击间隔为1.7的英雄来说
它的攻击频率为(100+50)/(1.7*100)=0.88
攻击间隔为1/0.88=1.13
DOTA2攻击速度设定最大值为600,
至于DOTA2中的攻击速度补偿以及明日方舟中的基础攻击间隔减少在此不作讨论
3.DOTA攻击速度提升性价比研究
//TODO