|
本帖最后由 suineg 于 2017-11-8 07:03 AM 编辑
起因是我昨天挂领悟时会卡住,
不停的弹"基本等级不够,无法练习"之类的提示,
然后就想到了写这个东西,
代码中Common.Test仅供测试用,可以删除;
API介绍:
Common.InstanceRun(执行的函数, 间隔的时间, 执行函数的参数);
会立刻执行对应的函数,并且在间隔的时间内都不会再次执行;
间隔的时间不填则默认2秒;
执行函数无参数则不填,
我的图片示例,
Common.InstanceRun(Common.Test);
使用场景:
1.比如同时N个人对你叫杀"\S+想杀死你",可以Common.InstanceRun(战斗准备);
2.比如N个人同时打你,血量到了要处理的警戒线,可以Common.InstanceRun(警告处理, 0.5);
3.比如我上面自己的案例;
4.换武器的pfm,可以用这来防止在CD时的换武器导致busy;
5.自己想吧
V1.1修改:
1.Common.InstanceRun能返回本次是否执行了,执行了return true,否则return false;
应用:一次只能放一个pfm的情况下,可以根据这来判断是否换个pfm放;
2.添加形参vParam,可以调用带参数的pVoid,- Common = Common or {};
- Common.tInstanceVoid = {};
- Common.InstanceRun = function(pVoid, nTime, vParam)
- local strKey = tostring(pVoid);
- if strKey == nil or strKey == "" then return false; end
- if Common.tInstanceVoid[strKey] ~= nil then return false; end
- if nTime == nil then nTime = 2; end
- Common.tInstanceVoid[strKey] = 1;
- pVoid(vParam);
- DoAfterSpecial(nTime, "Common.InstanceReset("" .. strKey .. "")", 12);
- return true;
- end
- Common.InstanceReset = function(strKey)
- if strKey == nil or strKey == "" then return; end
- Common.tInstanceVoid[strKey] = nil;
- end
- Common.Test = function()
- Note("CT 1");
- end
复制代码
北大侠客行MUD,中国最好的MUD |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|