|
原创作者:悄然花开- Z! \( V. l: c$ }. `
发布日期:2008-08-12
: ?! ] D9 P- N7 z- n2 d. ]
; E( E2 u4 m E/ G8 f5 q& C! E; n' ?, c) j% `
【遭受攻击时HR动作判断的流程】- ~2 J- J g, R$ F! {
1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。% b" K5 D. E1 L0 U
2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。
4 R) D9 ^% O& l1 k3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。
8 s" }% S. T6 d& @" F. z* }4. 检测本次攻击是否包含毒素伤害。
5 P; b, K/ m8 Y# h+ Q6 i4.1 如果是纯毒素伤害,判断结束,不产生HR动作。
6 ~& C; y- V3 R! B5 U4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤5; R; a# Y. L% g* C7 ]# ^
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。" `- x) O/ C2 t# ~
5. HR动作判断开始
6 |4 o4 {* q1 n) p1 h5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。
) r3 [4 \7 {4 b1 j5 k3 e% e6 G9 m1 G5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。 f/ G$ R& q2 E1 R; N
5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。1 T5 c" f( U6 s
5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。) H4 V( [1 g# n2 D
5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。
; m; w* H+ V ^( ^* v% T9 m" X4 B6 _5 W2 | }$ y2 `
【简单来说判断标准如下】
! s4 ?$ q, D' q" G r+ x纯毒素伤害不会造成HR动作。
5 ` c+ k1 [5 o" Q3 A2 ?" z非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则
, |$ q/ K" B8 V) t, ?, b+ A' `若DAM<MaxHP/divisor,则不产生HR动作;0 F4 j! b) h+ P8 C5 b' c& e( T
若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;* I$ w0 a' E% _7 D& K
若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;
% T+ Z+ X& a) c4 x/ Y若4*MaxHP/divisor≤DAM,则100%产生HR动作。' c( ~) X1 ?& k! Q
5 P. d# w6 Z" M4 r5 E- W. g* p
( A! R: N1 u5 g. N( c q" Idivisor参数的取值6 _) k n$ d. C1 q4 u' \7 H$ b# Y) ?
Hit Class = 2, 6, 10, 11 : divisor = 8
8 |( }. d$ M F. LHit Class = 5 : divisor = 64: G$ l: T' Y `8 ?
Hit Class = 4 , 8 : divisor = 32
6 V9 K# k) e9 N ?( M' m/ XHit Class = 其他 : divisor = 16
) k. A0 o+ G: A% j) T9 B9 i; j6 j' {5 z
Hit Class取值的判断, {9 H$ N; k7 V: Y2 D' o
1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。
! b3 J5 M/ f. D/ D- o2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。7 f6 v+ g& u. b1 F- G% `0 q
3. 技能的Hit Class$ C: D7 A4 c; u" U. E4 J6 k
3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。
$ c: n" G- _2 h' m! T3.2 对于Missile技能,Hit Class存放于Missiles.txt。
( ^! ~5 w* w# Y/ H; u/ C3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=16
) n* H K8 ^/ N
; s0 H! F! K; h" D) p7 g0 S) v# D0 N0 B% K2 C( `4 ^3 v3 G; }- D
Hit Class 分类相关
$ K9 `% ^( u% P/ ]================================================4 R- P, p0 i3 J% Y& N. ^
Hit Class Code Meaning( t) ]' m( C+ o6 ^ D4 r
────────────────────────6 N3 m% l" t3 {% B: o
0 None: t, d2 e. {) s7 w6 s6 C4 R7 {
1 hth Hand To Hand9 v6 u, |" H# G7 E2 p [) v7 E, ]
2 1hss One Hand Swing vs. Small3 k6 x: n8 j& O8 e
3 1hsl One Hand Swing vs. Large. D" S, K; ]2 j' h, Y7 {7 A4 F L N
4 2hss Two Hand Swing vs. Small1 \- z4 t6 {4 m
5 2hsl Two Hand Swing vs. Large/ X; ~ X9 @) M/ g" _5 h' W! d
6 1ht One Hand Thrust
9 h* k) F5 W$ f" E+ w7 2ht Two Hand Thrust" O/ g y+ s, }5 T- ^: r5 k, y* Z j
8 club Club" J5 @' `$ w: g. v# \( N* E
9 staf Staf
$ e/ x7 `1 E5 N- B% R10 bow Bow) C. D: u! ?) S9 [# J
11 xbow Crossbow
8 g2 A& k a% v5 J( U- J5 C12 claw Claw" U) E. K) u1 \+ P- z" [$ i4 q
13 over Overlay5 X& X! F! D. c" l( t4 |3 X0 j* T1 r
================================================% f" x+ I+ q/ m: u" d
解释:
5 \- N9 L! A8 I4 f E5 Jhth : 空手。另外还包括各种攻击性的投掷药剂。
3 Q; U- I: W' Z% C1 Q! K1hss: 包括死灵法师单手杖和法师专用法珠。
% ?' m* Y6 t' w3 z- J1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。9 o' s2 I: H* K# e. o3 a0 m
2hss: 所有的双手剑类。
9 {2 G7 S( h; x+ o9 ^2hsl: 包括双手斧类、双手锤类、长柄类。: T0 ~0 @( S$ ]' n0 `3 w, V W0 J
1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。4 Q9 h o$ }' B- U q! I
2ht : 长矛类(含亚马逊专用长矛类)。
4 D! U, G4 V" y7 {; p8 b Wclub: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。
1 Y1 N) v, ]+ S4 v4 astaf: 除短棍、乔木棒、手杖之外的所有双手法杖类。
& H- ]3 _( Y, L( w7 n0 \bow : 所有弓类(含亚马逊专用弓)。% D. z; w" }9 F$ r- U9 S7 f
xbow: 所有十字弓类。( ~& I, E- p& P$ Y
claw: 刺客专用爪类。3 B) x3 \% S4 e6 r* j% M- Z
$ q# h9 s+ D% ^5 u
( D0 u, C1 E2 i
常见Missile技能的Hit Class(如查询不到则均对应为0)
1 D/ z/ N: F: o& W0 a' O
0 C4 V9 z& Y% V9 P+ v% ]9 O$ YMissile HitClass! U9 Y7 i1 d3 W+ ~' d7 `6 e7 G
───────────────────* k" y' O4 f1 ]0 Z6 H! ?
arrow 10
" ]2 i9 T; ~4 {6 O9 Z$ g9 C- Pjavelin 6
# b T/ b& C7 _' h' @magicarrow 10
. T9 ?+ Z% ?( f; w/ g- mbolt 10+ Z# {9 C4 V4 X* c1 O. A7 N
throwaxe 29 R. S. N* p. O Z1 b. ] `& M! ~
throwknife 6$ g1 |1 D3 n1 q/ y7 N, q
glaive 6. P& x y C& n* |& P, C8 O' Q
poisonjav 6$ ^. S9 \2 C. f" g2 y
poisonjavcloud 6
2 o) n' ^% b/ v1 {plaguejavelin 6. X: {& N8 Q- X( x4 r
chargedbolt 647 a* |; y) w9 Z
infernoflame1 328 _% |9 C2 `* D0 L2 v. }
infernoflame2 32
t. z' c0 {' W' M; m4 n; p# V( w: Ablaze 329 @8 N5 L6 U- L: z* g. w f
firewall 32
0 c3 s3 x6 d+ O w* Yimmolationarrow 10- b6 \; ]0 t+ d, W/ u0 z
guidedarrow 10# |( O7 c9 j L4 N" j
nova 64
) _9 f! Z$ y. i- ~chainlightning 645 [) [+ X2 N5 [% ~
lightningbolt 64* I, W' W, W" n
lightninghit 64- J8 z5 M* k9 f9 {
poisonnova 80) Y& | R( t( j% O: ^
frostnova 48- m( ^" B4 b, W& B3 L! i' O
rogue1 10
$ i) Q' l: y5 s- Crogue2 10- r" W: A3 ^2 S' K9 V
rogue3 10
; Z0 C. }! Q# n. I+ U5 nvampirefirewallmaker 32* l3 g* x( w$ s2 I8 U/ k1 K2 B
vampirefirewall 32
! v5 H8 r9 f! O/ |6 |raven1 10
0 H8 h A* t- ?5 S" q5 |6 qraven2 10
* V9 \/ E+ p- y, ~7 @diabfire 320 a2 @- Y r9 I/ `
bonespear 6' R/ H- }6 n4 k+ d
lightningjavelin 649 X* g; [ I: S
lightningfury 64# k# ~) f/ ^$ E% Z( W9 [
multipleshotarrow 10& g. K, j, C# f$ ]+ w) J
multipleshotbolt 10; z/ B, ] i! W4 B* f2 z- Z
immolationfire 32
3 i5 A6 _" @. w8 e$ yfurylightning 647 L ]! S# r: K0 i
lightningstrike 64
' J" [! ~1 a8 @* X& M. i! Imeteorfire 32
+ y+ V8 |, Z% U+ L" n/ }& [; `) m4 Utrap spike right 10
3 C0 ]/ }. W: i( {5 x/ }trap spike left 10 a" f, z3 L8 b0 A; y2 Z! S
trap cursed skull right 10
( f' W2 ]6 U$ wtrap cursed skull left 10& U9 j$ a" t# W& ]
trap poison ball right 10! s5 |; x' c+ B. u1 m
trap poison ball left 10
1 J! ~- \+ r! f3 G6 I \0 Kpilum 6
3 s7 y4 D N& @( _firestorm 32* T+ \9 m! ^8 k; \
arcticblast1 32
6 a# y9 f, I" I) farcticblast2 32
5 e4 W( k+ Q/ U" r8 mtwister 32
) _ z$ a9 [' Z! M1 Dtornado 326 Z. t$ x+ r9 i
volcano small fire 320 x: S" ?+ X* K/ F. s; [: T
frozenhorror arcticblast1 32
7 A" E! N( X+ L* Lsentrychargedbolt 64
! t# C2 @$ L- J, ~: j) e; J6 pbladefury1 10
2 A9 i( Z5 k. Y. e( Z! x& _& N" |. tbladefragment1 10: J4 m V; e) G% B
bladefury2 10! z7 h9 |3 L- Q2 h3 |. a
bladefragment2 10
% e4 E! ]7 o8 H7 v: F& x5 lbladefury3 10
1 e, T( W! u5 z% Q! |" Mbladefragment3 10
0 q" A) c6 \! A3 G, Dshockwave 64
! b! d c( {5 i$ `phoenixtrail 32
6 o9 N5 p8 P4 `9 X8 W$ ]. awake of destruction 32
2 o; I v8 C, ?% {7 d( Rtigerfurytrail 32
2 ]2 L/ ]7 v4 {( k" winferno sentry 1 32
; X( B# Q8 k m& gancient throwing axe 2
8 `% E, y* D$ x- v& j, ?' k, wsentrylightningbolt 648 z- ~2 v' y" }, ^8 K
sentrylightninghit 648 l/ _- k! n! N9 x7 x2 @
lightning charge up nova 64
5 g: ~ v8 [! w1 h. E* v/ Echainlightningcharge up 64
4 [( p* p8 i( v! Y1 Xbaal taunt lightning 64& G$ z" m/ S. G
baal taunt lightning trail 642 @/ J! b/ w8 x0 D3 v5 b4 W
fistsoffirefirewall 32
9 {2 Y% O' r1 V: W0 [2 Zclawsofthunderbolt 649 o; k) g$ m7 w& j
clawsofthundernova 64
3 y f, F7 E# g4 U& q; lroyalstrikemeteorfire 32
( U# }% K7 s, L7 W& ?5 l% oroyalstrikechainlightning 64
! q- {8 t: I, f9 y# [4 d/ l0 ^3 {armageddonfire 32
$ d6 G8 t, y8 N* V" Wlightningtowernova 644 m# {; V0 e6 ~
willowisplightningbolt2 64
1 M# j+ o% i0 c7 u2 V7 @' Ggoospitex 176
/ x& X) s8 U/ x/ c1 @- q! ~diablogeddonfire 32
# U% k) w, O7 X. v- D& Tmegademoninferno 32* G; }) G+ \% w5 t, d5 U. Y9 C T. c& T
trappoisonjavcloud 6
1 J; t: [6 y: @* P5 t" V, Strapnova 64
8 B1 ?8 ]+ E( |2 l: }mephfrostnova 48/ J5 N2 j2 n# ~# y
strafearrow 100 x9 H, H- n2 }7 p$ [
strafebolt 10
# m( N3 _( {6 b$ N6 _
8 `; ~: q( s. a4 t3 L
0 g! Q A7 b$ H. \# j1 }5 G- q7 r由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:9 q2 g, z8 v, \2 t; a! Y
1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5%
8 R8 X. | N( [6 F! w2.当DAM为MaxHP的1/8时,造成FHR的概率为75%$ ^9 L b% j+ \5 m3 i1 U1 i
3.当DAM为MaxHP的1/4时,造成FHR的概率为100%4 C$ X. A. N9 b9 S1 i1 ?
|
|