上面的分析,说明了延迟对抓取技能影响实际是非常大的,而由于【二次判定检查】只是一个粗糙的检查方法,并不能具体检查你正在放什么技能,而且它要做的工作很简单,那就是识别回应数据包,一旦识别到了身体攻击数据包(上文提到过这个细节),就开始检查我方的状态,如果我方正在放勾拳啊,X啊,这类一次判定技能,就会让我方角色停顿一帧(这个一定程度上增强了打击感的效果),如果我方正在放2次判定技能,那么它会立即触发该2次判定技能的效果,比如,是背摔,就开始进行摔的动作,是砖袭,就直接提前出现上海数字漂浮,并立即随机是否眩晕,而一旦随机出了眩晕的结果,也是第一时间眩晕(这就是为什么X扯砖袭成功后,砖袭动作完成前就会飘伤害数字和眩晕效果)。
好了,下面利用这个原理,我们可以做到哪些东西呢?我一个个的说(之后的一切都是依靠这个简单粗糙的【二次判定检查】的漏洞做到的,而这个漏洞是一个程序的良性漏洞,所以不用修复)。
(一)、利用X,进行范围扯,看到这里的朋友们,回顾一下我上文提过“非常重要”的语句,所说的内容,然后再看,就会比较好理解了。
【例②】(假设双方用的都是顶级键盘,键盘延迟都是0,且第三X发动起到其攻击判定出现的时间忽略不计,这里给出一个数据:背摔抓取动作保持时间,大约为300毫秒)当对方处于我方第三下X的极限攻击范围,但不处于背摔抓取范围时(简直是废话,3X极限范围背摔抓取范围无论如何都达不到),连续原地X,当发动第三下X且攻击判定出现之后,经过时间段c后,才按出了背摔。下面根据这个例子,我具体说明一下在不同网络延迟环境下可能出现的结果。
1、假设网络延迟是10ms,我来通过计算,告诉大家时间段c处于什么范围内,才能成功3X扯上背摔吧。连续原地X,当发动第三下X之后,我方向对方发送关于第三下X的身体攻击数据包,经过10ms后,对方收到这个数据包并被攻击,之后发送回应数据包(这个属于身体攻击回应数据包),再次经过10ms我方收到该回应数据包,此时开始进行【二次判定检查】。
好了说到这里就明白了吧,一旦【二次判定检查】检查到我方处于抓取动作时才会触发该抓取后续动作。那么我方则必须得在【二次判定检查】开始之前,就得按出背摔才行,而第三X的攻击数据包发送,到【二次判定检查】开始之间间隔多少?2倍的延迟:10ms+10ms=20ms,没错,只要X之后,在之后的0ms——20ms时间内放出背摔,就能成功地3X扯上背摔,即0ms<时间段c<20ms的情况下,能成功扯上。经过这个分析,大家应该就知道,一个成功的X扯技必要满足的条件了吧?没错,就是【当X出现攻击判定到使用一个二次判定技能之间的时间间隔,小于双方2倍的网络延迟的时候,X不出现MISS的情况下,之后的2次判定技能必中】当然了,这个仅仅是网络延迟低的时候的,所需要满足的唯一条件。
但是当网络环境极差,还会出现第二个满足条件,就是说,必须2个条件都满足的情况下,才能形成“扯”,那么下面开始说明吧。
2、假设网络延迟是160ms,那么先计算第一个满足条件(【当X出现攻击判定到使用一个二次判定技能之间的时间间隔,小于双方2倍的网络延迟的时候,X不出现MISS的情况下,之后的2次判定技能必中】):2倍延迟=160ms*2=320ms,再看看上面,背摔抓取保持时间是300ms,不要忘了这个,试问,如果你在X之后第一时间用了背摔,会出现什么结果?没错,X之后经过320ms你终于收到了身体攻击回应数据包,此时开始【二次判定检查】,但是此时你角色处于什么状态?no,别说处于抓取动作保持状态,因为你的背摔只能保持300ms,你第一时间就放背摔的话,实际上320ms-300ms=20ms,在收到回应数据包之前20ms你的背摔就已经收招了,嗯,所以,收到回应数据包后【二次判定检查】的结果是你处于站立状态,然后判定X扯抓失败(这也是为什么延迟非常大的时候,有时候出现对方虽然在我方攻击范围,但是却抓不到的原因之一,(原因之二是因为延迟,对方有时候模型的时机位置已经不在你看到的那个位置了))。
那么想要在延迟非常大的情况下,还能X扯背摔,需要满足的时间段c的范围处于:20ms<时间段c<320ms。现在知道第二个条件了吧,那就是得根据你2次判定技能攻击动作的持续时间来判断你什么时候放该2次判定技能。这个实在延迟非常大的时候,需要注意的地方,而正常情况下根本用不着知道这一条,所以大家了解一下即可。
【例③】(假设双方用的都是顶级键盘,键盘延迟都是0,且下段踢发动起到其攻击判定出现的时间忽略不计,这里给出两个数据:一、彗星(它抓取动作持续时间受攻速影响,这里取500ms做例子)抓取动作保持时间,大约为500毫秒;二、下段踢收招时间假设为150ms)对方稳倒于地,并处于我方下段踢攻击范围内,此时我方立即下段踢,收招之后,我方立即使用彗星。下面根据网络延迟环境不同,计算下段踢立即彗星,扯技达成所必须满足的延迟范围。
1、当延迟为10ms,此时我方下段踢之后,发送身体攻击数据包,经过10ms对方收到数据包并随机结果命中,回发回应数据包;再次经过10ms后,我方收到身体回应数据包,系统开始【二次判定检查】,检查结果发现我方正处于下段踢动作中,之后我方角色停顿一帧(约10ms)。检查并没有检查到彗星抓取动作,因此扯技失败;(这之后,下段踢还需要130ms的收招时间,才能释放彗星)
2、当延迟为76ms时,此时我方下段踢之后,发送身体攻击数据包,经过76ms对方收到数据包并随机结果命中,回发回应数据包;再次经过76ms后,我方收到身体回应数据包,系统开始【二次判定检查】,此时检测到我方处于彗星的抓取保持状态,因此立即触发彗星“判定成功”的结果,于是彗星命中(理由:76+76=152ms,下段踢仅仅需要150ms收招,之后立即放了彗星,也就是说,系统进行【二次判定检查】前的2ms彗星就已经施放,因此判定成功),下段踢扯彗星成功;
3、当延迟为326ms时,此时我方下段踢之后,发送身体攻击数据包,经过326ms对方收到数据包并随机结果命中,回发回应数据包;再次经过326ms后,我方收到身体回应数据包,系统开始【二次判定检查】,此时系统检查到我方处于站立(彗星已经收招)状态,因此判定结果为让我方角色停顿一帧。(理由:2倍延迟=2*326=652ms,而下段踢出招到收招,再到彗星出招到收招,需要150+500=650ms,也就是说,【二次判定检查】前2ms,我方彗星刚刚收招完毕)
综上所述,再本例的环境下,下段踢扯彗星想要成功,网络延迟d要求:76ms
好了,今天已经详细讲述了DNF中对于一个攻击如何判定的具体的过程,有兴趣研究的,可以看一下
感谢读者,能耐心看完我的见解,相信你一定非常喜欢PK,想提高自己的技术。