|
原创作者:悄然花开5 I9 s6 @$ i% j8 t. r/ d
发布日期:2008-08-12 2 {( E% ~+ H9 A! g* o' d B
! @2 K0 L8 N7 g) I1 _: D" D
9 B. Q3 b5 E4 d
【遭受攻击时HR动作判断的流程】4 \$ u) B2 p- g2 `8 Z; W/ d
1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。' m2 \- p" e- R5 S% h4 l4 Y
2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。2 O1 f+ E4 `4 D4 m5 j5 u9 B& O
3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。
+ F# A j5 s& E# X4. 检测本次攻击是否包含毒素伤害。
0 O* J1 ?0 W0 Y& T" z7 L4.1 如果是纯毒素伤害,判断结束,不产生HR动作。7 W0 N) N- ]" G; A) p% |, D
4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤54 b( N. A: K% f$ G3 b" s9 Z
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。
0 I% h* B0 l" P0 S3 T5. HR动作判断开始6 C- [" m* d5 f6 m' t) j# f
5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。; d3 b- G @- M4 J5 }6 _
5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。1 a9 U. }* F; ]
5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。$ W6 X2 ~- I# A5 h7 j
5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。
2 Z/ Z% |1 H7 ~. q4 T5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。
! W4 J+ b# V- U, i/ j2 y5 S
4 x* p$ P0 x9 G5 N( U【简单来说判断标准如下】9 `/ s* ?: c5 Q/ B
纯毒素伤害不会造成HR动作。
' A1 k$ {% h4 {! Q% z- ]非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则0 f# Q. d7 v* j% K6 I
若DAM<MaxHP/divisor,则不产生HR动作;' ~6 O. m, a! `% n1 c
若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;
- h! M, @% N" c3 j若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;; F- M+ n$ f8 Z7 g
若4*MaxHP/divisor≤DAM,则100%产生HR动作。. [7 j* E4 Z: Q
. F9 `; L7 r0 e; P2 n" p
F- ]/ \8 c& D9 Ddivisor参数的取值
6 z/ {/ Q9 L! A7 }! |Hit Class = 2, 6, 10, 11 : divisor = 8
) Q& \ o7 g( p" `- T/ GHit Class = 5 : divisor = 64
R) a7 n3 g0 D1 ]& ^, _) lHit Class = 4 , 8 : divisor = 32
# _' S0 S- N) dHit Class = 其他 : divisor = 16! v' ~- u- P' I
! T2 S5 A( Y; x' R1 SHit Class取值的判断
% w! ^7 }- o( K' @1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。
3 x, q0 m) B1 Z# T ]. w2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。1 V" }- Q6 b& U. P4 v% Q4 ~4 |
3. 技能的Hit Class
# e1 ?. W4 f' n; O, V4 m3 }" E% i; Q3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。
5 X2 g& X! b2 F3.2 对于Missile技能,Hit Class存放于Missiles.txt。
$ w+ _6 u- |5 Q3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=167 z2 p/ c# T( n! T
2 f! s: t7 D9 ^ X' |- m
8 X* B/ E1 D* n7 \5 ~1 B I# E
Hit Class 分类相关
) {2 x b- i4 t$ n. d================================================7 z8 z! q6 G# v- u7 O8 ^
Hit Class Code Meaning8 a0 x8 d' \( N( M
────────────────────────$ s9 o- S. c; N7 j3 u, t1 a
0 None
1 W1 c: z# O" f7 P* `/ h/ x% b1 hth Hand To Hand
+ Y# Q" q+ Z& M8 @8 |( \) q& t4 a7 w2 1hss One Hand Swing vs. Small! g2 q! q) Z% H4 K, x7 ]* z$ D# o
3 1hsl One Hand Swing vs. Large
: u8 Z- D: j7 ?3 S% S; h* G4 2hss Two Hand Swing vs. Small
8 C. _# F3 y5 ]) f h- M1 @5 2hsl Two Hand Swing vs. Large3 L# V- w8 @+ Z* z
6 1ht One Hand Thrust* ?' M) |, a* J8 ~0 I
7 2ht Two Hand Thrust4 s+ P' @- q$ c+ V1 [$ ?
8 club Club
, l! l9 m- v# Y5 f9 staf Staf
" |/ w- \5 \* `, u0 |* c! O10 bow Bow
5 d9 p9 ~- d/ \2 l2 g11 xbow Crossbow
8 ^* S$ \! ~2 Z! S. `+ l12 claw Claw4 K. y. E# z( E7 b" e
13 over Overlay
; r9 W; M' H( Z$ {+ j8 B================================================
* z2 b, L" X" r2 a解释:& W1 n. w0 c. u7 G; E+ h
hth : 空手。另外还包括各种攻击性的投掷药剂。
4 r6 z, l% v* x1hss: 包括死灵法师单手杖和法师专用法珠。
6 S2 t r; t+ z6 S1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。% C5 q2 i9 U7 _1 w* M
2hss: 所有的双手剑类。
% J# g. K" c' t3 n2hsl: 包括双手斧类、双手锤类、长柄类。
1 e% b8 L+ A7 G5 K1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。
& j: {3 P1 w" P h: E2ht : 长矛类(含亚马逊专用长矛类)。3 C5 [" R" Y: c) a% E5 f
club: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。
1 N& @* K! `8 e4 _! M' sstaf: 除短棍、乔木棒、手杖之外的所有双手法杖类。
- l! S) B$ O" |( R9 E( Zbow : 所有弓类(含亚马逊专用弓)。' u' Z5 W$ R0 N8 N! J+ e
xbow: 所有十字弓类。
/ l6 Z* }+ l* C( ?) H; |( g1 fclaw: 刺客专用爪类。
K- U4 Z2 ?) |" J# g8 @
" {9 [4 s- }# s$ p' A9 |3 r' I: f8 m2 @! ?. `4 [/ w6 k: R& V
常见Missile技能的Hit Class(如查询不到则均对应为0)
0 t+ N0 `! X! s+ b* n) |! N! X$ t6 q0 S8 C& K6 x4 [$ \
Missile HitClass, M. P' |: r( X0 ~& ^
───────────────────0 U2 D/ @& k8 t4 V
arrow 10
9 @6 Y1 E& L( njavelin 6) Y9 s ~: U, }+ }, j
magicarrow 10
3 Z/ r9 }$ q& W+ W/ Sbolt 10
# ~% [$ m1 }0 X, q5 f8 B2 zthrowaxe 2) v# C7 z! i6 Z/ u t
throwknife 6
' T8 Y7 J8 B' Q. mglaive 6
, E d1 G" d4 O+ x% z9 Jpoisonjav 6
" M q3 Q* W8 x; T( H" upoisonjavcloud 6# ]! D8 d& m+ t, B0 W
plaguejavelin 6- x, G" Y u) H
chargedbolt 64
" G9 [( R5 g. @& [ hinfernoflame1 324 |$ a0 J* t' m7 ?+ {, N3 S
infernoflame2 32
[3 i% K- a2 N: x" X5 c% Wblaze 32. t$ d, G6 n8 g& e* d5 q
firewall 32
5 g7 B2 \7 K1 j, fimmolationarrow 108 s0 E) D/ t$ ]
guidedarrow 10
3 H8 A( D- r/ w4 e/ q Bnova 64
/ a% F( @) M. U9 n* W5 Zchainlightning 64- N6 W9 I9 f* _
lightningbolt 64
) b& q& p! c: s) u# B/ Qlightninghit 64; `6 A, n: V9 o% W
poisonnova 809 Q1 o2 _9 g6 ]& F' ]2 C
frostnova 48) N8 d* L5 H3 I2 k5 d* E7 {( I
rogue1 10
9 c7 H1 s* [: g9 hrogue2 10
) m/ w* x, k4 ?( Y: o9 [: mrogue3 10
; N t0 V4 E6 c* m' E! Q2 j5 R" `vampirefirewallmaker 32) ~( P4 L! w- b' C3 ?: [
vampirefirewall 32
. x* ~2 D2 ^( u+ Lraven1 10
6 I! ?5 l u, W' Vraven2 10 |; c& V8 _* D& s+ W0 B
diabfire 32
' E% u% D2 f" f$ L9 O! \! Ibonespear 6
9 ]' \" O [! B; n) Slightningjavelin 64$ t! O9 V6 T# Z% a; a$ j: n+ `3 }
lightningfury 649 S+ v" X7 s* L8 }( \9 p* L
multipleshotarrow 10, _% a( ]: D' i( K6 y+ C4 t
multipleshotbolt 10. f4 b2 v& P4 m& Z
immolationfire 32
; k& o4 E# i6 o7 w$ gfurylightning 64# U2 Z [: o+ j2 u: U$ `2 W
lightningstrike 64
/ C# T* T# U+ i+ Smeteorfire 32& `, W! Y! O6 _
trap spike right 10% \6 s1 g8 ~4 O+ Q
trap spike left 103 |' y- w. E* x. }- t
trap cursed skull right 10
' _) n1 w. f$ y$ k, y) K8 etrap cursed skull left 100 y$ r$ N3 E, s# f
trap poison ball right 106 e# j/ _0 W& k$ W5 u2 h1 v
trap poison ball left 10
7 f' o6 Y: y" [pilum 6
/ S- w5 C2 M0 C, }0 kfirestorm 32; G+ ^ Y0 w. ? X
arcticblast1 32
- }6 J) S8 I5 t2 Y' Q$ }8 Darcticblast2 32( Z& E) ]( t9 o1 [8 d$ |% g, I2 V
twister 324 I% P/ p# G: Z5 M, t" x2 ?( ^! @
tornado 32# j& }% K; s7 ~7 [- T/ x7 f6 g" `
volcano small fire 32
0 x1 H% {, C* @7 Q# e- _frozenhorror arcticblast1 32- w2 |( _5 U7 _7 u
sentrychargedbolt 64+ |/ s* m' f+ X
bladefury1 10
# J6 C/ V3 T5 i0 M4 a* zbladefragment1 10
7 }' X2 G% L8 }/ W. Tbladefury2 10) u/ J) E7 L$ H2 ]) c5 X
bladefragment2 10+ X" `# [. ~7 O, O" ~% e8 w/ b
bladefury3 10
/ G0 X1 X. f5 U! m8 ]bladefragment3 105 J7 v- z2 S* X
shockwave 642 ]7 |& o5 x& Z6 B' }* j+ D: q$ ]
phoenixtrail 32, d. l. b6 G6 s; p4 O' b9 \
wake of destruction 32
" {1 m( v) G: f" ~7 L( ntigerfurytrail 32* I7 j! s/ {+ V9 ~( `
inferno sentry 1 32( |6 I9 R$ C0 s; ~0 N5 O
ancient throwing axe 2
. t4 t! c# ~8 zsentrylightningbolt 64
2 C' V3 s7 w( q5 P& Vsentrylightninghit 64+ b- g9 E: w0 W) ^6 O7 m
lightning charge up nova 643 ^' h* t# O M* e6 P
chainlightningcharge up 647 z7 y9 X$ m: Q* l b/ U0 [
baal taunt lightning 64
* ?3 u" \' |% ^. j H) Zbaal taunt lightning trail 64
n j, w( H nfistsoffirefirewall 320 u* _9 ~9 G; P s6 a# l9 c1 `
clawsofthunderbolt 64 b+ J4 v8 t2 l; Q
clawsofthundernova 64
# S& M" n# P. a; L7 f% w; q1 @royalstrikemeteorfire 32
+ F! f+ r+ l2 H# |- N7 croyalstrikechainlightning 640 P( q( x2 G! t5 M O# p, o# E
armageddonfire 32
0 l+ ^# i. f/ Elightningtowernova 644 v! V" r6 p5 |; B' v) \9 L( L3 t
willowisplightningbolt2 64* B3 V* m2 Z* y1 t! Z! H9 W7 y4 Q
goospitex 176( ~7 m" n" E: q" ^' r2 d0 I
diablogeddonfire 324 @8 ~4 q7 m4 W, H) R
megademoninferno 322 g2 B6 V# P- J+ n8 y( j' Y; V
trappoisonjavcloud 6
1 U+ `8 u, Z( H% A8 ~' T9 t! i+ ftrapnova 64# C6 `) |9 v& t- h4 z- h! F4 ]& k' S
mephfrostnova 48
; _6 ^: D4 X6 q3 fstrafearrow 10
! i% E* Y+ ^9 c! `, }strafebolt 100 v3 r2 w5 Q! _7 U/ D
% i0 J' q0 W! n* N: _1 L" u' s/ `- _/ W0 l7 f
由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:
5 m: [$ f r6 n# j$ q9 ]. f0 n7 B5 X1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5%
& \1 t; q) O/ C5 i1 R2.当DAM为MaxHP的1/8时,造成FHR的概率为75%
( P; {: H) k8 R; D* r3.当DAM为MaxHP的1/4时,造成FHR的概率为100%
# w& E* t) A9 q; n/ a h/ M8 \6 H' _ |
|