|
原创作者:悄然花开
) ?- Z4 L; M4 u1 C$ @" } b发布日期:2008-08-12 ( ~3 S1 u+ K# ?/ z5 v
" f7 E. S9 ]7 f8 T- h
7 r& }# C1 O5 j3 V* a4 ]) M l+ B' o【遭受攻击时HR动作判断的流程】
+ F& T1 |: `9 L! A: }) @ v& _1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。3 q. ? b" W: O% |; {( y; y/ j
2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。
5 H# Z# J1 ^1 \+ e W3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。
& f7 f( \% x. ^& p! Y" d8 B, T' }! Y4. 检测本次攻击是否包含毒素伤害。
* z2 e8 M, N( n4.1 如果是纯毒素伤害,判断结束,不产生HR动作。3 L/ c5 _) |# T+ E4 |/ x
4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤53 p8 y9 K% w; p5 Z6 O
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。3 S3 l4 ~7 _7 @3 ?9 K
5. HR动作判断开始
& c' H# h1 Z. N, [5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。3 l- e! G* d% p/ s
5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。, y8 N& m. a0 G' }
5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。+ g- l& C1 M0 m1 e1 Z1 ^7 ?
5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。4 i9 p+ v* U1 d. |' \
5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。
4 s6 x* J; k: X) a2 v8 j1 G& Z- z) e" S8 u/ L$ p( ?! V0 j
【简单来说判断标准如下】
: `# y$ q y3 ]0 w T纯毒素伤害不会造成HR动作。
! ]9 t3 O+ z7 P) l非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则. @9 M! r4 o* a; s
若DAM<MaxHP/divisor,则不产生HR动作;/ \( h, m+ u* A$ P' V
若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;" t& q e' n" H
若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;4 @. u0 a/ |+ y9 p
若4*MaxHP/divisor≤DAM,则100%产生HR动作。; |9 l$ b* L y% W0 [" j
( L' f3 B& c4 M* b
/ s/ z7 M) r6 V; k& qdivisor参数的取值+ ]6 V& p# G/ E/ `3 H
Hit Class = 2, 6, 10, 11 : divisor = 8: H: q+ x ~4 ?# x8 D
Hit Class = 5 : divisor = 64 s5 K y8 h5 |4 ?5 J
Hit Class = 4 , 8 : divisor = 32
/ v9 D# \. X, N/ ]; bHit Class = 其他 : divisor = 16
$ ?3 x6 a0 I" y. D+ \% e
% }6 t0 w3 X C' K+ fHit Class取值的判断
$ _( B6 D1 J9 e1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。9 T$ T& u/ g2 \* \
2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。
/ u5 N3 e/ w) t U& V. b/ i3. 技能的Hit Class+ R: u7 r% j; o* m. i; b2 v
3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。
% u, s% I) m% \2 X! \* n, f3.2 对于Missile技能,Hit Class存放于Missiles.txt。
0 e0 d" S* e# S3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=166 v/ Z: e1 r& n
( A& h, [$ D! A' P: [! P
$ v4 J. a9 |! F: }1 }1 ?4 VHit Class 分类相关: L$ ?* A- E3 x" \: w
================================================
, V$ ~& k% A4 g+ \1 T+ X% eHit Class Code Meaning
, [/ n: k# w/ t c& O────────────────────────
; q% E$ h" Z) \, H7 r$ ?0 None, U: y/ S2 s1 ]" t$ ~% P+ c
1 hth Hand To Hand
0 F& q3 K6 E, [2 1hss One Hand Swing vs. Small- V0 Y, P5 l! i! q5 D3 j
3 1hsl One Hand Swing vs. Large. ]! X& M# Y$ {* D) I' ]. c6 V
4 2hss Two Hand Swing vs. Small+ m7 ~3 ?, E; Q% t @' G
5 2hsl Two Hand Swing vs. Large
5 R$ o) j; h) h4 f6 1ht One Hand Thrust5 U3 A( }7 `! V& U& J8 o: ~
7 2ht Two Hand Thrust) V+ X, ]5 ]0 `' L+ ?1 `
8 club Club
4 i4 A5 w( \' n. o# a: x1 \4 ?9 staf Staf; p7 ^& |; K3 N$ [* s' p
10 bow Bow
0 B1 h$ {9 A6 w11 xbow Crossbow# v# M! y0 ^4 S* s
12 claw Claw; l+ Z& p* w8 F. x& r* v
13 over Overlay) p, \. U# W* X) }
================================================ a* s" q7 q8 c5 I/ A9 M
解释: {( g# F$ Q: ]! k! y
hth : 空手。另外还包括各种攻击性的投掷药剂。
+ z( [1 Y" W0 n# \: G7 c1hss: 包括死灵法师单手杖和法师专用法珠。. Z* n0 _9 {' J: B e
1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。2 t, ?; `6 J! C
2hss: 所有的双手剑类。: \/ [% } G |5 @" f
2hsl: 包括双手斧类、双手锤类、长柄类。- g1 F2 f5 ^' t! b2 u( k4 b5 \( V
1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。, t/ b7 ^+ h& R& A! I
2ht : 长矛类(含亚马逊专用长矛类)。3 Y: e2 k$ G% u: H% U( l) k
club: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。9 r* r/ v; l9 v% t- L) @
staf: 除短棍、乔木棒、手杖之外的所有双手法杖类。
8 h7 I$ x8 G; m Q' Y7 \bow : 所有弓类(含亚马逊专用弓)。4 n) x' c0 N5 \9 i5 n
xbow: 所有十字弓类。: X5 P( ]' Y' W( s7 T6 t
claw: 刺客专用爪类。% f0 }& ^3 E( m8 D D
; b" H" e+ n- k; o
$ m5 |/ C. y( B/ ~% p, B8 R, {9 S4 M
常见Missile技能的Hit Class(如查询不到则均对应为0)
6 z9 J. N/ [+ ?8 r7 Q& v8 S6 c+ [5 m) a N+ a
Missile HitClass
) `# |! D- H6 H" d) Y───────────────────
+ f+ ?% i G0 L4 l4 |$ Garrow 10! u B" p5 ^/ ]( U3 y: s5 Z# w- D
javelin 6
- Q0 Y# b* l& \0 N1 |; kmagicarrow 10
7 {% }4 ]! Y# ]$ R ?bolt 10
# v% }' ~- L4 a1 Zthrowaxe 2
7 ? h$ a c! }) F' r+ [; ^ F0 ?throwknife 63 p4 j1 u# o. a' t7 T" ]8 q \
glaive 6
2 M; n, R' U5 E$ k' M0 mpoisonjav 6
. ~9 R- l0 @- ]poisonjavcloud 6
( p4 U0 Z$ a: Bplaguejavelin 6( ?( J+ k6 W5 u0 e- `
chargedbolt 64
. G$ v3 S, E: Q6 N' ~& V/ X, ~, oinfernoflame1 32/ Z4 S( i7 h L) t: w( v C" K; x
infernoflame2 32
- b# I1 n& K: M( Z w0 r; Iblaze 32
# a$ ~! ]& v2 F" g- H! Pfirewall 32# o2 r1 d( D& {, s6 a! B5 Q$ w% I
immolationarrow 104 p; ~! `4 u8 x& ^3 K: q' B0 E
guidedarrow 10/ w" q+ G+ z) j# h2 }& o0 s7 d/ r
nova 64
1 ?1 o5 P1 A) c1 |! Ochainlightning 64) n4 W% R3 G1 D
lightningbolt 64" q6 @; M Z6 a) ]$ c7 Z/ _" i2 c
lightninghit 64) B3 V& O4 Q+ g2 P1 W7 u9 v& t
poisonnova 805 I) S, J. |: P- I! [- r- z
frostnova 48" Z5 N/ }5 \& z. @, k5 Q0 X
rogue1 10
1 c. U$ i1 I0 t- y4 U, w7 orogue2 10- V9 K$ L6 ~$ q C
rogue3 10. ]6 T4 _* C2 \2 O, ^5 ?
vampirefirewallmaker 32
2 O1 U% X/ I6 mvampirefirewall 32
* v6 A" E O' Y" X; ^6 Eraven1 10( J5 K7 R5 F' Y1 P ?
raven2 10
7 |; w& s- y$ Z {0 ]- I6 {diabfire 32
( T: S9 N* ? x! T4 Ebonespear 6
' o; W, {4 ?; O4 }/ E$ zlightningjavelin 64
2 W X2 r! I( F% @# X2 ylightningfury 64' x% _/ g0 F. C$ r, k0 Q
multipleshotarrow 10( `4 D7 o8 x: z3 r
multipleshotbolt 101 |: w4 F0 G: ]& l2 W+ ^$ U) b0 U
immolationfire 32- @7 P9 V6 N* y. R# L* o R
furylightning 64
5 L$ C% W; i3 Llightningstrike 64
0 ]' e0 M E" H$ P; z& lmeteorfire 32
y# L& I2 d8 Y. Utrap spike right 10
8 f. S/ _( o( \( M$ R1 P) Xtrap spike left 10
0 e( Z7 Z$ g* b' q9 ttrap cursed skull right 10
) b+ `+ ?7 m' t/ l& Strap cursed skull left 10
& S6 w9 b& `& C Q1 Ctrap poison ball right 107 }. m; G' |! v/ _2 \
trap poison ball left 108 _- l: E9 f$ f
pilum 61 P( V+ ^0 O K4 y% T/ T
firestorm 32$ Y& C/ ^7 r" s# u7 D. j+ T/ o) k- O
arcticblast1 32. m3 O. J& L4 s/ A$ `2 i4 A
arcticblast2 32
8 N5 o a9 `# ~# _8 @twister 32
4 S7 q1 w$ @% k: htornado 32& |' T+ @, c1 r
volcano small fire 32
2 A/ P7 d: X3 i- Ffrozenhorror arcticblast1 322 M% [. d$ K9 g1 Z2 I4 _7 Y
sentrychargedbolt 64
. u0 I) W% E4 D% e |bladefury1 10$ H6 g; [4 [4 R, A! Y q" M
bladefragment1 10
) b5 ~" S7 E) o. mbladefury2 10" Z" Z1 } y1 s) W L
bladefragment2 10
" T; [$ [1 B& @4 L( Z4 S; b5 a2 Q) _bladefury3 10
5 r) H& }: o, {: F6 ~bladefragment3 105 z0 i' c, l& f9 G4 G3 \+ \
shockwave 64
% e( C6 {( A5 \3 l" E0 v8 g1 wphoenixtrail 32: a4 J1 r( o: i7 D( p
wake of destruction 32
& g/ Q3 x1 ~9 U' Q0 s( ctigerfurytrail 321 x/ k- g9 M* O1 v6 d- ] Q
inferno sentry 1 327 i* m: e' c; ~; i" j4 B
ancient throwing axe 2; I+ F2 V1 V$ i$ X) k
sentrylightningbolt 64
; l, \! S8 \+ N4 G8 Hsentrylightninghit 64
! h. U3 y# k: C" m) s- Glightning charge up nova 64
$ H9 v+ p- K, Z$ v) ichainlightningcharge up 648 T" E& f* E9 w+ ^4 k
baal taunt lightning 64 {6 R8 m3 M1 U, c c- p7 V) E) J" q
baal taunt lightning trail 64
- h8 w6 o3 _% d4 E* g b8 pfistsoffirefirewall 32) j5 _' i9 k$ O* S0 [3 X
clawsofthunderbolt 64
- s- ?/ l8 S, v! D, s5 Fclawsofthundernova 64/ _1 ?( G1 E4 ]/ E/ o
royalstrikemeteorfire 32( i! o1 C7 M" ?3 ~/ T. q0 {5 D
royalstrikechainlightning 64
- r# W9 {4 `* W5 N! r, zarmageddonfire 32
: j+ p! ?1 Y3 @lightningtowernova 649 [9 K: s7 H! k' j5 J
willowisplightningbolt2 641 A) e, x4 ]' t
goospitex 176 H: T9 N; r* `( Q0 S
diablogeddonfire 32
! U! E! n6 |6 w) imegademoninferno 32* x- \8 c9 @! j; }3 n0 U
trappoisonjavcloud 6/ \/ t, D# N; D8 a5 t1 k8 ?
trapnova 641 G8 k: B) p/ [: A
mephfrostnova 48
3 c0 j" z" _' ^0 s% d6 w( q" tstrafearrow 10
8 w' }; M1 K7 |9 Lstrafebolt 10
+ F. J; ~; _6 y) }) _5 @2 Q) t' G; {. b
; m {& @/ z: b8 f
由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:* R# I3 l9 }2 u7 ^+ t
1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5%
) }' O& \2 l3 y5 Z" S3 B3 z% P2.当DAM为MaxHP的1/8时,造成FHR的概率为75%& J( a- Y. m% n2 u# V- N
3.当DAM为MaxHP的1/4时,造成FHR的概率为100%
+ W6 _* v$ I+ \5 o+ G. T |
|