背景:
阅读文章

MUSHclient:-一个功能极其强大的MUD/MUSH 客户端

[日期:2008-06-13] 来源:  作者:非凡公子 [字体: ]

软件介绍
MUSHclient 是一个功能极其强大的 MUD/MUSH 客户端,支持压缩协议,MUD 扩展协议,速度比同类的软件要快很多。支持各种脚本语言,如 Lua、JavaScript 和 VBScript,你可以做出功能非常完善的机器人,实在是挖泥利器,比 zMUD 毫不逊色,相信你会喜欢它。另外,它对中文的支持非常好。

为什么选择 MUSHclient
快速小巧


MUSHclient 是由 C++ 编写的,软件体积小,运行速度快。

使用方便
MUSHclient 使用标准的 Windows 界面风格,上手容易,连接游戏非常简单,你只要选择连接菜单中的“快速连接”项,在弹出的快速连接对话框中填入 MUD 游戏的 IP 地址和端口号,然后点“确定”按钮就可以开始你的 MUD 之旅了。

可扩展性强
通过安装各种插件可以方便的扩展 MUSHclient 的功能。你可以在官方网站的插件专栏中获得这些插件,也可以从其他插件作者那里获得。如果愿意的话,你还可以自己制作插件。

插件实际上是一组触发器、定时器、别名、脚本和变量的集合,你可以很容易的安装删除它们。

增加游戏乐趣的各种功能
别名(快捷命令)
触发器(自动响应匹配的文字)
定时器(定时发送指定的命令)
小键盘行走(使用小键盘上的数字键可以方便的向各个方向快速走动)
Tab 自动补齐(输入一个单词的部分字母后按下<tab>键,如果最近的输出内容中有与这部分字母相符的单词,这个单词就会被自动补齐)
快速行走(使用快速行走命令可以快速的向指定的地点移动,例如 4n 5w)
经常长时间的和其他人在 MUD 里交谈吗?让 MUSHclient 自动在你输入的每句话前添加“say”命令吧,免得你重复输入。
XML 文件格式
MUSHclient 相关的各种文件(游戏配置文件,插件,触发器,别名,定时器,变量)都是以标准的 XML 格式存储。你可以很方便的复制一个游戏中的触发器、别名等,然后粘贴到另一个游戏中。

支持各种脚本
你可以使用脚本实现你需要的各种功能。例如断线后自动重新连接,随机发送一些问候语等等。

MUSHclient 目前支持的脚本有:

Lua
JScript
VBscript
PerlScript
Python
PhpScript
Tcl
这里是一个 MUSHclient 额外支持的函数和属性列表,你可以在上面列出的任何脚本中调用它们。

MUSHclient 还支持内嵌脚本,触发器,别名和定时器可以在没有外部脚本文件的情况下执行脚本命令。

程序自带了一个简单的脚本编辑器,你可以通过它快速查询每个函数的使用方法。

支持 MXP 和 MCCP
MUSH 支持 MUD 客户端压缩协议(版本1 和 版本2)和 MUD 扩展协议(MXP)。

支持代理服务器
MUSHclient 可以通过提供 Socks4 和 Socks5 的代理服务器连接游戏。

聊天系统
MUSHclient 自带了一个兼容 MudMaster 和 zChat 协议的聊天系统。你可以用它和任何兼容这两种协议之一的客户端互相交谈(当然也包括 MUSHclient)。

性能强大
你可以同时连12个游戏,每个游戏可以在内存中保留最近500,000行的信息,还可以记住你最近输入的5,000个命令。通过命令记录搜索功能,你可以快速的找到你想再次调用的命令。

比 zMUD 的 #wait 更强大的命令
很多用过 MUSHclient 的人都会遇到一个难题,那就是如何在脚本中暂停一段时间,然后再继续运行,就像 zMUD 中的 wait 命令一样。
例如:
Send("命令1")
-- 等待 2 秒
Send("命令2")
-- 等待 3 秒
Send("命令3")

在很长一段时间里,MUSHclient 都无法解决这个问题,偶尔会有人使用循环来达到这个目的,但是效果却不是很理想:
Send ("命令1")

-- 循环以延迟1秒
For i = 1 to 100000
Next

Send ("命令2")

这个循环的效果是很糟糕的,因为在循环过程中,计算机的 CPU 会完全被占用,你将不能做任何其它的事情。另一个可能发生的问题是延迟根本就没有起作用,因为通过网络发送数据是需要一段时间的,循环命令开始占用 CPU 的时候,第一条命令可能还没有来得及发送出去。开始循环时,CPU 没有空余的时间来处理数据的发送操作,因此只有循环结束后,第一条命令才会继续发送,但是这是又会立即执行第二条命令,所以整个过程循环可能根本就没有起到延迟作用。

由于以上原因,我们需要一种更好的方法来使脚本暂停一段时间。

MUSHclient在新版本中开始支持 Lua脚本,通过 Lua,这个问题终于得到了解决。下面的脚本显示了解决这个问题的方法。你需要把这些脚本写入你的脚本文件里面,以便所有需要暂停时间的触发器和别名调用(共享)。

实现这个功能的基本思路是使用 Lua 的线程模式。我们首先定义一个协同程序(co-routines)或者线程(threads),它可以在需要暂停的时候把自己挂起(暂停),然后把执行权限交还给 MUSHclient。

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容       客户端  MUSHclient 
本文评论   [发表评论]   全部评论 (0)
内容推送
52mud提供
收听52mud微信公众平台
52mud官方微信公众平台
热门评论