欢迎光临散文网 会员登陆 & 注册

破门而入2的伤害与护甲机制

2023-03-21 08:30 作者:陆天天天行  | 我要投稿

    今天心血来潮突然想搞明白DK2的护甲机制,如果你嫌弃太长不看,可以直接翻到文章结尾看结论。

    首先我们解释下武器的伤害构成,武器跟伤害挂钩的属性有伤害[Damage]和暴击[Critchance],至于与伤害无关的布[Accuracy]和瞄准时间[Aimtime]等其他属性在本文不做讨论。每个实体都有100点血,当子弹击中实体时会根据发射的距离计算暴击率,然后投一个一百面骰,如果小于暴击率则该次伤害暴击,造成100点伤害,如果未能暴击则计算伤害,当实体血量≤0时实体死亡。子弹的伤害衰减和暴击率衰减是一个一次函数。这些属性的基础数值来自于发射的子弹,武器和配件与射击方式会对暴击率,瞄准时间和精准度等属性上一个修正,这个修正也是一次函数甚至干脆就是一个数值(不修正伤害)。
    那么我们看到的下面分段的这种属性图是怎么来的呢?

CIA和游骑兵M4数据的对比,我懒得做叠图了,这东西一眼就能看出来不同,红色标出来的部分是为了视觉美观做的效果

    分段的属性变化来自于射击方式的修正,在不同距离上特遣队员使用的射击方式不同,所以你会发现CIA和游骑兵的M4属性也不一样,尽管抛开射击方式不谈他们枪本身的属性是一样的(对比图),至于我用红色标出来的那种坡度……哈哈,那只是为了看起来不是直上直下那么突兀做的视觉效果,数据上就是下一米就突然蹦极,打个比方就是y=x(0≤x<3)&x+20(x≥3)。

所以事实上CIA的M4数据是这个样子的,可以看到各段之间过度相当突兀,当然这里还是留了一部分的视觉处理


    

这是游骑兵M4与CIAM4中数据的对比图
瞧瞧这蹦极的数据……

    

     如果你希望看眼具体的数据分析,我会在另一篇专栏从游戏里把游骑兵手里打M855的铁瞄M4的数据拿出来讲一遍,在这里拿出来要绕好几圈(瞄具,子弹,射击方式等),太长了。

    伤害机制讲完了,但我们还没讨论护甲会对伤害造成什么样的影响呢。

    首先,可以确定的一点是DK2的护甲保护是在一个以角色面朝方向为垂直平分线的圆弧内有一个保护几率与保护等级,圆弧的弧度也有一个数值写出。如果命中角度上有多个生效的圆弧,优先计算弧度更小的圆弧(这也是护甲不同方向数据不同的原理)。子弹击中时还是骰一百面骰,数字小于该角度上的保护几率则子弹击中护甲,开始计算穿甲。
    呃……如果你觉得上面那段太抽象看不懂的话,以下是一个例子,是游骑兵的Extended Vest/SAPI,无关保护的部分已删去[出自Data/equipment/various.xml]

<Armor name="Rangers SFLCS Extended" inventoryBinding="Armor" 

<ProtectionArc degrees="90" coveragePercent="65" piercingProtectionLevel="5"/>

<ProtectionArc degrees="270" coveragePercent="35" piercingProtectionLevel="5"/>

<ProtectionArc degrees="360" coveragePercent="45" piercingProtectionLevel="5"/>

</Armor>
<护甲名称="Rangers SFLCS Extended" 装备类型="护甲">
<保护弧角度="90" 保护几率="65" 护甲等级="5">
<保护弧度="270" 保护几率="35" 护甲等级="5">
<保护弧度="360" 保护几率="45" 护甲等级="5">

    当有一枚子弹从视角方向的任何一侧侧射来,与视角方向的夹角为45°以内时,生效的将是上述原文中的第一个保护弧,即有65%的概率子弹将会击中插板,插板的护甲等级为5,当夹角大于45°小于等于135°时,触发的是第二个保护弧,几率为35等级为5,大于135°时,触发第三个保护弧,几率45等级为5。

    好了,现在我们搞明白了防弹衣是怎么生效的,但是穿甲怎么算呢?第一反应是找注释,让我们看看注释里面找到了什么。(小字翻译是我自己用工地英语渣翻的)

piercingProtectionLevel: gets compared to the bullet's piercingLevel
护甲等级:与子弹的穿甲等级比较[本注释出自Data/equipment/various.xml]
piercingProtectionLevel: gets compared to the bullet's piercingLevel (recive 1 damage if > bulletPiercing and goes through CoveragePercent or normal damage otherwise)
护甲等级:与子弹的穿甲等级比较(如果防护等级大于子弹穿甲并命中保护区域就受到1伤害,否则正常造成伤害)[注释出自Data/equipment/various_enemy.xml,说实话这条我怀疑括号内的内容翻错了,但是想不出更合理的说法。]

    呃……这两个注释显然是1的遗留物,第二个注释可能是因为与玩家可操控的内容无关,干脆连明显是1的伤害机制的内容都没删掉,这套伤害机制在二代被替换了,所以这段内容没有价值。那没办法,只能改属性进游戏试了。

    我去游戏里面改了一件保护几率100%的四级甲(数据6级),一件保护几率100%的三级甲(数据5级),一件保护几率100%的3A甲(数据4级),一件保护几率为0的护甲(模拟敌军子弹未击中护甲),以及游戏内CIA的不着甲(找不到数据,根据DK1的经验和测试结果推算应该是数据0级,全方位100%概率保护),加上最后为了验证游戏自带不着甲数据修改的保护几率100%的0级“护甲”。使用开发者模式下F1视角的左键射击保护方向,以下是测试结果。别问为啥只有一条,问就是懒得截多条,试过很多次,相同距离的情况下数据是一模一样的。

保护几率为0(未击中护甲)的情况
不着甲的情况
3A甲的情况
3级甲的情况
四级甲的情况
需要验证游戏
需要补充不着甲
100%保护几率0级甲的情况,这一条验证了空甲本质就是100保护几率的0级甲或者类似的东西



     首先解释一下这串文字代表的意思:
Takedamage on [受到伤害的实体] - damage=[实体在本次攻击中受到的伤害] critChance=[本次攻击可能造成暴击的几率] ap=[本次攻击的穿甲等级] health=[本次攻击后实体剩余的血量,小于0则实体死亡]
另外,在Damage的伤害数字后有可能会接一个(Critical),如果出现意味着此次伤害暴击,伤害数字应为100。
    可以看到5级穿甲就不能击穿5级的护甲了,子弹的穿甲等级必须大于护甲的防护等级才能击穿,不能击穿则不会对实体造成任何伤害,也不会有暴击率。子弹在击穿护甲的情况下护甲等级的不同不会对子弹的伤害计算有任何改变,以及——如果子弹未能击中护甲,Critchance会有一个小小的加成。护盾的机制基本与这段相同,但是没有未击中的Critchance加成。
    呃……很难解释为什么未击中护甲会比100%保护的0级护甲CritChance更高,可能是指击中了护甲没有保护的弱点部位所以致命率更高吧,但按道理来说插板没有保护的地方是较为次要的地方,说不通啊。不管怎样,这意味着,如果敌人能够稳定击穿你的插板,可能一件具有更大保护面积(保护几率更高)的护甲好于一件保护等级更高但保护几率更低的护甲。

   但是有一个很匪夷所思的问题我没有弄明白,就是头盔到底在护甲中是怎么计算的,测试中刻意射击头部(已修改头盔为100%保护率6级防护)是按身体护甲结算的,射击0%保护几率的部分也是按未命中护甲算的,难不成是丢骰子决定打没打中头吗……想不通,有知道的大佬欢迎在评论区或撰写专栏补充,感激不尽。

以下是太长不看的结论部分,如果你觉得太抽象了我建议你还是看看正文:

子弹造成伤害的机制:子弹击中实体时会根据发射的距离计算暴击率,然后投一个一百面骰,如果小于暴击率则该次伤害暴击,造成100点伤害,如果未能暴击则计算伤害,当实体血量≤0时实体死亡。

护甲与护盾的保护机制:在一个以角色面朝方向为垂直平分线的圆弧内有一个保护几率与保护等级,圆弧的弧度也有一个数值写出。如果命中角度上有多个生效的圆弧,优先计算弧度更小的圆弧(这也是护甲不同方向数据不同的原理)。子弹击中时还是骰一百面骰,数字小于该角度上的保护几率则子弹击中护甲,开始计算穿甲。子弹的穿甲等级必须大于护甲/护盾的防护等级才能击穿,不能击穿则不会对实体造成任何伤害,也不会有暴击率。子弹在击穿护甲/护盾的情况下护甲等级的不同不会对子弹的伤害计算有任何改变,如果子弹未能击中护甲,Critchance会有一个小小的加成(护盾没有这个加成)。这意味着,如果敌人能够稳定击穿你的插板,可能一件具有更大保护面积(保护几率更高)的护甲好于一件保护等级更高但保护几率更低的护甲。
至于头盔,没弄明白,欢迎评论区补充或另开专栏。



破门而入2的伤害与护甲机制的评论 (共 条)

分享到微博请遵守国家法律