台服dnf吧 关注:120,789贴子:1,971,314

为了 白字 这坛“醋”而包了“一整桌饺子”

只看楼主收藏回复

起初我只是想做个简单而有我自己想法的86版本,用的朝暮为底板,因为大家都说bug少,流畅。
自己玩的时候发现没有白字,然后我打开装备属性查看发现
[skill data up]
`[all]`174`[all]``[static]`1`+`30
[/skill data up]
全是这种写法,了解到原来是用了nut写的“最终伤害”代替了白字,为了游戏流畅性去除了台服原来的白字,属性白字也是这么改了。


IP属地:安徽1楼2022-08-26 14:18回复
    没有白字就没有86版本的灵魂,这种想法刻在我的DNA里面,
    然后我就基本还原了属性白字,什么附加30%火属性伤害等等......
    带来的结果我是万万没想到


    IP属地:安徽2楼2022-08-26 14:20
    回复
      2025-08-13 17:20:15
      广告
      不感兴趣
      开通SVIP免广告
      台服的白字写法和function getCurrentModuleDamageRate(obj) 这个函数方法产生了复杂的化学反应
      经过我测试原先10%的属性白字,假设某职业getCurrentModuleDamageRate(obj)经过二觉被动、装备增加和为了平衡给的人物基础值总和为5.0。
      那么最终经过测试后的白字为50%,然后白字在和黄字进行计算 ,如果白字足够高,会导致一个很可笑的现象出现
      黄字可能没有白字伤害高


      IP属地:安徽3楼2022-08-26 14:23
      回复
        打个比方,如果人物基础伤害为1w,白字为100%
        那么得出来白字伤害为1w,黄字1w。
        但这时候如果引入“最终伤害”,假设getCurrentModuleDamageRate(obj)返回的值为2.0
        那测试伤害黄字为2w,白字为4w。
        具体原因我猜测是function getCurrentModuleDamageRate(obj)这个函数放大了所有伤害类型,反正就挺离谱


        IP属地:安徽4楼2022-08-26 14:27
        回复
          为了解决这个伤害不可控结果,我踏上了漫漫长路。
          中间找了好几种办法,想过去还原附加伤害写法变成台服自带那种,但是割舍不掉二觉被动带来的人物提升。
          想过用CHANGE_STATUS_TYPE_MAGICAL_ATTACK_BONUS CHANGE_STATUS_TYPE_PHYSICAL_ATTACK_BONUS这个来解决,写在了procappend
          我以为我找到办法了,后面又错了,这只能提升面板并且固伤一点不吃,我当时心态就蹦了
          又想到冰洁的一觉被动写法,尝试用function onApplyHpDamage_appendage_用来写增伤写法
          测试发现这函数是给怪物的,就算让人物吃上了增伤效果,队友也吃上了,直接舍弃这种写法了


          IP属地:安徽5楼2022-08-26 14:32
          回复
            最后还是转换思路了,既然没法改变最终伤害写法,那只能重新写一个属性白字写法
            正巧看到朝暮文件有最新的属性白字写法

            思路的确让人茅塞顿开,但我心里就是有点不得劲,和我想的算法不一样,我想的应该是属强取最高值,然后属性白字附加在和最高值运算


            IP属地:安徽6楼2022-08-26 14:35
            回复
              经过一中午的折腾,终于写好了,测试了下还是比较满意
              没写之前,角色可以打12000,
              写完代码后,角色220的火强,100%的火属性附加
              最终伤害为24000,还是比较满意的
              但遗憾的是我不会改剑圣字体,没有小字


              IP属地:安徽7楼2022-08-26 14:36
              收起回复
                function getAllElementalDamageRate(obj)
                {
                local addelemtalrate = 0;
                local all_elemental = obj.sq_GetIntData(169, 30);
                local linght = obj.sq_GetIntData(169, 31);
                local dark = obj.sq_GetIntData(169, 32);
                local water = obj.sq_GetIntData(169, 33);
                local fire = obj.sq_GetIntData(169, 34);
                local linghtrate = obj.sq_GetIntData(169, 26); //附加光属性白字
                local darkrate = obj.sq_GetIntData(169, 27);//附加暗属性白字
                local waterrate = obj.sq_GetIntData(169, 28);//附加水属性白字
                local firerate = obj.sq_GetIntData(169, 29);//附加火属性白字
                if (linght >= dark && linght >= water && linght >= fire)
                {
                addelemtalrate = (linghtrate / 100) * (1+ (linght + all_elemental) / 220);
                }
                else if (dark >= linght && dark >= water && dark >= fire)
                {
                addelemtalrate = (darkrate / 100) * (1+ (dark + all_elemental) / 220);
                }
                else if (water >=linght && water >= dark && water >= fire)
                {
                addelemtalrate = (waterrate / 100) * (1+ (water + all_elemental) / 220);
                }
                else if (fire >= linght && fire >= dark && fire >= water)
                {
                addelemtalrate = (firerate / 100) * (1+ (fire + all_elemental) / 220);
                }
                return addelemtalrate.tofloat();
                }
                function getCurrentModuleDamageRate(obj)
                {
                if (!obj)
                return 1.0;
                setEmptySlotNumber(obj);
                local rate = getSkillDamageRateIncrease(obj);
                rate = rate * (1 + getEquipmentIncrease(obj)) * (1 + getEquipmentIncrease2(obj)) * (1 + getIncreaseDamageRateByEmptySlotNumber(obj)) * getAllElementalDamageRate(obj);
                return rate.tofloat();
                }


                IP属地:安徽8楼2022-08-26 14:37
                收起回复
                  2025-08-13 17:14:15
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这种虽不能完美复刻属性白字,最起码有点兼容目前台服的环境,还算勉强可以用吧。
                  伤害可控就行,之前的那个混合版,我真的心累搞得


                  IP属地:安徽9楼2022-08-26 14:40
                  回复


                    IP属地:江苏来自Android客户端10楼2022-08-26 15:10
                    回复
                      太棒了,嫖到许多


                      IP属地:广东来自Android客户端11楼2022-08-26 15:23
                      收起回复
                        不是说的白字多了会卡吗


                        IP属地:云南来自Android客户端12楼2022-08-26 15:33
                        收起回复
                          比起直接把属性白字写死为高于装备描述的固定数值白字强10000倍了


                          13楼2022-08-26 15:36
                          收起回复
                            太棒了 走马观花一下


                            IP属地:云南来自Android客户端14楼2022-08-26 16:32
                            回复
                              2025-08-13 17:08:15
                              广告
                              不感兴趣
                              开通SVIP免广告
                              牛的


                              IP属地:内蒙古15楼2022-08-26 18:03
                              回复