台服dnf吧 关注:115,363贴子:1,781,696

修复白字或者特效伤害吃nut最终加成

只看楼主收藏回复

众所周知,白字和特效伤害会受到nut写的终伤加成,让白字又一次得到提升,导致伤害偏高很多。尤其在86版本属性白字的加入,伤害逐渐看不懂,远偏离计算。
以前想过办法解决,最终还是重新写了白字和属性白字等,不过现在有个简单一点的办法解决。



IP属地:安徽来自Android客户端1楼2024-07-15 22:46回复
    if(passiveobj.getPassiveObjectIndex() == 48081)
    {
    local BonusRate = sq_GetCurrentAttackBonusRate(passiveobj) ;
    local attackInfo = sq_GetCurrentAttackInfo(passiveobj);
    local DamageRate = getCurrentModuleDamageRate(parentChr).tointeger();
    local ReduceRate = 0;
    if (DamageRate == 1 )
    {
    ReduceRate = 0;
    }else{
    ReduceRate = 100/DamageRate;
    }
    local FinalRate = BonusRate - ReduceRate;
    sq_SetCurrentAttackBonusRate(attackInfo, FinalRate);
    }
    //这段代码写到common里的onAttack_PassiveObject 这个函数里就行了


    IP属地:安徽来自Android客户端2楼2024-07-15 22:48
    收起回复
      这是有终伤100%加成的一张图和数据,很明显白字被放大了100%


      IP属地:安徽来自Android客户端3楼2024-07-15 22:51
      回复
        这是使用算法还原后的,属性白字也是这种写法,这里就不写了。


        IP属地:安徽来自Android客户端4楼2024-07-15 22:52
        回复
          谢谢了


          IP属地:湖北来自Android客户端5楼2024-07-15 23:18
          回复
            帮顶


            IP属地:广东来自iPhone客户端6楼2024-07-15 23:19
            回复


              IP属地:湖南来自Android客户端7楼2024-07-15 23:26
              回复


                IP属地:江苏来自iPhone客户端8楼2024-07-15 23:38
                回复
                  感谢分享


                  IP属地:吉林来自Android客户端9楼2024-07-16 00:05
                  回复
                    大佬 6


                    IP属地:云南来自iPhone客户端10楼2024-07-16 00:21
                    回复
                      牛逼


                      IP属地:辽宁来自Android客户端12楼2024-07-16 00:38
                      回复
                        大佬强的一


                        IP属地:吉林来自Android客户端13楼2024-07-16 01:14
                        回复
                          //重新改进了下代码,之前写的有些情况没考虑全
                          if(passiveobj.getPassiveObjectIndex() == 48081)
                          {
                          local BonusRate = sq_GetCurrentAttackBonusRate(passiveobj) ;
                          local attackInfo = sq_GetCurrentAttackInfo(passiveobj);
                          local DamageRate = getCurrentModuleDamageRate(parentChr);
                          local ReduceRate = 0;
                          local FinalRate = BonusRate;
                          if (DamageRate == 1 )
                          {
                          FinalRate = BonusRate;
                          }else if(DamageRate < 1 ){
                          ReduceRate = (100/DamageRate).tointeger();
                          FinalRate = ReduceRate - 100;
                          }else if(DamageRate > 1 ){
                          ReduceRate = (100/DamageRate).tointeger();
                          FinalRate = BonusRate - ReduceRate;
                          }
                          sq_SetCurrentAttackBonusRate(attackInfo, FinalRate);
                          }


                          IP属地:安徽来自Android客户端15楼2024-07-16 09:04
                          收起回复


                            IP属地:黑龙江来自Android客户端16楼2024-07-16 11:36
                            回复
                              有视频教学写哪里吗?


                              IP属地:广东来自Android客户端17楼2024-07-16 12:33
                              收起回复