|
原创作者:悄然花开
% y* M2 [% h. K! _" V b发布日期:2008-08-12
1 ]( R' Y9 w% z1 U: R9 q4 x; ` l" \- ^! [4 ]
1 H" t+ B% e4 c& M# w【遭受攻击时HR动作判断的流程】
( z3 `6 I* F0 \( n1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。0 a) ^8 f; h' j3 b! }
2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。) F/ q# r R0 y9 Q/ O' T
3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。' _/ ~: u" _ g& } u, [0 K
4. 检测本次攻击是否包含毒素伤害。$ q! `8 H, Y8 c$ L+ t$ s) N
4.1 如果是纯毒素伤害,判断结束,不产生HR动作。( A' R; X0 b" \/ G
4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤5! m1 b: J% ?/ f" ?: d: h
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。8 z$ W7 w. W1 A9 M; r9 f2 w
5. HR动作判断开始7 G1 u1 |$ V( M' Z1 v* H8 x& z
5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。) D0 o/ S4 `; J/ t+ [
5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。
9 o5 }* Q1 J0 H0 k) B5 u$ v5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。
5 e; K' } @- D f; u2 w1 d5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。
" s5 S p; G- h' N$ B0 w# B( p5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。
v- j3 A& e) M5 r4 [+ c
; v: h' }' v6 Z9 Z2 z! |2 ]【简单来说判断标准如下】% k1 `. ^# j) A, g, _, x2 z
纯毒素伤害不会造成HR动作。8 u' {2 V9 @+ Q, U- s! @
非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则) i5 N: Z f9 W: N
若DAM<MaxHP/divisor,则不产生HR动作;% Y# @/ w- T1 U. L9 J) }$ t
若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;8 r' `- _- { Y- g W; H. A0 [
若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;
; X# m( F# |& k. U9 O' y4 m! _+ _若4*MaxHP/divisor≤DAM,则100%产生HR动作。9 K, r* X0 D" D- l
. y5 b& T8 K% _4 D* O+ y, P$ d
4 {; ?: O$ K! s0 N; M
divisor参数的取值; l$ c. @9 }9 [4 W/ Z9 u' p3 B
Hit Class = 2, 6, 10, 11 : divisor = 8
5 `# t) _' x' A+ r! A* kHit Class = 5 : divisor = 641 E+ ]5 a$ M5 `8 _! H3 p H' v
Hit Class = 4 , 8 : divisor = 32* p |- A% R. v7 G4 `
Hit Class = 其他 : divisor = 16; k @3 i& Q# y9 Z9 @
) ^9 ]: H* K0 F
Hit Class取值的判断
" X, r6 v5 v) B" o. e& J: ^& \/ f$ [ z1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。
- U0 ^' i, a/ r- i2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。1 S% i7 O+ I. E! D
3. 技能的Hit Class
% E7 o1 L( c3 r' ^) P$ V3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。
) C" W+ s* K. m; |3.2 对于Missile技能,Hit Class存放于Missiles.txt。5 G% Q9 h$ d9 Q7 h
3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=16
1 o: _% v5 Z( E& O' _+ S* v; l% Q; ?: o. a9 O
8 f2 C6 h! H6 P AHit Class 分类相关
% j9 Y4 e9 S! B- H0 t================================================
0 [$ t7 G- I$ t6 lHit Class Code Meaning: ?3 @& I; F& s% y
────────────────────────
& X/ ?5 n/ W; b- U y, N0 None: \$ {+ a5 x% T& m1 \6 v4 o, j
1 hth Hand To Hand
, h, U/ M% y" }- I& R. x9 A2 1hss One Hand Swing vs. Small1 x6 ]" `. k( J+ O7 G$ r. d
3 1hsl One Hand Swing vs. Large1 h) ]; f2 ]& E( t2 O0 l* {$ r
4 2hss Two Hand Swing vs. Small5 g7 z5 n. z6 k) c5 J) r( Z/ @% U# ^7 I
5 2hsl Two Hand Swing vs. Large4 _ U( ^* a; R9 w8 {
6 1ht One Hand Thrust+ {3 K* m5 g: a7 }: p" B0 A+ i
7 2ht Two Hand Thrust
6 g, A% h5 o( h: x3 T, [8 club Club+ T d* }; @, X7 v6 w$ H% [
9 staf Staf
' c) r9 P& Z+ B5 |: H10 bow Bow
( J Q" j, ]& L11 xbow Crossbow& o7 L+ h' x& X7 e- O" K8 m
12 claw Claw3 c2 b! T4 i2 a
13 over Overlay
( b+ A) k% j% c7 t================================================
8 q: w* q% O0 b+ p& M( n# e解释:+ w: M% Z3 x4 D; x- c# a& v; x+ Z, l* |* X
hth : 空手。另外还包括各种攻击性的投掷药剂。
- p2 j/ z$ z( N% s9 R9 o1hss: 包括死灵法师单手杖和法师专用法珠。
# x6 V! R6 Y( Q2 D: v1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。+ A5 H$ E; b5 o8 T7 A
2hss: 所有的双手剑类。
; J+ A0 n/ j3 h; Y m8 X2hsl: 包括双手斧类、双手锤类、长柄类。- b6 u' D7 A& p8 F' S' B
1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。# s+ ?' E/ Y3 p0 M/ Y6 U/ G
2ht : 长矛类(含亚马逊专用长矛类)。4 y. \' r* y# w; M
club: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。
! N: W" X" @4 A5 x2 Y5 T0 ~staf: 除短棍、乔木棒、手杖之外的所有双手法杖类。
( I. G0 q9 k7 g( }/ fbow : 所有弓类(含亚马逊专用弓)。- a; {9 o: H/ D; l
xbow: 所有十字弓类。
8 Z! p, ]) S1 w, @5 tclaw: 刺客专用爪类。
6 N7 k) v# L2 u* v2 u3 k4 e$ \, S) `3 a7 V& Y; S! P
2 U; z m. }, E* y" v: c H2 ]4 X, f5 [
常见Missile技能的Hit Class(如查询不到则均对应为0). S6 `& r6 O5 P$ b) @, l
0 @& ?6 R! A* O6 d
Missile HitClass' }1 Y' ]- g$ E" K( }* ?
───────────────────
! j1 U+ J! F" o$ ]" J% narrow 10
% K8 ~! I! Q7 o! {" N2 R1 V; f, Wjavelin 6" N3 {( `% Z! o0 v" f# ^
magicarrow 104 V, J% Y! f/ D& h
bolt 10
8 F( q6 h& S/ z8 G2 Othrowaxe 2$ { r+ t6 Y/ H5 Z( w: l, ?! X
throwknife 62 U* a: ~- x+ p0 C) r+ x. Y7 C9 Y
glaive 6
5 B( o" N0 ~) O( `- j) @2 i opoisonjav 6
5 S, `# }: p+ ]poisonjavcloud 6
* v2 r' F* E0 Tplaguejavelin 6
$ x+ _5 B# Q7 g% x2 w/ I+ _chargedbolt 64
; R/ Z% T. e8 y2 g3 I6 jinfernoflame1 32. [1 [2 |' |# P3 f# d
infernoflame2 32
. n2 C5 _; j$ o0 ]/ w2 \: T* [: C; nblaze 32
0 R! ~. h# f' _* _4 |) m5 dfirewall 32 [/ H; F% p$ W- a q1 Y
immolationarrow 10
8 p5 c. f u+ x2 Y7 a7 B: l2 Q( D0 Wguidedarrow 10
6 I: u/ L$ s' p! ~* onova 64
v. N' L+ R; R4 Lchainlightning 64' `) D+ u0 d+ E) c/ T) t: N
lightningbolt 645 e, D5 }7 k0 _6 {: E' _. M4 l
lightninghit 648 D, n) y& e0 c4 ~5 @8 [ o8 K
poisonnova 80
3 L9 a% q8 e4 m0 ^8 W+ P) @' B5 cfrostnova 48
, z% K# ^# D; ~1 ^. g7 A8 W6 g0 Rrogue1 108 C: R2 l- x9 `; V
rogue2 108 x1 f7 F; A& K) h" B5 i2 V5 u2 K4 |
rogue3 10. M/ j8 n# R+ i' x5 n4 s/ k( K
vampirefirewallmaker 32
$ g; L! b; c9 g5 w5 o; svampirefirewall 32! d" {/ ]9 l! \0 g. H6 d
raven1 10( I1 z7 d- t+ [) Z
raven2 10/ L- {( {. x0 E7 q. K! H& @' E N
diabfire 32' B/ Q! M8 \) s& W0 |% N. b
bonespear 6
( B4 N4 R1 d% j! H' ^( D+ Olightningjavelin 64
' t$ } C- [. G7 llightningfury 64( r# E% p# D3 B
multipleshotarrow 105 s+ [$ `- ]3 Y, i" T
multipleshotbolt 10
- J, f: U* t# ^/ @0 Cimmolationfire 32
; i: Y& T3 ~; S) a* t' i, k9 vfurylightning 64
3 ~; c: }3 N6 J8 t) W' Hlightningstrike 643 Y! R. G( H. q! H7 |
meteorfire 32
! S- K, e3 g5 q' F# ^' J5 d) t- xtrap spike right 10
- X7 T. M/ \* P3 Qtrap spike left 10" I! E+ t: Z* v
trap cursed skull right 10, V0 e- F1 H- U( j* u! `# E
trap cursed skull left 10
+ Y/ z+ s3 ^) ]' c9 T1 L/ W! qtrap poison ball right 10; h) L4 _ X* H i& t4 m
trap poison ball left 10$ z0 m' J2 F: p7 L
pilum 67 v! c. c( a$ [/ @6 d" A
firestorm 32. f# A. s) x$ k/ E2 n5 }( l0 |1 ]
arcticblast1 32
, F/ O) W8 @3 j$ U0 Xarcticblast2 32- N a6 G3 f% V1 J/ b, s; d0 }
twister 326 S8 U: `) y& ~! ?1 U$ {7 v
tornado 32
1 r. w. W1 {: z& ^# V/ n2 V4 o5 ~volcano small fire 32
_6 I7 I& T" o' O* qfrozenhorror arcticblast1 32( P# k" S) b, x
sentrychargedbolt 644 c, Q9 x- o& f3 M
bladefury1 10' ^8 X+ E' f# [# p# U
bladefragment1 10; z) F) A# u* {: k
bladefury2 10
0 c9 F8 C% G+ ]+ Y- n! x \+ mbladefragment2 107 P7 ]$ g7 T$ {1 E
bladefury3 10
7 Q2 J+ K, P; N) E$ n) ?bladefragment3 108 b9 t3 l* l. P# B! S |
shockwave 64
" a" G* P- U( [- I6 b3 C# e2 S5 nphoenixtrail 32% m" r C# m! M" K6 x5 Z, m7 ]6 x
wake of destruction 32, B0 `' {+ x/ b3 e% P6 t* ~
tigerfurytrail 329 A& B( V/ b( B8 G
inferno sentry 1 32
2 l" a: W2 C* T7 nancient throwing axe 2: @( E0 c/ v# c9 K! d
sentrylightningbolt 64
* [/ m( g+ o7 Q+ msentrylightninghit 648 W8 j8 k( s% u; p/ V2 L* z
lightning charge up nova 645 ^% [6 U' ~& p1 y$ |6 E
chainlightningcharge up 64
. T( [4 k' S, nbaal taunt lightning 64
/ s, A4 d- u9 a4 Lbaal taunt lightning trail 64
) H# t4 p1 q. p- [fistsoffirefirewall 32" n% h2 E! @. p
clawsofthunderbolt 649 u9 S5 |8 a: ~* ?6 G4 _
clawsofthundernova 64
& g- M, J& w/ hroyalstrikemeteorfire 32
; Q5 ]- b% t; d) ~0 o! nroyalstrikechainlightning 64& X0 a5 g) w# q d5 I$ Q" k! M/ Z
armageddonfire 32
8 P5 S) G8 T+ c, \' Ulightningtowernova 64
8 a& _+ U4 N& z8 @& fwillowisplightningbolt2 64
( ^4 [8 Q, F. H3 N" h' h7 u4 K8 K8 jgoospitex 1765 ]) x" F6 Z, B) a/ q5 d3 F* w5 h
diablogeddonfire 32
5 r) r( @* e: S' `: J. q5 K# umegademoninferno 32
- r' I6 [9 s5 {trappoisonjavcloud 6
/ l' F* }; Q, m6 Q( Ltrapnova 644 [" p7 Z) C& y- d/ j
mephfrostnova 48
3 P) l: }. d) J$ r& P, Lstrafearrow 10, @9 M8 L. ~" ^3 h5 S9 R
strafebolt 10
3 J( ]( G$ h; q$ T0 |+ Q% n& d7 e# `& N
6 a- ]1 o; r# h% a由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:+ o& R. L% m2 J2 l- `
1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5% n) S" `9 p% g) u! m F1 S
2.当DAM为MaxHP的1/8时,造成FHR的概率为75%' E4 r) t1 K" u. u! }5 c/ q" S
3.当DAM为MaxHP的1/4时,造成FHR的概率为100%# r2 n0 ?3 l( i5 g4 @
|
|