zMUD是zuggsoft公司出品的mud客戶端程序,提供了許多有用的工具,例如別名(aliases),動作(actions),宏(macros),快捷鍵(keys),按鈕(buttons),腳本(scripts),地圖(maps)等,使你在mud中的生活輕松、高效。
這里先簡單介紹一下zMUD的特性
一、宏(Macro keys) 定義快捷鍵以便快速執行一個或一系列命令。
二、別名(Aliases) 將一系列命令保存為一個較短的命令。
三、觸發(Triggers)根據從mud獲得的信息決定執行的命令。
四、變量(Variables)
五、函數(Functions)
六、按鈕(Buttons)在窗口中建一排你自己定義的按鈕。
七、路徑(Paths)在mud中記錄走過的路徑,你可以沿著記錄下的路徑倒走,也可以編輯記錄的路徑。
八、地圖(Mapper)
九、多角色(Multiple Chars)同時登錄多個角色,一個命令可以發往不同的窗口或發往所有的窗口。
十、防止向mud送出太多相同的字串的 Spam protection 。
十一、全部的 ANSI color 支持,顏色可以被定制。
十三、可代替Telnet
十四、多媒體功能允許你播放 sounds, MIDI, movies, 等等。
十五、腳本(Scripts)將命令保存在文本文件中。
十六、角色數據庫(Character Database)保存你所有的mud角色,便于快速連接。
十七、Tab completion 允許你鍵入一條長字符串的頭幾個字母然后用 Tab 鍵補全。參見#ta命令。
十八、歷史(History)相當于doskey。(還記得doskey嗎?)
十九、Timer 內建的***用于定時向MUD中送出命令。
二十、Status line 可定制的狀態行可以顯示變量和觸發。
二十一、顏色、字體、聲音、特殊字符都能被修改并保存。
二十二、配置文件保存所有的配置 (aliases, macros, etc)。 一個配置文件可以用于幾個不同的角色。
--------------------------------------------------------------------------------
在使用命令時,需要在命令前加上命令標識符以便系統識別。默認的命令標識符為#,命令標識符可以在參數對話框(Preferences dialog)中更改。命令可以被簡寫成下面顯示成斜體的字母。
[number] 重復跟隨的文本[number]次
abort 停止分析當前的命令
action 建立或顯示一個觸發動作
add 給變量加一個值
alarm 建立一個時間觸發
alias 建立或顯示一個別名
all 發送一個命令到所有窗口
backup 從當前路徑中刪除最后一步
beep 在pc機喇叭中發聲
button 觸發一個按鈕
c+ 開始獲取文本到一個新的窗口
c- 停止獲取文本到一個新的窗口
capture 獲取一行并送到editor或窗口
case 從列表中選擇一個命令
character 返回角色的名字
close 關閉一個文件
clr 清屏
color 改變最后一行文本的顏色
connect 重新連接到當前的MUD
cr 開始新的一行
cw 改變引起觸發的內容的顏色
dde 使用DDE調用外部程序
default 保存當前使用的特殊字符并恢復系統默認的特殊字符
disconnect 斷開當前的連接
ECHO 在當前窗口中顯示字串
ERASE 從硬盤中刪除文件
EXEC 執行一個命令
FILE 打開文件
FIND 找出當前在地圖上的定位
FORALL 逐條列出字串列表內容并執行命令
FREEZE 切分屏幕查看以前的顯示
GAG 從屏幕上刪除最后一行
HELP 取得命令幫助
H+ 從命令緩沖區中取得下一條命令
H- 從命令緩沖區中取得上一條命令
HISTORY 顯示命令緩沖區
HIGHLIGHT 將最后一行文本以高亮顯示
HOST 返回當前連接的主機名
IF 執行條件分支
IGNORE 開關觸發
INPUT 將文本放入命令輸入行
KEY 定義宏
KILLALL 刪除所有的別名、宏、觸發、<tab>縮寫
LMAP 穿越指定的路徑并執行命令
LOAD 裝入設置文件
LOOK 重新寫入地圖的房間描述
LOOP 重復執行命令
LOG 開始一個記錄文件或用于開關記錄
MAP 在當前路徑上增加一個方向
MATH 執行數學運算
MARK 開始記錄當前路徑
MEDIA 向多媒體設備發送命令
MEMORY 顯示剩余內存
MENU 執行一個菜單命令
MESSAGE 在小窗口中顯示信息
NAME 改變當前窗口的名稱
NOOP 空命令
NODEF 恢復被#def命令保存的特殊字符
NOMAP 避免匹配的行干擾地圖分析
OK 沿定義的路徑移動時放慢腳步
PATH 保存或顯示當前路徑
PICK 從列表中選擇一個命令
PLAY 播放 wave, midi, avi, cd 或其他媒體
PROMPT 查詢別名和變量的內容
PW 返回當前口令
READ 從文件中讀取記錄或執行命令腳本
RECALL 使用地圖返回teleport的起點
RECORD 記錄別名
RESET 重設文件為初始狀態
RETRACE 沿路徑倒走
SAY 在屏幕上回顯文本
SAVE 保存當前設置文件
SCROLL 在scrollback buffer顯示匹配的行
SEND 向MUD中發送一個文本文件
SESSION 打開新任務
SHOW 回顯文本
SLOW 沿路徑慢走
STATUS 定義狀態條
STEP 恢復放棄的沿路徑慢行
STOP 放棄繼續沿路徑慢行
STW 設置狀態窗口
T+ 激活觸發類
T- 關閉觸發類
T? 顯示計時器(timer)的剩余時間
TAB 增加一個詞到<tab>鍵擴展列表
TELEPORT 使用地圖傳送到目的地
TIMER 開關計時器
TRIGGER 建立或顯示一個觸發
TS 設置計時器時間或重新計時
TYPE 在屏幕上顯示文本文件
TZ 將計時器置零
UNALIAS 刪除一個別名
UNGAG 避免某行被忽略
UNKEY 刪除一個宏鍵
UNTRIGGER 刪除一個觸發
UNVAR 刪除一個變量
UNTIL 執行命令直到表達式為真
URL 在瀏覽器中打開一個URL
VARIABLE 變量賦值
VERSION 顯示zMUD版本
VERBATIM 開關分析模式
WAIT 暫停進一步的處理直到從主機收到新的信息
WALK 快速到達地圖上指定的標記處
WHILE 當表達式為真時執行命令
WINDOW 打開一個新窗口
WIZLIST 顯示zMUD的作者
WRAP 設置文本回繞
WRITE 寫一個記錄到文件
YESNO 顯示一個帶按鈕的確認對話框
[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 %1coin } 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中返回當前角色的名字
close
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:
%dde(server,topic,item)
%ddepoke(server,topic,item,value)
%ddemacro(server,topic,macro)
如果你使用%ddeopen(server,topic)函數打開DDE連接,在其他函數中不再需要指明server和topic,這個函數是全局性的,對于zMUD的任何窗口均有效。結束DDE連接時,使用%ddeclose()函數。
zMUD也擁有自己的DDE服務,server名是zmud,topic也是zmud,item為data。
實例:
#DDE NETSCAPE WWW_OpenURL
使用netscape打開zMUD從入門到精通主頁,因為~zMUD的特殊字符,所以需要再加一個~寫成~~。
#DDE ZMUD ZMUD {chat* bye;quit}
使用DDE向MUD發出命令
%dde(Excel,TEST.XLS,R1C1)
使用excel裝入test.xls并返回單元R1C1的值。
%ddepoke(Excel,TEST.XLS,R1C1,@tank)
向test.xls的R1C1單元寫入變量@tank的值
誰能用DDE寫一個自動對詩的機器人?
default
Syntax: #DE [special-char-string]
Related: #NODEF
保存你當前使用的特殊字符并恢復系統默認的特殊字符,在使用現成的命令腳本時,這個命令可以保證腳本中的標準特殊字符被正確識別。使用#NODEF命令將恢復你自定義的特殊字符。
zMUD中使用的特殊字符有
1 Command Char # 將緊隨的字串解釋為命令
2 Separator Char ; 分隔多個命令
3 Variable Char @ 用于擴展變量的值
4 History Char ! 調用命令緩沖區中的命令
5 Parameter Char % 指出系統變量和函數
6 Movement Char . 調用路徑變量或函數
7 Focus Char : 向指定窗口發命令
8 Quote Char ~ 緊隨其后的特殊字符當作普通字符處理
9 Must be a space at the end *? *fool
實例:
#DEF
保存你當前使用的特殊字符并恢復系統默認的特殊字符
#DEF {xx$xxxxx }
保存你當前使用的特殊字符并回復默認的特殊字符,然后將@改為$。
disconnect
Syntax: #DI
Related: #CONNECT
斷開當前的連接
實例:
#TRIGGER {你已陷入半昏迷狀態} {#DI}
斷線就不會被殺死嗎?我沒試過,hehe。
ECHO
Syntax: #EC string
Related: #SAY
在當前窗口中顯示字串,類似與say命令。除了用于離線測試trigger似乎沒有別的用處。
實例:
ERASE
Syntax: #ERA filenum
Related: #FILE
從硬盤中刪除用#file打開的文件
實例:
#FILE 1 old.log
#ERA 1
刪除old.log文件,需要先用#file命令打開。
EXEC
Syntax: #EXEC command
執行一個命令,命令中可以包括變量
實例:
#TRIGGER {^咖啡告訴你(*)} {#EXEC %1}
執行咖啡的指令。(我可沒那麼傻)
FILE
Syntax: #FI number name
Related: #READ #WRITE
打開文件準備讀寫。zMUD可以打開10個文件,文件號1~5打開文本文件,能夠按順序讀或追加,文件號6~10打開記錄文件用于隨機讀寫。如果nuber已經用于打開的文件,則前一個文件將被關閉。打開的文件只能位于zmud.exe所在的目錄且不能是EXE,HLP和MUD文件。
實例:
#FILE 1 test.txt
打開text.txt作為文件1。
FIND
Syntax: #FIN
找出在當前地圖上的定位,通過look命令用當前房間的描述比較地圖數據定位匹配的房間,與automapper的菜單命令find作用相同。
FORALL
Syntax:#FO list command
逐條列出字串列表內容并執行命令。列表使用|分隔,逐個賦值給變量%i,并執行命令。
實例:
list=sys|ups|yahoo
#froall @list {kill %i}
我一定是瘋了。
FREEZE
Syntax: #FR [value]
切分屏幕查看以前的顯示,value=0表示恢復屏幕。這條命令相當于Ctrl-z或單擊右邊的滾動條。(所以沒什么用)
GAG
Syntax: #GA [pattern]
Related: #UNGAG
如果pattern省略,命令將從屏幕上刪除最后一行。如果包括pattern,將刪除所有匹配行,相當于#ACTION pattern '#GAG'。
實例:
#ga 咖啡
這叫眼不見為凈。
HELP
Syntax: #HE [command]
不帶參數相當與從菜單中選擇help,否則顯示指定命令的參數。
H+
Syntax: #H+
Related: #H-
從命令緩沖區中取得下一條命令,只在使用過#h-命令后有效,相當于向下的箭頭鍵。
H-
Syntax: #H-
Related: #H+
從命令緩沖區中取得上一條命令,相當于向上的箭頭鍵。
HISTORY
Syntax: #HIS
顯示命令緩沖區中的命令,每條顯示的命令都帶有行號,可以用!加行號來執行某條命令。!!執行最新的命令。!+字母將執行最近一個以!后字母開頭的命令。命令緩沖區的大小默認為20,可由參數對話框改變。
你也可以用左鍵單擊命令輸入行左邊的三角以彈出交互命令緩沖區對話框來選擇命令,單擊將命令送至命令輸入行以供編輯,雙擊將命令直接送往MUD。
<tab>鍵可以配合命令緩沖區的使用,如果你用!加數字或字母,再按下<tab>鍵,命令將拷入命令輸入行以供編輯。
實例:
#HI
顯示最后20條命令
!!
執行最后一條命令
!3
執行命令緩沖區中的最后一條命令
!k
執行最后一條以k開頭的命令
!k<TAB>
將最后一條以k開頭的命令拷入命令輸入行以供編輯
HIGHLIGHT
Syntax: #HI [pattern]
Related: #COLOR
如果省略pattern,最后一行文本將以高亮顯示,如果包括pattern,匹配的文本將以高亮顯示。相當于命令#ACTION pattern '#HIGHLIGHT'。
HOST
Syntax: #HO
Related: #CHAR #PW
返回當前連接的主機名
IF
Syntax: #IF expression true-command [false-command]
執行條件分支,如果表達式為真,執行true-command,否則執行falise-command(可選)。表達式中可以包含變量和運算子。
實例:
#if (@qn>30) {learn_skills}
在戰斗中如果潛能達到了30,執行別名learn_skills返回師父處學習。
#if (@hp>10) {exercise @hp} {exert recover}
如果氣大于10就修煉內功,否則補氣。
#IF (@line =~ "You receive (%d) coins") {split %1}
如果變量@line與pattern "You receive (%d) coins"匹配,執行{split %1},判斷匹配需要使用“=~”。
IGNORE
Syntax: #IG
Related: #T+ #T-
打開或關閉所有觸發,第一次執行#ig 關閉所有觸發,第二次執行恢復正常。
INPUT
Syntax: #IN string
將文本放入命令輸入行,替換當前內容
實例:
#in get @item
擴展變量item后將命令置入命令輸入行
KEY
Syntax: #KE key command
定義按鍵執行的命令,key值需注明按鍵的全名,例如:F1,CTRL-A 或 ALT-F2
實例:
#key F1 eat baozi
定義F1鍵執行eat baozi 命令
<ALT-D>={drink jiudai}
定義 ALT-D 鍵執行 drink jiudai 命令
KILLALL
Syntax: #KILLALL
刪除所有的別名、宏、觸發、<tab>縮寫
LMAP
Syntax: #LM path command
Related: #LOOP
穿越指定的路徑并在每個房間執行指定的命令,變量%i將記錄房間數
實例:
#LMAP 3sn {#SHOW %roomname(%i)}
從當前的地圖定位向南走三步,向北走一步,并顯示每個房間的名稱
LOAD
Syntax: #LOA filename
Related: #SAVE
裝入指定的設置文件,filename中可以使用變量。注意:裝入新的設置文件時,原來的設置文件中的改變不會被保存
實例:
#load dc
裝入設置文件dc.mud。(.mud是默認的擴展名)
<F1>={#load combat};<F2>={#load cocial}
為戰爭與和平定制的設置文件分別用F1和F2載入
LOOK
Syntax: #LOOK
執行MUD的look命令并重新寫入地圖的房間數據
LOOP
Syntax: #LOO range command
重復執行由range指定數量的命令,range包括最小值和最大值,中間用逗號分隔,如果range中只有一個數字,默認的最小值是1,循環的次數記錄在變量%i中,可在命令中調用。
實例:
#LOO 3 north
向MUD中送入north命令3次
#LOO 3,4 {get all from corpse %i}
取出第三和第四具尸體中的所有東西
#LOO @num {eat baozi}
吃包子@num口
LOG
Syntax: #LO [filename]
開始在給定的文件中記錄從MUD中獲得的文本,如果文件不存在,則建立文件并開始記錄,如果文件已存在,則打開存在的文件并追加記錄。省略參數用于開關記錄
實例:
#LO test.txt
開始將MUD的所有輸出記入test.txt
#LO
開關記錄,如果正在記錄,該命令將停止記錄,否則開始記錄
MAP
Syntax: #MAP direction
Related: #PATH
在當前路徑上增加一個方向
#MAP north
如果當前路徑是.s,則更新為.sn,同時向北移動一步
MATH
Syntax: #MAT variable expression
Related: #ADD
將表達式的結果賦值給變量。表達式中可以包括數字、邏輯運算和字符串函數,表達式中包含的變量將被擴展。
實例:
#MATH test (1+3)*4
將計算結果16賦值給變量test
#MATH test2 @test-4
如果@test的值是16,則變量test2將被賦值12
#ALIAS add {#MATH value %1+%2}
add 3 4
執行后變量value的值為7
MARK
Syntax: #MA
Related: #PATH
開始記錄新的路徑,正在記錄的路徑將被廢棄
MEDIA
Syntax: #ME function
Related: #PLAY
向當前的多媒體設備發送命令,通常在#play之后使用,function中可以使用變量,可用的function依設備不同而不同值,一般有:
back 返回一步
close 關閉當前文件
eject 放棄當前設備
next 播放下一曲目
pause 暫停
paly 開始播放
prev 播放前一曲目
resume 恢復暫停的播放
rewind 從頭開始播放
step 向前步進
stop 停止播放
實例:
#media next
如果正在播放CD,這個命令將播放下一曲目。
MEMORY
Syntax: #MEM
顯示剩余內存
MENU
Syntax: #MEN command
執行一個菜單命令
實例:
#MENU {File|Exit}
執行退出命令
#MENU {Actions|Make Button}
彈出make button對話框
MESSAGE
Syntax: #MES string
在小窗口中顯示指定的信息,十秒鐘后自動關閉
NAME
Syntax: #NA string
改變當前窗口的名稱,默認的窗口名由角色數據庫定義。
實例:
#name tank
將當前窗口名改為tank。你可以用tank:command 將命令發往這個窗口。
NOOP
Syntax: #NO
空命令,什么也不做。
NODEF
Syntax: #NODEF
Related: #DEFAULT
恢復被#def命令保存的特殊字符。
NOMAP
Syntax: #NOMAP [pattern]
避免匹配的行干擾地圖分析,如果省略參數,前一個引起觸發的行將被地圖忽略。
實例:
#TRIGGER {閑聊} {#NOMAP}
#NOMAP {閑聊}
以上兩條命令作用相同,任何包含“閑聊”的行將不會被地圖分析。
OK
Syntax: #OK
Related: #SLOW #STOP
沿定義的路徑移動時放慢腳步。
實例:
#TRIGGER {的出口是} {#OK}
當前一步被確認時,允許下一步的行動
PATH
Syntax: #PA [pathname]
Related: #MARK #RETRACE #MAP
省略參數時,顯示當前記錄的路徑。如果包括參數pathname,當前的路徑被存入指定的pathname。方向字符(.)將自動添加在路徑的開頭。
實例:
#pa
顯示當前記錄的路徑。
#pa magic
將當前路徑存入變量 .magic。
PICK
Syntax: #PI val1 [val2 [val3 ...]]
列表中最多可以指定99個值,用戶可以選擇一個或多個選項作為命令執行,按<Esc>鍵放棄。
命令中可以使用p:string 定義string為對話框提示,或用o:1指定只能選擇一個選項,加上*號的val將作為默認選項。可以使用caption:command方式在對話框中顯示命令提示caption。
實例:
#pi {get all from corpse} {get gold from corpse} {get silver from corpse}
在對話框中顯示三條命令供用戶選擇
#pi {p:選擇命令} {o:1} {*get all from corpse} {get gold from corpse} {get silver from corpse}
用“選擇命令”作為對話框提示,{o:1}指定只能選擇一條命令,*表示get all from corpse 作為默認命令。
#pi {p:選擇命令} {o:1} {ALL:get all from corpse} {GOLD:get gold from corpse} {SILVER:get silver from corpse}
用ALL GOLD SILVER作為命令提示
PLAY
Syntax: #PL filename
Related: #MEDIA
播放 wave, midi, avi, cd 或其他媒體,如果包括驅動器號,則播放音樂CD。
實例:
#play start.wav
播放start.wav 文件
#play d:
播放音樂CD。
sound=ouch.wav
#tr {看起來想殺死你} {#play @sound}
觸發聲音警告
PROMPT
Syntax: #PR aliasname
彈出對話框顯示指定的別名或變量的值。
PW
Syntax: #PW
Related: #CHAR
向MUD發送當前的口令,口令不會在輸出屏幕上回顯
READ
Syntax: #REA filename
#REA n [rec]
1、逐行讀入給定的文件并執行每一行。
2、讀入第n個文件的第rec個記錄。文件由file命令讀入。如果n是1~5,則給定的文件是文本文件,rec表示行號,省略rec時,讀入下一行。如果n是6~10,表示是一個結構文件,指定的記錄將被讀入,省略rec時,讀入下一個記錄。
實例:
#rea mud.txt
逐行讀入并執行mud.txt。
#file 1 mudlist.txt
#read 1 10
讀入mudlist.txt的第十行
RECALL
Syntax: #RECALL
使用地圖返回teleport的起點
RECORD
Syntax: #REC [aliasname]
Related: #ALIAS
開始或停止記錄別名。第一次鍵入#record時,zMUD開始記錄送往MUD的所有命令,你可以再次鍵入#record查看已記錄的命令,結束記錄時,鍵入#rec加指定的別名保存。#rec off 將放棄記錄別名。
實例:
#REC
starts recording
n
w
open door
#REC
displays: Current alias: n;w;open door
#REC temple
將命令 n;w;open door 存入別名temple 并停止記錄。
RESET
Syntax: #RES n
Related: #FILE
重設文件為初始狀態
RETRACE
Syntax: #RE [pathname]
Related: #PATH
沿指定路徑倒走,如果pathname省略,則沿當前正在記錄的路徑返回。
SAY
Syntax: #SA text
在屏幕上回顯文本,類似#sh 命令。
SAVE
Syntax: #SAV [filename]
Related: #LOAD
保存當前設置文件
SCROLL
Syntax: #SC pattern [lines]
顯示scrollback buffer中所有與pattern相匹配的行,除非指定lines。
SEND
Syntax: #SE filename [prefix] [postfix]
向MUD中發送一個文本文件,并可在每一行中加上前綴或后綴
#SEND notes.txt {tell coffee}
把notes.txt的內容告訴coffee,如果同時使用kill命令,效果更好。*grin
SESSION
Syntax: #SES [character-name|hostname port]
使用指定的角色或主機打開新任務
實例:
#SES river
#SES 168.160.244.39 6666
SHOW
Syntax: #SH text
在屏幕上回顯文本,不發往MUD,類似于#say,通常用于測試觸發。
SLOW
Syntax: #SL path
Related: #STEP #STOP #OK
沿路徑慢走,前一步得到確認后再執行下一步。#ok命令用于確認行動完成,#stop用于放棄繼續前進,#step繼續被#stop放棄的行程。
實例:
#SL .n2es
north 命令首先被發往MUD,然后等待確認以執行下一個命令east,如果不能確認,余下的行程將被放棄。
STATUS
Syntax: #ST text
定義狀態條,text 中可以顯示變量,每當變量改變,狀態條也隨之改變。
例:
#st {真氣: @hp 內力: @nl 潛能:@qn 道行: @dx}
在狀態條中顯示有關數據
STEP
Syntax: #STE
Related: #SLOW #STOP #OK
恢復被放棄的沿路徑慢行
STOP
Syntax: #STO
Related: #SLOW #STEP #OK
放棄繼續沿路徑慢行,通常在觸發中使用。
實例:
#TRIGGER {五莊觀第三代弟子 咖啡(%w)} {#STOP;kill %1}
沿路殺人越貨,很刺激吧?
STW
Syntax: #STW string
Related: #STATUS
設置狀態窗口,狀態窗口類似與狀態行,但能包括更多內容,設置%ansi顏色并用%cr換行。可以使用菜單命令window/status 打開,在其上單擊右鍵編輯。
實例:
#stw {當前道行:@dx %cr 初始道行:@dx0 %cr 戰斗時間:@time1}
顯示獲取道行的速度
T+
Syntax: #T+ classname
激活觸發類
T-
Syntax: #T- classname
關閉觸發類,適當的運用以上兩個命令可以避免機器人誤動!
T?
Syntax: #T?
Related: #TIMER #TS
顯示計時器(timer)的剩余時間
TAB
Syntax: #TA word
增加一個詞到<tab>鍵擴展列表
TELEPORT
Syntax: #TE room [zone]
Related: #WALK
改變你在地圖上的位置,相應的MUD世界中的位置不變。room可以是short name或room number。
TIMER
Syntax: #TI
Related: #T? #TS
開關計時器,對剩余時間沒有影響。
TRIGGER
Syntax: #TR pattern command [classname]
建立或顯示一個觸發,與#action功能相同
TS
Syntax: #TS [value]
Related: #TIMER #T?
設置計時器時間或重新計時,value 指明以秒為單位的時間間隔,如果省略,則重新計時。
TYPE
Syntax: #TY filenum [pattern]
Related: #FILE
在屏幕上顯示文本文件,如果包括pattern,則只顯示包含pattern的行。pattern中可以包括通配符。
TZ
Syntax: #TZ
Related: #TS
將計時器置零
UNALIAS
Syntax: #UNA alias
Related: #ALIAS
刪除一個別名
UNGAG
Syntax: #UNG
Related: #GAG
避免某行被忽略,通常用在觸發中undo #gag命令。
實例:
#tr {咖啡告訴你} {#gag}
#tr {來吃人參果} {#ungag}
UNKEY
Syntax: #UNK key
Related: #KEY
刪除一個宏鍵
UNTRIGGER
Syntax: #UNT pattern
Related: #TRIGGER
刪除一個指定pattern的觸發
UNVAR
Syntax: #UNV variable
Related: #VAR
刪除一個變量
UNTIL
Syntax: #UN expression commands
執行命令直到表達式為真(true or non-zero)
實例:
#until (#hp>50) {quit}
URL
Syntax: #URL url
在瀏覽器中打開一個URL
實例:
#URL http://rzzxyj.533.net
訪問網址超出本站范圍,不能確定是否安全
繼續訪問 取消訪問http://rzzxyj.533.net
注意需要兩個~!參見通配符。
VARIABLE
Syntax: #VA variable value
變量賦值,變量前不需要@。也可以使用variable = value or variable := value.
VERSION
顯示zMUD版本
VERBATIM
Syntax: #VERB [value]
開關分析模式,value用于指定分析模式,效果與使用菜單命令相同。
WAIT
Syntax: #WA [time]
暫停進一步的處理直到從主機收到新的信息,如果指定time,則暫停指定的時間,time以毫秒為單位。
WALK
Syntax: #WAL room
快速到達地圖上指定的標記處,room 是被事先定義的short name。
WHILE
Syntax: #WH expression commands
當表達式為真(true or non-zero)時執行命令
WINDOW
Syntax: #WIN name [string]
打開一個新窗口
實例:
#FORALL @eqlist {#WIN status %i}
打開窗口status并在其中顯示裝備列表。
WIZLIST
顯示zMUD的作者
WRAP
Syntax: #WR [column]
設置文本回繞,如果指定column,則在指定的列處換行。
WRITE
Syntax: #WR n value [rec]
Related: #READ
寫一個value到文件,如果n在1~5間,表示文本文件,value將被追加在文件尾部,rec被忽略;如果n在6~10間,則value寫入記錄rec,省略rec時,value加在文件最后。
#tr {離開游戲} {#wr 1 {%ctime}}
記錄在MUD中浪費的時間!
YESNO
#YE question yes-command no-command
顯示一個帶按鈕的確認對話框,<Esc> 放棄執行命令。可以使用{按鈕提示:command}格式,*號用于表示焦點所在,enter 立即執行。
實例:
#YESNO Where to you want to go today? {Temple:.temple} {Guild:.guild} {*Microsoft:#URL http://www.microsoft.com}
下面是Pattern中可以使用的特殊字符
* 匹配任何數量的字符或空格
? 匹配一個字符
%d 匹配任何數量的數字(0-9)
%w 匹配任何數量的字母(a-z)
%a 匹配任何數量的字母或數字(0-9,a-z)
%s 匹配任何數量的空格(spaces, tabs)
%x 匹配任何數量的非空格
[range] 匹配任何數量的在[range]中列出的字符
^ 強制從一行的開始進行匹配
$ 強制匹配到一行的結束
(pattern) 保存匹配的式樣到參數%1~%9
~ 包括其中的字符不會被解釋為特殊字符
{val1|val2|val3|...} 匹配其中列出的任何特殊的串
{^string} 不匹配其中包括的串
使用[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 邏輯運算非
格式: #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