挂机手游模拟器吧 关注:737贴子:1,195
  • 5回复贴,共1

终于搞清楚伤害问题了……

只看楼主收藏回复

我这一会乘算一会加算的,怎么算都不对
原来游戏伤害加成有上限……
其实群里作者早就告诉我了,可惜当时我听不懂……


IP属地:辽宁1楼2026-02-15 02:11回复
    我们首先看以下几个技能
    命中神通代码
    base.WhenAttack_Cul_1(entryRecord, Attacker, Behiter, damage_Recorder);
    BigInteger bigInteger = Attacker.battle_Character_Info.BattleData_Manager.GetFinalValue(PropertyTypeEnum.MingZhong) * Base * entryRecord.Level / 10;
    if (bigInteger > 2147483647L)
    {bigInteger = 2147483637;}
    damage_Recorder.PercentAddition.Add((int)bigInteger);
    注意,这里有个上限,不过不重要,一般命中达不到这么高,除非修改
    鸟阵代码
    base.WhenAttack_Cul_1(entryRecord, Attacker, Behiter, damage_Recorder);
    BigInteger bigInteger = Attacker.battle_Character_Info.BattleData_Manager.GetData(PropertyTypeEnum.Speed).True_Base_Value - Behiter.battle_Character_Info.BattleData_Manager.GetData(PropertyTypeEnum.Speed).True_Base_Value;
    if (!(bigInteger > 0L))
    {
    return;
    }
    try
    {
    if (bigInteger > 2147483646L)
    {bigInteger = 2147483646;}
    damage_Recorder.PercentAddition.Add((int)bigInteger);}
    这个是真能达到这么高,就按上限算吧,2147万,注意是百分比,是21亿除以100
    后面不贴了


    IP属地:辽宁2楼2026-02-15 02:13
    回复
      2026-03-07 09:27:25
      广告
      不感兴趣
      开通SVIP免广告
      目前已知的技能,包括猴子的命中,云霄的闪避,神通,鸟阵,暴击阵,甚至包括科技里,图鉴的增伤,统统是一个算法,即
      damage_Recorder.PercentAddition.Add
      他的代码如下
      public static long CulFinalValuePercentArray(long Base, params int[] PercentAddition)
      {
      double num = Base;
      for (int i = 0; i < PercentAddition.Length; i++)
      {
      num = num * (100.0 + (double)PercentAddition[i]) / 100.0;
      }
      return (long)num;
      }
      换句话说,全场乘算,统统都乘算,没有加算,至少我看的这些技能里,都是乘算的


      IP属地:辽宁3楼2026-02-15 02:18
      回复
        但是,但是,我漏看了一行,作者在群里说过,甚至是特地对我说过,我没听明白,也没当回事的
        long num = ToolClass.CulFinalValuePercentArray(100L, PercentAddition.ToArray());
        if (num < 0)
        {
        num = 9223372036854775806L;
        }
        如果溢出了,就按以上数来算,因为long最多装这么多……
        这个数是多少呢?9.22乘以10的16次方
        看着挺大,一个命中神通加成,像我有600万%的命中,这就4个零出去了
        孙悟空的1%命中加1%伤害,又4个零出去了
        鸟阵,7个零
        还有神鬼志异、西行的组合,等等
        很快,就冒了
        然后就没得提升了
        所以我一直不知道为什么第一个阵法也就是天阵反而伤害高,原来人家代码是这样的
        finalValue = finalValue * level / 100;
        max.battle_Character_Info.BattleData_Manager.ChangeProprtyValue(PropertyTypeEnum.ATK, (double)finalValue, percent: false, Add: true);
        人家直接加攻击力,而不是百分百加成
        好像武松的技能也类似,具体没仔细看
        一瓶可乐一袋瓜子,一堆代码看到2点半……


        IP属地:辽宁4楼2026-02-15 02:31
        回复
          大概捋了捋
          稳定能绕过上限的,一个是天阵,一个是武松,武松的2个技能都能绕过,只是增伤那个效果被稀释,没有实际意义
          确定绕不过上限的,魅惑的效果,司马懿的震慑增伤,神通里的根据对方debuff层数增伤
          另外爆伤、增伤,这两个属性属于自然属性,好像不被限制
          其他的再研究吧


          IP属地:辽宁5楼2026-02-15 02:59
          回复
            天才选手


            IP属地:上海来自Android客户端6楼2026-02-15 10:39
            回复