你闻所未闻的刀塔细节:浅谈DOTA2的叠加机制

作者:韩松 来源:知乎 发布时间:2016-10-18 16:46:16 进入论坛

RPG TI6 视频

  DOTA2游戏内的各种叠加机制一直是玩家们争论不休的焦点问题,知乎的韩松同学为大家详解了各类关于游戏内叠加的问题,技术控一定要看!

浅谈DOTA2的叠加机制

  在DOTA2中,存在着许多相同或相似的机制。今天简单介绍几种叠加机制。

  1.加法叠加

  加法叠加是游戏中最常见也是最容易被忽视的叠加方式。

  加法叠加很简单,加法即可。

  如下的机制使用加法叠加:

  属性

  生命值/生命回复速率(固定数值)

  魔法值/魔法回复速率(固定数值)

  攻击力

  攻击速度

  护甲

  分裂伤害

  时间

  金钱

  经验

  某些物品在装备栏中(如吃树、净化)

  2.乘法叠加

  需要指出的是,乘法叠加并不是几个实例直接相乘,而是通过公式来计算。换句话说,成立的几率。

  换句话说,一个事件若要发生,必须绕过全部的阻碍,才能发生。

  如下机制使用乘法叠加:

  致盲(闪避在下文讲)

  魔法抗性

  魔法抗性是乘法叠加的。比如一个造成100点魔法伤害的技能,由于英雄本身有25%魔法抗性,那么会将伤害降低到75点,现在英雄装备了挑战头巾,那75点伤害又会降低30%到52.5点,如果是敌法师,则又会继续降低50%到26.25点。因此学习了4级法术护盾(50%魔法抗性)的敌法师(25%魔法抗性)装备挑战头巾(30%魔法抗性)后拥有的魔法抗性:1-(1-0.25)*(1-0.50)*(1-0.30)=0.7375 = 73.75%魔法抗性。

  或者这么说,一个造成100点魔法伤害的技能,首先要绕过魔法抗性这一关,成功率是75%;如果还要绕过一个挑战头巾,成功率为70%,所以总成功率为75%*70%;如果还要绕过敌法师的法术护盾,成功率是50%,此时的总成功率就是75%*70%*50%=0.2625。此时表现为魔法抗性为1-0.2625=0.7375,即73.75%的魔法抗性。

  补充一下小人马的魔抗光环叠加机制。

浅谈DOTA2的叠加机制

  DP与8个小人马

浅谈DOTA2的叠加机制

  每个小人马提供5%魔抗

浅谈DOTA2的叠加机制

  魔法抗性为50%

  若为加法叠加:25%+8*5%=65%,说明不是加法叠加。

  若为乘法叠加:1-0.75*0.95^8=0.502=50%,说明是乘法叠加。

  评论区有人说敌法师初始魔抗是18%

浅谈DOTA2的叠加机制

浅谈DOTA2的叠加机制

浅谈DOTA2的叠加机制

浅谈DOTA2的叠加机制

  3.伪独立叠加

  说到伪独立叠加,必须先说伪随机分布。

  伪随机数生成算法(PRNG)是一个用于生成一组伪随机数字序列的算法,与本文无关

  伪随机分布,简称PRD,在DOTA2中用来表示关于一些有一定几率的装备和技能的统计机制。与之相对的是真随机分布。在真随机分布中,每一次随机操作都是相互独立的,但是在PRD中,效果的几率会在每一次没有被触发之后增加,这使得效果的触发结果不那么极端(白牛1级无限推、PA无限闪避)。

浅谈DOTA2的叠加机制

  到下次触发时所需攻击次数。可以看到,伪随机分布下,攻击10次及以上都没有触发的几率几乎为零。图片来源:dota2 wiki

  一个事件,效果,发生的几率在第N次成功触发的几率为P(N) = C × N,对于每一个没有成功触发的实例来说,PRD会通过一个常数C来增加下一次效果触发的几率。这个常数会作为初始几率,比效果说明中的几率要低,一旦效果触发,计数器会重置,几率重新恢复到初始几率。

  比如:

  斯拉达的重击有25%几率对目标造成眩晕,那么第一次攻击,他实际上只有大约8.5%几率触发重击,随后每一次没有成功的触发实例都会增加大约8.5%触发几率,于是到了第二次攻击,几率就变成大约17%,第三次大约25.5%……以此类推,在一次重击触发后,下一次攻击的触发几率又会重置到大约8.5%,那么经过一段时间之后,这些重击几率的平均值就会接近25%。

  基于PRD的效果使得多次触发或多次不触发的极端情况都变得罕见,这使得游戏的运气成分相对降低了一些。然而虽然理论上可行,但是在游戏中玩家很难运用这个机制来“刻意”增加下一次触发的几率。要注意一点的是,如果这个实例根本就不可能触发效果,那么触发几率不会增加,也就是说,一个英雄反补或攻击建筑不会增加他下一次攻击触发的致命一击几率,因为致命一击对反补和建筑无效。

  除了伤害格挡的装备,在游戏中列出来的几率都是理论值,这个理论值会稍微比实际几率要高。在以下表格中,P(T)表示理论几率,P(A)表示实际几率,C是PRD常数,最大N值是根据C × N大于1得到的最大N值(也就是一定会触发的次数),平均N值是N的期望值,也就是N和概率的乘积之和,SD是N的标准差,为了作对比,SDt表示真随机分布中N的标准差,使用N从1到264的简单公式,显然,他们都比PRD要高,这就是PRD相对于真随机分布更能避免极端情况发生的依据。

浅谈DOTA2的叠加机制

浅谈DOTA2的叠加机制

  由于这些基于百分比的物品从使用真随机分布改为了使用伪随机分布(PRD),物品与类似的基于百分比的技能之间的叠加几乎是相加的。[1]

  为了解释这一情况,我们可以想象一下一个英雄有两个代达罗斯之殇时,由于一个代达罗斯之殇的理论致命一击几率为30%,由于使用PRD,第一次攻击出现致命一击的几率大约为11.9%,第二次大约为23.8%,每一次攻击都会增加致命一击的几率,直到第9次攻击,因为此时必定会出现致命一击。拥有第二个代达罗斯之殇时,每一次不出现致命一击的攻击都会增加这两个代达罗斯之殇下一次攻击出现致命一击的几率。但是,一旦这两个代达罗斯之殇的其中一个出现致命一击时,另一个没有出现致命一击的代达罗斯之殇PRD计数器不会被重置,因此会继续增加下一次出现致命一击的几率。从总体上来看,如果继续增加英雄拥有代达罗斯之殇的数量,出现致命一击的几率处于几乎加法叠加的状态。[1]虽然叠加情况是几乎加法叠加的,但是比较罕见的情况是所有代达罗斯之殇在同一次攻击中都出现致命一击时,所有 代达罗斯之殇下一次攻击出现致命一击的几率都会降到最低,因此下一次攻击出现致命一击就比较困难了。

  同时致命一击的多个实例是互相独立的,因为在同一次攻击中如果出现多次致命一击实例时,只有倍数最高的才会生效(如果是有多个倍数数值相同的就会取其中一个)。比如,一个英雄持有一个 代达罗斯之殇和一个 水晶剑并且在同一次攻击出现致命一击,只有代达罗斯之殇的致命一击才会生效,因为他的倍数更高。这对于英雄技能来说也是如此,比如一个拥有一个致命一击技能的英雄持有一个提供致命一击的物品。[2]

  闪避和伤害格挡的叠加规则与致命一击的相同,因为他们都是遵循伪随机分布的。这也能解释为什么两个圆盾看上去会比只有一个的时候更好,就是因为虽然格挡的伤害量不叠加,但是格挡的几率叠加,使得格挡伤害的有效几率几乎变成了100%。与致命一击类似,当同一次攻击出现多个伤害格挡的时候,只有格挡数值最高的生效。此处游戏内绿字是错误的,验证方法是买6个圆盾扛一波兵。

更多TI66.88版本视频,关注http://dota2.178.com

766APP强势上线!数据游戏!这很电竞!