|
原创作者:悄然花开
% S2 S4 J* o. Y/ N发布日期:2008-08-12
x2 h* O/ B( o* X" p& i Q. n# o
7 E o0 E, n3 ]8 n+ t
【遭受攻击时HR动作判断的流程】
' F2 v* x3 j; Q6 G7 V4 i* g1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。 z7 i: c5 L! {+ k+ a+ i$ H/ p
2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。9 c P" q2 l. U9 W3 v% b |
3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。5 h2 m) O, O# [
4. 检测本次攻击是否包含毒素伤害。
4 Q) y1 D$ ^# H/ N& V4.1 如果是纯毒素伤害,判断结束,不产生HR动作。
, x( I0 D: y% E) r: U* t6 G4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤56 O+ f/ q% J" ~: H# k8 Y
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。 m z) d- E2 L! Z. }! C: g
5. HR动作判断开始
% R1 p: i& a$ G* y* R/ _0 V5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。: W+ [4 u) s& k& M. s! s
5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。
. b% f' o) p5 K5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。
7 \$ K1 s) B0 Y1 `5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。6 u3 \, w" ]8 F( w0 S8 J6 s
5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。
+ x- d6 M. `: r+ a5 ]
+ F0 N% }2 @( _; a/ {& f; ?( R【简单来说判断标准如下】
) Z( ]3 Y" M) c3 L. w g/ r纯毒素伤害不会造成HR动作。. I* m% V0 H# D M4 L
非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则6 ]3 h+ z0 }. ]. b
若DAM<MaxHP/divisor,则不产生HR动作;
. o& ^3 F) p# O3 S+ i' h4 U, l若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;
1 r; }( ~1 D% V$ x6 _若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;
+ u& b* t7 N9 e: X r* j若4*MaxHP/divisor≤DAM,则100%产生HR动作。! T9 E! F6 x1 n/ }+ f
6 X) Q! {4 V' H
i# T4 N; x" d5 w3 f3 Cdivisor参数的取值
( Z# Z$ ~8 y3 U' \Hit Class = 2, 6, 10, 11 : divisor = 84 Z7 r$ i' }$ T8 R, i
Hit Class = 5 : divisor = 64
+ `$ ]0 I: Y. z% F5 vHit Class = 4 , 8 : divisor = 32# f' n8 N* L6 ?9 c9 w
Hit Class = 其他 : divisor = 16
( |6 k' g6 i3 w" J
. o; e e- v8 L% n0 N/ jHit Class取值的判断
. c+ B7 G2 [1 _) K! p* m8 ]! J8 H1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。
( s( x4 L/ ^) `* f. J2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。
$ G( M l( A& m; ^3. 技能的Hit Class
- ?1 U9 l4 D* c3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。/ D V# i# V1 R: [% W
3.2 对于Missile技能,Hit Class存放于Missiles.txt。
. s8 k/ I( s% K5 K) D, g3 r3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=16
5 k1 @) O7 f8 X+ A5 e+ ?% o5 j! o# D* ?: w: |
" b0 v. T: f2 N; z* LHit Class 分类相关# Y; Q4 z; \3 }3 w3 Y
================================================5 _% p! Z1 h+ t* M6 w
Hit Class Code Meaning
2 W) h3 W( S# O9 B) s────────────────────────
/ I) d! S$ G! N$ @+ N0 None
8 ~5 N p1 k1 L$ i: _1 N1 hth Hand To Hand/ ^8 G9 K4 o5 c" q! ?, W
2 1hss One Hand Swing vs. Small
% s9 q+ I$ z/ A2 t: J& `$ v8 J3 1hsl One Hand Swing vs. Large6 V6 M0 T9 f) \3 E& o
4 2hss Two Hand Swing vs. Small
! d$ n9 k# i4 L, r B7 H; |5 2hsl Two Hand Swing vs. Large
$ B0 ]% P, ~; L# r+ ?5 Q6 1ht One Hand Thrust" U6 w/ d+ `; A+ C
7 2ht Two Hand Thrust
' q. z, a! L! e3 y" X8 club Club
# |! h0 n& E, ?) L! L/ x1 t9 staf Staf
* c: S+ ~; v4 b# Z10 bow Bow- E: s& e1 p1 ]. v2 B9 A
11 xbow Crossbow' @- d$ Y9 D9 l3 }6 k4 X
12 claw Claw
! H# {! ~, l' T5 h13 over Overlay
. ?" }2 C# n2 i# F( x================================================; S& e/ I* S3 N2 a; {. Q
解释:
. w6 v [! i, }" Uhth : 空手。另外还包括各种攻击性的投掷药剂。2 W4 ?0 ?& b( X, @+ o! p
1hss: 包括死灵法师单手杖和法师专用法珠。' V: A9 h- i( `
1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。" A0 T4 q" r0 K8 S; V
2hss: 所有的双手剑类。
+ c; M6 E* \& p; e# d2hsl: 包括双手斧类、双手锤类、长柄类。3 G7 Q! s: \9 v! r: } E4 _
1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。
9 A; g# k) c+ r) C2ht : 长矛类(含亚马逊专用长矛类)。
3 L7 Y: S& [6 B* tclub: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。3 o& r$ V8 q2 U& |' Y
staf: 除短棍、乔木棒、手杖之外的所有双手法杖类。7 e" M$ H& _% g- ?
bow : 所有弓类(含亚马逊专用弓)。6 N. a8 }& y: D1 m
xbow: 所有十字弓类。
* M; p3 p9 M$ M: n8 b& _8 Y0 [claw: 刺客专用爪类。
o9 C( x$ I- m5 d. n" Y
) Y6 X! c+ b: q8 v# G9 H! z
& z, W; K, D. O常见Missile技能的Hit Class(如查询不到则均对应为0)6 |( H3 X; k# A; F- g% G
& m6 _* X) E( h2 d8 O4 ~* xMissile HitClass3 ]7 a; M# l# ^" q
───────────────────
: a2 p5 L9 N4 s# g9 y7 @5 Tarrow 10
8 n: v9 y3 R3 P( C( Hjavelin 6
& G# _( ~, s' ^2 K1 k; x9 Vmagicarrow 10
% \" p: L) N7 n" ~- Qbolt 10
: k: r: D' F0 `1 bthrowaxe 2
4 _4 h5 G: T& ]# ^; Q& `7 lthrowknife 6 c) X2 i o ~) s+ j) q$ s
glaive 64 u; v3 W1 z+ p- z' o
poisonjav 6: ^; x% U. B+ ]: p
poisonjavcloud 6* q! C2 ^; L! r2 I |$ s% E& Z/ y
plaguejavelin 6
$ o/ ] d% n5 O- }2 Q: j Tchargedbolt 64
( g$ K7 u4 B8 x$ Yinfernoflame1 32
6 O& Q0 H; \6 `- }infernoflame2 32
/ }2 S* Z( L: @ f6 Cblaze 32. w7 ]4 m9 s! u. ?; |; K, n4 K8 b
firewall 32
2 Y2 V, z0 @' D8 h+ t3 t# Y" M. yimmolationarrow 10
2 D# z/ ~; u* D& N4 Xguidedarrow 100 Y) R* V5 d$ _0 b. c3 c
nova 64/ M" K3 b3 o; v+ h% ^
chainlightning 647 `" c5 A: o3 h/ |
lightningbolt 64
* f: q8 Y. x( g' ?6 plightninghit 64# q4 g) T" ^$ u; v( ^ V
poisonnova 80
+ N% P3 L" U# x- Kfrostnova 48
1 E; Z" g6 I- {5 q6 A, u3 n' _1 s; @rogue1 102 {. [* X2 T. {! F* ~9 |
rogue2 10
3 k, R" e+ s+ M2 Nrogue3 101 D( ]6 h) T, D7 c9 ^
vampirefirewallmaker 32
3 u# i7 g8 `0 Dvampirefirewall 32& H2 s1 @" a* ]6 q
raven1 10
3 R) ?/ C' n! G% u! i7 s2 _8 xraven2 103 L& P: M/ g" W+ j. N
diabfire 32
$ R5 q9 R/ ]7 p+ \3 l5 |: obonespear 6$ N f L s' N8 G
lightningjavelin 64
+ Q6 l8 f$ V$ Elightningfury 64
5 ^3 C" W5 v2 A3 y. d1 k2 B- z3 Wmultipleshotarrow 10
. i6 `/ i. ], z( m$ L9 zmultipleshotbolt 10
4 A0 ^+ \4 M) u- aimmolationfire 32
# L7 |' o4 R0 k3 g! n* c$ ufurylightning 64* j0 @* K& n& G% e$ j5 `
lightningstrike 64+ R. E- `0 S4 e7 R4 L* Z
meteorfire 32
/ q$ ?) ^9 c4 u+ d: F0 Rtrap spike right 10
0 `3 f$ D: Q9 L; g# D: ttrap spike left 10
' G& [% C) q9 W8 b2 D# Ttrap cursed skull right 10& Q3 k5 ]4 y' q0 V! T5 K. |
trap cursed skull left 10- [, r! T# l; z! k
trap poison ball right 10
8 Y2 Q7 o2 W6 _ @5 V9 Atrap poison ball left 10
' ]( M8 K+ y* Wpilum 6
5 S s+ z0 L5 \* F0 N7 s5 q: i9 Vfirestorm 32% Q* j& n, X0 C9 @9 I. u, ]
arcticblast1 32* r4 W' }8 {, Y2 b" f$ @# r Z
arcticblast2 320 I# ^& P- [2 Y" \% S
twister 32( J& ?" y0 W' Q0 P; p+ Y: J' z
tornado 32
; c/ S [1 S D. Z/ E, fvolcano small fire 323 n+ E2 w3 y/ {( j7 U2 H* ]5 c* E
frozenhorror arcticblast1 320 T. r/ U: t% L
sentrychargedbolt 64
8 M) z, y9 x3 u! ~3 F7 @bladefury1 106 y( s& p) O% c. Y; ?! ]
bladefragment1 10
, h; n& H$ K1 [& M% j/ Kbladefury2 10
3 `8 G" A3 p& Z/ _: D2 i& p0 Mbladefragment2 10: x. A$ m) z R2 a, V" }
bladefury3 109 i! x+ P# }: L4 F
bladefragment3 10
0 G6 U3 T0 u& T7 D* {, n( yshockwave 64
" I. S$ H% V% M qphoenixtrail 32$ ^8 D. i+ ^& t2 T! [
wake of destruction 32! A) X: Z ^# V1 Y
tigerfurytrail 32
8 E0 O' [& O6 l. p: Jinferno sentry 1 329 o- A3 {0 p( e6 J- E4 z( V
ancient throwing axe 2
* x! A0 T% M, I8 a* @4 K" H5 y" F" Isentrylightningbolt 64
: R3 |5 } s5 | L. nsentrylightninghit 645 w1 L; [! l+ O: u' u$ S4 w
lightning charge up nova 643 [# ]$ b6 |4 T
chainlightningcharge up 64" \/ {0 }- L: r+ L
baal taunt lightning 64; g2 m; |, l6 a
baal taunt lightning trail 64
! a' X4 N( o; D: ofistsoffirefirewall 32; F2 ~/ w! C, i2 _
clawsofthunderbolt 64 J7 Z0 H+ L$ d+ m+ U
clawsofthundernova 64! I b% [7 I; z8 R' x3 W+ n
royalstrikemeteorfire 32
( X Q" Q9 j% x8 K5 C: h [7 W9 rroyalstrikechainlightning 64
8 D) ~3 Y) N4 k$ p' Z) A& W' y' |4 parmageddonfire 32
8 b/ x, ?+ ?9 K0 W% b8 @) X$ plightningtowernova 645 p" V: V' H) B4 K% D4 m
willowisplightningbolt2 642 V; p3 l* @% L/ O/ t4 U" E
goospitex 176
) Z* z1 n# P# l. rdiablogeddonfire 32
: Q) f4 u2 l/ [, Zmegademoninferno 326 L: T- X( C5 H0 M4 {+ x$ m
trappoisonjavcloud 6- a# }2 p& ]; T' J3 Y
trapnova 64" `# }6 F0 A, U. u+ Z" e' ?; K: @
mephfrostnova 48% m- g' u$ @( k2 N2 M- {/ e' s
strafearrow 10' p0 A! z; l9 ^
strafebolt 102 f }2 N. |8 q
0 H& K) I- v M% {% Q* o
* L! N5 o' [, b3 y由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:
; J. y" E7 `' l1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5%
. z# d( I: s% g2.当DAM为MaxHP的1/8时,造成FHR的概率为75%
2 d' r. S4 N3 `( e3.当DAM为MaxHP的1/4时,造成FHR的概率为100%
0 I8 W( T+ F& `5 T6 d |
|