| 本帖最后由 risc 于 2023-11-30 11:59 PM 编辑 
 楼主的问题,有2个解决办法:
 一是增加checkbusy的间隔,比如这样的思路(以mush为例):
 --------------------------------------------------------------------------------
 --等待进入不忙状态(check_tick为检测间隔),进入不忙状态后执行:callback
 --------------------------------------------------------------------------------
 function WaitforFree(callback,check_tick)
 wait.make(function()
 while true do
 SendNoEcho("checkbusy")
 local l,w=wait.regexp("^你(.*)忙$",0,trigger_flag.OmitFromOutput)
 if w[1]=="不"  then break end
 wait.time(0.1)
 if (check_tick~=nil) and (check_tick~=0) then wait.time(check_tick) end
 end
 if type(callback)=="function" then callback()
 elseif type(callback)=="string" then SendNoEcho(callback)
 end
 end)
 end不管你设不设置间隔,都自动加个0.1秒的间隔。设置间隔的时候,就按照你设置的秒数,比如每1秒checkbusy一下。
 
 二是从任务逻辑上,使用触发器来解决。
 比如上述的hsz任务,在退出副本以后,会提示“快去找韩王复命吧。”,那么捕捉到这句的时候,直接等待个2,3秒,再返回交任务。这里的2,3秒钟在整个任务过程中,不会带来什么大的影响。
 
 checkbusy这个函数,我的体会,除非在战斗中(不过一般战斗中多用suicide命令),大多数情况下,设置个0.5秒或者1,2秒啥的间隔进行checkbusy,不会影响什么。
 file:///C:\Users\ADMINI~1\AppData\Local\Temp\SGPicFaceTpBq\14552\F6DA5073.png
 |