重装机兵吧 关注:149,796贴子:2,593,695

MM1的伤害计算方式

只看楼主收藏回复

这里不算闪避率。命中率与回避率差值在17就能伤害最大化±19.53%
会心一击(打空了、间不容发)
回避率和防御力变为0
基本伤害
命中率:玩家的命中率在下车时为战斗等级,在上车时为驾驶等级。怪物有单独的命中率
原版玩家下车命中率上限为99,使用兴奋剂后强制变更为100
原版玩家上车命中率上限为99,使用雷达后+50变更为149
回避率:玩家的回避率与命中率一致,但不会被兴奋剂和雷达影响。怪物有单独的回避率
根据命中率是否大于回避率,对伤害增益或削弱
在程序中有这样一个逻辑:Math.min(50, rateDiff * 3)
其中,50为上限,下限则为命中率与回避率的差值 * 3
由此可算出命中差值上限:50/3=16..2,16*3=48,(16+1)*3=17*3=51
只要差值能达到17,就能得到最大化的伤害增幅或削弱
差值0~17的增幅或削弱(%)

从上方表可以看出来,差值最多两级就能增幅或削弱5%的伤害,而差值在17时,最大能增幅或削弱50%的伤害
命中率大于或等于(>=)回避率时对伤害进行增幅:攻击力+(攻击力*增幅)
命中率小于(<)回避率时对伤害进行削弱:攻击力-(攻击力*削弱)
接下来由attack来表示这个基本攻击力
防御力
如果是玩家乘坐战车,使用战车底盘防御力
防御力会除以2后再进行计算:defense / 2
如果attack大于或等于(>=)defense:attack - defense
如果defense小于(<)attack:随机强制伤害0~3
接下来由damage来表示这个基本攻击力
伤害乱数
该乱数会增幅或削弱伤害,±19.53125%
计算出1点会增幅或削弱多少伤害:
127*102=12954
12954/256=50.6015625%
50.6015625/127=0.3984375%
0~127增幅,每增加1点+0.3984375%的伤害
127*0.3984375%≈50
50/256≈19.53125%伤害
128~255削弱,每增加1点-0.3984375%的伤害
255*0.3984375%-51≈101.60
101.60-51≈50
50/256=19.53125%伤害
计算:damage(+|-)(damage*乱数)
属性耐性
MM1对伤害有影响的属性只有火焰和冷气
如果是通常攻击,不会进行耐性计算
耐性共四个等级
零级:100%伤害
一级:50%伤害
二级:0%伤害
三级:200%伤害
计算:damage*耐性等级
防御模式
如果怪物或玩家进行防御,damage减半
计算:damage/2
坦克类
攻击坦克类时,伤害会变成1/5,玩家乘坐战车时和坦克类怪物会生效
计算:damage/5
将以上计算方式顺序计算就能得到攻击伤害
----------------
实验1
玩家白刃对电脑墙
玩家数据为:攻击力15、命中率1、通常攻击
电脑墙数据为:防御力1000、回避率55、坦克属性
玩家的命中率小于电脑墙的回避率55,差值为:55-1=54,修正为17,得到伤害削弱50%
攻击力15-(15*50%)=15-7=7
攻击力7-(防御力1000/2)=7-500=-493,修正为0,并随机伤害0~3
由于随机最高伤害3*119.53%=还是等于3,防御模式还会减半,这里就不继续算下去了
实验2
电脑墙对白刃玩家
玩家数据:防御力23、回避率1、防御模式
电脑墙数据:攻击力800、命中率127
电脑墙的命中率大于玩家的回避率,差值为:127-1=126,修正为17,伤害增幅50%
攻击力800+(800*50%)=800+400=1200
攻击力1200-(防御力23/2)=1200-11=1189
伤害乱数设定为最大削弱,减少19.53%伤害
1189*(1-19.53%)=1189*80.47%≈956
玩家防御模式,减少一半伤害956*50%=478
通常攻击,属性攻击不进行计算

还是1189,乱数设定为最大增幅,增幅19.53%的伤害
1189*(1+19.53%)=1189*119.53%≈1421
玩家防御模式,减少一半伤害1421*50%≈710


会心一击
为了方便测试,用的钢弹攻击(效果一样)
玩家乘坐战车数据为:攻击力80、命中率1
电脑墙数据为:防御力1000、回避率55、坦克属性
会心效果:防御力变为0、回避率变为0
玩家的命中率1大于电脑墙的回避率0,差值为:1-0=1,没有伤害增益
攻击力80-(防御力0/2)=80
乱数设定为增益增益,增幅19.53%的伤害
80*(1+19.53%)=80*119.53%≈95
电脑墙为坦克类,伤害变为1/5:95*20%=19


有问题欢迎指出!


IP属地:四川1楼2024-04-21 01:01回复
    太长。看不懂,。过去的回忆也不玩了,但是还是谢谢你,


    IP属地:广西来自Android客户端2楼2024-04-21 03:34
    收起回复
      可以,以前这个波动是粗略认为±20%或者一个什么分数来着
      话说一代还有点儿别的东西
      比如说音波枪在不破防的前提下大概率能打出3点伤害,很多主炮只能是0,我利用过这个特性打波特,这个的相关代码能不能找到?还是说只是我的错觉?
      然后就是像手雷、导弹,乃至钱包,这些道具的攻击力与使用者无关,但是吃命中回避,那它们的攻击力分别是多少?什么时候用武器比用这些道具更痛?


      IP属地:辽宁来自Android客户端3楼2024-04-21 09:28
      收起回复
        如果1级,战斗等级是1,用了兴奋剂之后战斗等级变为100?
        火冰抗性,为什么二级0%伤害,三级200%伤害?


        IP属地:浙江来自Android客户端4楼2024-04-21 10:22
        收起回复
          @real吴健 太长楼中楼回复不了
          有些道具是属性攻击,克制伤害翻倍,所以还是要看情况。榴弹80,穿甲弹250,手雷60,导弹100,火瓶150,酸瓶50,石头30,钱包是根据你的钱来计算攻击力的,用十六进制表示就是取中间的FF作为攻击力0x00FF00,最大攻击力255,用数字表示起来有点麻烦:钱/65535后取余,余数/256就是攻击力。上面道具我只测了手雷和石子与钱包,钱包攻击力好像有人发过了吧


          IP属地:四川来自Android客户端5楼2024-04-21 10:52
          收起回复
            技术贴大佬,牛逼


            IP属地:黑龙江来自Android客户端6楼2024-04-21 15:40
            回复
              你好,你是从代码中看的吗?能不能说一下战车sp为0后,受到伤害的计算方式?


              IP属地:山东来自Android客户端7楼2024-04-22 09:33
              收起回复
                牛逼 就喜欢看这种技术贴


                IP属地:湖北8楼2024-04-22 21:25
                回复
                  玩家乘坐战车数据为:攻击力80,命中率1
                  这个80是什么攻击力,45炮?
                  如果装上220炮,用钢弹,基本攻击力为800?


                  IP属地:浙江来自Android客户端9楼2024-04-24 20:42
                  收起回复
                    请问战车底盘的防御力与装甲片0之后遭受攻击装备损坏率有没有关系呢?


                    IP属地:河北10楼2024-04-26 09:43
                    收起回复
                      请问伤害乱数是怎么算的,没看懂


                      IP属地:江西11楼2024-06-28 07:36
                      回复
                        楼主再咨询一下mm1的字体是什么,像这个图片上


                        IP属地:江西12楼2024-06-28 07:49
                        收起回复
                          我就问进诺亚门口那四个密码是不是固定是那四个?还是刷新随机的


                          IP属地:广西来自Android客户端13楼2024-07-04 00:46
                          回复
                            楼主能不能留个🐧


                            IP属地:山西来自Android客户端14楼2024-08-19 16:52
                            回复
                              看不懂但大为震撼。


                              IP属地:江西来自Android客户端15楼2024-08-19 20:42
                              回复