|
|
原创作者:悄然花开
! z O. B" I8 \/ c发布日期:2008-08-12 & V, b" G; s/ _' v7 q9 O% @7 x1 m" `
( A& x& j/ i w+ j0 |" }( _3 v, b# D0 S v2 Q& z2 S( Z+ z! E
【遭受攻击时HR动作判断的流程】
7 j$ J& h8 l4 t1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。
, U! ] |6 X7 U2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。" G; z8 Q9 g. w& w7 }; t. O& k1 z
3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。
! G1 |# @" G6 f9 a; W4. 检测本次攻击是否包含毒素伤害。1 V$ i; P8 n: N$ M
4.1 如果是纯毒素伤害,判断结束,不产生HR动作。
( X) _" a+ v1 ~) R0 O/ [4 q( e9 S4 R9 l4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤5( v5 A7 H$ n8 F
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。
& U4 C7 a1 A! ^9 P% {5. HR动作判断开始9 v8 M, n7 m, ]" W& ~$ I1 C
5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。
( F- T" F* e5 [: ~: L; w/ {5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。" \2 j( Y7 x; {7 A, n" N5 @' R
5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。0 {; A' v7 p: V# I- I8 @( [8 ]6 D
5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。
* o+ J! t3 L2 {* a$ Z5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。
1 U3 R ]3 y2 S, w5 A. X: ~
% F* R' \- L. b【简单来说判断标准如下】; d6 S1 u* a4 d8 f# L1 J3 Q
纯毒素伤害不会造成HR动作。
' u% r% U( R6 e! j$ q非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则
, g& r8 {2 W# e; \2 L% Z若DAM<MaxHP/divisor,则不产生HR动作;( E* y, h7 y/ M$ N
若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;
) F: l" K1 j/ I" J8 ?+ O( L若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;% @! O) k [/ U
若4*MaxHP/divisor≤DAM,则100%产生HR动作。
- x0 s9 }8 _: f$ M3 T* _% z M
$ ?- F% M1 `4 m0 S* p) @$ ndivisor参数的取值5 C- q) b: a: E
Hit Class = 2, 6, 10, 11 : divisor = 8
u8 C" w- D' Q1 NHit Class = 5 : divisor = 64* ], j! H6 t. P& m. t
Hit Class = 4 , 8 : divisor = 32/ [$ u/ z7 J1 y# E/ b
Hit Class = 其他 : divisor = 16: J" ~4 [: O+ ^& _ H; J* a
, H* s2 H5 |; T. K. D. Q/ G4 A. Z8 t' n( ]
Hit Class取值的判断3 X# c9 A9 z8 w3 J5 Y
1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。
U, x4 z1 X6 L& H4 k. {2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。
* Y8 J: a7 v/ V) L3. 技能的Hit Class0 f' |& \$ W9 O
3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。
. }4 H8 l" e+ N& G \3.2 对于Missile技能,Hit Class存放于Missiles.txt。
$ D; U# _: r' g( R! a3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=16/ d: H4 h/ I9 E' K v2 h
R% ]9 b+ f9 n1 C$ U" s+ V
4 W0 o) ?# K8 s1 f- z: w; PHit Class 分类相关/ R7 v* \0 |+ X( x- y1 s \
================================================, x) m! |7 G7 N/ v* c* t
Hit Class Code Meaning
' i; L# Q/ k7 O5 s────────────────────────
# { w, \6 ?% {0 None% B5 K3 B& R" v$ V
1 hth Hand To Hand
+ f# c6 {$ ?: t+ g2 }5 m2 1hss One Hand Swing vs. Small' Y% ]) H8 t7 w S+ [
3 1hsl One Hand Swing vs. Large9 y q6 f" h3 T' ^( j1 ]0 x
4 2hss Two Hand Swing vs. Small# O9 P d% R0 p- S; G
5 2hsl Two Hand Swing vs. Large
" h4 h8 d' [2 U. d0 M# w6 1ht One Hand Thrust5 H1 j. b1 G/ @7 Z2 v& N. c( [
7 2ht Two Hand Thrust
& r6 f# I9 b/ ~+ O" I% y7 _8 club Club6 S" ]% f4 @) f5 k. f5 H; q
9 staf Staf
; g9 \" w/ E6 o# b- ?' b* x/ C6 Z10 bow Bow' R# G- F; @$ H J
11 xbow Crossbow& }3 i8 |- A6 O) ?; d- M
12 claw Claw
# S V O# i8 b8 X1 S& C; I- a13 over Overlay
) z9 M+ T. j5 D% ^( e+ S; a================================================
3 }5 ^0 B$ E! G% f+ Q; F解释:
( ]5 |; W# x8 h" j% _; i( I8 zhth : 空手。另外还包括各种攻击性的投掷药剂。
: ?5 @! U2 i9 d1hss: 包括死灵法师单手杖和法师专用法珠。5 w! e6 `6 p) y% H; u" N$ G
1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。
# J' r4 \$ }8 |# f. |* F& ?2hss: 所有的双手剑类。
& n- {( ^0 _) S8 q" D0 J; M& C( p2hsl: 包括双手斧类、双手锤类、长柄类。% \$ ?) w: U4 F
1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。! p% p" L! P6 H( j) T
2ht : 长矛类(含亚马逊专用长矛类)。
( g6 l4 p. E1 R9 a% W) k* Dclub: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。
6 A+ J* M( T: _ w* f x8 a$ }staf: 除短棍、乔木棒、手杖之外的所有双手法杖类。
f2 {* s$ ?# L& W% Ubow : 所有弓类(含亚马逊专用弓)。# F) G- L% i0 W$ k
xbow: 所有十字弓类。
* t% {* n5 Z9 j) @1 cclaw: 刺客专用爪类。
2 a6 v: O7 x H3 U4 n& x' t4 t2 q- C1 m( I3 W( ?/ Z
8 h/ b/ x' t/ E0 c8 {3 d& e% ]
常见Missile技能的Hit Class(如查询不到则均对应为0)
6 e0 D0 x3 z. b% z! Q9 V3 q7 l9 V$ V$ s2 @3 z" c# y" J+ C
Missile HitClass
) B8 |* X, J8 N* A, C───────────────────/ n7 Z7 |( j8 N
arrow 10+ T0 G3 J- a* K0 m: [5 M% p5 ]
javelin 6
: g: _+ J T' P# B% z7 ^/ L- W& lmagicarrow 10
5 C3 k4 A. D, H: A% B+ d3 ybolt 10. k! m- l9 G7 h2 M( o. x( b
throwaxe 2! ]) `- K$ n8 w/ B' X+ p8 @
throwknife 6
9 q7 n6 B3 @9 g& ?glaive 6
9 t: h$ X! M+ E5 P4 g6 n) q0 m3 hpoisonjav 6
* h( I; V. C6 u( B3 Z6 h1 [poisonjavcloud 6; w! m* W0 @9 ^4 F& I
plaguejavelin 6
. L* t7 }& O& q. ^chargedbolt 64$ p& I Q; n* f
infernoflame1 32/ f3 J1 ~, U$ ^8 m$ H
infernoflame2 32! z/ s3 O) X' ~9 y% }
blaze 32
7 V; n8 C1 G; r1 Mfirewall 32# @7 G, ~0 o- L& U
immolationarrow 10
8 A: Z7 ~& a+ B- |& `guidedarrow 10
% k8 O9 i: Y5 n2 u, wnova 64
+ O: d7 ~ d3 Z& I' i# Z: echainlightning 64
8 _ T8 G# L! F# D0 Llightningbolt 642 B w# C9 V7 M T# B* N
lightninghit 64
2 @. k4 B9 a8 q. \poisonnova 805 E3 }5 H5 \* ^8 ?6 F
frostnova 48
$ Y1 |5 E# p5 ]4 E( V* S; J. Crogue1 10+ T2 ^4 @6 G1 l: g W; Z% F0 r
rogue2 10
a/ @ m7 M+ T o9 irogue3 10: f" e1 p8 p6 N
vampirefirewallmaker 32& Y, A4 w" b2 x e u/ ?0 s
vampirefirewall 32 e9 G4 m6 O% Q, g
raven1 100 Y; R% ]& q# o0 E# |
raven2 10
6 c1 t$ C' c% ]# f4 U; w0 ], bdiabfire 32
* ~& ~+ \$ _. W9 \: `7 Mbonespear 6
# q% z8 l2 F& U. w4 c# hlightningjavelin 643 d7 M/ `) |- B" E9 K+ o
lightningfury 64
( A6 R4 Y+ q8 `$ q* @0 \multipleshotarrow 10
: b4 t4 Y, @, x- y, x! tmultipleshotbolt 10
: e' S/ `. r3 |; V7 `; z+ Zimmolationfire 32- [& K/ |2 W# M, r
furylightning 646 c3 B9 E0 r/ e& e! K& |; N
lightningstrike 64! q0 D7 O$ j9 L+ V( j) `
meteorfire 32
# v3 y y" R. r4 D* j6 Xtrap spike right 10
5 O+ B7 t) J0 y$ Q/ N# V% d3 dtrap spike left 10- E8 V( M6 W# m& K
trap cursed skull right 10
2 o6 }' Z+ p- a! n6 h! Htrap cursed skull left 10
0 r! F: K9 u. F+ s, e( A% P/ Btrap poison ball right 103 k& Y; Z6 `, p" Z' M
trap poison ball left 100 O& C1 A1 Z. r. {- q
pilum 6
5 P' H! X* j. }4 d6 Ifirestorm 32( k4 G0 U4 z& U4 a3 w
arcticblast1 32
# D# |! ^$ z) V) {, i P barcticblast2 32 b- J0 o( C4 q( c/ {$ h$ g
twister 32 z) W. R, y8 A: ? C
tornado 32
; |% x$ U4 B4 ?volcano small fire 32) I G- |2 x3 y8 `/ U2 M
frozenhorror arcticblast1 32
( I% h3 E5 {( r* s. {sentrychargedbolt 64; K" _: q- A! S1 h
bladefury1 10; t u3 N0 d* ^3 J' K+ p
bladefragment1 10/ n$ d- A# w4 B+ p4 C
bladefury2 10! c3 g1 A9 S7 @; Q7 @
bladefragment2 104 k+ o- x n$ K; z1 j3 [# L
bladefury3 102 k8 z$ o0 K5 _4 @3 ~
bladefragment3 103 p0 Y5 V6 y4 c
shockwave 64, R+ q$ L9 V: l% d& |
phoenixtrail 321 I9 F, p- w- ?, R* {
wake of destruction 32/ | |" c d5 I& {0 N
tigerfurytrail 32
2 h! A) R: J8 J( ?. yinferno sentry 1 32
$ G( a% f; r7 X) `+ w" ~ancient throwing axe 2, M2 L2 I5 \" }; b4 F* Q
sentrylightningbolt 64 c/ ~; x, H1 Q2 I4 k2 b; {
sentrylightninghit 64$ H r! a( l% {/ w
lightning charge up nova 644 T1 s) |3 m: B# g2 s: W
chainlightningcharge up 64" Q/ E4 @: L- x
baal taunt lightning 64 X: H0 `" {/ ^9 e- d1 w. ]+ ?: C6 A
baal taunt lightning trail 64" {: E- b; A( M' f' Y7 j
fistsoffirefirewall 32
5 w8 q7 v2 D- @. Aclawsofthunderbolt 64' e$ b/ r0 R. b, v4 O1 a" |
clawsofthundernova 64) Q4 R/ y `, g& Q# U
royalstrikemeteorfire 324 ]2 s- q2 c0 V% E
royalstrikechainlightning 648 b9 Q2 ^5 i4 c u$ P4 L: o! g# R
armageddonfire 320 A. k5 U# a# t4 }$ K2 m/ |1 E
lightningtowernova 64
- C; A X; |6 s3 d) ewillowisplightningbolt2 64
' x g# V+ {" I$ D; b' Q6 O* I. ^' O9 Ggoospitex 1760 q l6 `6 m. B+ c
diablogeddonfire 32
D$ ] d+ @! w' N Wmegademoninferno 32
7 _+ m1 X3 |) @7 m5 M Wtrappoisonjavcloud 6- w6 s8 u1 w' x5 u9 y
trapnova 64
/ E2 `3 Q- ^/ }1 ]; j+ Bmephfrostnova 48
+ M2 y0 G: q1 K2 x0 R& h% Hstrafearrow 10
# P g& r3 w8 }0 Qstrafebolt 10: G! U9 w+ H+ [7 g, g2 r4 X
, i* o, L% m) k: }, z
; d- I" l5 K+ X, i由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:8 N; F+ t! I0 N) E" B2 `- y
1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5%% d% x `* x0 O4 z
2.当DAM为MaxHP的1/8时,造成FHR的概率为75%
0 s+ W8 z5 G6 F1 s' E3.当DAM为MaxHP的1/4时,造成FHR的概率为100%) [8 G. _& q5 c( i" i" w
|
|