北大侠客行mud1Zmud721--教程MUD,原文为Multi-UserDungeons——多人城堡游戏,中文简称为“泥巴”。网友们一般戏称玩MUD为“挖泥巴”。要挖“泥巴”,首先要找把好“锄头”,Zmud就是其中的佼佼者。本文是结合我自己的使用心得和Zmud的帮助文档写的教程,希望能对大家有所裨益。1.Zmud简介Zmud是zuggsoft公司出品的MUD客户端程序,提供了许多有用的工具,例如别名(Aliases),触发(Triggers),宏(Macros),变量(Variables),按钮(Buttons〕,地图(Map),数据库(DB)等,将你从简单重复的机械操作中解脱出来,更好的享受MUD的世界。目前常用的Zmud版本有两个:Zmud4.62和Zmud7.21。7.21比4.62拥有更多的功能,如:数据库(DB),脚本支持(JS、VB),多行触发(Multi-stateTriggers),设置分类(NestedClasses),更强大的地图功能(AutomaticMapping)等;不过7.21对中文的支持不是很好,如变量中“可”、“客”“盔”等字会出现乱码,而4.62表现相对好些。除此之外,两者在使用方面大同小异,掌握了任一个版本都能使你在MUD世界中如虎添翼。Zmud7.21窗口介绍北大侠客行mud2面板.jpg(146.67KB)2009-2-511:21AM首先是标题栏,在标题栏的右边有六个按钮,其中三个是我们常见的最小化、最大化、关闭按钮。剩下的三个“1”是使窗口横向扩大到和桌面同宽;“2”是将窗口卷起到标题栏;“3”是将窗口固定在最前端显示。标题栏的下面菜单栏。紧接着菜单栏的是工具栏,集成了常见的一些功能。从左到右分别是:“chars”是角色数据库,点这个可以连接新的mud和角色;“settings”是设置,点击可以打开设置编辑窗口,进行触发、别名等的修改编辑;“classes”是类;“aliases”是别名;“variables”是变量;“paths”是路径;“triggers”是触发;“macros”是宏(快捷键);“buttons”是按钮;“prefs”是zmud的设置,包括字体、颜色等;“map”是打开地图;“DB”是打开数据库;“quit”退出Zmud。工具栏的下方是多游戏标签,如果开了多个游戏或者#cap的信息可以在这里点击相应的标签进行切换。接下来就是显示窗口了,那些花花绿绿的游戏信息都在这里显示。有时候游戏刷屏太快了找不到自己需要的信息怎么办?没关系,Zmud提供了一个分割栏,如上图所示,分割栏上部的窗口是静止不动的,下部的窗口会滚动,这样就北大侠客行mud3不怕因为刷屏而找不到需要的信息了。打开分割栏的方法是点击图中“6”,再点击一次就可以关闭分割栏。显示窗口下方的是状态栏,可以在settings窗口中增加并编辑“newstatusbar”来显示各种游戏信息,如护镖、胡一刀等任务的信息。状态栏上“4”是本次游戏连线的时间,“5”是定时器时间。最后的是命令栏,在这里可以输入各种命令,包括游戏命令和zmud命令,zmud会先将命令进行解析再决定命令该发往何方,比如输入“#alkkill”就会在设置中增加一个alias,而输入look则发往mud服务器。命令栏上点击“7”可以查看并选择最近输入的命令。“8”是命令解析按钮,关掉的话输入的命令将不进行解析而直接发往mud服务器。“9”是触发开关按钮,关掉会停止触发。“10”是系统时间。2.进入MUD世界首先下载Zmud,北大侠客行主页上提供了北大侠客行专用的Zmud4.62和7.21的版本。然后运行Zmud,选择北大侠客行即可进入游戏,这就不多说了。3.Zmud设置3.1.颜色设置Zmud4.62:查看——参数设置——颜色,其中“讯息颜色”是指Zmud软件出现的一些讯息的颜色,如“Connectedtohostpkuxkx.net”;“回应颜色”是输入指令的颜色;“默认颜色”是从MUD接受的文字颜色,也就是游戏显示的中文字的颜色,这也是我们需要调整的颜色,以符合个人喜好;“高亮颜色”是显示高亮文字的颜色;“状态窗口颜色”是显示状态窗口的文字。Zmud7.21:View——Preferences——Colors,在右边的颜色小框上点击可以更改颜色。3.2.字体设置Zmud4.62:查看——参数设置——字体;Zmud7.21:View——Preferences——Fonts。4.Zmud常用功能4.1.类(Class)类(Class)可以将触发分门别类的放置,使得在编写机器人时显得条理清晰。北大侠客行mud4class.jpg(75.76KB)2009-2-609:08PM上图是Zmud7.21的设置编辑窗口,从图中可以看到,7.21中的类好比文件夹,各种设置就是文件,并且文件夹可以嵌套,这使得我们在编辑机器人时可以将不同功能的触发等放入不同的类,便于管理。北大侠客行mud5class2.jpg(56.43KB)2009-2-609:08PMZmud4.62中同样有类,不过比较简单,并且不能支持类的嵌套。我们可以很方便的用#T+、#T-命令来打开或关闭某一类。比如:#T+fight就是打开fight这个类,#T-fight就是关闭。Zmud7.21中可以设置某一类连线的时候是打开还是关闭的,方法是:选中某一类,在properties栏下面有Enable/DisableclasswhenconnectingtoaMUD,勾选对应的就可以了。但是7.21没有提供对单个触发的该项选择,而4.62恰相反,没有类的连线打开/关闭选项,却有单个触发的连线打开/关闭选项。4.2.别名(Aliases)1、什么是别名?别名就是用一个短命令来替代一个长命令。比如我们在命令栏输入#alkb{killbing},之后我们就可以用kb来代替killbing。2、别名的创建别名的创建有三种方法:(1)在命令栏输入#alshortcut{command};(2)在命令栏输入一个命令后,按ctrl+A,然后在弹出的对话框中输入别名;(3)在工具栏中点击Aliases图标,然后创建一个新别名。3、别名的几种用法最简单的就像#alkb{killbing};有时候我们需要对多个具有相同名字的npc进行动作的时候,比如保卫的时北大侠客行mud6候要对多个骑兵下kill,可以#alkb{#3killbing%i},这样当输入kb的时候相当于输入了killbing1,killbing2,killbing3;对于有偷袭武功的门派,偷袭时要指定招式的使用对象,比如要偷袭xiaoer就要输入performhand.fuxuexiaoer,我们可以设定这样的alias:#alfx{performhand.fuxue%1},这样我们只要输入fxxiaoer就能达到相同的偷袭目的;在设定别名的时候还可以使用变量,比如#alkk{follow@npc;kill@npc}。4.3.触发(Triggers)1、什么是触发触发好比是一个反射弧,对接收到的特定内容做出特定的反应,触发也类似于一般编程结构中的IF……THEN结构。其中有三个主要的参数:Pattern、Command、Enable/Disable。说的通俗一点,当接收到Pattern的时候,自动输入Command.而Enable/Disable可以令其活动或不活动。另外Class可以为TRIGGERS定义一个类,方便操作。2、触发的制作触发的制作很简单,可以直接在命令栏输入,例如输入#tr{*连线进入这个世界。}{hi},这样当任意玩家在客栈连入游戏时,你都会和他们打招呼。或者可以在zmud的设置编辑窗口里new--newtrigger,然后在trigger的编辑窗口中的pattern栏输入要触发的内容,在value栏输入触发后发送的命令,这样一个触发就做好了。3、字符串匹配(PatternMatching)通过字符串匹配可以制作自己想要的触发并且可以将特定内容抓取为变量。以胡一刀任务的盗宝人为例,盗宝人的描述如下:盗宝人「九纹龙」韩杰(Lushele)可以发现盗宝人的描述中不变的内容是“盗宝人「XX龙」中文名(英文名),根据这个我们就可以制作一个触发来攻击盗宝人。#tri{%s盗%s宝%s人%s「*龙」(*)~((*)~)}{hit%lower(%2);name_ch=%1;name_en=%2}这个触发是只要碰到盗宝人,不管他叫什么名字都会自动进行攻击并且抓取盗宝人的中文名和英文名到相应的变量,其中函数%lower()是将英文字符串转换为小写,*、~、%s就是字符串匹配。zmud7.21中触发的匹配模式有两种:一种是zmud自身的匹配,另一种是正则表达式匹配。我们来看一下zmud自身的字符串匹配:*通配任何数字、字符或空白?通配任何单个字符%d通配任何数字(0-9)%n通配以+或-开头的数字%w通配任何字母(a-z)%a通配任何数字和字母(等于%d+%w)%s通配任何空白(spaces,tabs)北大侠客行mud7%x通配任何非空白%y通配任何非空白(和%x类似,不过匹配句子的开头或结尾)%p通配任何标点符号%q通配任何标点符号(和%p类似,不过匹配句子的开头或结尾)%t通配一个方向命令%e通配ESC()matchESCcharacterforansipatterns[range]通配任何在range范围内的字符^强制PATTERN在行头时显示,TRIGGERS才有作用,这就是通常说的顶行触发。$强制PATTERN在行尾时显示,TRIGGERS才有作用(pattern)将匹配的pattern传递给参数%1~%99~提示系统将~后字符当作字符而不是wildcards~~matchaquotecharacterverbatim{val1|val2|val3|……}通配多个特殊的字符用法举例:#tri{你从*的尸体身上搜出一件{布衣|长袍|道袍|袈裟}}{dropcloth}@variable通配变量variable{^string}在PATTRN中不核对该字符串同时你可以在PATTERN中运用变量,变量在PATTERN起作用之前,会被替代。&nnmatchesexactlynncharacters(fixedwidthpattern)&VarName将匹配的字符串赋值到变量VarName中&varname用法举例:#tri{【精神】%s&jingshen%s/%s&shen_max%s~[100~%~]%s【精力】%s&jingli%s/%s&jingli_max%s~(+0~)}当这个触发语句被触发后,会自动生成jingshen、shen_max等四个变量并赋给相应的值。如果想要变量只匹配字母或数字,可以采用这样的格式:#TRIGGER{Youget&%dGoldcoins}对于正在表达式,网上有很多详细的说明,这里就不赘述了。这是mushclient的正则表达式的说明网页:、zmud7.21中触发编辑选项详解北大侠客行mud8pattern.bmp(787.5KB)2009-2-1909:42PM触发的类型(TriggerTypes)zmud7.21提供了很多的触发的类型,不过平常我们用到的只有一种。1、pattern:这是我们常用的;2、Expression:表达式;3、Alarm:每隔一定时间或在某个时间点执行命令;4、CommandInput:输入的命令;5、SkipLines:6、Wait:7、LoopPattern:pattern匹配多次;8、LoopLines:9、LoopExp:10、Duration:11、Manual:12、MXP:13、Reparse:14、GSL:15、MCP:在触发options选项中勾选temporary,当trigger被触发一次后就会被删除,是临时触发。触发测试(test):在zmud中还