首页 > 代码库 > mud目录命令说明

mud目录命令说明

 

 

目錄結構

以下列出的是 ES2 mudlib 根目錄下標準的子目錄結構,以及簡短的說明。

 

/adm儲存由系統管理者所管理的程式與資料檔。
/std儲存標準物件的程式碼。
/obj儲存通用物件的程式碼。
/feature儲存物件特徵的程式碼。
/daemon儲存遊戲制度精靈的程式碼。
/d儲存開放區域的程式碼。
/cmds儲存全域性使用者指令的程式碼。
/include儲存系統表頭檔。
/doc儲存說明文件文字檔。
/data儲存使用者帳號、物件資料。
/u儲存巫師工作目錄。
/log儲存系統日誌。

 

系統函數 (Simul-Efuns)

以下列出的是 ES2 mudlib 目前定義的 simul-efun 及扼要的用途說明。

 

chinese_number傳回中文格式的數字如「一百三十六」等。
chinese_period傳回中文時間的表示法如「一小時三十六分」等。
to_chinese傳回一個英文詞彙的對應中文名稱。
break_chinese_string將一個含有中文的字串依照指定長度斷成數行。
currency_string傳回中文錢的表示法如「三兩銀子又十二文錢」等。
cat將一個檔案的內容顯示給 this_player()。
log_file將一段文字寫入指定的日誌 (log) 檔。
assure_file檢查並建立一個檔案路徑中所有的目錄。
base_name傳回物件的真正檔名 (去掉物件流水號)。
gender_self傳回指定性別的中文第二人稱。
gender_pronoun傳回指定性別的中文第三人稱。
getoid傳回物件的流水號。
file_owner傳回指定檔案的擁有者 (巫師) 代號。
creator_file傳回指定檔案的建立者 UID,用來設定物件被建立時的權限。
destruct覆蓋 efun 中的 destruct,作各種檢查。
users覆蓋 efun 中的 users,作各種檢查。
livings覆蓋 efun 中的 livings,作各種檢查。
objects覆蓋 efun 中的 objects,作各種檢查。
exec覆蓋 efun 中的 exec,作各種檢查。
user_cwd傳回指定巫師目前的工作目錄 (實作錯誤)。
user_home傳回指定巫師的 home 目錄。
user_path傳回指定巫師的 home 目錄加上 ‘/‘。
user_data傳回指定使用者的人物存檔檔名。
login_data傳回指定使用者的帳號存檔檔名。
mail_data傳回指定使用者的郵件信箱存檔檔名。
resolve_path傳回展開 ‘.‘ 與 ‘..‘ 表示法的路徑名稱。
wiz_level傳回指定使用者的巫師等級。
wizhood傳回指定使用者的巫師等級名稱。
wiz_level傳回指定使用者的巫師等級。
ntime傳回 ISO-8601 的日期時間表示法。
snoop覆蓋 efun 中的 snoop,作各種檢查。
message_vision將訊息加上人稱變化,顯示給多個對象。
tell_object利用 message efun 提供與早期 MudOS 的相容 efun。
tell_room利用 message efun 提供與早期 MudOS 的相容 efun。
shout利用 message efun 提供與早期 MudOS 的相容 efun。
write利用 message efun 提供與早期 MudOS 的相容 efun。
say利用 message efun 提供與早期 MudOS 的相容 efun。

 

系統表頭檔 (Include Headers)

表頭檔位於 /include 目錄下,以下列出 ES2 目前使用中的表頭檔。

 

<action.h>定義人物特徵 F_ACTION 所使用到的巨集符號。
<action.h>定義人物特徵 F_ACTION 所使用到的巨集符號。
<ansi.h>定義 ANSI 色彩/游標控制碼的巨集符號。
<armor.h>護具類物件的標準表頭檔,含護具類物件的繼承定義。
<attack.h>定義人物特徵 F_ATTACK 中宣告的函式原型。
<attribute.h>定義特徵 F_ATTRIBUTE 中宣告的函式原型與巨集符號。
<char.h>定義人物特徵 F_* 巨集符號。
<combat.h>定義人物特徵 F_COMBAT 所使用到的巨集符號。
<command.h>定義指令系統所使用到的巨集符號,以及預設指令搜尋路徑。
<condition.h>定義人物特徵 F_CONDITION 所使用到的巨集符號。
<condition.h>定義人物特徵 F_CONDITION 所使用到的巨集符號。
<config.h>定義 ES2 mudlib 系統組態,與開啟/關閉某些選擇性功能的符號。
<copyright.h>ES2 mudlib 著作權聲明的表頭檔。
<daemon.h>定義精靈物件 *_D 的巨集符號。
<dbase.h>定義特徵 F_DBASE 所使用的巨集符號。
<explore.h>定義利用使用者特徵 F_FLAG 紀錄使用者探險點數的檢查點所使用的巨集符號。
<function.h>MudOS 的函式指標所使用的巨集符號 (根據 MudOS 定義)。
<globals.h>ES2 mudlib 的系統預設表頭檔。
<intermud.h>Intermud 通訊協定相關的巨集定義。
<item.h>一般物件的標準表頭檔,含一般物件的繼承定義。
<localtime.h>MudOS 的 localtime efun 所使用的巨集符號 (根據 MudOS 定義)。
<login.h>有關玩家身分驗證、人物創造的組態設定。
<move.h>定義特徵 F_MOVE 所宣告的函式原型。
<mudlib.h>有關 ES2 mudlib 的版本資訊等巨集定義。
<name.h>定義特徵 F_NAME 所宣告的函式原型。
<obj.h>定義通用物件的位置。
<origin.h>MudOS 的 origin efun 所使用的巨集符號 (根據 MudOS 定義)。
<race.h>遊戲中與種族相關的巨集符號。
<room.h>房間類物件的標準表頭檔,未包含繼承定義。
<runtime_config.h>MudOS 的 get_config efun 所使用的巨集符號 (根據 MudOS 定義)
<score.h>定義人物特徵 F_SCORE 所宣告的函式原型。
<skill.h>定義人物特徵 F_SKILL 所宣告的函式原型。
<socket_err.h>MudOS 的 socket 族群 efun 所使用的巨集符號 (根據 MudOS 定義)。
<statistic.h>定義特徵 F_STATISTIC 所宣告的函式原型。
<team.h>定義人物特徵 F_TEAM 所宣告的函式原型。
<type.h>MudOS 的 typeof 運算傳回值的巨集定義 (根據 MudOS 定義)。
<user.h>定義使用者特徵的 F_* 符號,以及一些相關組態設定。
<weapon.h>武器類物件的標準表頭檔,含武器類物件的繼承定義。

 

物件特徵 (Feature Objects)

物件特徵是 ES2 mudlib 異於其他 mudlib 的最主要特色,在 ES2 mudlib 的設計哲學中,一個物件分析到最後,就是一群物件特徵的聚合體。

ES2 mudlib 在物件特徵的目錄下,另外細分幾個族群,分列如下:

具有屬性/feature/attribute.c
具有計量值/feature/statistic.c
具有資料庫/feature/dbase.c
具有自動釋放功能/feature/clean_up.c
具有唯一性/feature/unique.c
可以被飲用/feature/drink.c
可以被裝備/feature/equip.c
可以被食用/feature/food.c
可以被移動/feature/move.c
可以被看見與指名/feature/name.c
可以被儲存/feature/save.c
可以被研讀/feature/study.c
人物特徵 
 能夠攻擊/feature/char/attack.c
 能夠使用指令/feature/char/command.c
 能夠計算貨幣/feature/char/finance.c
 能夠接收訊息/feature/char/message.c
 能夠學習技能/feature/char/skill.c
 能夠進行持續性動作/feature/char/action.c
 能夠維持戰鬥狀態/feature/char/combat.c
 能夠受輔助/不良狀況效果影響/feature/char/condition.c
 能夠建立師徒關係/feature/char/master.c
 能夠提升等級、經驗/feature/char/score.c
 能夠組織隊伍/feature/char/team.c
使用者特徵 
 能夠儲存 alias/feature/char/alias.c
 能夠儲存物品/feature/char/autoload.c
 能夠編輯文字/feature/char/edit.c
 能夠紀錄事件旗標/feature/char/flag.c
 能夠使用 pager/feature/char/more.c
護具類物件特徵 
 盔甲類/feature/armor/armor.c
 衣物類/feature/armor/cloth.c
 鞋類/feature/armor/feet.c
 戒指類/feature/armor/finger_eq.c
 手套類/feature/armor/hand_eq.c
 頭盔類/feature/armor/head_eq.c
 護腿類/feature/armor/leg_eq.c
 項鍊類/feature/armor/neck_eq.c
 腰帶類/feature/armor/waist_eq.c
武器類物件特徵 
 斧類/feature/armor/axe.c
 刀類/feature/armor/blade.c
 鈍器類/feature/armor/blunt.c
 匕首類/feature/armor/dagger.c
 針類/feature/armor/needle.c
 槍類/feature/armor/pike.c
 杖類/feature/armor/staff.c
 劍類/feature/armor/sword.c
 鞭類/feature/armor/whip.c
標準物件 (Standard Objects)

標準物件主要提供區域建造者物件的基礎原型,區域建造者經由「繼承」這些 標準物件來撰寫區域內的物件。ES2 mudlib 在標準物件目錄下另外細分幾個 族群,分列如下:

 

留言板物件/std/bboard.c
人物狀況定義物件/std/condition.c
技能定義物件/std/skill.c
貨幣物件/std/money.c
種族類物件 
 類人種族/std/race/humanoid.c
人物類物件/std/char.c
 非玩家人物/std/char/npc.c
房間類物件/std/room.c
 錢莊/std/room/bank.c
 當舖/std/room/hockshop.c
 當舖儲藏室/std/room/hockshop_storage.c
 客棧/std/room/inn.c
 旅行點/std/room/journey.c
物品類物件/std/item.c
 可合併物品/std/item/combined.c
 容器物品/std/item/container.c
 液態物品/std/item/liquid.c
 藥材 ??/std/item/pharmacy.c
 原物料/std/item/reagent.c

 

另外有一類介於標準物件與通用物件之間的重要物件,因為物件權限的規劃, 被安排放在標準物件的目錄下,這些物件包括:

  • 使用者帳號物件 (/std/obj/login.c)
  • 使用者物件 (/std/obj/user.c)
  • 屍體物件 (/std/obj/corpse.c)
精靈物件 (Daemons Objects)

精靈物件是指遊戲系統中一些用來提供某些功能,但是並不具備實體的抽象物件, 這些功能並不專屬於某幾種物件,也不依存某些物件而存在。 它們的角色類似神話中掌管大自然的火之精靈、光之精靈等,因此而得名。

精靈物件主要分為兩類,第一類位於 /adm/daemons 目錄下,為具有 ROOT 權限 的系統精靈;另一種位於 /daemon 下,為具有 MUDLIB 權限的遊戲制度精靈。

目前 ES2 的系統精靈包括:

指令代換精靈/adm/daemons/aliasd.c負責提供系統通用 alias 給所有使用者。
頻道精靈/adm/daemons/channeld.c負責提供所有通訊頻道如 chat、wiz、rumor 等。
人物精靈/adm/daemons/chard.c負責設定、檢查、人物的狀態,包括死亡、復活等。
中文精靈/adm/daemons/chinesed.c負責處理中、英文對照,以及一些與中文相關的功能。
家族精靈/adm/daemons/cland.c負責管理所有玩家間的持久性組織。
指令精靈/adm/daemons/cmd_d.c負責管理玩家指令的搜尋與執行。
戰鬥精靈/adm/daemons/combatd.c負責所有戰鬥的進行。
制度精靈/adm/daemons/daemond.c負責管理第二類制度精靈的登記、查詢、呼叫。
情緒精靈/adm/daemons/emoted.c負責管理、執行所有的情緒指令。
裝備強化精靈/adm/daemons/enhanced.c負責裝備的隨機強化。
使用者查詢精靈/adm/daemons/fingerd.c負責處理並執行 finger 指令。
連線精靈/adm/daemons/logind.c負責管理使用者連線登入、創造人物、斷線、重新連線等。
自然現象精靈/adm/daemons/natured.c負責管理天氣變化與遊戲中的自然現象。
系統效能精靈/adm/daemons/profiled.c負責監控、統計系統效能。
權力精靈/adm/daemons/securityd.c負責管理所有物件對檔案系統的讀寫權、以及某些 efun 的使用權。
郵件精靈/adm/daemons/smtpd.c負責管理使用者間互相寄送郵件的功能。
身分識別精靈/adm/daemons/userid.c負責網路使用者身份識別。
虛擬物件精靈/adm/daemons/virtual.c負責管理虛擬物件的產生。

制度精靈主要隨各 MUD 遊戲設計不同而異,目前 ES2 所使用的制度精靈有以下幾類:

種族精靈位於 /daemon/race 目錄下
職業精靈位於 /daemon/class 目錄下
技能精靈位於 /daemon/skill 目錄下
狀態精靈位於 /daemon/condition 目錄下
留言板物件位於 /daemon/board 目錄下
指令物件 (Command Objects)

指令物件唯一的用途是用來提供使用者執行指令,這些物件的特色是:具有 ROOT 權限,但是在執行指令時,通常會降低為和執行指令的使用者相同的權限。

目前 ES2 mudlib 將指令物件依照使用權限高低分為以下幾類, 權限較高的使用者可以使用權限較低者全部的指令。

大神指令位於 /cmds/adm 目錄下
大巫師指令位於 /cmds/arch 目錄下
巫師指令位於 /cmds/wiz 目錄下
實習巫師指令位於 /cmds/app 目錄下
見習巫師指令位於 /cmds/imm 目錄下
玩家指令位於 /cmds/usr 目錄下
一般指令位於 /cmds/std 目錄下

以下是 ES2 目前所有的通用指令: (不含由物件、房間、職業、種族所提供的特殊指令)

chpass大神設定除了大神以外,任意使用者的密碼。
shutdown大神立即關閉遊戲伺服器,如果你用一個自動重新啟動的 shell script 跑 neolith,這個指令也可以用來立即重新啟動 MUD。
callouts大巫師列出所有物件待執行的 callout 函數。
chinese大巫師中文精靈的管理工具,可設定中英文對照。
cleanup大巫師對所有物件呼叫自動清除 (clean_up) 函式。
force大巫師強迫另一位使用者執行指定的指令。
heal大巫師完全恢復一位使用者的健康狀態。
overview大巫師檢視系統一些物件的統計資料。
possess大巫師附身在指定的 NPC 物件。
promote大巫師提升/降低指定使用者的巫師等級。
purge大巫師刪除指定使用者的帳號
reboot大巫師啟動系統正常的重新啟動程序,開始倒數計時,並發出訊息警告所有使用者。
rehash大巫師更新指令搜尋快取。
reset_okip大巫師設定指定使用者的登入 IP 地址檢查。
restore大巫師取回指定使用者的人物備份檔。
resurrect大巫師將指定使用者從死亡狀態復活。
slay大巫師直接殺死指定的使用者或生物。
wizlock大巫師設定/取消非巫師的使用者登入限制。
analyze巫師顯示並分析指定使用者或生物的狀態與能力。
call巫師呼叫指定物件的指定函式。
cat巫師列出指定檔案的內容。
cost巫師計算執行某一指令所需要的微指令 (instruction) 數。
daemon巫師制度精靈的查詢/管理工具。
exile巫師立即驅逐指定的玩家,並且禁止上線一段時間。
ff巫師查詢某一函數在物件中,函數定義所在的檔名。
ilist巫師顯示指定物件的繼承樹。
info巫師顯示指定物件的內部狀態。
invis巫師開啟/關閉巫師隱形狀態。
localcmds巫師顯示巫師目前由身上物件與所在房間提供的所有指令。
qload巫師顯示系統目前的負荷。
quiet巫師設定/取消指定使用者在公共頻道上的發言限制。
snoop巫師監聽指定使用者所收到的訊息。
summon巫師立即將指定使用者移動到巫師所在的地點。
tail巫師顯示指定檔案的最後幾行。
userid巫師用身分識別精靈查詢使用者身份。
cp實習巫師拷貝指定的檔案。
edit實習巫師編輯指定的檔案。
home實習巫師立即移動到自己的工作室或巫師公會。
mkdir實習巫師建立一個子目錄。
mv實習巫師移動 (更名) 指定的檔案或子目錄。
rm實習巫師刪除指定的檔案。
rmdir實習巫師刪除指定的子目錄。
cd見習巫師改變工作目錄。
clone見習巫師複製指定的物件。
dest見習巫師摧毀指定的物件。
edemote見習巫師編輯情緒指令。
goto見習巫師立即移動到指定的房間或指定的使用者身邊。
home見習巫師立即移動到自己的工作室或巫師公會。
items見習巫師顯示身上或房間中物品的真實名稱。
ls見習巫師顯示工作目錄或指定目錄的內容。
mem見習巫師顯示系統或指定物件所佔用的記憶體量。
more見習巫師以分頁方式顯示指定檔案的內容。
pwd見習巫師顯示自己的工作目錄與工作檔案。
status見習巫師顯示系統使用記憶體的統計資料。
update見習巫師重新載入指定的物件,或更新使用者物件。
where見習巫師尋找指定的物件,或列出所有使用者的位置。
which見習巫師顯示提供某一指令的物件檔名。
whoami見習巫師顯示自己目前的權限。
abandon玩家放棄學習指定的技能。
alias玩家設定/查詢指令替代功能。
backup玩家備份人物存檔。
balance玩家查詢銀行帳戶餘額。
ccmd玩家幫派指令。
chfn玩家修改自己的電子郵件、簽名等個人資料。
cls玩家清除螢幕。
describe玩家設定自己的人物描述。
disable玩家將指定的技能設定為不使用。
enable玩家將指定的技能設定為使用。
estimate玩家評估指定對手的戰鬥能力。
finger玩家查詢離線使用者。
gain玩家查詢技能進步的狀況。
help玩家查詢說明文件。
hp玩家顯示人物生命點數。
identify玩家鑑定物品。
ignore玩家用來關閉所有來自指定使用者的 tell 訊息。
inventory玩家顯示人物身上攜帶的物品。
keep玩家將指定物品作上記號,以免不小心丟掉或賣掉。
localtime玩家顯示伺服器所在地的時間。
nick玩家設定自己的綽號。
okip玩家設定允許登入 IP 地址的檢查。
option玩家設定一些關於顯示訊息的開關。
order玩家命令自己的寵物、嘍囉做某些事情。
passwd玩家修改自己的密碼。
praise玩家讚揚其他的使用者。
quit玩家結束連線離開遊戲。
save玩家將人物資料存檔。
score玩家顯示人物屬性、經驗值等資訊。
semote玩家顯示情緒指令列表。
skills玩家顯示人物的技能。
suicide玩家自殺、刪除人物帳號。
time玩家顯示遊戲世界目前的時間。
to玩家輸入含有換列字元的命令。
tune玩家關閉指定的頻道。
undescribe玩家刪除人物的描述。
uptime玩家顯示伺服器執行的時間。
version玩家顯示 MUD 所使用的伺服器名稱與版本。
visitor玩家顯示 MUD 的使用者人次統計。
who玩家顯示所有使用者的列表。
wimpy玩家設定自動逃跑的參數。
wizlist玩家查詢巫師團隊的人員名冊。
acquire一般向其他人物學習技能。
apprentice一般向其他人物拜師學藝。
ask一般向其他人物詢問問題。
backstab一般對其他人物發動偷襲。
berserk一般對其他人物發動狂暴攻擊。
buy一般向其他人物購買物品。
cast一般施展法術。
charge一般指定戰鬥中優先攻擊目標。
close一般關閉門窗等。
conjure一般施展法術。
drink一般喝飲料。
drop一般丟棄物品。
eat一般吃食物。
emote一般作動作。
enter一般進入特定場所。
exert一般使用內功。
fight一般向其他人物提出比試的要求。
fill一般將容器注入液體。
follow一般設定人物自動跟隨其他人物一起行動。
get一般從地上或其他容器中撿起物品。
give一般將身上的物品給予指定的人物。
go一般往指定的方向移動。
guard一般設定人物保護的對象。
halt一般終止戰鬥或正在進行的活動。
kill一般開始以殺死對方為目的的戰鬥。
lock一般使用鑰匙將門鎖上。
look一般檢視物品或週遭的環境。
open一般開啟門窗。
perform一般使用招式。
put一般將物品放進容器。
remove一般卸下裝備。
reply一般回答來自其他玩家的 tell。
say一般說話,讓位於同一房間中的人物聽到。
search一般在所在的環境搜尋特定的物品。
shout一般大吼大叫,讓所有其他玩家聽到。
sneak一般嘗試以不引人注意的方式,向指定的方向移動。
steal一般嘗試向指定的對象偷竊。
study一般從特定物品上學習技能。
team一般和其他人物組織隊伍。
tell一般傳送訊息給指定的使用者。
unlock一般用鑰匙開門。
unwield一般卸下武器。
wear一般穿上裝備。
whisper一般和指定對象耳語。
wield一般使用武器。

mud目录命令说明