❶ 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的较流行的工具。
说实话,玩这个游戏并没什么好处。跟其他网游一样,容易沉迷和荒废现实生活。