使用[range]时,你可以在其中(🐕)列出需要的字符例如 [abc] 或使用范围 [a-c] 。
为了(🛬)匹配特殊字符本身(🥄),可以使用~将特殊字符括(😼)住,例如:~[test~] 将匹配字符串
[test] 而不(🌵)是作(❄)为 [range] 来匹配。
只使用$可以匹配一个空行。
别名中使用参数的例子
我们(🧥)在解谜过程中向npc提出的问题通常是以:
ask npc about here
ask npc about rumors
ask npc about name
这样三个命(🌦)令开始(😡)的(🤚),把他们(🚭)定义成别名可以节省(🛰)一些时间,像这样:
#al askn {ask %1 about here;ask %1 about here;ask %1 about name}
可(💒)如果npc的名字有(♿)两个单词,或一堆同名的(🎞)npc中你要问其中第二(🍲)个,就需要把别名
中的参(🍽)数改为(🕑)%-1,此时执行askn bing 2或askn tian bing就不(🛎)会(✊)出(🌚)错了。
为了更好(🎀)的理解参数的作用,试试执(🚚)行下面的命令:
#al tt test1 %1 test2 %2 test3 %-1 test4 %-2
看看执行{tt a1 a2 a3 a4 a5}的结果(🎙),一切都(🕎)清楚了吧(🦃)?
表达式
当执行运算时,如果所有参数均为数字(🐎),则执(〰)行数学运算,否则执行字(👀)符串(♑)操作。以
下是一些常用的表(🎙)达式(v1和v2代表变量或另(🍱)外的表达式):
v1 v2
如果v1或v2不是数字,则执行(🍊)字符串(😆)相(🚏)加
v1-v2
从v1中减去(⛷)v2
v1*v2
相乘
v1/v2
v1除v2,结果不含(🐦)小数
v1\v2
取模
v1&v2
逻(⏺)辑运算and
v1 and v2
同上
v1 | v2
逻辑运算or
v1 or v2
同上
v1 xor v2
逻辑(🕔)运算xor
v1 = v2
如果(〰)v1等于v2返回(🍕)真
v1 > v2
如果v1大于v2返回真
v1 < v2
如果v1小于v2返回真
v1 >= v2
如果(⚾)v1大于等于v2返(✍)回真
v1 <= v2
如果(👒)v1小(⏹)于等于v2返回真
v1 <> v2
如(👷)果v1不等于v2返(➕)回真(👌)
v1 != v2
同上
v1 =~ v2
如果表达式(💤)v1中的(🌀)pattern包含v2,返(🛳)回真
v1 ~= v2
同上
-v1
返回v1的负(🚢)值
!v1
逻(🌂)辑运算非
命(🗳)令:
number]
Syntax:牋?#number command
这个命令向MUD重复发送number次(💒)命(🈚)令,number必须是一个常数,如(🔻)果要使用变量(🛡),请
使(🛰)用(🏽)loop命令。当前已(🌠)经重复的计数保存在系统变量%repeatnum中。
实例:
#4 fight bing %i
命(🥁)令(😬)将被解(📬)释成{fight bing 1;fight bing 2;...;fight bing 4}发(😏)往MUD10
abort
Syntax:牋?#AB
停止分析处理当(👳)前的命(🎹)令行中#ab以后(📵)的部分
实例:
get all corpse;#ABORT;split
在这个例子中(🛡),split将被忽略
action
Syntax:牋?#AC pattern command [classname]
Related:牋?#TRIGGER #T #T- #IGNORE
这是zMUD中最有用的特性之一。当从MUD中收到一条(⛷)匹配的文(📹)本(👛)时,预先定义的命令将
被执行。这条命令的第一个参(🎯)数(🐓)是被匹配的(♌)文本,如果文本(🔄)中包含空格(🎲),你需要(➗)将(📧)它
用括号(🎯){}括(🚷)起来。pattern中能够包含特殊的pattern matching symbols 和(🛃)通配符(🛴)。
第二个参数是(⭕)将要被(♊)执行的命(🐒)令,超过一个单词的命令(🚐)也(⤵)需要使用括号{}。第三(💜)个参
数用于给不(🐠)同的触发动作命名分类(🌪),便(🧐)于(🤠)管理。高(⛰)级的触(🗨)发(🧥)设(🔰)置必须使用参数
(Preferences)对话框,在对话框中(🕓),你(😈)可以决定触发的(👬)动作是紧(🥟)跟在(💆)匹配的文本(👌)之
后还是在(🏋)新的一行(➰)中执行。
一个简单的例子:
#AC {你买下一件藤甲} {wear jia}
这样,无论何时只要你买了藤甲,立刻可以(➕)自动穿(👨)上(💛)。
自动登录的例子:
#AC {^您(💑)的(🤖)英文名字:} {river}
#AC {^请输(🎍)入相应密(🎩)码:} {12345}
然后在(🤕)参数对话框中关闭(💴) Trigger on Newline 设置并且打开 Trigger on Prompt 这
样名字和(🍵)密码将紧接(📰)着提示行输入而不会等(👨)待换行(🕖)。注(🌫)意,字符 ^ 将强制从一行的头
部开始匹配。
触发中的参数
#AC {^You get (%d) coins} {chat I get oin } rich
当你看到一行(🗾)“You get [number] coins”时,其(🌠)中的数(⬅)值(🧠)将被存放在变量%1中,其(👆)
后执行的命令可以使用这个数值。在这个(📦)例子中(🍟)用到了类(class)名rich,这样(🚅)你就(🏔)
能够使用t 和t-命令来打开或关闭这个触发(🤜)。
add
Syntax:牋(🖊)?#AD variable amount
这(🐴)个例子允(🐭)许你做一个简单的算(🔺)术计算。amount可以是数值或变量(🦃)。如果(💱)要做减法,
可(👌)以使用负值。复杂(💜)一些的(🎟)算术(📋)计算,请使用(📀) #math 命令。
实例:
#AD moves 1
给(🔞)变量@moves加一
#ACTION {You get (%d) coins} {#AD gold %1}
当捡到钱时(🤒),把捡(♟)钱的数量加(🦏)到 @gold 变(㊙)量中
alarm
Syntax:牋?#ALA timepattern command
Related:牋?#TRIGGER
建立一个(😐)基于(📸)时间的触(🔃)发,而不是根据从(🖇)MUD中获得的(⛹)信(🌐)息触发。timepattern可以是
特定(🥏)的时间或包括通配符(🍓)。如果在minus前加上(-),则表示(🍃)连线时间而不是实际时
间。
timepattern 的格式(😃)表示(🚏)成 hours:minutes:seconds ,其(🖤)中的小时(🥠)和分钟是可选项(👪),
如果(📉)不指明(⏭),则假定小时和(🆚)分钟被通配符*取(🌳)代。通配符*可以代替任(🔂)何数值,而*10可(🏨)
以匹配10、(⏰)20、30等(👃)等。你(🎽)也(🎾)可以指定几(🤸)个数(🎉)值用(|)来分隔(⬛)。Finally, you can
put parenthesis around the wildcards to save the values matched to the
%1..%9 parameters。(这句话我不懂,谁来帮我?)
实例:
#ALARM -30:00 {save}
这(💳)里的 hour 没(👍)有(🦗)指定,所以默认为*。 因此,这(💳)个例子(🗡)将在(🕍)连线后每(✊)隔(🗽)30分钟执行(💍)
save 命令。
#ALARM 3:00:00 {gossip Why arent you sleeping?}
命令将在凌晨3点触发。
#ALARM -59:(55|56|57|58|59) {#SHOW 60-%1}
这个命令在你连线时每个小时的最后5秒在屏幕上显示(👑) 5 4 3 2 1。
alias
Syntax:牋?#AL [aliasname] [string]
Related:牋?#VARIABLE
保存一个或一组命令(🐳)到一(🥘)个较(💳)短的别名中。当执行别名时,命令中的变量能(🔨)够被扩
展。如果(🐍)需要延迟变量扩展,可以使用两(🦎)个变(🌎)量标志((📇)%%)。
如果不带参数(🕯)执(🐅)行命令alias,所有的别(🤝)名将被列出在输(🖍)出窗口。如果在(🤓)命(🤰)令alias中
指定别名(🍏),被指(🏴)定(❕)的别名将被显示。
别名(💾)能够用<tab>键扩展(🦅)。在命令行中(🏔)键(⛔)入一个别名(😱)并按下<tab>键,命令行中的别名(💔)
将被(🌕)替换成别(🎑)名中包含的命令。
如果在定(⛄)义别(🍈)名时使(🐑)用参数(%1,%2,...),在命令行中(🍭)紧随(🏪)别名的文本将取代这些
参数(🕤)。特殊的参数%-1到%-99表示-n之后的所有文本。(使用参(🍿)数的例子)(🐱)
实例
#AL fs {fill waterskin}
当执行fs时,fill waterskin将(🛂)被送往MUD。
#AL fs {fill @container}
在别名中(🎿)使(🚚)用变(📨)量,变量可以在购(🆑)买容器(🌺)时用触(📠)发赋值。
#AL make {#ALIAS %1 {cast %1 %%1]
在这个例子中,执(🍺)行make heal将发出#ALIAS heal {cast heal %1}命令,这样就建立
了一个新(🎣)的别名(🧛)heal。
all
Syntax:牋(🆖)?#ALL command
发送一个命令到所有角色的(😾)窗口
实例:
#ALL quit
发(🥍)送 quit 命令到所有(😷)激活的角色窗(🖇)口(🔻)。
backup
Syntax:牋?#BA
Related:牋?#PATH #RETRACE
从当前正在记录的路径(⏲)中删除(🐄)最后一步
实例(💻):
如果当前路径是 .nsew 那麽执行 #BA 将使其(📆)成为 .nse 。如果当前路径是 .n4s 则
执行 #BA 后将成(🥎)为 .n3s 。?
beep
Syntax:牋?#BEEP [value]
Related:牋?#PLAY
在pc机喇叭中发声(🔛),value 对应相应的 windows 事(🐙)件(🔹)。
实例:
#BEEP 16
播放windows 事件 16 的声音。
#BEEP;#WAIT 500;#BEEP
beep两(🤪)次,中间间隔0.5秒(📢)。
button
Syntax:牋?#BU number
触(😇)发(🕓)一个自定义按钮,编号(从1至16)决定触发的按钮。number 可以是一个(➗)变(🐽)量。
实例:
#BU 1
触发第一个按钮(🚄),效果相当于(📮)在屏(🖖)幕上按下这(🌌)个(🍥)按钮
c
Syntax:牋?#C [name]
Related:牋?#C-
开始获取文本到窗口(🥚)name中,如果省略(🐇)name,文本将送入command editor,(如果
editor中的capturing设置可用)。如果在preferences对话(👫)框中(⛴)选中Capture
Commands设置,键入(💿)的命令也(➿)将被送往这个窗口(✴)。
例子(🥛):
#c temp
开始拷贝所有从MUD中获(🤾)得的文本到名为temp的窗口中
c-
Syntax:牋?#C-
Related:牋?#C
停止获取文本到另一个窗(🌛)口
capture
Syntax:牋?#CAP [number] [name]
Related:牋?Editor window
获取最后number行送到另一个窗口。如果省(📖)略number,则只获取(🖖)最后(✊)一行。如果
number是-1,所(😘)有的(🚞)行(😂)将被拷贝。如果(🛎)name省略,发(🎤)送(🌜)的目(⛵)标将是command editor
window。
例子
#tr {咖啡告(👊)诉你:救(🎲)命(👹)!} {#cap tell}
将(🍾)tell的内容存入名为(🎶)tell的窗口,避免忽略。
case
Syntax:牋?#CA index command1 [commandn]
允许从命令列表中选择一个命令执行。index参(💓)数决定执行哪一(🆎)个命令。如果index大
于列表中的(🙂)命令数,将从第一个开始重新选择(🐥)。例(⛪)如,列表中有4个命(🎹)令,而index=
6,则第二个命(🎤)令将(🌄)被执行。你(📃)也(🎫)可以用变量(🏰)%random随机的选(🎵)择(🐅)需执(🔇)行的(🔡)命(🧀)令。
实例:
#CASE 2 {first command} {second command} {third command}
执行第二个命令
#CASE @joincmd {join} {rescue}
如果变量@join是奇(🛠)数,执行join,偶数执(🌇)行rescue。
#CASE %random {Hello} {Hi there} {Hiya} {Hi}
随机选择问候语。
character
Syntax:牋?#CH
Related:牋?#HOST #PW
从Charater atabase中返回当前角色(🎡)的名字
colse
Syntax:牋?#CL filenum
Related:牋?#FILE
根据给(🐡)定(🚹)的文件(👸)号关闭(🚸)文件,文件必须是已经用#file命令打(👽)开的。
实例:
#CLOSE 1
关闭一号文(🌒)件
clr
清除屏(🔩)幕。如果要清空(⛷)scrollback buffer并(💦)收回(⛅)内存,请使用(💊)菜单命令Empty。
color
Syntax:牋?#CO attribute [pattern]
Related:牋?#HIGHLIGHT
如果省略pattern参(🌓)数,这个命令将改(😴)变最后一行的颜色。颜(➕)色属性见下表。如果包括
pattern参(🍣)数,将(😂)建立一(🕢)个颜(🦉)色触发,引起触发(🌻)的条(😫)件除了字符对应外还需要有相(📧)同的
颜色。
Color values:
black牋?
0
blue牋
1
green
2
cyan
3
red
4
magenta
5
brown
6
gray
7
tellow
14
white
15
bold
128
要显(🖍)示亮色,在基本值(🚢)上加8,作为背景颜色(🙀),需要(📥)用基本值乘16。例如:使用红色背
景的值是4*16或64。在前景上使用粗体字,需要再加128。这样,在(🏰)蓝色背景上的粗体
白字的值是(👛):128 1*16 15=159。
实例:
#CO red
将最后一行(🛍)的颜色(🈲)变成红色
#CO bold,red
将最后一行变成红色粗(🔣)体
connect
Syntax:牋?#CON
Related:牋?#DISCONNECT
断开并重(🤧)新连接到当前的MUD,与菜单命令(🤜)File/Reconnect 相同
cr
Syntax:牋?#CR
送一个空行到MUD
cw
Syntax:牋?#CW color
Related:牋(🚉)?#COLOR
在一次成功的触发之后,改(🥑)变引起触发的内容的颜色
实例:(🌄)
#TRIGGER {告诉你} {#CW red}
当(🥅)有人tell 你时,显示较为醒目的颜色
dde
Syntax:牋?#DDE server topic macro
这个命令允许你通过动态(🌡)数据交换使用外部(👶)程序。zMUD也有(Ⓜ)一些内建的(📙)函数(🍈)用于DDE: