|
由于很多时间一条触发都只在当时有用,所以创建只在这一段时间内存在,超时自灭的触发是最节约成本的。。于是出了上面的东西
(其实是做HY的14天书自动解密时心血来潮整的。。) 说明文件里复制过来的
-- time.lua
--- Modify wait.lua by Hate. -- 10.08.2017
--- Keep wait's wait.time function with time.wait
---
--- time.clear() clear all time's threads timers triggers
--[[===
Examples:
EXEC = world.Execute -- HY某些原因需要3不同个执行器,与此文件无关
function ctwo1(t_cmd,t_match,t_match1,timeout,no_func,yes_func)
time.make(function()
line, wildcards,styles =
time.two_type1(t_cmd,t_match,t_match1,timeout,no_func,yes_func)
end)
end
双触发一型 —— 实例:
ctwo1("halt", --- repeat this
"你现在不忙。", -- match1 trigger function1
"(请止步|你现在不能用halt!|你你身上有重要的任务物品,不能)", -- match2 trigger function2
time, -- 多少时间重复一次 "halt"
function1's name whitout quotes,
function2's name whitout quotes,
) -- ctwo1
-- 注意:repeat类的都没有超时控制,两个match不触发的话,会一直执行下去.
===]]
--[[==
与上面相同,只是单触发的,主要用于检测busy
function cynt(cmds,match,sec,func_m)
time.make(function()
time.wait(0.1) -- 加了0.1秒缓冲避免多个timer导致触发错误
line, wildcards,styles =
time.rep(match,cmds,sec,func_m)
end)
end
实际使用
function check_halt(func)
local function haltok()
return func()
end
cynt('halt','你现在不忙。',0.1,haltok)
end
一个函数搞定,节约..(就是这样节约在HY我主脚本文件都快破M了!sigh)吐槽下。HY一个经验帽3w/h,手动7w+/h的mud,
我挂全局任务和随机迷宫一小时40w..
然后银翼杀手来了,在机器人法庭抓素材,反之。。
结果wiz改halt...现在游戏进程有1/3时间在busy ...
===]]
--[[===
-- 双触发二型 —— 对应触发
function ctwo(cmds,match1,match2,timeout,func,func1,func2)
time.make(function()
EXEC(cmds)
line, wildcards,styles =
time.two_type2(match1,match2,timeout,func,func1,func2)
end)
end
实例:-- 例子用于检查步进是否成功,挂随机迷宫的脚本的主要触发 nhm_前缀 = nohalt_maze
ctwo('north', --- 指令,只执行一发
'^看起来(.+)想杀死你!', --- match1
'这里.+出口.+是(.+)', --- match2
0.5, -- 超时控制
nhm_fightchk, --- 触发第一个
nhm_engin, 触发第二个
nhm_regochk 超时的话执行的
)
===]]
--[[===
-- 与非触发
function yesno_t(t_cmd,t_match,timeout,no_func,yes_func)
time.make(function()
EXEC(CMD)
line, wildcards,styles =
time.regexp(t_match,timeout,no_func,yes_func)
end)
end
实例:
yesno_t('ask bayun zi about 约不?',
'对方不想理你,并想你丢了一个雷姆',
1, --
check_fight, -- 超时执行
check_bed -- 触发执行
)
===]]
-- function2's name whitout quotes,函数名不要引号 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|