//没登陆

欢迎您来到凯恩之角,奈非天!

帖子:1123

符文:2652

发表于 2021-3-19 21:03:04 |显示全部楼层 来自:辽宁
原帖作者: 36969156  /  悄然花开   /  等风来
原帖地址1
原帖地址2

帖子:1123

符文:2652

2#
本帖最后由 等风来Lietome 于 2021-3-19 21:32 编辑

暗黑术语:
Block_Chance 最终的格挡率
Blocking 盾牌格挡率
Clvl 人物等级
   
注:盾牌格挡率=盾牌基础格挡率+盾牌上的属性加的格挡率+身上的装备加的格挡率+圣盾技能加的格挡率

格挡公式
Block_Chance = Blocking * ( Dexterity - 15 ) / ( Clvl * 2 )
注:Block_Chance 不大于 75%,非资料片的Block_Chance与Dexterity 无关。
  1. 人物的CTB(Chance TO Block)计算公式:
  2. CTB% = [∑Block% * (Dex - 15) / (cLvl * 2)]
  3. 人物达到Block75%所需要敏捷的计算公式:
  4. Dex = {150% * cLvl / ∑Block% + 15}
  5. 人物的FBR(Faster Block Rate)计算公式:
  6. EFBR = [FBR * 120 / (FBR + 120)] + FBR_Skill
  7. FPA = {256 * BlockBaseRate / [AnimationSpeed * (50 + EFBR) / 100]} - 1
复制代码

blocking.jpg

基础知识
人物最终格挡率的查看方法:打开状态窗口(默认是“A键”和“C键”),将鼠标悬停于防御值上,出现一个浮动条,显示的就是最终格挡率。
除了刺客外,其他人物使用盾牌时才有格挡率。不同的角色使用同一个盾牌,其 Blocking 可能是不一样的, 一般Dru/Nec/Sor最低,Ama/Asn/Bar 在 Dru/Nec/Sor Blocking 基础上增加约5%,而Pal增加约10%。
如果盾牌有"xx% increased chance of blocking", 其显示的格挡率可能会出现问题,比如一个基础格挡60%的盾,又带20% increased chance of blocking,其 Blocking 是80%, 但盾牌上只显示 75% ,在套用格挡公式时仍以 80% 为准进行计算格挡率。

格挡效果
当格挡判定成功时,100%会发生格挡效果,即抵消该次攻击。格挡判定只和格挡率CTB有关,和FBR无关。
注:当处于跑步状态,人物格挡率降为1/3(行走状态无影响);当鼠标拿着东西时,人物无法格挡。格挡率在软代码中并没有规定上限,但是硬代码中规定了75%上限。修改D2Common.dll将人物格挡率上限提升到100%后,可以堆满格挡扔进牛堆里永不磨损。以下为盾牌格挡相关设定的补充内容。
  1. 下面这些攻击方式或技能可以被盾牌格挡:
  2. 近战攻击
  3. 箭矢攻击
  4. 标枪\飞斧\飞刀类投掷攻击
  5. 附带物理伤害的投射物
  6. 冥河娃娃Fetish 骨爆
  7. 自杀者Suicide 自爆
  8. 火焰强化Fire Enchanted 自爆

  9. 下面这些攻击方式或技能不可以被盾牌格挡:
  10. 技能等级>=50 的火箭Fire Arrow (<50可以被格挡)
  11. 技能等级>=50 的冰箭Cold Arrow (<50可以被格挡)
  12. 闪电球Lightning Bolt
  13. 熔岩巨岩Molten Boulder 的爆炸伤害
  14. 龙卷风Tornado 的周期性范围伤害
  15. 毁天灭地Armageddon 的范围碰撞伤害
  16. NEC 尸体爆炸Corpse Explosion
  17. PAL 重击Smite
  18. 怪物冲锋Charging
  19. Nihlathak 尸体爆炸Corpse Explosion
复制代码


格挡动画
当格挡判定成功时,除了特殊情况外,人物会立刻停止当前动作,并进入格挡动画状态。特殊情况主要包括不可打断动作和格挡动画本身。提高FBR可以缩短格挡动画。
吸血鬼和冥河娃娃无对应的DCC且COF中无FBR相关数据,所以调用了打击恢复动画取代了格挡动画,并根据FHR来调节动画速度,且自身的打击恢复动作不受影响,依然独立判定。简而言之就是人物变身不影响自身格挡率。
注:经过我对格挡相关代码的反复查证和修改测试,现已确定其他论坛对于block-lock(或称之为Block-Delay)的叙述是错误的,1.10+并不存在block-lock(或称之为Block-Delay)。
  1. 以投射物类攻击(Missile Attack)为代表,简单说一下关于遭受攻击时的格挡(Blocking)判定流程:

  2. 1. 判定是否为投射物,否则退出判定。
  3. 2. 判定投射物是否为有源投射物,否则判定失败,即无源或检测不到来源的投射物无法格挡。
  4. 3. 读取Missiles.txt,检测是否存在非法数据。
  5. 4. 判定投射物是否能被打断,如果ResultFlag_Hit=true,则跳过格挡判定流程,直接命中,即连续性投射物无法格挡,否则进入步骤4.1。
  6.     4.1  如果投射物的Missilestxt.GetHit=true,则判定为ResultFlag_GetHit=ture,进入步骤4.3,否则进入步骤4.2。
  7.     4.2  如果投射物的Missilestxt.SoftHit=ture,则判定为ResultFlag_SoftHit=ture,进入步骤4.3,否则进入步骤5。
  8.     4.3  如果Missiles.txt中投射物的Missilestxt.KnockBack>0,系统将在0与99之间取随机数,随机数小于Missiles.txt中的投射物KnockBack值,则判定为ResultFlag_KnockBack=ture。
  9. 5. 进入正式格挡判定流程,首先会检测是否为物理伤害,但此处无论检测的结果如何,都将直接转为调用近战攻击(Melee Attack)的格挡判定,换句话来说,从此处开始回归常规格挡判定。
  10.     5.1  调用人物基本数据进行格挡计算,如果返回值(BlockFlag)=0,则不触发格挡效果。
  11.     5.2  如果投射物的Missilestxt.GetHit=true和Missilestxt.KnockBack!=0 这两者中有任意一项不符合,则直接跳过格挡流程。
  12.     5.3  如果ResultFlag_GetHit=0且ResultFlag_SoftHit=ture,则直接判定为BlockFlag=0。
  13.     5.4  如果AMA的闪避类效果与格挡类效果联动触发,判定为ResultFlag_Block=ture 则格挡生效,即闪避类效果只能在格挡失败后起作用,武器格挡有自己独立的ResultFlag,不在此处判定。
  14.     5.5  一些特殊类效果有自己独特的判定方式,一旦判定成功,无论格挡是否判定成功都会生效,如穿透攻击等。
  15.     5.6  如果格挡类效果触发成功,则判定ResultFlag_Hit=false,即跳过伤害结算。

  16. PS:从系统的角度来看,所有单独的投射物都可以格挡,但是某些投射物即使能够格挡也会造成伤害,因为SrvHitFunc和SrvDmgFunc的检测发生在格挡判定之前。
复制代码


武器格挡
武器格挡是ASN的特有技能,需要装备双爪才能激活,格挡率和技能等级有关。当格挡判定成功时,会调用人物的格挡动画,提高FBR可以缩短格挡动画。
注:当人物处于跑步或行走状态下无法进行武器格挡(在WW过程中相当于人物处于站立状态)。武器格挡率在硬代码未规定上限,但在软代码规定了上限为65%下限为20%,通过修改硬代码才可以使其他人物获得WB技能,以下为有关武器格挡的相关补充内容。
  1. 武器格挡 Weapon Block
  2. 格挡几率百分比:min([(45/100)*[(110*slvl)/(slvl+6)]]+20 , 65)
  3. 1.run/walk状态无法武器格挡,WW除外,在WW过程中相当于人物处于站立状态
  4. 2.变熊状态无法武器格挡
  5. 3.武器格挡率只和等级有关,与dex和ctb无关
  6. 4.武器格挡是ASN的特有技能,需要装备双爪才能激活,当格挡判定成功时,会调用人物的格挡动画,因此提高FBR可以缩短格挡动画时长
  7. 5.下面列举出常见无法武器格挡的状态:
  8.     怪物冲锋Charge
  9.     攻击者受到伤害和攻击者受到电伤害
  10.     荆棘Thorns,铁娘子Iron Maiden,铁魔Iron Golem 和棘灵Spirit of Barbs的反伤
  11.     心灵战锤Psychic Hammer
  12.     心灵爆震Mind Blast
  13.     NEC、ASN亡者守卫和尼拉塞克的尸爆
  14.     圣火Holy Fire,圣冰Holy Freeze和圣冲Holy Shock的脉冲伤害
  15.     静态立场和心灵传动
  16.     冰甲的冰伤
复制代码

怪物格挡
怪物格挡主要包括以下两种。
盾牌格挡:怪物自身装备盾牌并配有格挡动画,且在MonStats.txt中有格挡率的设定,这样的怪物类型并不多,常见的就是骷髅战士、沉沦魔、黑暗猎人、女猎人和投石怪等。
非盾牌格挡:怪物自身没有装备盾牌且不配有格挡动画,但在MonStats.txt中定义了NoShldBlock=1并有格挡率设定,这样的怪物更少,常见的就是解答者、厄运骑士、各关底boss和其对应的uber版。
注:游戏图像中显示的盾牌并不代表可以格挡。以Nec的骷髅为例,只有装备Kite Shield的骷髅才有格挡几率。
  1. 可以拿盾的非玩家单位一览
  2. skeleton1*
  3. skeleton2*
  4. skeleton3*
  5. skeleton4*
  6. skeleton5*
  7. fallen1*
  8. fallen2*
  9. fallen3*
  10. fallen4*
  11. fallen5*
  12. corruptrogue1*
  13. corruptrogue2*
  14. corruptrogue3*
  15. corruptrogue4*
  16. corruptrogue5*
  17. pantherwoman1
  18. pantherwoman2
  19. pantherwoman3
  20. pantherwoman4
  21. act3hire**
  22. necroskeleton*
  23. slinger1 (spear cats)
  24. slinger2
  25. slinger3
  26. slinger4
  27. slinger5
  28. slinger6
  29. Minionexp
  30. Slayerexp
  31. IceBoar
  32. FireBoar
  33. HellSpawn
  34. IceSpawn
  35. GreaterHellSpawn
  36. GreaterIceSpawn

  37. 不依靠盾牌可以格挡的怪物列表
  38. HollowOne
  39. Guardian
  40. Unraveler
  41. Horadrim Ancient
  42. Baal Subject Mummy
  43. Andariel
  44. Duriel
  45. Mephisto
  46. Diablo
  47. DoomKnight
  48. Diablo
  49. Baal Crab
  50. Baal Crab Clone

  51. *这些怪物并不是肯定会获得一块盾牌。没有获得盾牌的将没有格挡。
  52. **铁狼虽然可以装备盾牌,但他是不会格挡的。
复制代码
发表于 2021-3-19 21:03:09 |显示全部楼层 来自:辽宁
头像被屏蔽

帖子:73

符文:2

3#
版主辛苦了
发表于 2021-9-2 23:02:01 |显示全部楼层 来自:北京

帖子:174

符文:10

4#
如果同一时间有数个攻击源,格挡成功后只抵消格挡的那次攻击,还是其它攻击均被格挡?
发表于 2021-9-4 02:03:50 来自凯恩之角App |显示全部楼层 来自:日本

帖子:45

符文:0

5#
学习了,很有帮助
发表于 2022-12-26 03:32:22 |显示全部楼层 来自:英国
您需要登录后才可以回帖 登录 | 注册网易通行证