Mushclient中wait.lua模块的扩展
本帖最后由 hasea 于 2013-11-28 04:31 PM 编辑这些时间在mushclient玩lua。相对无数回调函数的恶心,mushclient中的wait.lua模块还是包装得很爽快的。但总还是有些不如意的地方。所以便动手作了如下扩展。我对这个扩展做个简单的说明。这种小众的东西,估计也就放在这里才能引起别人的兴趣了。
代码示例用的是图片,这里的论坛代码显示功能大差。
1、wait.regexp可以使用多行触发,正则字符串可以用列表table的格式给出。
使用方式如下:
2、增加一种类似于子线程的实现对象
A、一般来说,在mush中,如果想要实现子线程,大约可以如下这样写。当然你也可以使用一堆乱七八糟的回调函数来实现类似功能。
但是这样有个问题。就是主线程关闭后,子线程无法关闭。很多时候这是很讨厌的。
B、扩展模块中的子线程使用方式。主线程中可以关闭自己创建的子线程了。
以下为使用示例。
3、该模块兼容原有模块。
在下学lua和mushclient并没有多久,大约玩了不到1个月。很多东西并不熟悉,如果有错误或是更好的方式的话,请指出。
模块文件,直接覆盖原有文件即可。复制和修改请保留个人信息。
北大侠客行MUD,中国最好的MUD 好东西,看看实际应用效果,mush的一个缺点要被客服了么? 回复 2# yhzzyahoo
hzy
谢谢师父。 本帖最后由 hasea 于 2013-11-28 06:48 PM 编辑
回复 6# huacuoh
这个。。确实是模拟实现。。总不能想让它支持利用多核cpu吧。
只要它的表现行为和子线程差不多。也就行了吧。脚本而已,能有多少要求呢。只为了能在写脚本的时候更方便。
原来wait是利用触发和定时器及lua的协程写的。每个wait.make会有一组对应的触发和定时器。
事实上模块主要的扩展实现目标是使wait.make创造的其中一组触发、定时器、lua的协程对象可以在需要的时候的关闭。
这样便相当于每个wait.make创造一个线程,每个线程的工作互不干扰。然后可以调用close方法来清除一个线程。 编辑器的着色挺不错,用的什么编辑器? 回复 13# nsonline
SublimeText2。这东西其实我就喜欢那个配色好看。要是vim也弄个这样的配色多好。 哦~SublimeText啊,传说中土豪专用的编辑器啊! 学习一下
看sublime2 有免费无限制无限期的试用权,功能有缩水么 高手hzk .............完全看不懂。