关于原版mpn1伤害运算机制的解读
备注:请认真看完
很多mpn1玩家现在都搞不清楚mpn1的伤害机制是怎么算的,认为武器的伤害就是对敌人造成的伤害,实际上并不是这样,经过一段时间的挖掘我大致了解了伤害运算原理,现在给全体mpn玩家解读伤害是如何运算的
伤害运算要考虑这五个基本要素,敌人(攻击者)武器伤害,敌人武器属性伤害加点,玩家(被攻击者)护甲点数,玩家承伤等级,还有其他的影响因素会在后面补充,这里先以都是人类角色(非僵尸,憎恶角色)来计算
先看关于加点的运算:
承伤end:


实际上玩家的减伤等级以modArmor来计算,以end等于28计算,得到end为28的人物减伤能力modArmor为2,而end为0的modArmor为1+1/15(近似按1计算)
关于加点一直有个误区,就是认为副属性加点(pistol,smg,rifle,shotgun,melee,unarmed)可以提升对应武器的攻击,这实际上是错误的,因为枪械武器不吃副属性加点,近战武器和拳头的加点是吃力量加成
力量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.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的代码秒杀,憎恶的头槌则是根据自身的拳击等级无视护甲和减伤的扣除血量(拳击等级各伤害见下方)

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

看看拳头各等级伤害:




补充:冲刺攻击空手(包括持有近战武器)造成2次伤害,空踢腿攻击空手造成3次伤害
接下来看看僵尸,僵尸由于特殊不能使用任何武器


由此当僵尸不攻击头部且手里的武器不为近战武器的时候只有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值不是减伤而是增伤,以及属性错误问题