找回密码
 注册
搜索
查看: 4423|回复: 4

【Mush教学系列】小猪猪Mush教学系列-1 FAQ

[复制链接]
门派:古墓派
发表于 2019-2-23 17:20:11 | 显示全部楼层 |阅读模式
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的一个例子:

  1. <aliases>
  2.   <alias
  3.    name="sz" -- alias的名字
  4.    match="^sz(.*)$" --正则表达式,^代表顶格,()代表引用括号里的内容,$代表行的结束,.*代表括号中的任何字符
  5.    enabled="y" --是否启用
  6.    regexp="y" --是否带有正则表达式
  7.    send_to="12" --send_to 12是把alias发送到哪里执行,12是代表脚本,就是会把alias调用的内容发送给脚本去执行,这里面还有很多其他选择,大家可以到上面的接口函数文档中寻找具体解释。
  8.    sequence="100"  --这是alias的优先级,设置为100,如果有其他同名字的alias,设置为90,则会优先调用90的。
  9.   >
  10.   <send>goto("%1")</send>  --这里是发送给脚本的具体内容,%1就代表上面正则表达式中括号里的文字
  11.   </alias>
  12. </aliases>
复制代码


这里引用一个公版自带的alias作为例子。首先,这个alias的作用是让你去一个地方,使用方法如:sz 扬州当铺

我在alias的定义中加入了各个部分的解释,给大家参考。

8. 如何在alias或者trigger中使用变量?

例子如下:
  1. <triggers>
  2.   <trigger
  3.    custom_colour="7"
  4.    enabled="y"
  5.    expand_variables="y"  --打开后,下面的@target会被替换为target变量的内容,否则不替换
  6.    match="@target hits you!"  -- @target是变量引用,如果target是xxx,那触发就是xxx hits you!
  7.    sequence="100"
  8.   >
  9.   <send>punch @target</send> --这里同样的。
  10.   </trigger>
  11. </triggers>
复制代码


9. 如何在机器人逻辑中加入等待,类似zmud中的#wa?

可以使用DoAfter函数,例子如下:
doafter函数的含义是,在做某个动作以前,等几秒钟。

  1. <aliases>
  2.   <alias
  3.    match="eat"
  4.    enabled="y"
  5.    send_to="12"
  6.    sequence="100"
  7.   >
  8.   <send>
  9. Send "open bag"
  10. DoAfter (1, "get food bag")
  11. DoAfter (3, "eat food")
  12. DoAfter (4, "close bag")
  13. </send>
  14.   </alias>
  15. </aliases>
复制代码


在公版中,你可能也会看到这样的代码:

也是类似的功能,含义是等2秒钟,然后执行main()函数,注意一点,如果在end后面还有其他代码,这些代码并不会等待2秒钟哦。因此最好把这种wait的代码放到function的最后来执行。

  1.     wait.make(function()
  2.        wait.time(2)
  3.        main()
  4.     end)
复制代码


10. mushclient是否可以连接数据库?

答案是肯定的,mushclient支持 mysql等数据库,目前公版中貌似没有用到这种高级功能,所以不过多赘述。


上面的内容是部分引用于http://mushclient.com网站,并加入小猪猪自己的一些解释,希望能给新来的同学一些帮助。

祝大家早日打傻啊!

评分

3

查看全部评分

门派:明教
发表于 2019-2-23 18:24:41 | 显示全部楼层
这个真是专业啊!英文原版网站都转引了!必须点赞啊!

话说链接数据库那个我一直想搞来着,比如小猪猪你做得统计大家武当任务完成效率,就可以存储进数据库文件里的。

还有对一些任务,pk的数据进行分析,生成图表,也需要数据库支持!

要是能实现就太棒了!

门派:古墓派
 楼主| 发表于 2019-2-23 19:06:12 | 显示全部楼层
kkfromch@tj 发表于 2019-2-23 18:24
这个真是专业啊!英文原版网站都转引了!必须点赞啊!

话说链接数据库那个我一直想搞来着,比如小猪猪你 ...

m的数据库里啥都有。                     
门派:姑苏慕容
发表于 2019-6-6 06:25:52 来自手机 | 显示全部楼层
了解下不错不错阿弥陀佛
门派:不明
发表于 2019-9-6 08:02:18 | 显示全部楼层
请教一下,为什么我连上以后,游戏里面显示的乱码而不是中文呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-8 08:30 , Processed in 0.033654 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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