找回密码
 注册
搜索
查看: 6516|回复: 146

小白提高效率改robot第三篇

[复制链接]
门派:神龙教
发表于 2018-11-21 14:26:20 | 显示全部楼层 |阅读模式
前言:
其实公版已经非常的完善了,只不过为了考虑到通用性和exp的差异性,在各个环节留了不少余量,大家要改机器人,不要指望修改了某一个地方,就能大幅提高效率,这是不可能的,效率的提高只能是一点一点的积累,没有捷径可以走的。

前两篇说到的主要是如何避免flood,接着说点流程方面的把。

评分

1

查看全部评分

门派:古墓派
发表于 2018-11-21 14:27:15 | 显示全部楼层
前排搬个小凳子,认真学习……
门派:神龙教
 楼主| 发表于 2018-11-21 14:28:41 | 显示全部楼层
公版里,每个job完成后,都要check_heal滚一圈,在我看来,是完全没有必要的,因为这样等于每个job要浪费2秒的时间,非常不划算,这里的修改可以较大的提升循环效率。比如武当结束后:
        if Bag and Bag["白银"] and Bag["白银"].cnt and Bag["白银"].cnt>500 then
            return check_gold()
        end
        if (Bag and Bag["黄金"] and Bag["黄金"].cnt and Bag["黄金"].cnt<count.gold_max and score.gold>count.gold_max) or (Bag and Bag["黄金"] and Bag["黄金"].cnt and Bag["黄金"].cnt>count.gold_max*4) then
            return check_gold()
            end
                if fqyytmp.goArmorD==1 then
            return fqyyArmorGoCheck()
        end
        for p in pairs(weaponUsave) do
            if Bag and not Bag[p] then
                job.zuhe["songmoya"]=nil
            end
        end
        if fqyytmp.goArmorD==1 then
            return fqyyArmorGoCheck()
        end
        wdruntime=wdruntime+1
            if wdruntime>9 then
                    wdruntime=0
                return check_food()
            else
                    return check_jobx()
            end
门派:神龙教
 楼主| 发表于 2018-11-21 14:31:58 | 显示全部楼层
以上代码是我曾经用的,其实这里有更完美的解决方案,但是修改的比较多,我就随便写了个折中方案给大家参考:
每10次wd任务,才进行一次check_food,这样可以跳过整个check_weapon和check_armor. 直接进行prepare的check,因为你在job运行过程里,主要判断的是身上有没有钱,其他的并不需要去每次都判断,你的武器即便是需要修理了,撑个2小时是完全没有问题的。当然这里面还有些小细节,2贴限制,等有人回帖了再说。
门派:姑苏慕容
发表于 2018-11-21 14:32:45 | 显示全部楼层
说的有道理,跑山下这么没问题
门派:丐帮
发表于 2018-11-21 14:33:01 | 显示全部楼层
皇上你把这个也发到你门派讨论区一贴,发这里我没法加分啊。
门派:神龙教
 楼主| 发表于 2018-11-21 14:36:53 | 显示全部楼层
也许有人会问:如果没有cheakbags,那我这个gold和silver的数值是怎么取得呢?这个问题嘛,其实很简单,哪里会让你少钱?肯定是嘉峪关的官兵啊,那我就在渡河的时候checkbags不就行了?
duhe_fly=function()
        EnableTriggerGroup("duhe",false)
    DeleteTriggerGroup("duhe")
        EnableTimer('dhhWait',false)
        djdh_open()
      checkbags()
        wait.make(function()
            wait.time(4)  
        return check_bei(duhe_over)
        end)
end
门派:神龙教
 楼主| 发表于 2018-11-21 14:37:39 | 显示全部楼层
以上是我渡河过去后的func,是不是就很完美的解决了这个问题呢?
门派:丐帮
发表于 2018-11-21 14:45:20 | 显示全部楼层
其他job的修改呢?和wudang.lua的方法都一样么?
门派:丐帮
发表于 2018-11-21 14:47:36 | 显示全部楼层
wdruntime是wdjob的计数么?那其他job的计数都是什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-10 23:52 , Processed in 0.030977 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表