logo dota2掌游宝·新闻

dota2裂魂人的奇特Bug:死了也要向前冲!

2018-10-09 作者:几页@vpgame

此前,博主1895西西鱼发布一则白牛的Bug视频,引起了大家的关注。视频中白牛虽然已经阵亡,但是由于在阵亡前已经冲向上路小兵,在阵亡后,白牛似乎仍然有着不可见的冲刺路径,而路径上的英雄与单位都受到了冲刺效果的影响。而暗影冲刺的目标也因为小兵阵亡的关系开始转变。(视频跳转

在这之后,DotA中文wiki给出详细阐述,让我们一起来看一看吧。原文如下:

在讨论这个Bug问题之前,我们首先需要解释裂魂人的第一个技能,暗影冲刺它的实现原理。
它的整个实现过程,是以获取裂魂人所在的坐标为起点,添加一个名为“暗影冲刺”的Buff效果,进行位移,并到达目标点,Buff消失,技能结束。但是这个技能和正常的技能相比,又有很多独特的地方,那就是它的位移本身,是有弹道的,类似于风暴之灵的大招球状闪电。
在这个Bug现场,我们看到的是在卡尔的急速冷却+沉默术士的遗言之下,导致裂魂人的阵亡。首先,急速冷却的效果,是受到大于10点伤害即可触发且每次触发时都会眩晕,而遗言的效果,是只要目标施放技能或者魔咒消失,目标就会受到伤害并被沉默。
二者连起来配合当时的情景——只要裂魂人释放了技能,它就会被眩晕。
所以,我们看到当时的裂魂人放出了暗影冲锋,却没有冲出去,这是符合正常逻辑的。
问题并不在于裂魂人英雄本身,而在于DOTA2的一些底层机制问题。我们曾经在一次闲谈Artifact的微博中说过Modifier这个概念对于DOTA2的重大意义,你可以理解为这是一个Buff性质的东西,只不过它管的比我们在游戏中看到的要宽的多,比如技能的粒子特效,属性加成,从游戏性到不涉及游戏性的东西,皆囊括其中,通俗的说,这是一种状态,许多技能都会有管理这个技能一部分状态内容的Modifier。
既然是一个状态,那就要在技能结束的时候删除这个状态,才能让英雄回归正常。在DOTA2中,像暗影冲刺这种含位移效果的Buff,这类位移状态的结束,一般要看单位是否到达位移的终点,如果到达,则可删除这个Modifier/Buff。
前面说了,这玩意很重要,但它也不是事事包办,技能的有些要素的逻辑判定并不和Modifier统一步调,比如说暗影冲刺。
我们回过头来看Bug的现场,裂魂人原地阵亡,但冲出去的效果可是一点都没少,这个冲出去的部分,并不是裂魂人的灵魂,也不是暗影冲刺本身,而是暗影冲刺技能的一部分,失控的一部分。
由于前文中提及的“裂魂人释放了技能,它就会被眩晕”,眩晕事件和技能的施放在同一帧内,使“眩晕”这一事件在状态序列里完成了“插队”,暗影冲刺中管控位移的那部分会检测是否受到眩晕,从而终止了这个技能剩余的位移动作。但并不是所有的技能内容都会跟着一起停下来,这些内容的终止需要等到前文提到的“是否到达位移的终点”,才会终止。裂魂人其实根本没动,技能也已经结束,但已经加上了“暗影冲刺”的状态Modifier根本没删掉。
那么失控的这部分是什么呢,是弹道,也就是说,我们后来所看到的反复完成冲撞的,只有暗影冲刺弹道本身,这个技能是用弹道来实现与周围单位碰撞的。
裂魂人阵亡后,为什么会冲撞多次?
因为这个技能的发动原理是“获取裂魂人所在的坐标为起点,添加一个名为“暗影冲刺”的Buff效果”,死亡后的裂魂人只有一个坐标,就是阵亡的坐标,而恰逢路过的流浪剑客把上路兵线给清了一波,触发了这个技能自动搜索附近单位进行冲刺的这个规则,但裂魂人坐标还是阵亡的那个点,所以弹道连续三次沿着同样的方向冲刺,因为切了目标,并没有达成“到达位移的终点”这一要求。
复活后的一个变化,就是会强制把裂魂人的坐标拉回泉水,但这个时候这个Modifier还是没有被删除,所以复活了以后裂魂人仍然在暗影冲刺的Modifier下,而纯位移状态,玩家是无法控制的,所以裂魂人在泉水里原地奔跑——奔跑的动作本身就是Modifier控制的一部分。
而且每一次切换冲刺目标中间的间隔,裂魂人的操作就恢复了正常,直到弹道最后一次冲到小兵身上,暗影冲刺的Modifier终于达成了“到达位移的终点”这一目标,宣布结束,技能的CD才开始正常计算,直到这个时候,这发暗影冲锋才算是完全释放完毕。
要想复现这个Bug也很简单,甚至可以使用帕格纳的幽冥守卫配合卡尔的急速冷却达成同样的效果,因为这俩技能也可以达成“裂魂人释放了技能,它就会被眩晕”的逻辑链,从而实现眩晕的插队。
前面我们说过,Modifier 控制了太多的东西,包括画面特效,所以也可以把受害者从裂魂人换成大地之灵,使用巨石翻滚,然后你就会卡出一个巨石翻滚Modifier一直没法消失的特效Bug,这个Bug和本次的裂魂人Bug原理相同。
如下图:
0

dota2掌游宝APP

只为你玩得更好

立即下载