|
原创作者:悄然花开
9 R, s0 M4 r# |. k" r6 o发布日期:2008-08-12
0 R+ J. a2 m( K' k8 e9 `, l: F4 P1 {
- n& Q0 _' f& p【遭受攻击时HR动作判断的流程】
4 {0 Q% V+ G& ~" X1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。) n! `& ~0 Y6 P9 o
2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。( O6 J7 w% R2 V- T
3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。$ z5 d" J# @ c( h7 c+ r
4. 检测本次攻击是否包含毒素伤害。
Z+ i. ]+ Q3 z+ N: \6 [; I7 D4.1 如果是纯毒素伤害,判断结束,不产生HR动作。
% ^0 u7 }5 G# O! v& u% M4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤51 ~! G2 A. r5 t5 q
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。5 Z( g" [; {( E/ a
5. HR动作判断开始# X$ O2 D8 ~% [1 }
5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。
2 j9 ]0 l0 g* N; T$ U: |1 j% w3 V5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。/ T- c! O9 P, M/ B" Q) `0 u
5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。
. }7 \# K" f' ~6 h: V* O, \ i7 n0 w5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。, f& {3 `/ y. j3 }
5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。
" S# V0 ^6 N" Q& v$ q. s& J' s/ `8 O* _
【简单来说判断标准如下】* G# [/ S* [8 l. h
纯毒素伤害不会造成HR动作。: D" j! c, Z( g3 M9 o9 m
非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则
/ \* x4 ?% l- i3 m& b2 b9 [; c* @5 c若DAM<MaxHP/divisor,则不产生HR动作;8 l- z4 A( J C! i% I$ D
若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;
$ J" z! c7 j& I3 p0 Z B若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;
, \# H3 q0 F- j1 I2 D若4*MaxHP/divisor≤DAM,则100%产生HR动作。3 G) F! [' q$ y: d
' F. {3 ^: C% L% t' U
" R0 J6 B7 x* @; |% y3 E$ }divisor参数的取值
* C2 G2 _4 j4 |4 d7 ]3 b$ HHit Class = 2, 6, 10, 11 : divisor = 8& e/ \! h7 ?% @7 {$ W
Hit Class = 5 : divisor = 641 a2 `: S0 F' J! h% u( ?
Hit Class = 4 , 8 : divisor = 322 b' K9 {# ]! ^# X6 B2 e4 Q, k
Hit Class = 其他 : divisor = 16
% ^6 G, Y# D3 D1 a" b5 A( P% Z' R7 L z9 {4 i! f4 D7 E# g
Hit Class取值的判断
1 i- J2 \( o B0 D3 Y* `9 Y1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。) B5 \; g& w- K0 O( j
2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。; g- u" a# h. r
3. 技能的Hit Class
7 k, N& Y/ E+ S# E3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。0 d0 h! `/ W# J! L2 u0 p( _3 p `
3.2 对于Missile技能,Hit Class存放于Missiles.txt。1 v" ]- S, I! t8 a
3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=16+ x- x2 L3 _, V( V' m) `5 ~& d+ N- K7 K4 y
5 r& z! K0 p# E8 Z) c5 |
* c# |3 R9 |6 T/ s, JHit Class 分类相关
! o/ X O. j6 w% i================================================
( n7 g0 A8 F; E: D. c7 N" X) ]Hit Class Code Meaning2 V1 ]# G f. b' j
────────────────────────
8 C& \( \! r2 u) V, z0 None; z5 D4 M9 s; L9 w7 c0 M+ b) E
1 hth Hand To Hand- i+ ^: ~2 ~; b5 @( h
2 1hss One Hand Swing vs. Small0 d8 u5 F% r4 e# e! ?1 m& t
3 1hsl One Hand Swing vs. Large, ?3 ]* f' P6 \
4 2hss Two Hand Swing vs. Small
( X( r3 V5 N, c4 s3 A$ z5 2hsl Two Hand Swing vs. Large
0 ~( _, Q/ ^! I) \1 [6 1ht One Hand Thrust3 R* y+ i4 b7 ]
7 2ht Two Hand Thrust$ R& G% x- u8 ?+ \; x9 y
8 club Club* Y6 O4 J. e9 M( [8 d
9 staf Staf
8 z7 X/ [1 F+ V" B& b6 [: x8 y& {10 bow Bow
; i# ` R6 a: U0 P- R3 `; g ^11 xbow Crossbow& z. E$ [% y8 a( P+ a- Q' u5 K
12 claw Claw* j. Y, L1 [& K1 ^* V+ Q- q- w8 Y
13 over Overlay7 g f# \. b0 v" t$ H1 j
================================================
% G1 R% ^+ r; A- ]: i+ z解释:
5 w8 _1 H7 S5 q Q; n" ]hth : 空手。另外还包括各种攻击性的投掷药剂。3 ~3 g& P; ~7 S) K7 Q2 o
1hss: 包括死灵法师单手杖和法师专用法珠。
0 ^5 @: o" e, [1 ]8 ?1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。6 i- `) ?1 C/ R5 } o" c3 M
2hss: 所有的双手剑类。
6 @4 f8 @ V9 \2hsl: 包括双手斧类、双手锤类、长柄类。
- `6 w( M% V- `7 x9 C v* m1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。
# M1 V8 E8 P6 S" S2ht : 长矛类(含亚马逊专用长矛类)。
* o" T: |3 P3 Y$ u; S- e4 Uclub: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。
2 j: u8 I! |; [5 t, dstaf: 除短棍、乔木棒、手杖之外的所有双手法杖类。0 n% f g* I4 ~, X* @* \+ P
bow : 所有弓类(含亚马逊专用弓)。+ U4 L8 P, y; i- e5 h! J9 Y
xbow: 所有十字弓类。7 J$ S$ k) a+ Z# U9 ?( w
claw: 刺客专用爪类。
1 X! D/ @' ?" Q1 K5 ?7 F
9 x' F( t, E( N; _$ ] O, H
; _! ] w- @% b3 N& s/ ^常见Missile技能的Hit Class(如查询不到则均对应为0)
: \5 E$ y* Z4 i0 x" k$ d; b" V9 d: l. `2 M* r) W8 u7 c* @. H5 ?
Missile HitClass
) g/ r; E; L- M, }* Y0 j- U───────────────────# p1 W4 w/ J* K/ a# [) }( e: j F2 q
arrow 10
3 V9 S0 O( r* qjavelin 6
, Y c) k& q9 o2 Imagicarrow 10# i: |+ {0 \8 |/ A- T+ d$ V
bolt 10% I2 K4 k% b' o. ]
throwaxe 2+ T8 [" G$ H) O1 [4 s
throwknife 6
1 H' A1 l8 b, m% e' mglaive 6/ B, k9 h* O$ s4 Z
poisonjav 6( B* F1 B3 L' A9 o
poisonjavcloud 6; z) m" @# q3 o8 q9 b
plaguejavelin 6
: H3 k8 }0 q6 H8 X9 w) Mchargedbolt 64
" g6 Y% j6 M. _ t' v) x# Oinfernoflame1 32
3 N6 ^/ I3 N6 {! s0 ninfernoflame2 32/ Q* W/ G" B* w& l4 {# Q7 o' F
blaze 325 d( N" }1 g. Q7 n
firewall 324 G% d8 v* w9 ^0 Z4 H1 c! W% x
immolationarrow 10! l& p' @% |) G! m7 I
guidedarrow 10
7 c1 |: B! F2 n" h; [3 B& _ ynova 64; f- e( v/ k2 z d! [) Y
chainlightning 64
9 v; e, e) F5 wlightningbolt 64
y8 H% D4 w% O2 z; Dlightninghit 64
. r+ e) |& S) W( P* Q h2 _poisonnova 80' P8 g/ |; t: p) |0 w, d
frostnova 48# M& J/ \* l; e2 ^1 f
rogue1 10
4 o$ S# a3 A: R7 M u Jrogue2 10
2 v- B6 g; M3 {/ Mrogue3 10! N g; T2 y' Q7 p$ [/ \9 @4 a
vampirefirewallmaker 32; H4 H9 ~) a; l* ]7 Q
vampirefirewall 32# [5 B) @2 _ \. l4 ]! E9 |
raven1 10
! d m( X9 o) U; }5 m. Craven2 10
; N8 q* O0 r2 T$ w7 Ndiabfire 327 F$ ~6 _- S, f% N3 `
bonespear 6, f/ C3 M5 I) g) Z2 d) l" S& ^3 w! ~
lightningjavelin 64
* A2 `9 \5 `% [+ flightningfury 64* X2 J G5 ?' D' C! @9 C6 `
multipleshotarrow 10
% ?& s- }9 g' F# Tmultipleshotbolt 10
" u5 ~( S& L" v+ e' a aimmolationfire 32
/ u! Y# P$ r; G' K }furylightning 645 _* ^& V2 R- w3 Y/ ]( P
lightningstrike 64; q* u( E9 x9 z& W; u8 w) f+ N
meteorfire 32, G/ |: P" K& s% q- e: I
trap spike right 10 H! j7 _* R7 p: T- ?/ ]2 p4 c2 o
trap spike left 101 _8 n( h: B+ m% n1 C
trap cursed skull right 106 F8 u; x/ H! {2 n
trap cursed skull left 10
4 H2 r/ k6 H" s# _8 htrap poison ball right 10
: H$ {, h8 G8 p" n' Z4 Qtrap poison ball left 10) O! B' z/ I, h* a4 P9 c* a: L5 T
pilum 6
" L2 ?) h# @% \5 ]! S: b8 r1 Rfirestorm 32
. I. G( U8 P& X0 Q# r7 ?arcticblast1 32
9 o5 _; t' b# k7 W8 f' q; ^% L6 yarcticblast2 32
$ F# i- \4 F L' [' ]; y+ V4 Q+ J% ktwister 32
$ ~% k0 r, [, n- v s; {tornado 32# D; J3 d; C2 J }) M
volcano small fire 32
' }, G8 E2 ~; N( gfrozenhorror arcticblast1 32
$ x8 Q1 e: f8 P7 _sentrychargedbolt 64( I H2 r$ T0 c7 H0 R$ b
bladefury1 10
6 \4 N; x4 |7 ?, j) X7 G, ?- @bladefragment1 10' t( i6 m5 D1 \8 o; @9 q" a& f6 h
bladefury2 10
& k9 q+ Q; z& \" `% r- ebladefragment2 10$ Z% L' Y; F' F' \
bladefury3 10) v* b- z/ V/ W: q
bladefragment3 10
) ]4 F! z- H* _' N3 mshockwave 64
/ V5 I3 K7 d! ?! I9 Uphoenixtrail 32' p6 }8 G$ P- P1 r) t1 m
wake of destruction 32) H6 D( M, q6 J- ^( c9 n
tigerfurytrail 32& B# h z9 h0 H3 n& U `5 H
inferno sentry 1 32" N5 |" o, z t. v9 T" C$ X- c
ancient throwing axe 2
) C6 K" r0 [4 [5 L: V N m: z4 Ysentrylightningbolt 64
2 L3 k3 U, z# \: P' l9 Rsentrylightninghit 64
3 w- x7 X6 B- b0 V* Wlightning charge up nova 64, n: U0 E( _: C0 D% n ]
chainlightningcharge up 645 T) r' E! h1 n8 s0 r1 D, R. `
baal taunt lightning 64" k6 V1 k0 ~7 ?5 r4 G6 @$ ~
baal taunt lightning trail 64
U7 r8 }* S/ \8 ]! rfistsoffirefirewall 32
/ y! n' n+ e4 {% x U: mclawsofthunderbolt 64
5 ]0 r( `) O, F1 Rclawsofthundernova 64" N. R" Z$ F: @% v
royalstrikemeteorfire 32
* b9 c- y/ I2 kroyalstrikechainlightning 641 y3 x& }/ ]$ }& _
armageddonfire 32
6 W$ k( ^/ `* V0 \; o6 Q" |lightningtowernova 64
/ H3 B: k; j& \+ R9 i. O H7 S0 M* {willowisplightningbolt2 644 L; u: M- W+ e
goospitex 176
& V1 s# N( L! b/ w8 rdiablogeddonfire 32) z* W9 u3 Z0 U4 ~0 ^/ W) x
megademoninferno 32
# V3 c) N! H* F% ]0 otrappoisonjavcloud 65 o9 H3 w) u% P, D3 z. J
trapnova 64& G: B2 ^0 q/ i+ m
mephfrostnova 482 y5 D4 G" M& ], Z3 `
strafearrow 10% @. w: H- V( ]( ]5 b$ [% R' F
strafebolt 10
9 U, J! r3 Y" j1 Q- Q8 P6 G/ A4 [) q9 F2 P) n* v
- j, o4 z6 K% j9 `1 V0 z$ g- r1 p
由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:
1 C2 C) N5 g+ Z* A+ u4 [1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5%8 Y/ f0 `& z& `4 U3 Y$ P( U
2.当DAM为MaxHP的1/8时,造成FHR的概率为75%) [- [. G) p( Q& E0 h
3.当DAM为MaxHP的1/4时,造成FHR的概率为100%# \1 H7 a; K$ o' \+ Y
|
|