本帖最后由 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 |