找回密码
 注册
搜索
查看: 1212|回复: 10

为什么我tdh每次开始的时候都设了flag.idle=0,可还是不到发呆上限时间就重启了呢

[复制链接]
门派:少林派
发表于 2016-10-22 08:26:45 | 显示全部楼层 |阅读模式
为什么我tdh每次开始的时候都设了flag.idle=0,
可还是经常不到发呆上限时间就重启了呢
都还在杀着大内侍卫呢,他就重启了

function idle()
    hp.expBak = hp.expBak or -1
    if hp.exp and hp.exp~=hp.expBak then
       hp.expBak = hp.exp
           cntrI = countR(20)
        else
           if cntrI()<1 then
              cntrI = countR(20)
              flag.idle = 100
              return idle_set()
           end
        end
    flag.idle=0
    return create_timer_s('idle',30,'idle_set')
end

这是原来的代码,我死活看不懂啥意思啊,faint大神给说说
门派:少林派
 楼主| 发表于 2016-10-22 08:33:24 | 显示全部楼层
if cntrI()<1 then
               cntrI = countR(20)
               flag.idle = 100
主要就是这句话的意思不大懂
门派:少林派
 楼主| 发表于 2016-10-22 08:34:35 | 显示全部楼层
是不是每次天地会任务失败会扣经验的啊        
门派:丐帮
发表于 2016-10-22 08:53:37 | 显示全部楼层
有时候mush重启是没有理由的!
门派:少林派
 楼主| 发表于 2016-10-22 09:20:08 | 显示全部楼层
lovedy@tj 发表于 2016-10-22 08:53
有时候mush重启是没有理由的!

理由肯定是有的
只不过是没找到原因而已
门派:姑苏慕容
发表于 2016-10-22 15:23:52 | 显示全部楼层
看下你的locate的记录,有没有一个8分钟重启的记录
门派:少林派
 楼主| 发表于 2016-10-22 16:52:08 | 显示全部楼层
mrmt@tj 发表于 2016-10-22 15:23
看下你的locate的记录,有没有一个8分钟重启的记录

这个就是重启纪录,说我发呆时间到了            
门派:不明
发表于 2016-10-22 18:37:26 | 显示全部楼层
可能就是因为这个原因
门派:姑苏慕容
发表于 2016-10-22 20:24:00 | 显示全部楼层
这个Mush机器人巧妙用了两种方式来判断机器人,一个是超时机器人,这个就是你们常说的flag.idle这个值大于一定数值的时候就当做发呆了,然后自动重连。
另一个方式就是你说的那段话了,

  1. if cntrI()<1 then
  2.                cntrI = countR(20)
  3.                flag.idle = 100
复制代码

countR(20)这个是自动从20计数,每次运行,自动减一
  1. function countR(p_number)
  2.    local i = p_number or 10
  3.    return function()
  4.        i = i - 1
  5.            return i
  6.    end
  7. end
复制代码

上面这个就是countR函数。
cntrI是countR函数调用的结果,
而cntrI()这个就是让cntrI这个数本身再减一。

这个判断就是看经验值有没有变动,没有变动的话,cntrI的数就减一,有变动就flag.idle=0
但是有些情况,虽然没有发呆,而且经验值也不变,这时候就可能陷入某种死循环,比如以前经常卡在塔林,云杉林这种地方,这个时候就需要跳出这种循环状态,就利用cntrI()最终会减少到小于1,这个时候就断线重连了。
以前经常山上莫名断线重连其实就是这个原因,所以针对smy任务需要在这个判断里面加入对一些特殊任务过长时间的特点不能短线重连,说白了就是不要调用cntrI()。
不知道我说的明不明白,你可以看看我发布的公版的里面有针对颂摩崖任务的特殊设置,在shujian.lua中,你可以参考。
门派:少林派
 楼主| 发表于 2016-10-22 22:20:04 来自手机 | 显示全部楼层
faint@tj 发表于 2016-10-22 20:24
这个Mush机器人巧妙用了两种方式来判断机器人,一个是超时机器人,这个就是你们常说的flag.idle这个值大于 ...

那我应该怎么样让做tdh的时候不能还不到发呆限定时间就重启啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-22 06:11 , Processed in 0.034491 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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