找回密码
 注册
搜索
查看: 960|回复: 22

time模块

[复制链接]
门派:古墓派
发表于 2017-12-8 06:24:45 | 显示全部楼层 |阅读模式


由于很多时间一条触发都只在当时有用,所以创建只在这一段时间内存在,超时自灭的触发是最节约成本的。。于是出了上面的东西
(其实是做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,函数名不要引号

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
门派:铁掌帮
发表于 2017-12-8 12:12:15 | 显示全部楼层
大神,这个是派什么用处的,可以麻烦为菜鸟们解释下吗
门派:古墓派
发表于 2017-12-8 12:36:56 | 显示全部楼层
好东西,而且用处很广。
门派:铁掌帮
发表于 2017-12-8 12:54:40 | 显示全部楼层
syayas@tj 发表于 2017-12-8 12:36
好东西,而且用处很广。

用在哪里呢,风神               
门派:铁掌帮
发表于 2017-12-8 12:55:56 | 显示全部楼层
syayas@tj 发表于 2017-12-8 12:36
好东西,而且用处很广。

一个函数搞定,节约..(就是这样节约在HY我主脚本文件都快破M了!sigh)吐槽下。HY一个经验帽3w/h,手动7w+/h的mud,
我挂全局任务和随机迷宫一小时40w..
然后银翼杀手来了,在机器人法庭抓素材,反之。。
结果wiz改halt...现在游戏进程有1/3时间在busy ...

————————————————————————

风神,这段话是什么意思呢            

门派:桃花岛
发表于 2017-12-8 13:40:52 | 显示全部楼层
presever@tj 发表于 2017-12-8 12:12
大神,这个是派什么用处的,可以麻烦为菜鸟们解释下吗

虽然完全看不懂,但是风神说是好东西,赶紧下载了吧
门派:明教
发表于 2017-12-8 13:44:13 | 显示全部楼层
哇,真是好               
门派:少林派
发表于 2017-12-8 13:45:53 来自手机 | 显示全部楼层
我靠,这都是什么啊,看不懂
门派:少林派
发表于 2017-12-8 13:46:24 来自手机 | 显示全部楼层
presever@tj 发表于 2017-12-8 12:55
一个函数搞定,节约..(就是这样节约在HY我主脚本文件都快破M了!sigh)吐槽下。HY一个经验帽3w/h,手动7w ...

我也完全看不懂啊                       
门派:古墓派
发表于 2017-12-8 13:49:19 | 显示全部楼层
实话说我也不知道用在哪里,收藏了,万一以后做路径随机迷宫能用上呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-15 02:55 , Processed in 0.046050 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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