admin 发表于 2020-1-13 07:13:56

打击恢复(Hit Recovery)判定流程

原创作者:悄然花开
发布日期:2008-08-12


【遭受攻击时HR动作判断的流程】
1. 打击恢复动作(以下简称HR动作)只有在攻击动作的resultflag参数=4时才会产生。
2. 检测受攻击目标是否处于眩晕状态(stun)。如果是,直接进入HR状态。
3. 检测受攻击目标是否处于冻结状态(frozen)。如果是,判断结束,不产生HR动作。
4. 检测本次攻击是否包含毒素伤害。
4.1 如果是纯毒素伤害,判断结束,不产生HR动作。
4.2 同时包含毒伤害和其他类型的伤害。若受攻击目标受到的总伤害小于1,判断结束,不产生HR动作。反之转入步骤5
4.3 不包含毒素伤害。检测受攻击目标受到的总伤害是否大于等于1。是则转入步骤5,否则判断结束,不产生HR动作。
5. HR动作判断开始
5.1 获取受攻击目标最大生命值MaxHP。根据攻击类别(Hit Class)获取参数divisor,具体分类详见下文。
5.2 若目标受到本次攻击的伤害DAM<MaxHP/divisor,退出判定,不产生HR动作。反之转入步骤5.3。
5.3 若DAM≥MaxHP/(divisor/2),本行判断结束,转到步骤5.4。否则系统将取随机数0和1,若为0则不产生HR动作,退出判定;为1则转到步骤5.4。
5.4 若DAM≥MaxHP/(divisor/4),转入步骤5.5。反之系统取随机数0-3,若为0则不产生HR动作,退出判定;取其他数则转到步骤5.5。
5.5 系统检测受攻击目标是否允许产生HR动作。若判断允许,则产生HR动作,反之不产生。判断结束。

【简单来说判断标准如下】
纯毒素伤害不会造成HR动作。
非纯毒素伤害的情况下,记本次攻击所造成的伤害值为DAM,受攻击目标的最大生命值为MaxHP,相关参数为divisor,则
若DAM<MaxHP/divisor,则不产生HR动作;
若MaxHP/divisor≤DAM<2*MaxHP/divisor,则有3/8的几率产生HR动作;
若2*MaxHP/divisor≤DAM<4*MaxHP/divisor,则有3/4的几率产生HR动作;
若4*MaxHP/divisor≤DAM,则100%产生HR动作。


divisor参数的取值
Hit Class = 2, 6, 10, 11 : divisor = 8
Hit Class = 5 : divisor = 64
Hit Class = 4 , 8 : divisor = 32
Hit Class = 其他 : divisor = 16

Hit Class取值的判断
1. 所有怪物(包括雇佣兵)的普通攻击对应的Hit Class均存放于Monstats2.txt,分别为1, 3, 12三个值,对应divisor均为16。
2. 角色的普通攻击对应的Hit Class取决于使用的武器,详见2楼。
3. 技能的Hit Class
3.1 对于Melee技能,Hit Class取决于角色使用的武器,同普通攻击。若该技能已经被赋予其他特殊效果则除外,例如Bar的Bash技能附带击退效果。
3.2 对于Missile技能,Hit Class存放于Missiles.txt。
3.3 其他技能的Hit Class对应Skills.txt的Hit Class列,无一例外均对应divisor=16


Hit Class 分类相关
================================================
Hit Class Code Meaning
────────────────────────
0 None
1 hth Hand To Hand
2 1hss One Hand Swing vs. Small
3 1hsl One Hand Swing vs. Large
4 2hss Two Hand Swing vs. Small
5 2hsl Two Hand Swing vs. Large
6 1ht One Hand Thrust
7 2ht Two Hand Thrust
8 club Club
9 staf Staf
10 bow Bow
11 xbow Crossbow
12 claw Claw
13 over Overlay
================================================
解释:
hth : 空手。另外还包括各种攻击性的投掷药剂。
1hss: 包括死灵法师单手杖和法师专用法珠。
1hsl: 包括单手斧类、狼牙棒以及其对应的扩展/精华级类型、钉锤类、单手锤类、单手剑类、飞斧类。
2hss: 所有的双手剑类。
2hsl: 包括双手斧类、双手锤类、长柄类。
1ht : 包括匕首类、飞刀类、标枪类(含亚马逊专用标枪)。
2ht : 长矛类(含亚马逊专用长矛类)。
club: 包括木棒以及其对应的扩展/精华级类型、圣骑士权杖类、短棍以及其对应的扩展/精华类型。
staf: 除短棍、乔木棒、手杖之外的所有双手法杖类。
bow : 所有弓类(含亚马逊专用弓)。
xbow: 所有十字弓类。
claw: 刺客专用爪类。


常见Missile技能的Hit Class(如查询不到则均对应为0)

Missile HitClass
───────────────────
arrow 10
javelin 6
magicarrow 10
bolt 10
throwaxe 2
throwknife 6
glaive 6
poisonjav 6
poisonjavcloud 6
plaguejavelin 6
chargedbolt 64
infernoflame1 32
infernoflame2 32
blaze 32
firewall 32
immolationarrow 10
guidedarrow 10
nova 64
chainlightning 64
lightningbolt 64
lightninghit 64
poisonnova 80
frostnova 48
rogue1 10
rogue2 10
rogue3 10
vampirefirewallmaker 32
vampirefirewall 32
raven1 10
raven2 10
diabfire 32
bonespear 6
lightningjavelin 64
lightningfury 64
multipleshotarrow 10
multipleshotbolt 10
immolationfire 32
furylightning 64
lightningstrike 64
meteorfire 32
trap spike right 10
trap spike left 10
trap cursed skull right 10
trap cursed skull left 10
trap poison ball right 10
trap poison ball left 10
pilum 6
firestorm 32
arcticblast1 32
arcticblast2 32
twister 32
tornado 32
volcano small fire 32
frozenhorror arcticblast1 32
sentrychargedbolt 64
bladefury1 10
bladefragment1 10
bladefury2 10
bladefragment2 10
bladefury3 10
bladefragment3 10
shockwave 64
phoenixtrail 32
wake of destruction 32
tigerfurytrail 32
inferno sentry 1 32
ancient throwing axe 2
sentrylightningbolt 64
sentrylightninghit 64
lightning charge up nova 64
chainlightningcharge up 64
baal taunt lightning 64
baal taunt lightning trail 64
fistsoffirefirewall 32
clawsofthunderbolt 64
clawsofthundernova 64
royalstrikemeteorfire 32
royalstrikechainlightning 64
armageddonfire 32
lightningtowernova 64
willowisplightningbolt2 64
goospitex 176
diablogeddonfire 32
megademoninferno 32
trappoisonjavcloud 6
trapnova 64
mephfrostnova 48
strafearrow 10
strafebolt 10


由于大部分情况下divisor的取值为16,所以FHR判定断点可以简单记为:
1.当DAM为MaxHP的1/16时,造成FHR的概率为37.5%
2.当DAM为MaxHP的1/8时,造成FHR的概率为75%
3.当DAM为MaxHP的1/4时,造成FHR的概率为100%
页: [1]
查看完整版本: 打击恢复(Hit Recovery)判定流程