|
原创作者:GoldenBomber9 }: b3 j: `8 ]4 ^9 ?: v. ]4 F1 J
发布日期:2014-09-28
( \3 C! C- ]5 _$ C
2 N( W$ t. X, R0 X1 t' y8 G9 N" X% x7 X, O3 H- k" y1 i9 x
主楼:结论
4 J" X; p, V. U3 u/ [( s1 W1楼:本人所做的相关测试
4 D+ U2 B8 R7 m0 T9 d, d非要概括的话,这篇文章主要就是写在攻与防中,攻击时候会遭遇什么、格挡时会遭遇什么、hr时会遭遇什么,然后会有什么影响变化,藉此让大家对自己人物的动作有个深入了解,以便在搭配甚至操作时能有所帮助,有兴趣围观,但又觉得稍显专业或者阅读不畅的朋友,建议只看主楼结论好了,1楼测试对有的朋友来说可能是一头雾水,甚至可能略显凌乱
* D. @" s. s. T4 k) @; t; W* F' G
本文立文的基础在于测试,是指通过预设好的方案,对动态链接库(硬编码)、动作速度相关、mpq相关数据源文件、各种装备等进行修改调整,以便达到可以观测预想方向的效果的测试
7 `, L) q8 L' P- F4 m1 ?让我们看看部分修改后的效果截图(因impk每层楼有图片数量限制,这些只好放主楼这里),有一些是平常我们看不到的:( p% c" O+ E" \. |' o1 _7 H
* p* R! K) Y* r# K4 w- t
慢镜头下ama动作4连拍:分别是正常动作、格挡动作、打击恢复动作正面、打击恢复动作背面
3 m8 f" e( K; L3 R" B6 m; O0 s
2 G* Z9 Q' n! e- R$ v# |
6 [! G2 Q, U; u0 @5 T( g% t7 b; [% |修改角色物理抗性上限100%、格挡上限100%* Y ?' }1 b9 h" Q; R9 }. N8 H8 ^
- `9 E, J# L) ^+ ~& Y
0 K) ~$ O7 g3 Q% j4 n1 J+ u100% dr的破衣服,修改代码dr上限值后上图所示100%dr就是这样实现的,其他各种正常或者超常规修改的装备不一一放上来了9 S/ t* t5 ]( x/ |# n5 i# P" K
' [0 Y6 y8 c: b, n" \6 ~
9 t( B/ {" D, V8 z- \, B* R4 O2 J
在开始正文前先说几个基本概念,以便大家更好地阅读本文
" g+ N$ _6 m! t- c6 n1、什么是动作:直观说就是我们在游戏窗口看到的画面、动画,一个人物、怪物在一个时间点上只能做一个动作,好比方你不可能看到一个一边tp一边格挡的sor,暴雪没有设计这样的动画0 h7 Q, U& x# C3 ]
2、什么是检测:虽然一个时间点只能做一个动作,但是系统对于每次攻防都是必检的,好比方你正在格挡中,来了一波攻击,这时候对这波攻击里的每一份攻击都是严格按照攻防流程检测的,如果某攻击检测结果为掉血,那你就会在格挡动作中掉血(掉血不是动作,只是扣状态,就是扣左下角红瓶),因此才有了围殴致死这回事5 l6 P! i4 O8 X3 O+ n3 k3 L0 G
3、什么是动作时间点:对于很多动作而言,它们有动作时间(用时多久完成这个动作)、也有个动作时间点(直观说好比方我们看到bh发出的那个时间点),这个动作时间点不在整个动作的开始、也不在结尾,而是在中间,形象地说一个动作分为起手——动作发出点——收手3部分
, V1 E2 k% S0 E5 ]. B8 }- t
6 ?7 x% f r4 C* {4 X$ { h比方我们知道pal在50fcr下的帧数(查资料馆全角色fcr表)为11,这意味着pal完成一个施法动作(比方bh吧)用时11帧(我们知道动画都是由一个个静态画面连续组合起来的,11帧意思就是11个画面),那么我们在动画上看到的那个鸡腿是什么时候能看到呢?在中间第5帧,也就是第5个画面!一个动作用时11帧并不意味着11帧全是攻击画面,也就是11帧全是锤子,你想想11帧全部出锤子的画面?那就是恐怖的伤害*11了,事实上在整个动作时间11帧里,只有1个画面出锤子,那个就是动作时间点,下文所有说在xx时间内受到攻击xxx,全部指的是这个动作时间点在这xx时间范围内,这才是有效攻击!
+ Z R9 g9 _8 s; U+ h1 N4、更详细的解说请看正文5 k# \' y- q8 ~/ @) @6 ?. L
( J6 g5 ?6 e: a5 B按照常规典型,我们知道动作流程通常是这样走的:
! g8 W# z% E/ a3 z' |攻击——防御/命中检测——格挡检测——打击恢复检测
. F. i7 N# ?4 I0 M8 ^" D/ C- x6 U* _看似很平常,但真实的检测情况却远比我们想象的复杂得多,so请看正文一一道来
5 i( }9 @( H0 C% q$ @: W) u
% g2 n& J1 {' w$ Z2 T+ f' e攻防动作流程解析:
3 {6 ?. q" C; I: |一、怪物的出手" l( V4 V" v2 v( S4 ~1 t) _
1、如果怪物不受到干扰,很显然它将按照行为参数的选择完成它的动作(反之,比方一只暴风施术者正向你飞来,还没到达预定攻击位置,半道上被你发出的bh秒了,然后就没有然后了)
$ N8 e& [# p. l* O) }. L) y2、如果根据行为参数的选择,怪物发动攻击,在其攻击动作(画面)未发出前,即在此次攻击的起手——动作时间点之间,受到char的攻击,并且判定为打击恢复的,怪物攻击中断并进入打击恢复动作
( q5 O- u# `. a我们知道游戏有个ping值,单位是毫秒,也就是我们发出指令——服务器接收并反馈——我们自己收到反馈的时间,所以当你看到怪物的时候,在服务器那里怪物已经决定下一步要做什么了,所以第一步写怪物出手/ c/ Z" t/ A/ o: ]3 V* f/ ?
% K8 Q+ h& @3 c% D+ Z9 {& Gps:人物跟怪物一样,在出手——动作时间点之间,受到攻击并判定为格挡或者打击恢复(格挡只针对人物而言)的,则攻击中断并进入相应状态(由预备出手转入格挡或者打击恢复状态),各种中断不同点在于:出手动作停了然后啥都没看见、虽然停手但仍有动画播出不过没实际伤害作用. C7 g. I* t5 W$ y& j9 r# o
3 b) b4 D; x- T% G7 z2 I4 ?
附:一些怪物(dy)及人物主要攻击技能的动作时间点(同型金怪神马的都一样的), J. j5 Z( ?0 G
部分怪物/人物及其攻击技能 动作时间点(帧,秒) 特殊情况下
: ^& Y @7 U$ S0 z0 B. V遗忘、厄运骑士普通攻击 10,0.417秒 厄运骑士狂热下可提高到7,0.2917秒
' I1 `( {8 a( r/ u! [遗忘骑士所有施法技能 11,0.458秒
/ z7 |; Z* {/ @- s0 r! G邪魔之王普通攻击 11,0.458秒
0 J' U. v6 P( E6 [8 d; X( q邪魔之王火焰喷射 8,0.333秒! X+ C) T: G$ C) K
pal的bh技能 9,0.375秒 50fcr下提高到5,0.208秒
; Y$ W4 U5 V% xsor的施法技能(暴雪、传送) 7,0.2917秒 70fcr下提高到3,0.125秒/ |' g0 S+ w8 [& V9 f( |, Q
- b9 @ k o# {. }9 l! z) ~( z
那我们知道ping是系统来回的反应时间,100ping就是0.1秒,然后人的大脑还有个反应时间,百度说快则0.1几秒,慢则0.3几秒,对于ping不太好且喜欢频繁点击鼠标而反应又不是特别快的朋友来说,被怪物攻击进行中断判定那是太平常的事情了,另外我们可以看到50fcr下的bh动作时间点距离狂热骑士动作时间点只有不到1秒,这基本是非人力所能及的,我想这里的操作大概就是顶尖pal与一般pal的分别:顶尖pal不松鼠标连续操作,入位后基本都能先于怪物出手,然后将怪物打出打击回复中断怪物攻击8 d6 B9 |( c4 ^, p8 g# H. R
6 b6 v2 z! Q" Y% \* r这里还引发一个槽点:小刀pal虽然比杖pal的fcr快了1帧,但是因为伤害略低,这一圈打出去没几个怪被打出打击回复的,所以比杖pal危险,但是对于不连续操作喜欢闪着打的朋友来说,除了伤害略不爽之外,貌似提高出手速度还不错. i. y1 u4 W O" L5 N& p/ y( g7 y
ps:对于sor来说,传送的收手动作为7帧,sor通常都是tp到位才发动攻击,因此对于低防低命、格挡久打击恢复慢的sor来说危险系数也相应地提高很多,想起曾在综合区看到在讨论格挡/体力型sor的时候有人说的一句话:如果你的sor总是被迫近身格挡,那么你的操作是灾难的,话说fz没有pet啊,so仁者见仁吧
6 Z" r* r: \. b4 u! g, ?- o再ps:对于很多飞射物来说,飞射物文件还定义有飞行距离和飞行速度,不是发出就直命中,对于fz来说,可能在动作时间点的关注上,最直接最现实的也就在狂热西西那里,所以没打算计算更多的3 i! x& V1 k% I! x& l5 _
8 J+ j+ z/ t8 M% u9 A& d0 x4 v1 s
二、人物的出手9 I1 v. x1 x7 N; F3 Z. K
1、怪物命中检测,由怪物级别、人物级别、怪物命中率、人物防御值构成的概率计算,怪物要是打不中,这一波攻击结束;要是打中,则进入格挡进而可能进入打击恢复检测0 o$ i( {# f# Q! q* @+ r
ps:fz人物属性页面显示的怪物命中率是个bug显示,这里显示的怪物命中率在系统计算时,虽然调用了fz的怪物等级,但是却错误地调用了zlp的怪物命中率,实际fz怪物命中率比页面显示那个要小一些9 M" w) `/ g9 d% s; E, C8 l
2、假设在怪物命中检测中,怪物通过了def这一关进入到格挡甚至打击恢复检测,那么跟怪物一样,如果人物在出手——动作时间点之间,受到怪物攻击判定为格挡或者打击恢复,则攻击中断并进入相应动作,我想体会最深的应该是tp动作,明明点下去了却飞不起来,这就是中断了;中断后就算有动画,那也是无伤害的,比方著名的攻击技能pal的bh和sor的暴雪等等~~施法动作马上中断并结束、放出虚幻的但没有实际攻击力的动画、同时我们将看到格挡或者打击恢复动作% Z/ k6 i* [1 L0 C' R
3、如果人物的出手未受到干扰,那就是正常流程走判定,攻击怪物& N+ d4 c" Q4 v7 F: r
0 S# G1 G" f0 ^7 W$ P8 Fps1:提高fcr、ias等整体上是整个动作时间缩短了,实际是把动作时间点提前了,我们更快地看到了出手动作,所以我们感觉动作更快了,而且随着动作时间点提前,意味着char受到攻击中断的概率又降低了$ p8 D3 [6 a6 \- s5 S2 G3 L
ps2:有些动作是不可中断动作的,根据技能文件在d2定义的357种技能中,一共有22种技能是不可中断的,其中就包括pal的盾击、冲锋、热诚;ama的炮轰、戳刺、击退;bar的旋风、狂乱、专心等,在这些动作中,无法实现诸如以格挡、打击恢复等去停下它们1 a2 G' i% g: Z& I8 m5 ?7 Q9 O
ps3:为什么我们对tp中断体会更深呢?因为tp中断直接没下一个画面了,飞不起来了,而且这个技能用得太频繁,让人感觉怎么老中断啊?不像其他释放的中断,虽然没伤害,但起码好歹有个动画播出来,视觉上我们并不知道其实已经中断了& h6 U+ G0 L- a
ps4:pal的专注有2成的概率避免中断,简直是神技
R0 S' o) v4 _3 s, m. H5 ~. K8 f$ J5 K4 H7 ` `
三、人物格挡
, _' K7 D, o& Z1 I$ r1、格挡是不可中断动作,一旦进入格挡,强如打击回复也不能影响它,不过修改测试表明,格挡中拿掉身上的装备比方盾啊什么的,可以从格挡动作中退出,但是正常状态就别想了,那点格挡时间眨眼就过! ^1 r) u. c* V; W
2、能造成格挡的除了纯物理攻击之外,还有物理带元素的,当然说是元素带物理也行,随着造成格挡,元素攻击也随着物理攻击一起挡掉,人物不会受到伤害,知名的比方墨菲斯托的冰冷带物理伤害的冰球、暴风施术者的红链8 j" b1 U3 x1 C8 h6 }2 R
3、人在奔跑中是跳过命中检测的,100%命中,直接到格挡检测这一关,检测成功人物将停跑进入格挡动作 r3 `% i/ _$ K* H4 C; y
4、在格挡动作中,再来一次或几次判定为格挡的检测,格挡效果存在,动作不变,只按这一次动作完成
B# }2 K9 t- C8 \$ V% E! r5、在格挡动作中,再来一次或几次判定为打击回复或者掉血的检测,格挡动作不变,人物掉血
! P6 Y3 C# s# ?2 j; W' v+ j9 f' ]; a. X* f& }
四、格挡延迟时间6 P9 Z5 _1 ^0 ^
格挡动作=格挡动作时间+格挡动作延迟时间,对这个概念不清楚的可以看一下资料馆
8 w9 W) y/ Q$ j* D3 ~! p8 f格挡动作时间就是我们看到格挡抽一下、或者说顿一下那个动作,格挡延迟时间就是那个动作完成后人物在哪里正常站着的时间) W5 p6 `" e8 w7 v
1、格挡延迟时间内,角色可操作,且具有格挡能力,但不会出现格挡动作
$ h2 b% p* u3 L2、这个时间内,人物的动作或者说攻击不会受到怪物攻击中断,不论怪物攻击是格挡前还是格挡时、甚至是延迟时间里发出的,只要怪物攻击的动作时间点在格挡延迟时间内的,均不会中断人物攻击
# V3 j1 V K7 Z' Z3、格挡延迟时间(已扣除相应的格挡动作时间),对于30/20的盾来说是14帧,对于15/10的盾来说是12帧,对于普通盾来说是10帧,个人倾向于能用30/20的盾就不用15/10的,2帧不少了,当然,这事仁者见仁吧
( Z q0 p0 X0 ~0 w E
. k7 k) j9 C4 c' h6 `0 \ps:对于首攻被格挡中断的人来说,他们的次攻可能于格挡动作完成后,在格挡延迟时间内发出,对于连续操作的高手来说实现格挡延迟时间内出手不是问题,但是对于pal,30/20这个属性对于一些人来说,多少还是有用的属性,毕竟30/20比啥都没有的盾在安全时间上多4f,对于习惯频繁点鼠标操作的人来说,这4f意味着他们次攻被中断的概率降低了~~典型的场景可能是这样的:看到一神器掉了,啪啪啪冲上去抢,然后让怪给打出格挡了,赶紧放招,结果这一放还慢了,攻击技能的动作时间点在安全时间之外了,然后正好怪物命中的动作时间点在你动作时间点之前了,再然后这一波攻击可能又被下一轮格挡或者打击恢复中断了
7 i& }: f, i2 f4 U
2 V( `: t& g! J五、打击恢复' ~$ u8 U, g4 ~( Y, d1 L
打击恢复已经经过验证不是一次伤害超过1/12就产生的,是一个根据伤害的概率事件,还是这种老观点的可以到资料馆学习一下
1 g8 N) ^, t% u/ T6 a: Q1、打击恢复是个可以中断动作,是可以被格挡中断的,即你正在打击恢复动作中受到怪物攻击,并判定为格挡,那么打击恢复动作提前结束进入格挡动作,所以还在堆fhr的朋友,还是那句话仁者见仁吧* [1 o8 ^, Z. {2 z& P! h# ?4 c
2、在打击恢复动作中,再来一次或几次判定为打击恢复的检测,打击恢复动作不变,只按这一次动作完成,并相应掉血" N. G! u: I4 N* \- o8 ?5 Z
3、在打击恢复动作中,再来一次或几次判定为掉血的检测,打击恢复动作不变,同时执行掉血
& p# B; t5 k# R3 u4、非直接伤害作用(比方cb)无论伤害多大、不可中断技能(比方ww)不管受到多大伤害,都出不了打击恢复% z: @$ c" C% k7 z0 P+ q
5、nefarius等大神在做打击恢复代码解析的时候给出答案说是resultflag=4时才能造出打击恢复动作,看飞射物设置文件中虽然可以查到这个值,但是这里似有个更广泛的值gethit,这些能造打击恢复和不能造的技能差不多是一半对一半的,要从中文上造格挡那样定义造打击恢复的攻击类型好像不好分类,我觉得hit(打击)这个词已经比较形象地说明了吧,像怪物直接砍人就能造打击恢复,而以帧来计伤害的灵魂传播者的持续性喷火就没法造,因为没有hit这种特质
5 {: I0 ~! R) {5 i0 o0 f+ D# ]' i0 n+ w+ g- g' N
还有什么没想到的再补充了0 x* Z$ f7 ]5 s$ T6 L! f) T, ?$ Z) D
$ Y+ x6 @# E/ [/ y! P' ^
最后:
* _' n7 u7 p. K' N9 I" z& N/ U! k1、所有测试均是本人亲测,以服务此贴为宗旨,相关结论没有给出测试的,那基本是impk资料馆里有定性结论的,或者相当常识性的问题
, h; E3 Y$ |+ }8 m5 C2、篇幅及精力所限,有些数据可能只列出一部分,如果有需要的朋友可以提出,待我测算后加入
0 ~$ y( H" \0 e7 W% z8 r8 Y8 {* W, J3、对于新人朋友来说,这篇可能过于繁琐和专业,从方便阅读角度出发,主楼关键词也用中文表述,一些太过专业的东西就不扩展了,知道有这么回事就行,阅读起来比较舒服点3 N2 I3 u I4 G4 X0 a+ _8 B9 T6 `
4、感谢各路前辈在不同时间不同帖子不同的探索,从接触d2以来获益良多
' ^" Q( Y4 h6 w5、以下测试及结论有什么不对的地方,或者大家还有什么想法,欢迎提出讨论,毕竟仓促之间所设计的测试并不一定考虑到方方面面
+ R$ V' ]- h# U }. F }2 u6、by goldenbomber,2014.9.28,from impk
6 N7 j$ D" M+ \ |
|