導航:首頁 > 編程大全 > zmud資料庫

zmud資料庫

發布時間:2023-10-14 14:41:09

❶ MUD游戲是什麼游戲

MUD游戲(Multiple User Domain多用戶虛擬空間游戲)。大家對MUD也許很熟悉,這就是你一直聽到的,可能卻始終不聽不懂的「泥巴」,雖然你可能還不知道它確切是什麼東西。但在泥巴一族中間,MUD就是他們第二個生存空間。

1979年第一個MUD(多用戶土牢)多人交互操作站點建立。這個站點包含了各種冒險游戲、棋類游戲和豐富詳盡的資料庫。大受歡迎的《網路創世紀》(UO)則是真正意義上的第一個大型圖形MUD,也是至盡被認為是最完善的網路游戲,玩家只要自己喜歡,可以專心做買賣,或到處游歷,或什麼事情也不做而隨便走走,與現在網路游戲中充斥著的PK,殺戮相比,UO是一片純粹的游戲玩家的夢寐以求的聖土,依然是網路游戲的顛峰之作,在UO上發生的很多傳奇故事至盡仍被廣為流傳。

MUD的歷史
原作: Lauren P. Burka

翻譯: stoneboy

1989年的八月,CARNEGIE MELLON的一個研究生在一個周末寫了一個叫做TinyMUD的游戲。那是一個簡單的,多用戶的游戲。在互聯網只要誰知道他的地址與埠(lancelot.avalon.cs.cmu.e 4201),那麼誰就可以得到這個游戲。然而TinyMUD並不是最開始的MUD游戲,這個游戲容易使用,並且可被移植到許多UNIX系統上。這使得MUD風潮像爆炸一樣風靡世界至今未衰。現在的各種MUD游戲就在你的身邊,另你目不暇接。

MUDs(多用戶空間)有如下的各種優點:

許多人可以一起玩;

游戲被分成許多虛擬的空間以便在一個空間的人或物不會影響到另一個空間的人或物;

所有的交互內容以文字出現,沒有圖片或聲音;

通訊靠TCP套接字實現;

大多數代碼由學校里的學生來完成維護並且可以公開地得到;

實物,空間和人物的組合可以由簡單的命令來完成,而其他語言編寫的MUD游戲允許有更復雜的命令和道具;

盡管MUD是為了一個嚴肅的目的而出現的,但是它仍然保持著原始冒險或RPG游戲的氣氛;而且游戲玩家的身份並不被現實所束縛,MUD里的游戲的角色有現實虛擬如一的人,有毛茸茸的動物,有科幻故事裡的英雄,以及所有可愛的,醜陋的,令人討厭的,智慧的人,或者僅僅是一個平常的怪人。

JIM ASPENS(現在是YALE大學的老師)認為TinyMUD無足輕重,很快就會喪失掉新意。他有了些想法卻又舉棋不定,這對MUD游戲的優點和缺點都有一定的影響。

從地獄開始:MUD游戲--內存VS硬碟

早期的MUD游戲傾向於把大部分游戲數據放到硬碟上。當玩家需要時,空間和物體的數據從硬碟上被取出來。這種方式很慢。

TinyMUD把所有的數據都放在內存裡面。這種設計假設數據不會變得特別多。實際上,對於小的MUD游戲,基於內存的數據存儲是很快的。但當數據量增加得很多時,進程會開始頻繁地在硬碟和內存之間交換數據。系統的負載會由於頁面錯誤的集中出現而攀升。許多系統結構都有一個處理數量限制。ASPENS最終拋棄了TinyMUD當它在他的機器上達到了32M處理數量極限而崩潰的時候。MUD游戲的數據膨脹使問題惡化了,導致巨大的個人對象(INDIVIDUAL OBJECT),甚至後台進程。LambdaM00,運行在SparcCenter 1000上的Xerox Parc平台上,在1994年就要求有198M給予進程並且數據要佔有80M的硬碟空間。

很大的基於內存的MUD游戲的表現不盡人意眾所周知。盡管有大量的優秀的MUD程序員,直到很晚這個數據層的改進問題才被考慮到。有以下幾點原因:

無知。很多學生懂得C語言,但幾乎沒有MUD程序員研究過資料庫的設計。我還記得在新聞組rec.games.mud上,一個學生堅持認為基於硬碟的MUD游戲會把硬碟搞得疲勞不堪。

習慣。有很多MUD游戲是基於硬碟的。包括Marcus Rarnum(那時是DEC的員工)的UberMUD和UnterMUD和Andrew Molitor(Wesleyan大學的研究生)的TeenyMUD,是Andrew Molitor諸多計劃中的一個。UberMUD,用到了b+樹型數據結構,但被證明對於大多數MUD程序員是相當復雜的。UnterMUD用到了hash表,使用了很高明的緩沖技術而提高了數據訪問速度。這種技術被用到了一些商業MUD產品中。但是這種數據結構不允許一些MUD程序員所喜好的操作,比如檢查數據對象的總數量。UnterMUD的數據結構,也就是緩沖技術,已經被應用於其他一些伺服器中,比如MUSH 2.0。

至少有一種運行得很長時間的TeenyMUD。TeenyMUD使用了一種平直的文件,這種文件使用了一種直接索引方式,和hash搜索同樣有效,盡管比之於UnterMUD和UberMUD在緩沖技術方面還欠缺一點點。它的資源佔用率很低,對於那些只想試用MUD一兩個星期的人很適用。但是,那些喜歡小玩意的MUD程序員常常忽視了TeenyMUD因為它缺少一種可編程的環境。不言自明,如果你的伺服器是完全基於內存,而你的MUD進程增長迅速使得依靠硬碟的方式變得很誘人的話,那麼在這個時候要不損壞數據而更換伺服器則太晚了。

基於硬碟方式不是一種萬能鑰匙。它使得checkpoint(當伺服器運行時做備份)變得很復雜。一種技術上的意見認為基於硬碟的數據結構不會增進效率,如果這些數據夠多。理論上,經常被訪問的數據對象的緩沖會被放在內存中。,當需要時,這些數據就被交換到進程地址空間裡面。既然對象不能因為分布狀況而被組合到數據頁上,任何順序地訪問大量數據的操作都會使進程運行艱難。操作系統比大多數應用程序要更善於交換數據,一個基於硬碟的資料庫比一個基於內存的資料庫要痛苦一些。基於硬碟方式仍然會給數據增長加上一個令人滿意的上限,盡管硬碟映像會變地更大,更臃腫,有更多的碎片。

與其找尋一種復雜的方法來解決數據增長問題,許多MUD游戲寧願依靠一種公共的約束或rm -rf(rm:Unix命令-刪除)和一切從新開始者來構建資料庫。很不幸,這種標志之一以及一個成功的MUD游戲的副作用就是在程序大小和子進程數量兩方面的增長。————————

應該注意到硬碟,內存和cpu要佔用較多的系統資源。一個50個用戶的MUD游戲要佔用一個FTP進程的一定比例的網路帶寬而且不會使通訊顯著地減慢。

在1989年和1994年之間,普通互聯網主機上的內存和cpu性能增長了一到兩個數量級。但是在1989年,只有很少數的人曾經登錄到有額外的 CPU周期分給MUD游戲的互聯網主機上,特別是一個那種能控制整個的工作站使其他進程不能以合理的反應時間運行的主機。

同時,隨著MUD玩家把游戲介紹給他們的朋友,一定數量的大學生開始迷上了MUD游戲。但給予MUD的CPU周期仍然增長緩慢。這種不和諧導致了兩個結果。

人們開始在任意的地方運行MUD,也不請求得到系統管理員的允許。1990年,某個使用GNU群件的人總會在一個機器上發現四到五個MUD在運行,而用戶要干點實際的工作就必須殺死這些MUD進程。

在某個正在發展的虛擬社區里,掌握著可以運行MUD的資源的人總是有著很大的權力,甚至要超過他們對繼續改進MUD所需投入的時間和精力。

這樣我們就碰到了關於MUD的第二個問題

究竟是哪些人的游戲呢?
ASPNES認為他的游戲可能在幾個星期後人們就會對之興味索然。然而確沒發生這樣的情況,他於是就繼續運行他的游戲。很多用戶認為TinyMUD,還有他們在構建這個游戲的努力,會永遠持續下去(或者至少是在他們畢業之前,還有機會接觸網路的時候)。同時,ASPNES,他是一個游戲中的巫師,當游戲變得越來越大,越來越難以控制的時候,卻越來越懶地維護他的 MUD游戲,不去管理資源使用,也不去觀察游戲參與者的行為了。

一個用戶在TinyMUD上的所建對象的數目的限制只是一個「錢」(當然是游戲中的貨幣)的問題。玩家需要數個便士來建造空間和對象。一個玩家開始是一分錢也沒有的,但卻可以通過訪問別人的建築或尋找寶藏來賺一些錢。有野心的建造者很快發現計算金錢的系統可以用宏來屏蔽掉以便不斷地攫取有價值的寶藏。這對那些有野心的龐大建築計劃者很合口味。但對其他人來說,例如,他們建造了500個對象,卻被告知:「你找到了一分錢!」。他們被留在了鎮子的中心,以至於任何經過此地的人都必須看著這500個對象的列表。一旦這些對象被去掉,它們仍被加到資料庫里直到有人發出了一個工作循環命令。

TinyMUD的一些部分以線性的方式延伸,比如街道和地下鐵道。另外的部分卻互相交織在一起。有些電話亭連接了四到五個方向。WESLEYAN大學的蒸氣管道連接到了FLORIDA大學的校園里。台灣竟就在劍橋的旁邊。還有一些謎語,包括巨洞歷險的遺跡。還有住宅,准確地說,是一個住宅。

REC ROOM是一個早期的資料庫。它有一些玩具和場景。REC ROOM的主人讓別人可以連到資料庫上還為建造著提供了自由的外出的通道。因此任何建造了些對象的人都作了一個入口和出口同道連到了REC ROOM上,以代替資料庫的線性部分。很快REC ROOM成為一個生存的場所,但也是一個交通要沖。

同時,一小部分MUD玩家在建造,而只有極少數的人在探索。更多人把TinyMUD作為一個有傢具的交談系統。曾經有過議論要是鼓勵,或甚至於強迫玩家去探索。但是,定居卻成為MUD游戲里與建造和探索相競爭東西。大多數伺服器把交談設置得同建造一樣復雜。

當人們在一個虛擬的空間里聚集的時候,就意味著任何想搞點破壞的人可以寫一個程序連到MUD上,找到那個房間,發出大量的字元,那麼MUD就會死掉。

對於TinyMUD的這些已被發現的缺點,擁有資源的MUD玩家,或者從別人那裡能搞到機器運行MUD的人,開始設計新的MUD游戲。這些新的MUD游戲在建造方面有某種中央建設的計劃,或者至少在哪個人把什麼東西放在什麼地方的問題上有限制。所有這些育游戲都有更加積極的巫師。建造方面的限制導致了爭吵,偶爾甚至相當有強調性和尖刻。建造者可以看到他們的傑作被巫師循環掉以減少資料庫的在內存和硬碟間的交換數據。「REC ROOM現象」使建造一般空間的的人被提升到實際上的巫師的地位,他們能控制哪一個人能進入或者建造新的建築到公共的空間里去。這些人的力量只在系統管理員之下其他人之上。

MUD玩家大多數是大學學生,他們剛剛發現所謂「言論自由」和「藝術性表達」的概念。他們通常是狂野的,也是毫無效果地把這些想法加到資料庫上的項目里。而對於MUD游戲的下一個階段的矛盾已經被埋下伏筆,而且至今仍未被解決。

哪些人擁有MUD資料庫呢? 系統管理員? 巫師(在MUD游戲中有著編程和管理系統許可權的人)? 還是那些揮灑了汗水建造游戲中風景的人?

一個資料庫只是一個文件。如果你拷貝下來又會發生什麼呢? 哪些人又有這些拷貝呢? 如果在不同的機器上有著同一個資料庫的兩個拷貝在運行呢?

如果MUD游戲的規則或者是管理員定的規則發生了變化,那麼反對這些規則的玩家能不能摧毀他們的建築呢? 如果玩家沒有什麼舉動,是不是就意味著他們贊同新個規則呢? 如果玩家的建築包含了「公共」空間或vital topological interlink呢?

玩家有沒有權力參與MUD游戲? 他們有沒有權力去建造呢? 對於那些公平地參與者會不會有限制呢? 對於那些在建築上進行了投資的玩家對資料庫能有影響么? (Can it be decommissioned over their protests?)

分布式MUD游戲,(就象所有其他的分布式的東西一樣。) 已經被作為資料庫所有權問題和所有其他常見的錯誤的解決方案被提出來了。而且已經有了一些初步成功的分布式MUD游戲的實驗。玩家能夠從一個MUD游戲毫無困難地走到另一個MUD游戲。如果被拒絕的話,人們可以簡單地「拿起他們的玩具回家」。但是,分布式MUD游戲卻不怎麼流行。

很自然,如果用戶許可權的問題不被解決的話,對於那些有著用戶分級的系統就不會有令人滿意的解決方案。一個MUD系統管理員可能會選擇去相信一些主機上的MUD系統,但是如果其中的一個MUD因為疏忽而出現了安全問題,他們可以允許製造麻煩的人從這個MUD中出去然後登錄到另外的主機上。

而且,一個分布式的MUD游戲要求每個參與的MUD系統都使用同樣的伺服器代碼,或者至少是一個同樣的資料庫層。我還不知道有任何的令人滿意的解決方案來解決游戲玩家把游戲中的東西從一個MUD帶到另一個MUD中的問題。

做你想做的,那就是規則的全部含義。
正如其他的系統的管理員所知道的,人們對於共享的計算機資源和對於真實生活的資源都同樣的不是很有理性。在沒有一個積極的系統管理員的情況下,開始的TinyMUD的資料庫不僅變得很大而且亂七八糟。網路上有著年青的,未諳世事的年青人,他們喜歡搞破壞,而不是為自己建設。甚至能用一些簡單的編程工具來製造系統災難。在MUD上這可能變得更加糟糕,因為網路上對於匿名用戶的許可使的一般人也可以對網路安全造成威協。

MUD只是游戲,但是大多數系統管理員和玩家都普遍認為MUD是很有趣的,對於大多數人,接收端的煩惱並不是很有趣。但是對於煩惱到底是什麼的問題卻比編程時的問題要更加痛苦。狂暴的舉動或者是淫穢的內容能保護語言性的或藝術性的表達么? 或者對於那些平靜的玩家是一件煩人的事情?扮演一角色會給一個玩家粗魯的或侵虐的性格么?

當實際上沒有什麼社會規范時強迫玩家遵守社會規范沒有什麼用處。在一個MUD上,性別,種族,狀態,甚至地球引力都不是他們看上去那麼回事。一個人可以很好地理解,當那些憂郁的,或毛絨絨的,或那些可以飛的人堅持認為新手會在現實生活中和MUD中一樣行動,所帶來的混亂。而且,一種社會規范會成為一個社會團體存在的前提。一些學生利用學習的間隙想些別的事情而不是考慮關於道德的事情。

不管MUD游戲系統是不是社團,象泥(mud)水坑裡會生蟲一樣,他們也產生了、管理機構。通常,對於系統管理員有三種理解。

有象JIM ASPNES式的「放任自流」模式。這種MUD游戲趨向於毫無規律地快速增長,也沒有人去踢出那些搗亂的人。沒有一個積極的管理員,許多MUD社區<使用了一種強有力的MUD客戶端軟體作為主持正義的義務警察。防禦的功能包括:禁止問題玩家的輸出。對於攻擊的問題,有可能採用/usr/dict/words(是一個UNIX下的字典文件,有大概400多K位元組)來把對方給趕跑,特別是當對方的客戶端沒有你的強大時。

另一個方面,一些MUD游戲採用了另一種轉移的方式,組織了一個以可憎的行為為規范的社區,交互的集中形式是TinyMUD 的「kill」的命令。CATHARSIS是一個很多人知道的虛擬王國,那裡不需勞神費事,淫穢的內容就可以被提升到藝術的高度。

一些MUD游戲採取了自動管理的模式。這種方式工作得相當不錯,如果管理機器的人員就是MUD的頂級巫師,而且經常上線玩,因此熟知其他玩家,並且能觀察到不斷出現的問題的話。許多這樣的MUD游戲也使用一種用戶注冊的方式,使任何一個人想玩的人都必須回復一個有效的地址。而生事的傢伙也就永遠toaded. 這個系統最大的缺陷就是一個獨裁的MUD只會接納喜歡,或者至少是能容忍,頂級巫師的人。......

第三個可能是在大多數有能力的玩家中選出人來產生一個合作控制的MUD游戲管理模式。有人幽默地指出道:冒險式的MUD 游戲,允許用戶通過猜迷,殺死巫師直到他們也到了巫師階段,然後才開始建造自己的東西。TinyMUD和與之類似的MUD同類有一個相似的分級方式:玩家們通過和巫師外出遊歷直到他們也變成巫師來取得分數。有一些運行了很長時間的MUD使用了一種合作式的管理方式,通常是又投票來決定。當巫師和玩家分成了不同的派別,互相譴責對方粗野的不正當的行為,特別是在公共的論壇里的比如USENET里,這些MUD產生了復雜的或者是丑惡的政治問題

在另一個方面,政治是現實生活的一個不可避免的部分。一些玩家可能會認為政治很好玩,但是另外的人對此報著悲觀恐懼的看法。互聯網正在變得越來越擁擠,而這種早期的令人喜悅的無政府的狀態可能會轉變為一種更復雜的,但可以接受的狀態。

總結:你不能考軟體來解決社會問題。
幾年以前,系統管理員都在把沒有用的MUD從他們的機器上刪除掉。現在管理員們發現,MUD游戲為地理上分隔得很開的項目組成員在郵件列表上提供了顯而易見的優勢。使學生們為合作完成作業而與同學和老師保持聯系,也使行動不便的學生能夠有機會參與社會活動。MUD游戲讓學生和其他地方的學生在網路上實時交談,讓處於城市郊區的大學沒有了隔離的問題。一個虛擬的的公共機構可以讓充滿希望的學生,職員和貢獻者們做虛擬的旅行。

很清除,更進一步的軟體發展是組成穩定的MUD社區的前提。希缺資源對虛擬設區的重視和對真實社區是一樣的。MUD 的資料庫在運行它的伺服器超過了它的處理能力時,或者系統軟體變得不正常時,會被刪除掉,使得建造活動和社區建設的活動受到壓制。

即使有對伺服器軟體的升級,在一個字元界面的虛擬社區里生活的社會問題在五年裡幾乎沒有什麼變化。當有限的資源被去掉時,磨擦仍然會存在。

在MUD上有過主流媒體對「社會問題」的關注(這並不讓人吃驚;網路空間里的性和死亡比資料庫層面的討論要賣座得多)但是如果那些將要成為系統管理員人認為虛擬的強奸和MUD毒癮只是他們面對的唯一問題,他們會感到吃驚的。

MUD游戲應該是匿名的么,或者MUD的ID應該與現實生活的信息相聯系? 匿名問題可能會促進反社會的行為,但是經過注冊的ID免去了MUD游戲中最有用的性質:遮羞的面紗。一個妥協的方法是系統管理員不能隨意進入修改身分信息。但是任何保存在文件中的信息並不是象人們想像的那樣能夠保密。

哪些人去建造呢? 限制建造的目標到某些特定的主題和布局可以把那些有不同想法的人排除出去。但是無法控制的建造活動會使在資料庫里尋找一個目標或者搜索資料庫變得不可能。一個數據太多的資料庫對任何人是沒有任何趣味的。

新用戶應該學些什麼呢? 喜歡謾罵的用戶在MUD應該受到懲罰么,或者游戲裡面應該有現實生活的秩序? 你能夠確定的知道任何人的現實身份嗎? 把你的真實的生活中的行為移植到虛擬的環境中是沒有什麼用的。「財富」的和「個人」的概念在虛擬的生活中並不適用。文字的交互比真實生活的交流要簡單一些,只是沒了語調和真實的表達。也可能在這種環境種要知道語言對別人的影響也是不可能的。如果一個用戶用無意義的信息轟炸別人使得他或她不能使用MUD,那麼攻擊者要被認為是犯了錯誤嗎?......

即使是簡單的情況,象姓名的管理,也會是一個復雜的問題。一個MUD能夠支持多少個叫DAVE的人? 那麼給用戶分配唯一的數字-字母的ID會不會打破這種虛擬社區里社會的氣氛?

隨便想一想就會看到每一個社會問題並不能靠一個代碼補丁來解決。一個面向大學本科學生的MUD游戲的管理員可能會被裝上一些過慮的裝置來過慮一些特定的字詞。學生們卻又會想出一些新的方法來互相謾罵,這要比伺服器上的規定的更新要快得多。既然一些人能夠被一些簡單的話感動,任何形式的話語很快就會變得冗長無比。

忽視這些問題的MUD系統管理員會發現他們自己碰到每一個事件時都會隨意定一些規則。另一個方面,使規則生效的虛擬社區的社會情況比真實生活的變化要快很多。

「我們,世界上的MUD玩家,為了構建一個完美的資料庫,宣布聯合起來,並保證對於任何有能力的人都能得到kill命令的使用權力。而且在網路死掉之前提供一個備份的MUD,還要提高提示出現的頻率,而且保證我們還有我們的後代有一個安全的站點可以連線。為此我們宣布並確立這個《真實世界的虛擬城邦憲法》」

中國泥巴簡史
作者:龍鱗兒

二十世紀的某一天,在一個距離我們相當遙遠的國度里……

……

一群年輕人發瘋了似的狂喊著:「成了!成功了!我們成功了!!」

……

他們,就是泥巴的始祖----地球上第一批的MUD巫師。

在他們手中,誕生了地球上第一個MUD游戲(網路多用戶文字游戲)。他們,是偉大的,然而,他們的令人垂涎三尺的MUD是我們大部分並不精通英文的國人所可望而不可及的。所以,就有了我們中國自己的巫師的誕生。在中國,第一批接觸MUD的應該屬《東方故事》的巫師們了。他們重新修改並編譯了MUD的核心程序,並極富創意地加入了外國MUD中所沒有的一些核心程序。在他們的努力之下,第一個中文MUD誕生了。這,在中國MUD史上無疑是一個驚天地泣鬼神的壯舉!在他們不懈地宣傳和鼓動下,也誕生了中國第一批的MUD玩家----元老級的MUD玩家。而他們之中的很大一部份人也成了日後許多MUD大站的極具權威的巫師----所以說來說去還是一句話----得感謝《東方故事》的巫師們。

而後,不長的一段時間里,又有了許多聞名天下的MUD站點----《俠客行》、《天龍八部》、《西遊記》、《風雲》和《金庸群俠傳》(即後來的《書劍》)。然而,在MUD游戲在中國開始怒放的時候,老天送給了我們一個晴空霹靂----據傳,由於某些原因,MUD的元老----《東方故事》,將不得不退出歷史舞台----這是一個令人萬分沮喪的消息,面對這一事實,許多許多的玩家和巫師們都以淚洗面,恨不能從自己的身上挖出一塊肉來以換取《東方故事》的繼續開放。可該發生的還是發生了----《東方故事》還是關閉了,也不知當我們的可愛的玩家們滿懷希望地看著Zmud上的「Attempting connection to 東方故事」後,看到了無數次的「Reconnecting to 東方故事 on X seconds」的界面,會有何反應。

在後來一段日子裡,MUD界出現了一陣子平靜,而後又一個令MUD界震驚的消息傳來,《金庸群俠傳》等大型MUD被盜版了,這是就是那些居心不軌的巫師們乾的好事,他們先混入一個MUD的巫師內部,取得大部分巫師們的信任,然後,在為取得其他巫師的同意下,利用自己的許可權,把MUD的源碼通通地運回家裡去。一部分犯罪巫師利用這些源碼架設了自己的站點,而令一部分巫師中的敗類甚至把源碼賣給了別人。這就是當初為什麼許多大型的MUD巫師內部不穩定團結,為許可權問題爭的焦頭爛額以及《金庸群俠傳》後來改名叫《書劍》的原因。從此以後,各MUD都竭盡全力,力爭把許可權的設置盡力搞得萬無一失。於是,每一個MUD的文件夾又憑空大了好幾MB。

到了現在,MUD界基本上已處於一個平穩的階段。許多老玩家對MUD漸漸失去了興趣。而新的玩家也難以對一個單純的文字游戲產生興趣,加之許多巫師們逐漸的退出了江湖,不問世事,MUD的開發也有所停滯。MUD的生意也不再象過去一般紅火了。而此時,許多強有力的競爭對手又出現了,《笑傲江湖》、UO、《萬王之王》、《網路三國》等等均以其多媒體的優勢超越了MUD。看來,似乎是文字MUD該退伍的時候了,然而,事實並非如此!!!!!

❷ mud是什麼意思

MUD的全稱是Multiple User Dimension(多用戶層面),也有人稱為Multiple User Dungeon(多用戶地牢),或者Multiple User Dialogue(多用戶對話)。它還被稱為MUSE或多用戶模擬的環境,即Multiple User Simulated Enviroment,是很多用戶參與活動的一種計算機程序。正如對其縮寫名稱的不同解釋所指出的那樣,MUD實際上是一種非常廣義的說法,是代表所有交互作用環境的通用術語,其它的名稱還有MOO,MUSH,MUCK,TinyMUD,AberMUD等等。這些名稱根據構成共享環境基礎的軟體的不同而變化。雖然MUD可以採取多種形式,但大多數的Mud通常以游戲的形式來體現。因為對交互網路中人際的交往來講,採用游戲的形式跟貼近人性,更有趣,更容易吸引用戶。大部分MUD是通過Telnet來連接參與的,也有很多MUD通過WWW來連接參與。由此可知,MUD當然是和網路技術緊密地結合在一起的。在虛擬現實(VR)技術出現後,可以用VR技術對MUD進行改造。這正是現在MUD製作的熱點,但實現上也還有很多很多事情要做的。

MUD游戲(Multiple User Domain多用戶虛擬空間游戲)。大家對MUD也許很熟悉,這就是你一直聽到的,可能卻始終不聽不懂的「泥巴」,雖然你可能還不知道它確切是什麼東西。但在泥巴一族中間,MUD就是他們第二個生存空間。

1979年第一個MUD(多用戶土牢)多人交互操作站點建立。這個站點包含了各種冒險游戲、棋類游戲和豐富詳盡的資料庫。大受歡迎的《網路創世紀》(UO)則是真正意義上的第一個大型圖形MUD,也是至盡被認為是最完善的網路游戲,玩家只要自己喜歡,可以專心做買賣,或到處游歷,或什麼事情也不做而隨便走走,與現在網路游戲中充斥著的PK,殺戮相比,UO是一片純粹的游戲玩家的夢寐以求的聖土,依然是網路游戲的顛峰之作,在UO上發生的很多傳奇故事至盡仍被廣為流傳。

MUD/MOO是支持網路化學習環境和學習團體的計算機通信技術中的一種。MUD/MOO具有非常巨大的教育應用潛能,利用MUD/MOO技術,能夠建立非常有效的基於計算機網路的學習環境,培養基於共同興趣或主題的學習團體,它結合了益智游戲、情景化學習、合作學習、遠程教育等多種特點,是一種非常有潛力的計算機網路教育應用形式。MUD/MOO是一種基於文本的、網路化的虛擬現實環境,其基本結構代表了一定的現實環境。從技術上說,MUD/MOO是一種以客戶機/伺服器模式運行的計算機程序;從其結構上理解,MUD/MOO是一個通過網路連接的、多用戶參與的、可由用戶擴展的、主要基於文本的虛擬現實。MUD系統的用戶通過閱讀文本想像在虛擬現實中的集團,通過閱讀文本"看"、"觸摸"和"聽",通過輸入命令實施各種行為。MUD起源於一種在網路上流行的多用戶角色扮演類互動式游戲(Multi-userDungeons)而目前已經逐漸從多用戶的互動式游戲,發展成為一種開放性的、廣泛參與的建構主義模式的合作學習與合作工作的系統,多數非游戲MUD,都是MU技術在學術領域和教育領域的應用,許多MUD將某些特定領域的人群聯系成為虛擬的團體,進行合作的學習、研究與討論,還有一些MUD的教育應用,不僅體現了MUD作為合作學習/工作的環境的作用,也體現了MUD作為通信工具(CMC)的作用,如開展過程教學,目前有多個在網際網路上開展遠程教學的教育機構將MUD/MOO作為其重要的組成部分。MUD是基於文本的虛擬世界,界面主要都是以ASCII字元為主的文本和ASCII字元組成的簡單圖形,它們沒有浮華的圖形和聲音,只有文本在屏幕上滾動。在MUD世界中的一切活動,都是通過鍵盤輸入的方式進行的:用文本引發對象的動作,用文本交談,用文本表達感情、表示情緒,用文本交流思想。它提供很少的感官信息,需要參與者更加地投入到交互中去,而且在MUD/MOO中,交互並不僅僅是用戶與媒體之間的,更有與其它參與者之間的,MUD/MOO比其它數字媒體環境更利於用戶遠距離地獲得信息。用戶在MUD世界中是以某一角色(替身)的身份存在著的,角色是MUD世界中最重要的在分之一,也是MUD世界的對象之一,用戶是通過其角色生活在MUD世界,通過角色進行交互和交談的。多數MUD的角戶等級有客戶(guest)、創建者(builder)、編程者(programmer)、精靈(wizard)等,不同等級的用戶具有不同的控制許可權,但是,所有用戶都可以進行交流,彼此交換思想,進行合作。用戶以其角色的身份在虛擬世界中相互學習、相互交流,逐漸認識所在的MUD虛擬世界,這正是MUD最有價值的方面。有人覺得MUD/MOO是一種ur技術,用戶都是通過虛擬角色自由來交流,最明顯的就是用到游戲開發上面。

關於mud的玩法介紹
首先,你先下載一個叫 zmud 的軟體。 (推薦zmud4.62版本
下載完成後,運行目錄中的 zmud.exe 文件就可以玩游戲了。

玩mud游戲,你一定要知道游戲伺服器的IP和埠,關於這個,你可以在網上找一下。
(網路mud貼吧中有一些不錯的站點推薦)

游戲中,所有的指令都是由鍵盤輸入的(輸入是通過界面下端的輸入欄輸入的)
詳細的指令,可以通過help cmds(多數mud中都是這個指令)獲得

詳細的游戲方法,根據不同的mud游戲而不同,下面,只寫出一個游戲的介紹
不過大多數的游戲都是類似的
===========================
游戲登錄程序將會提示你輸入 -------
您的英文名字: (如果你是第一次玩,自己挑一個啦)
如果你輸入的名字還沒其他人使用,系統將會提示-------
這個名字將會創造一個新的人物,您確定嗎(y/n)?
輸入 y (回車)
系統然後提示 ---
您的中文名字: (自己想啦!要求中文)
請設定您的密碼:(至少五位數字或字母)
請再輸入一次您的密碼,以確認您沒記錯:(不用多說啦!)
您的電子郵件地址:(喜歡就填寫,不喜歡就拉倒,直接回車)
您要扮演男性(m)的角色或女性(f)的角色?(男孩就選 m 女孩選 f)
你對這一組天賦滿意嗎(y/n)?(如果只是想聊天就把容貌選美一點啦,嘿嘿)

好啦,到了這一步,你就完成注冊,進入到 Mud 里啦!!!
你先輸入命令: chatmode (打開/關閉聊天模式)
然後你就可以隨便說話啦
當然聊天的命令有好幾個,例如 say , tell , chat 等

命令格式 say <你要說的話呀!!!>
say 命令是對同一房間內的所有人說話

如果剛才打開了聊天模式,say 命令就可以省略了,直接打字就可以說話!

命令格式 chat <你要說的話呀!!!>
chat 命令是對游戲里的所有人說話

命令格式 tell <某人的英文名字> <你要說的話呀!!!>
tell 命令是對游戲里的特定的某個人說話,就是私聊啦

命令格式 reply <你要說的話呀!!!>
reply 命令是跟 tell 命令搭配使用的,可以回答 tell 你的上一個人,也是私聊

至於怎麼知道游戲里有什麼人,就可以用 who 命令來看!

命令格式 who

看房間周圍的環境可以用 look 命令
=================================

最後,我認為,玩mud游戲的精華就是玩家與玩家之間的交流。一個人玩單機版真的沒什麼意思。
而且,因為mud分好多好多種類,寫出一個詳盡的介紹是不可能的
大家可以在游戲中詢問其它玩家,來了解這個mud游戲。

❸ 有誰可以給我解釋一下"通配符"的知識

通配符

1、基本的通配符有哪些?

·「?」可替代單個字元。

·「*」可替代任意字元。

·方括弧「[charset]」可替代charset集中的任何單個字元。

對最後一條做些解釋。[cChH]通配符便可替代c或h字元的大小寫形式。
通配符集還能描述介於字元對之間的所有字元。如「[a-z]」就可以代
替任意小寫字母,而[a-zA-Z]則可替代任意字母。注意可替代的字元
包括字元包括字元對之間的所有字元。

與DOS相比,UNIX的通配符機制要比DOS好得多。在DOS中,任何在「*」
之後,在「.」之彰的字元均被忽略,所以下面的指令將不能得到你想
象的結果。

del *bak.*

在DOS中,用戶只能用此命令刪除當前目前下的所有文件,除非系統要
求你不這樣做。而在UNIX系統中,「*」可替代包括0在內的任意數字的
字元,但一行中的其餘特徵也仍需匹配,因此「bak.*」可匹配
newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因為後
者不含「.」。這非常巧妙,可大大方便用戶,而「*bak」則可匹配以上
所有的詞條,包括newbak。

2、能在一條指令中用多個通配符嗎?

可以,如

rm a*out*tmp?

該命令可以刪除一系列臨時性的輸出文件,如ab.out.temp1、ab.out.temp1
等。

3、如何利用通配符使指令更靈活?

UNIX可將有一定關的文件看作一集合的一部分,用戶可以用該集合去匹配。
所以,如果你需要刪除file1.temp、file2.temp……file9.temp,只須健入:

rm file[0-9].temp

該技巧的用處在於可以用刪除那些相要刪除的文件。如果你每天都要為一個
非常重要的資料庫做一個「mp」報告,你把文件存入mp.'date%h%d',
它包括一系列文件如下:

mp.jun23

mp jun24

mp jun25

mp.jun26

再讓我們假設因為每個文件的容量都在100M左右,所以磁碟空間很快會被占滿,
因此需要每隔幾天刪去一些老的文件,只留下最近的兩個文件,為此,鍵入:

rm –i *[34]

這條指令將刪去那些以「」開頭並以「3」或「4」結尾的文件。

通配符的使用

在使用文件時,主文件名和擴展名中還可以使用通配符「*」「?」。其中「*」代表從它所在位置直到「.」(主文件名中為到「.」前,擴展名為「.」後)的所有字元;「?」代表它所在位置的任意字元。

實例:

A.?? 表示文件主名為A,擴展名不超過兩個字元的文件

???.com 表示文件名不超過三個字元,擴展名為COM的文件

*.* 表示所有文件

ABC.* 表示文件名為ABC,具有任意擴展名的文件

*.EXE 表示以EXE為擴展名的所有文件

A*.* 表示以字元A開頭的所有文件 例如: ABC.txt ABD.com等

A??.* 表示文件主名以A開頭且不超過三個字元,具有任意擴展名

的文件

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
邏輯運算非

命令:
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中返回當前角色的名字

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:

%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 {<a target="_blank" href="http://www.zg169.net/~czmud/index.html}">http://www.zg169.net/~czmud/index.html}</a>

使用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

❹ zMUD 是一個什麼游戲,大概怎麼玩呢,我辦公室有一個老師一直在玩這個游戲,我看他敲的都是代碼

我就是mud老玩家。mud是最早的網路游戲,所有描述以文字形式體現。zmud是以前玩mud的較流行的工具。
說實話,玩這個游戲並沒什麼好處。跟其他網游一樣,容易沉迷和荒廢現實生活。

閱讀全文

與zmud資料庫相關的資料

熱點內容
小米復制文件找不到 瀏覽:959
什麼是網路層 瀏覽:73
如何利用編程做多文件數據合並 瀏覽:666
java如何用tcp發送16進制協議 瀏覽:975
js獲取當天 瀏覽:637
在什麼網站看戰狼2 瀏覽:881
win7桌面工具欄不見了 瀏覽:346
qq群幾個管理員 瀏覽:598
錄光碟怎麼找不到文件 瀏覽:885
flip5怎麼連app 瀏覽:273
五個g的文件怎麼傳到u盤 瀏覽:316
如何用編程編譯運行出心形圖案 瀏覽:486
linuxcentos64vpn 瀏覽:328
桔城pdf轉換成word轉換器 瀏覽:754
java數組排重 瀏覽:846
1703版win10 瀏覽:357
windows文件上傳 瀏覽:111
精通jsp編程技術 瀏覽:139
電腦軟體刪不了提示找不到文件 瀏覽:223
寧波哪裡有學It編程的地方 瀏覽:808

友情鏈接