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

关于原版mpn1伤害运算机制的解读

2023-08-21 15:44 作者:Sky_Landers  | 我要投稿

备注:请认真看完

很多mpn1玩家现在都搞不清楚mpn1的伤害机制是怎么算的,认为武器的伤害就是对敌人造成的伤害,实际上并不是这样,经过一段时间的挖掘我大致了解了伤害运算原理,现在给全体mpn玩家解读伤害是如何运算的

伤害运算要考虑这五个基本要素,敌人(攻击者)武器伤害,敌人武器属性伤害加点,玩家(被攻击者)护甲点数,玩家承伤等级,还有其他的影响因素会在后面补充,这里先以都是人类角色(非僵尸,憎恶角色)来计算

先看关于加点的运算:

承伤end:

end是承伤加点,这里的level指的是end的加点数,而不是玩家的等级
最终的计算以这个指标来计算

实际上玩家的减伤等级以modArmor来计算,以end等于28计算,得到end为28的人物减伤能力modArmor为2,而end为0的modArmor为1+1/15(近似按1计算)

关于加点一直有个误区,就是认为副属性加点(pistol,smg,rifle,shotgun,melee,unarmed)可以提升对应武器的攻击,这实际上是错误的,因为枪械武器不吃副属性加点,近战武器和拳头的加点是吃力量加成

力量str:

str是力量加点,这里的level指的是str的加点数,而不是玩家的等级
最终的计算以这个指标来计算

实际上玩家的力量等级以modDmg来计算,以str等于28计算,得到str为28的人物近战和空手增伤能力modDmg为2,而str为0的modDmg为1+1/15(近似按1计算)

对盔甲和自然护甲的减免计算:


武器的伤害由基础值减去自然护甲和护甲值,当武器基础值伤害小于1大于0的时候默认按1来算,伤害计算的时候减去自然护甲和盔甲值(拳击伤害不需要减去自然护甲),对于轻中甲敌人,受到的最低伤害不会小于1,对于重甲敌人,基础值计算后小于等于0后表现为盔甲防弹机制,即无伤害(如果只有自然护甲仍然会受到1点伤害,自然护甲加重型装甲护甲值大于等于武器伤害即可表现为防弹),若敌人拥有大于等于20点的awr,则轻中甲提供的护甲值不算伤害计算机制中

太长了,有部分挡到了

当武器为散弹枪且shotgun加点大于等于且敌人距离在120以内你将会对敌人造成1.3倍的伤害(对僵尸挺有效的)

这个没啥好说的
这个大家应该都知道难度系数也会改变武器对玩家的伤害
各个难度的难度系数,竞技场是1倍伤害倍率
近战武器和拳头各自的伤害倍率,枪械伤害倍率默认为1
最佳射程外只有一半的伤害,最佳射程内正常伤害,最近射程指的就是移动辅助瞄准光标,那个最大延伸距离内的都是最近射程,也就是大部分枪械伤害都按一半伤害来算

上面两个一起看,得知爆头伤害倍率是1.2~2不等,近战武器对头部没有额外加成,头部的加成伤害需要拥有5级awr(然而大部分情况是受到攻击的部位是头部)

伤害运算公式就是:(基础值伤害-护甲值(20awr且轻中甲不算入)-自然护甲值(拳头不算入))x0.5或1x1.3(散弹枪且有5级shotgun,距离120内算入)x1.2~2(枪械头部射击且拥有5级以上awr)x modArmor值x1/3(拳头算入,其他不算)x modDmg值(枪械不算入)=最终造成伤害

注:30级的end减伤效果有bug、是没有用的,给了15级的end,当剩余的基础值(减去护甲和自然护甲的值)小于等于6的时候只能造成1的伤害

咳咳,给错了吧?

有些比较特殊的伤害是不按这个公式计算的,而是按这个值之间扣除玩家血量,无视护甲和减伤等级也不吃加点,例如榴弹的伤害就是武器基础值伤害,砸地失衡固定20点伤害,远程失衡30伤害,梦游者爆炸伤害6点,爆炸设备只有击退没有伤害,僵尸的撕咬是直接扣除血量为0的代码秒杀,憎恶的头槌则是根据自身的拳击等级无视护甲和减伤的扣除血量(拳击等级各伤害见下方)

憎恶抓住人后每次头槌的伤害

还有一个比较特殊的近战武器的破片秒杀机制,它的使用有一定条件:

当人物没有bulletEater,myboss==为空,且生命值小于50就会被近战武器破片机制秒杀,反之只能造成一次正常的伤害

看看拳头各等级伤害:

有unarmed加点的各等级拳击伤害
无unarmed加点的拳头等级
上面为5级unarmed后的拳击,下面是5级以下的拳击,最低等级拳击
上面为25级拳击,下面为15级拳击

补充:冲刺攻击空手(包括持有近战武器)造成2次伤害,空踢腿攻击空手造成3次伤害

接下来看看僵尸,僵尸由于特殊不能使用任何武器

僵尸的拳击伤害是固定5点

由此当僵尸不攻击头部且手里的武器不为近战武器的时候只有0.8倍的伤害,当持有近战武器则有1.4倍的伤害,由此可得僵尸造成的攻击伤害公式(非秒杀攻击):

(5-护甲值)x0.8(非头部攻击且手持武器为枪械,若为头部攻击此值为1)/1.4(手持近战算入,否则为1)x modDmg值 x modArmor值=最终伤害

最后一个就是投掷武器:

_loc8_ = - (25 + this.myDataRef.statSTR / 2 + 10 * Number(this.myDataRef.myWeapons[this.myWeapon].melee)) + (30 + this.myDataRef.statSTR / 2) * ((Math.abs(SwainMath.calculate_rotation(this._x,this._y,this.myAimX,this.myAimY)) - 20) / 90);

loc8指的是武器伤害的计算,与str有关,但实际上投掷武器的伤害也与武器基础值伤害有关,也受到敌方盔甲值影响,总伤害会乘(武器基础值-自然护甲-盔甲值)若敌人拥有投掷免疫属性枪械伤害变为0,近战武器无护甲状态伤害变为1

结语:看完后你会发现貌似end值不是减伤而是增伤,以及属性错误问题

关于原版mpn1伤害运算机制的解读的评论 (共 条)

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