|
Mushclient是Nick Gammon大神写的一个mud客户端工具。
作者的网站:http://mushclient.com/mushclient/mushclient.htm
推荐使用的版本是4.94。如果想使用原版可以从上面的网址下载。
简单对比Zmud的话,mushclient因为有lua,python等语言扩展,所以可编程性要比Zmud强很多。
Zmud可以做的事情,mushclient一定可以做到,反之则不一定,推荐大家尝试使用。
FAQ:
1. 我的机器人遇到了问题,如何提问:
请参考下面的方法,贴出你的触发器代码,并把报错信息一同发到论坛,以便大家帮助你判断。
http://mushclient.com/copying
2. xml格式的触发器如何导入到mushclient中:
请参考下面的方法,可以把代码导入到mushclient里:
http://mushclient.com/pasting
3. 我想开始尝试做mushclient的脚本,如何开始?
建议从下面的地址开始了解基本功能
http://mushclient.com/scripting
4. 我应该使用哪种脚本语言?
mushclient作者强烈推荐lua语言作为扩展脚本语言,目前的公版机器人也是用lua写的,因此建议使用lua作为编程语言。
另外,mushclient也支持vb,python,php,perl等其他语言,如果你更习惯使用他们,应该也是可以的。
5. mushclient有哪些接口函数,文档在哪里?
文档地址:
http://mushclient.com/docs
接口函数地址:
http://mushclient.com/functions
mushclient作者提供了很多用于操作mushclient内部对象的函数,比如enable trigger,create trigger等等,都可以在上面的地址中找到。
6. 什么是正则表达式,该如何使用他?
mud就是处理文字信息,处理文字信息最强的工具就是正则表达式,mushclient作者提供了一些帮助文档,如下:
http://mushclient.com/mushclient/regexp.htm
http://mushclient.com/pcre/pcrepattern.html
7. 使用alias的一个例子:
- <aliases>
- <alias
- name="sz" -- alias的名字
- match="^sz(.*)$" --正则表达式,^代表顶格,()代表引用括号里的内容,$代表行的结束,.*代表括号中的任何字符
- enabled="y" --是否启用
- regexp="y" --是否带有正则表达式
- send_to="12" --send_to 12是把alias发送到哪里执行,12是代表脚本,就是会把alias调用的内容发送给脚本去执行,这里面还有很多其他选择,大家可以到上面的接口函数文档中寻找具体解释。
- sequence="100" --这是alias的优先级,设置为100,如果有其他同名字的alias,设置为90,则会优先调用90的。
- >
- <send>goto("%1")</send> --这里是发送给脚本的具体内容,%1就代表上面正则表达式中括号里的文字
- </alias>
- </aliases>
复制代码
这里引用一个公版自带的alias作为例子。首先,这个alias的作用是让你去一个地方,使用方法如:sz 扬州当铺
我在alias的定义中加入了各个部分的解释,给大家参考。
8. 如何在alias或者trigger中使用变量?
例子如下:
- <triggers>
- <trigger
- custom_colour="7"
- enabled="y"
- expand_variables="y" --打开后,下面的@target会被替换为target变量的内容,否则不替换
- match="@target hits you!" -- @target是变量引用,如果target是xxx,那触发就是xxx hits you!
- sequence="100"
- >
- <send>punch @target</send> --这里同样的。
- </trigger>
- </triggers>
复制代码
9. 如何在机器人逻辑中加入等待,类似zmud中的#wa?
可以使用DoAfter函数,例子如下:
doafter函数的含义是,在做某个动作以前,等几秒钟。
- <aliases>
- <alias
- match="eat"
- enabled="y"
- send_to="12"
- sequence="100"
- >
- <send>
- Send "open bag"
- DoAfter (1, "get food bag")
- DoAfter (3, "eat food")
- DoAfter (4, "close bag")
- </send>
- </alias>
- </aliases>
复制代码
在公版中,你可能也会看到这样的代码:
也是类似的功能,含义是等2秒钟,然后执行main()函数,注意一点,如果在end后面还有其他代码,这些代码并不会等待2秒钟哦。因此最好把这种wait的代码放到function的最后来执行。
- wait.make(function()
- wait.time(2)
- main()
- end)
复制代码
10. mushclient是否可以连接数据库?
答案是肯定的,mushclient支持 mysql等数据库,目前公版中貌似没有用到这种高级功能,所以不过多赘述。
上面的内容是部分引用于http://mushclient.com网站,并加入小猪猪自己的一些解释,希望能给新来的同学一些帮助。
祝大家早日打傻啊! |
评分
-
3
查看全部评分
-
|