北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 6012|回复: 5

【转载】zmud内键指令详解

[复制链接]
发表于 2011-12-10 11:07:42 | 显示全部楼层 |阅读模式
本帖最后由 cangshu 于 2011-12-12 03:08 AM 编辑

格式: #abort

描述: 终止此指令之后的命令。

举例:get all from corpse;#abort;get silver from corpse

格式:#action 触发器 命令 类名

描述:当mud返回信息与触发器匹配时指令命令。

举例:#action {看起来钟四嫂想杀死你} {#beep;kill zhong} killnpc

格式:#add 变量名 表达式

描述:把一个表达式的结果与变量相加后赋给变量,如果类型是字串则添加到变量尾。

举例:#add golds 10 (注---gold是存储黄金数量的变量名)

格式:#alias 快捷命令名 命令

描述:用一个简单的命令名替代一个复杂命令。

举例:#alias kk {kick npc;kill npc}

格式:#alarm 时间匹配 命令

描述:当mud时间或系统时间到某一特定值时执行命令。

举例:#alarm -30:00 {save} #alarm 3:00:00 {say "为什么还不休息?明天要工作呢!"}

格式: #all 命令

描述: 所有窗口同时执行命令。

举例: #all save

格式: #backup

描述: 从路径记录中删除最后一步,并返回上一步位置。

举例: #backup

格式: #beep 表达式

描述: 鸣笛声。

举例: #beep #beep 16 (播放windows事件16的声音)

格式: #button 表达式 字串

描述: 激活按钮,相当于点击按钮。表达式为按钮序号,字串为按钮的显示。

举例: #button 1

格式: #c+ (#c-)

描述: 捕获(停止捕获)mud输出到一个zmud editor窗口。

举例: #c+ temp #c- temp (zmud editor窗口名为temp)

格式: #case 表达式 命令1 命令2 命令3 ....

描述: 根据表达式的值分情况执行命令。表达式为1,执行命令1,依次类推。

举例: #case 1 {save} {quit} #case %random {xixi} {hi} {smile}

格式: #capture 表达式 窗口名

描述: 类似#c+ #c-

举例: #capture

格式: #character

描述: 把当前角色的名字送给mud。

举例: #character

格式: #close 文件号

描述: 关闭一个文件。

举例: #close 1 #close tell (关闭窗口名为tell的窗口)

格式: #class 字串 表达式

描述: 设置类的状态。

举例: #class automapper 1 (打开automapper类) #class (查阅所有类的状态)

格式:#clr

描述:清屏。

举例:#clr

格式:#color 色彩 触发器

描述:改变文本色彩或设置一个色彩机器人。

举例:#color red {tells the group}

格式:#connect

描述:重新连接。

举例:#connect

格式: #cr

描述: 送一个空行给mud,相当于换行。

举例: #cr

格式: #cw 色彩

描述: 设置机器人触发器的色彩。

举例: #trigger {闲聊} {#cw red}

格式:#dde 字串 字串 字串

描述:把一个dde宏送给dde服务。(dde 动态数据交换)

举例:#DDE NETSCAPE WWW_OpenURL {http://pobox.com/~~zugg/zmud.html}

格式: #debug 文件名

描述: 切换调试状态。

举例: #debug temp

格式:#default literal

描述:把所有特殊角色设为缺省,当前值被存储到堆栈。原值可用#nodef恢复。

举例:#default

格式:#disconnect

描述:断开当前连接。

举例:#trigger {看起来(%x)想杀死你} {halt;#disconnect}

格式:#dump

描述:存储参数。

举例:#dump

格式:#echo 字串

描述:回显字串到zmud 窗口。

举例:#echo xixi

格式:#earse 文件名

描述:从当前目录或磁盘删除一个文件。

举例:#earse temp.tmp

格式:#evaluate 表达式

描述:回显表达式的值。

举例:#evaluate 100/4

格式:#execute 命令

描述:执行一个命令。

举例:#execute hp

格式:#file 文件号 文件名

描述:打开一个文件。

举例:#file 1 test.txt

格式:#find

描述:在地图中定位当前位置。

举例:#find

格式:#forall 字串 命令

描述:循环执行列表中命令。

举例:list=word|ring|shield #FORALL @list {repair %i}

格式:#freeze 表达式

描述:冻结屏幕。

举例:#freeze 1 #freeze

格式:#function name literal

描述:保存变量的功能定义。

举例:#FU fact {%if(%1<=1,1,%1*@fact(%eval(%1-1)))}

   #EVAL @fact(5) #SHOW @fact(5)

格式:#gag 触发器

描述:从机器人触发器中删除行。

举例:#trigger {chat} {#gag 2}

格式:#help literal

描述:从命令行中得到帮助。

举例:#help alias

格式:#h+ (#h-)

描述:从命令历史记录表中提取下(上)一个命令。

举例:#h+ #h-

格式:#highlight 触发器

描述:高亮度显示触发器。

举例:#highlight xixi

格式:#history 表达式

描述:提取命令历史记录表中第几个命令。

举例:#history 3

格式:#host

描述:显示当前mud主机的名字。

举例:#host

格式:#if 布尔式 命令1 命令2

描述:如果布尔式为真则执行命令1,否则执行命令2。

举例:#if @gold<1000 {say 玫儿姐姐好} {say 玫儿姐姐不好}

格式:#ignore 类名

描述:切换机器人开关。

举例:#ignore

格式:#input

描述:把特殊文本放入命令行中。

举例:#input hp

格式:#key 键名 命令

描述:定义宏键。

举例:#key F1 eat ya #key he jiudai

格式:#killall

描述:删除所有zmud定义。(包括alias,trigger等)

举例:#killall

格式:#log 文件名

描述:打开log文件,或设置log开关状态。

举例:#log #log xxx.txt

格式:#read 文件名 表达式

描述:读取执行一个文件脚本,或读取文件记录。

举例:#read xxx.txt 10

格式:#loop 范围 命令

描述:循环执行命令。

举例:#loop 3 north

格式:#mark

描述:开始记录路径。

举例:#mark

格式:#math 变量名 表达式

描述:运算表达式,结果赋给变量。

举例:#math x 13-5

格式:#media 命令

描述:送一个命令给多媒体设备。

举例:#media next (播放下一音轨)

格式:#memory

描述:显示剩余内存。

举例:#memory

格式:#menu 字串

描述:执行菜单中的命令。

举例:#MENU {FILE|OPEN}

格式:#mess 字串

描述:在另一窗口中显示信息。

举例:#mess 警告

格式:#name 字串

描述:改变当前任务的名字。

举例:#name zmud

格式:#noop

描述:空指令。

举例:#noop

格式:#nodef

描述:参考#default。

举例:#nodeg

格式:#ok

描述:路径定义成功。

举例:#ok

格式:#path 路径名

描述:路径保存。

举例:#path xxx

格式:#pick 命令1 命令2 命令3

描述:选择执行命令。

举例:#pick {save} {quit} {xixi}

格式:#play 文件名

描述:播放多媒体文件。

举例:#play xxx.mid

格式:#prompt 变量名 字串 字串

描述:用户输入变量值

举例:#prompt xxx

格式:#pw

描述:把你的密码送给mud

举例:#pw

格式:#retrace 路径名

描述:跟踪路径。

举例:#retrace xxx

格式:#record

描述:记录命令组到快捷方式中(alias)

举例:#record xxx

 

格式:#load 文件名 .mud

描述:装载存盘文件。

举例: #load xxx.mud

格式:#rename 名字1 名字2

描述:更改变量快捷机器人名字。

举例:#rename xxx xxx1

格式:#reset 文件号

描述:初始化文件。

举例:#reset 1

格式:#say 字串

描述:在zmud窗口显示字串,不送到mud。

举例:say xixi

格式:#save 文件名

描述:存储当前设置到一个mud文件。

举例:#save xxx.mud

格式:#scroll 触发器

描述:显示触发的字串。

举例:#scroll 你 3

格式:#send 文件名 字串

描述:发送文件中所有与字串吻合的到mud optionally prefixed

举例:#send xxx.txt xixi

格式:#session 字串 表达式

描述:打开一个新的任务。

举例:#session 10.89.64.4 6666

格式:#show 字串

描述:回显字串。

举例:#show xixi

格式:#slow 路径名

描述:慢速行走。

举例:#slow xxx

格式:#status literal

描述:显示定义状态窗口。

举例:#Status {Gold: @gold Tank: @tank}

格式:#step 路径名

描述:单步行走。

举例:#step xxx

格式:#stop

描述:停止慢速行走。

举例:#stop

格式:#stwin literal

描述:显示定义状态窗口。

举例:#Stwin {Gold: @gold Tank: @tank}

格式:#Substitute 触发器

描述:Substitute文本。

举例:#TRIGGER {(*) tells you,} {#SUB {%1:}}

格式:#t+ (#t-) 类名

描述:打开(关闭)机器人

举例:#t+ xxx #t- xxx

格式:#t?

描述:显示异步时钟的秒数。

举例:#?

格式:#tab 命令名

描述:设置自动填充命令。

举例:#tab abcded (使用时按'a'后按下'tab'键)

格式:#timer 表达式 字串 表达式

描述:设置异步时钟。

举例:#timer

格式:#trigger 触发器 命令组 类名

描述:生成机器人。

举例:#Trigger {^Username:} {#CH}

格式:#tset 表达式

描述:设置异步时钟秒数。

举例:#tset 20

格式:#type 文件名 触发器

描述:显示文件。

举例:#type xxx.txt

格式:#tzro

描述:tick timer置0。

举例:#tzero

格式:#until 布尔式 命令

描述:执行命令直到布尔式为真。

举例:#until (@x=1) {hp}

格式:#unalias 名字

描述:删除alias。

举例:#unalias xxx

格式:#unkey 名字

描述:删除key。

举例:#unkey xxx

格式:#untrigger 名字

描述:删除trigger。

举例:#untrigger xxx

格式:#unvar 名字

描述:删除variable。

举例:#unvar xxx

格式:#url 字串

描述:用浏览器打开该网页。

格式:#variable 变量名 表达式

描述:变量赋值。

举例:#var x 111-89

格式:#version

描述:显示zmud版本。

举例:#version

格式:#wait 表达式

描述:延迟。

举例:#wait 2000

格式:#while 布尔式 命令

描述:当布尔式为真执行命令。

举例:#while (@x<1) {hp}

格式:#write 文件号 字串 表达式

描述:向文件写一个记录

举例:#WRI 6 {this is record 3} 3

格式:#yesno 字串 字串 字串

描述:生成问题确认对话框。

---------------------------------------------

高级的编辑:

除了从命令输入栏里输入单独的命令行外,zmud还支持由ANSI构成的复杂信息。

你可以按ctrl-enter或在window菜单里选择editor来激活它。

在zmud的命令行编辑器里,你可以象使用大多数的编辑器一样使用他。

你可以键入很长的文本,可以让光标全屏幕移动。可以剪贴,拷贝,等操作。

在16位版本的zmud里。文本的最大限制为16000行。

编辑器的菜单使你可以从一个文件中读取文本,或将当前的文本储存起来。

Import 的菜单是插入一个文件在当前的光标位置。Send 菜单是将编辑器里

的内容发送到mud里去。你可以在options里选择strings来改变在文本发送到mud前,

你是否要在每一行的开始加上一段相同的文本或用一段文本代替你文本里所有的空行。

Capture 命令是使你可以将mud输出的多行信息输入到你的编辑器里。

#capture 命令可以在触发器里使用以便于将mud的输出调入编辑器。

在编辑器里你还可以改变字体大小格式及其颜色等等。



高级的程序设计:

在前面的变量和触发器里我们讲了一些zmud基本的编程技术。

实际上zmud本身带有一种有力的程序语言,你仅仅是接触到了他的表面而已。

在下面的章节里我们将要详细的讲述zmud编程的每一个细节和大量的函数,

如果你真正读懂了他们,你就会发现zmud可以为你做任何你想让他做的事情。



命令和语法:

每当你输入一行命令按下enter键时,这行命令就将被进行语法分析。一般分析分为下面几步:

检测语句分隔符号";" ,然后将语句分隔;

检测语句的中心;

执行语句。

当命令行被执行,每一类的参数都将被定义,而不管他是否已经被赋值,改变或求值。

比如:我们用 #var 的命令得到一个已经被扩充的字符串的参数,

#var temp 6 赋值6给变量temp

#var hp {100/@temp}

#show @hp 将会显示 100/6;

可是,#math 命令将会得到一个可以估计的表达式的数:

#var temp 5

#math hp 100/@temp

#show @hp 将会显示20

而#func 命令将会得到一个独自在定义变量时左边的字符。

#var temp 5

#func hp 100/@temp

#show @hpp

关于变量的最后一句话:每一个变量必须由空格分开,比如@a如果要被使用,

@a ing 是合法的,@aling 将会被认为是一个新的变量。不过你可以用{}括号

将变量名括起来,比如@{a}ing就合法了。

你可以用以上的语法去完成间接的变量寻址。比如@b的值为a,提交@{@b}将会

扩展变量@b,结果就是@{a}被接受。

如果你老是想使用zmud内定的特殊符号,比如@ 或%你可以使用符号(~)来解释他,

比如zugg ~@zuggsoft.com就是告诉zmud 不要再去将@做为一个变量的定义来解释。



函数:

在变量之外,zmud 还容许你定义函数,函数很象一个带有参数的变量。

除了函数可以在命令行扩充外,在调用的语法上也有一点不同。

定义函数和定义变量一样,使用#VARIABLE ,在定义时,

我们可以使用%1,%2,....比如#VARIABLE kk {kill %1;kick %1}

定义了一个函数叫@kk,现在我们输入所需的参数在括号里,

@kk{kid}将会执行kill kid和kick kid 两个指令。

讲到这里大家一定觉得这和我们前面定义的别名kk没什么区别,

但实际上,两者是不同的,这里的函数@kk 可以在命令行的任何地方调用。

为了使zmud更有用,zmud预定义了一些函数,

他们提供了一些很有力的触发器处理工具;

在你自己的函数里再加上这些特殊的函数,还有什么zmud的天空能阻止你的飞翔呢?!



预定义的函数:

%abs(i) 返回i的绝对值;

%additem(s,list) 增加字符串s到指定的字符串list里;

%alias(s) 展开(得到)别名s的值;



%ansi(fore,back) 返回fore和back颜色的ansi 代码;

例如:#show %ansi(high,red)hello %ansi(blink.blue,white)word

将会显示亮红色的hello 和在一个白色的底上闪烁的蓝字word



%begins(s1,s2) 如果s1开始时含有s2,值为ture;

%btncol(button,back,fore) 改变按钮的颜色;

%btnimage(button,filename)改变按钮上的图象;

%case(i,s1,s2,s3..) 如果i=1,返回s1;如果i=2,返回s2...最多可以有8个;

%char(i) 返回i的ascII代码,也用于将系统字符(;:@%!.)转化为他们最近的值。

%color(fore,back) 把颜色的描写转换为属性值;

%concat(s1,s2,s3..) 返回所有的字符串并将其连接在一起,最多有9个;

%copy(s,i,n) 返回字符串s的一部分;规则是从字符i处开始,返回n个字符;

%ddeopen(serv,topic) 打开一个DDE连接到服务器serv,提交名为topic;

%ddeclose 关闭DDE连接;

%dde(serv,topic,item) 从一个DDE服务器serv上接受数据;

%ddemacro(serv,topic,s) 告诉DDE服务器serv执行s所包含的宏;

%ddepoke(serv,topic,item,value) 从value里poke出数据到DDE服务器;

%delete(p,i,n) 返回一个被从位置i删除了n个字符的字符串s;

%delitem(s,list) 删除项目s从字符串list中;

%ends(s1,s2) 如果s1以s2结束返回ture;

%exec(s) 把s当作命令来执行,返回得到的结果并将其用|字符隔开;

%expand(s) 用s来扩展一个变量或函数;

%eval(p) 将p作为表达式评估,返回结果;



%format(f,a,b,c,d,..) 使用一字符串的格式来规范a,b,c..的值;

格式的限定有一些特殊字符(%w.dx),w是指长度;d表示小数点后的位数;

x是格式的类型(s表示字符串,n表示数字(每3格打个逗号),f表示小数点,m表示钱)

例如:#show %format('&10.0n),123456) 将会显示有3个空格的123,456

#show %format('&3.of &s',123,"coins")将会显示123 coins



%getglobal(name) 返回name这个通用变量的值(储存在INI文件里);

%grep(i,s) 搜索文件i,并返回和s图案相匹配的一行;

%if(expression,true-value,false-value)如果expressiong(语句或表达示)是ture;

返回true-value;相反返回false-value;

%insert(p,s,i) 返回在位置i插入了图案p的字符串s;

%ismember(s,list) 如果s在list中,,返回值ture;

%isnumber(s) 如果s是个有效的数字则返回ture;

%left(s,n) 从字符串s里返回最左边的n个字符;

%leftback(s,n) 返回s最左边的一部分,从末尾开始的n个字符;

%len(s) 返回字符串s的长度;

%lower(s) 将字符串s全部转化为小写;

%max(a,b,c,...) 返回a,b,c...等中最大的一个值;

%min(a,b,c,...) ..................小........;

%mod(a,b) 给a取模b;

%null(s) 如果s是空,则返回ture;

%numwords(s,d) 返回在字符串s里的单词数,用字符d做间隔,默认的d是空格;

%number(s) 将一个字符串转成数字;

%pick(s1,s2,s3,...) 显示一个选择列表,让使用者可以单选或多选,

如果多选,则返回的值用|隔开;详细请看#pick的介绍;

%pos(p,s) 返回图案p在字符s里的位置,如果没有返回0或false;

%proper(s) 转换s为合适的格式(除第一个字母外,全是小写);

%prompt(v,p) 提示用户变量 v的值;如果p是在场的,就使用不显示的的方式输入;

%random(i,j) 返回一个大于等于i小于等于j的随机的整数,如果j省略了,  

那么i就是最大值,0是最小值;

%read(i,rec) 从i文件里读入指定的record ,如果rec被省略,

零就作为假定的,在文本文件里,rec就是每行的行数(0就读下一行)

%remove(p,s) 从字符串s里返回子字符串p;

%repeat(s,n) 重复返回n次s;

%replace(s,p,r) 当所有的p的事件被r所代替,返回s;

%right(s,n) 返回s最右边部分的n个字符;

%rightback(s,n) 返回s最右边的n个字符;

%setglobal(name,value) 设置通用的变量名(储存在ini文件里)

%time(format) 返回当前的日期或时间,如果format被忽略,一个长的格式将被使用,

另外使用字符dd,mm,mmm,yy,hh,mm,ss等在format字符串里将会返回当前时间或日期的一部分;

%trigger(class) 如果特定的触发器class被激活,则返回ture;

%trim(s) 清理s开始和末尾的空格;

%trimleft(s) 清理s最左边(最开始)的空格;

%trimright(s)...... 右边 末尾........;

%upper(s) 转化s为大写字母;

%word(s,i,d) 返回ith 的单词在字符串s里,用字符d隔开,如果d忽略,就是空格

%write(i,s,rec) 以记录号rec写字符串s进ith文件,在文本文件里,记录号被忽略,

s将被填加到文件,如果rec=0,s被写到文件的末尾。

%yesno(s) 显示一个问题当用户点击yes或no按钮后,返回ture或false.参照#yesno

阅读更多的信息。注意如果你建立两个以上的按钮,返回的将是按钮的数字,

你可以将他与#case 语句连用;如果是两个按钮,0或1会被返回,

你可以将他与#if 语句连用你会发现会出现多么强大的功能。



以下的函数是特定在地图中使用的。[]内的项目表示可选的,

%roomname(room,) 返回或设置一个房间的名字到字符串s

%roomdesc(room,) ....................描写........

%roomnum(room) 返回一个房间数

%roomid(room,) ....或设置一个房间的短名(id)到字符串s;

%roomcom(room,) ..........到一个房间时指定的命令到字符串s;

%roomnote(room,) ..........一个房间的注释到字符串s;

%roomexit(room,) ....................出口描写到字符串s,

在s里这串字符每个方向用|来分隔;

%roomobj(room,) 返回或设置一个房间里的物体数到i;

%roommob(room,) ......................npc数...;

%roomcost(room,) ..........进入一个房间时的花费到i;

%roomkind(room,) ..........一个房间的类型到i;0=正常,1=水里,2=天空,3=陷阱,

128表示不要进入的标志;

%roomflag(room,) ..........一个房间重做的标志到i(0=false,1=true)

%roomlink(room,dir,) 用方向dir返回或设置房间数为i的这个房间的连接,

删除连接用i=-1,如果是一个未知的连接用i=-2;

%roomportal(room,s,,[z]) 返回或设置一个不标准的出口或入口,

将房间号i和区域号z赋值给不标准的出口字符串s;

%numrooms() 返回当前区域内的房间数;

%numzones() ........地图....区域..;

%parsemode(i) 返回或设置当前的地图分析模式,i=0表full模式,i=1表示brief模式,

i=2表示look模式;

%walk(i) 返回如果到房间i所得到的快速行走的字符串;

%zonename(zone,) 返回或设置一个区域的名字到字符串s;

%zonenum (zone) ....一个区域数。



zmud 的命令说明:

下面是zmud的命令,在使用中全部用#开头,大写的部分表示这个命令的缩写:

[number] 重复后面跟随的文本number次;例如:#10 study shu  

将会重复执行study shu这个命令10次;



ABort 中断当前命令行其他的语法分析;

例如:look corpse;#ab;get all from corpse

将会只执行look corpse这个命令,get all from corpse 将会被忽略



ACtion 建立或显示一个一个触发器;

例如:#ac {^您的密码是:} {#pw}

将会自动为你输入密码;



ADd 增加一个值到一个变量;

例如:#ac {你捡起(%d)两黄金} {#ad gold %1}

当你捡起2两黄金时,2将会被增加到@gold 变量里



ALArm 建立一个记时器;

例如:#ala -1:30:00 {save} 每隔1小时30分钟自动存一次盘;

#ala -59:(55|56|57|58|59) {#show 60-%1}

在每个小时的最后5秒,在屏幕上显示5,4,3,2,1  

--------------------------------------------------

ALias 建立或显示一个别名;

--------------------------------------------------

ALL 发送一个命令行到所有的窗口;

例如:#all quit 发送quit到所有活动的窗口;

--------------------------------------------------

BAckup 移走最后一次的移动;

例如:如果当前的路是.nsew ,那么键入#ba 将会改变其为.nse

--------------------------------------------------

BEep 响铃或播放wav文件;

--------------------------------------------------

BUtton 触发一个按钮;

例如:#bu 1 将激活第一个按钮;

--------------------------------------------------

C+ 开始记录到一个窗口;

例如 #c+ temp 将开始拷贝所有收到的文本到一个叫temp的窗口;

--------------------------------------------------

C- 停止...........;

--------------------------------------------------

CAPture 记录一行并发送到编辑器或一个窗口;

例如:#trigger {[闲聊]} {#cap chat}

开一个叫chat的窗口供你看mud里的闲聊频道;

--------------------------------------------------

CAse 从列表中选择一个命令;

例如:#case @hp {study}{sleep}

如果@hp是1(或3,5,7...)study 将被执行;否则sleep将被执行;

--------------------------------------------------

CHaracter 返回你扮演的人物的名字;

CLose 关闭一个文件;

CLR 清屏;

--------------------------------------------------

COlor 改变最近一行文本的颜色;

颜色代码值是:

黑色=0;兰色=1;绿色=2;紫色=3;红色=4;紫红色=5

棕褐色=6;灰色=7;黄色=14;白色=15;粗黑=128



如果想让一个颜色更亮丽一些,就在它原来的值上加8,比如9就表示更亮的兰色;

如果是想改变背景的颜色,就将它原来的值乘16;

比如要想得到红色的背景则使用的颜色代码为64;改变前景的字体要再加上128

比如:

#co 159 设置最后接受的一行文本是蓝底粗黑白体(1*16+15+128)

#co red {告诉你}当收到告诉你时将变成红色,不过只是这个短语变红,

如果你想让收到的整句话都如此则:#trigger {告诉你} {#color red};

--------------------------------------------------

CONnect 重新连接当前任务;

CR 发送新的一行(后面无东西就是一个空行);

--------------------------------------------------

CW 把最近一行里匹配的字符上颜色;  

例如:#trigger {告诉你}{#cw red}

当收到的一行文本里有“告诉你”时,“告诉你”将变成红色;和#co red {告诉你}一样;

--------------------------------------------------

DDE 发送一个DDE的宏到服务器

例如:#dde netscape www_openurl {http://www.tanfo.com/~~guoer}

打开你的netscape 浏览器并载入一个网页,注意这里用了两个~~来回避zmud内定的符号。

--------------------------------------------------

DEfault 储存和重新设置特殊的字符的默认值;

有9个默认字符分别为:#;@!%.:~<100) {say 我好穷啊} {say 我有的是钱}

如果变量@gold 小于100,你将会说“我好穷啊”;否则你会说:

“我有的是钱”#if (@line=~"给你(%d)两银子") {deposit %d silver}

如果某人给了你钱,你就会将钱存起来;

----------------------------------------------------

IGnore 开关所有触发器动作的处理;

INput 将文本放入命令行;

KEy 定义一个快捷键;

KILLALL 删除所有的别名,快捷键,触发器,标签等

LMap 循环通过地图上的房间;

LOAd 读入一个配置文件;

LOOK 重读一个房间的场景描写给地图;

---------------------------------------------------

LOOp 循环执行命令行数次;

例如:#loo 3 north 朝北走三步;(默认最小值为1)

#loo 2,4 {get %i coins}

会循环三次,get 2 coins;get 3 coin;get 4 coins;

其中%i是zmud预定义的储存当前循环次数的变量

#loo 3,@num {drink jiudai}

执行drink jiudai(酒袋) @num-3次

---------------------------------------------------

LOg 开始一个记录文件或固定记录;

MAP 增加一个方向到当前的路径;

---------------------------------------------------

MATh 执行一个复杂的运算和表达式;

例如: #math test (1+3)*4 将会给变量@test 赋值16;

#alias add {#math add %1+%2}

add 3 4 将会把7赋值给@add;

---------------------------------------------------

MArk 标记一个路名的开始;

MEdia 发送一个命令给你的多媒体设备;

MEMory 显示内存;

MENu 执行一个菜单命令;  

MESsage 在一个小窗口里显示一条信息;

NAme 改变当前窗口的名字;

NOop 什么也不做;

NODef 和#DEF命令一起恢复特殊的字符;

---------------------------------------------------

NOMAP 预防地图分析从mud传来的匹配行;

例如:#nomap {[闲聊]} 使你的地图避开[闲聊]里的内容;

---------------------------------------------------

OK 确认一步步的行走;

例如: #trigger {^这是成都的中心} {#ok}

如果从mud接受的图案相匹配时,在慢走模式的下一步

才会分析和执行;

----------------------------------------------------

PAth 储存或显示当前的路名;  

---------------------------------------------------

PIck 从列表中选择命令;

格式为: #pi v1 [v2 v3 ....]

显示一个列表窗口,v1 v2...等在每一行上(最多可以定义99个),

用户可以选择一个或一个以上的行,被选的行之间将会用;

分隔并作为命令来执行,如果用户按ESC键,将取消这个列表不做任何事.

#pick可以识别两个参数:一个是p:字符串(给列表加标题);一个是o:1(表示只能单选)。

例如:

#pi {p:请选择一个} {o:1} {wear armor}{wear shield} {*wear beixin}

显示一个列表,表题为“请选择一个”,默认的选择是wear beixin,用户只能选择一项。

(注:在某些版本的zmud里不可用。)

---------------------------------------------------

PLay 播放一个wav,avi,midi,cd等;  

PRompt 出现窗口提示并让你为一个变量或别名赋值;

PW 返回你当前的密码

REAd 从一个文件里读入和执行一段脚本;或读入一个记录

RECALL 传送到地图前一次的位置;

RECord 记录一个别名(允许你采用和记录路名相似的方式记录别名)

RESet 重新设置一个文件为开始

REtrace 反方向走一段路;

SAy 回应一段文本到屏幕;(=echo)

SAVe 储存当前的设定;

SCroll 在有滚动条的缓存区里显示匹配的行;

SEnd 发送一个文本文件到mud,并指定一个前缀命令;

SESsion 打开一个新的任务;

SHow 回应文本到屏幕;

SLow 以慢走模式执行一个路名;

----------------------------------------------------

STatus 设置定义的状态栏;

例如#st {hp:@hp} 会在当前窗口的状态栏里显示hp:变量hp的值

----------------------------------------------------

STEp 恢复一个中断的慢走朝前走;

STOp 中断一个慢走;

----------------------------------------------------

STW 设置一个状态窗口;

例如 #stw {hp: @hp %cr %ansi(red)exp: @exp}

会出现一个小的状态窗口里面包括两行:一行显示你的hp,一行为红色显示你的exp

----------------------------------------------------

T+ 打开一个触发器;

T- 关闭一个触发器;

T? 显示记时器里剩下的时间;

TAb 增加一个单词到tab键的记忆列表里;

TEleport 传送到地图上指定的房间;

TImer 开关一个记时器;

TRigger 建立或显示触发器;

TS 设置记时器或记时器开始;

TYpe 显示整个或部分文本到屏幕;

TZ 将记时器清零;

UNAlias 移走一个别名;

------------------------

UNGag 不移走一行;

例如:#trigger {告诉你} {#gag}

#trigger {杨过} {#ungag}

将使你只看到杨过告诉你的话  

-------------------------

UNKey 移走一个快捷键;

UNTrigger .......触发器;  

UNVar .......变量;

--------------------------

UNtil 执行一个命令直到表达式为真;

例如:#var a 10

#until (a=0) {#show @a;#add a-1}

显示一个10到1的倒记数;(注:在某些版本的zmud里不可用)

----------------------------------------------------

URL 用你的浏览器打开一个网址;

VAriable 给一个变量赋值;

VErsion 显示当前的zmud版本;

VERBatim 选择命令分析方式;

----------------------------------------------------

WAit 延缓更多处理直到下一行命令被接受;

例如:w;#wa;n; 向西走,当mud返回了信息时再向北走;

#wa 2000;停顿两秒钟再执行下一条指令(每1000=1秒)

----------------------------------------------------

WALk 快速行走到地图上标记的区域;

---------------------------------------------------

WHile 执行命令当表达式为真;

例如 a=10

#while (a<>0) {#show @a ;#add a -1}

(注:在某些版本的zmud里不可用)

----------------------------------------------------

WINdow 打开一个新的窗口;

WIzlist 显示zmud的广告;

WRap 设置显示版面的安排;

WRIte 写一个记录到文件;

---------------------------------------------------

YEsno 显示一个带按钮的需确认窗口



你可以用 按钮名:要执行的命令方式定义按钮;如果按钮名前带有*号,

将被认为是默认的按钮。按Esc则当作no来处理。

例如: #yesno 你饿了吗?{drink tea;eat leg}

#yesno 你想装备什么武器? {*鸡腿:wield jitui}{剑:wield sword}{刀:wield blade}

将会出现一个带三个按钮的窗口供你选择,默认的是装备鸡腿

(注:在某些版本的zmud里不可用)
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-12-10 11:26:04 | 显示全部楼层
此乃技术贴!请转技术区!
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-12-10 11:30:39 | 显示全部楼层
开始研究机器人了少年
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-12-16 22:49:36 | 显示全部楼层
好多啊,这得学好久哦
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-12-17 19:58:32 | 显示全部楼层
绝对好东西啊,但是又是绝对记不住啊。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2012-1-1 16:10:42 | 显示全部楼层
好帖mark
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-17 04:28 PM , Processed in 0.015145 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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