MUD策略的意思编辑修改入门教程
MUDLIB各个目录是干什么的?
现在大部分中文MUD都是在东方故事(esII)基础上发展起来的,其目录结构基本一样,
也有个别MUD为了标新立异对个别目录换了个名字以示不同,但其实质没有什么变化。
这个做的最可恶的是xkx,把一个好好的daemon目录换成了一个不土不洋的kungfu,
里边却还是skill,condition这些洋名,简直让人faint!我实在看不出这种修改有什么好处,
除了添麻烦(xkx对一些命令的汉化,什么也是如此)。不过,
也有一些是为了系统更合理而修改的。
对MUDLIB目录的解释已经有许多版本了,基本也没什么区别,下边是我的解释,
以我自己整理的一份MUDLIB为基础,如果有目录不同的地方适当贯通就是了。
adm 这里是最基本,最底层的程序,是整个MUD的控制枢纽。
这个目录只有admin权限可以修改。
admdaemons 守护程序目录。守护程序是指游戏中频繁调用的控制类程序,
MUD里各种基本功能都是由这些程序控制的。这些程序一般在游戏一启动就自动载入内存。
按照unix下文件命名习惯,这里的程序多以d.c结尾,
比如combatd.c就是控制战斗的程序。另外由于这些程序调用非常频繁,
一般都做了宏定义(查看includeglobals.h),例如admdaemonscombatd.c
定义为COMBAT_D,在其它程序里可以适用这些宏定义代替这些文件名。
admetc 系统配置目录,此目录定义为CONFIG_DIR 这里放的是游戏的系统文档文件,
比如游戏的欢迎画面,巫师列表,BAN掉的IP记录等。
admobj 这里只有两个文件,但却是整个MUD最重要的东西。
master.c:这是MudOS主控物件,也就是整个MUD的总司令。
simul_efun.c防真函数加载精灵,这是MUD启动时第一个要载入的东西。
所谓efun,是指系统函数,也就是mudos中定义的函数。
这些函数不必做任何说明可以在MUD的任何程序里直接调用,
而且由于他们是预先定义的,也就是mudos早已经知道他们是做什么的,
所以比其它在MUDLIB里定义的函数执行效率要高。但他们的缺点是修改非常不方便,
对任何一个efun函数的修改必须重新编译mudos才能生效。因此,
在MUDLIB中又有了防真函数的定义,也就是simul_efun,
这些函数的作用跟efun完全一样,不同的是他们定义在UDLIB中,可以随时修改,
但必须重新启动游戏才能生效。
顺便讲一下一个MUD启动的过程,MUD启动的初始化过程分以下几步:
1.载入防真函数simul_efun
2.载入主控物件上海百盛购物中心master,这里是调用master的create()函数将其载入内存。
3.载入需要预先载入的守护程序,这里调用master的preload()函数,
需要预先载入的文件定义在admetcpreload里。
目标英语怎么说4.MUD进入多用户状态,允许玩家登录。
以上过程必须正确无误的执行完,否则游戏无法正确启动。
master.c和simul_efun.c这两个文件只能在游戏启动时由mudos自动载入,
不可以在游戏中用update的方法载入,而且这两个物件也不
允许非ROOT权限的物件摧毁(destruct)它,因为他们的摧毁就等于游戏关闭 。
admsimul_efun 防真函数目录,这里放的是定义各类防真函数的文件,
这些文件由SIMUL_EFUN_OB(也就是admobjsimul_efun)来载入内存。
cmds 游戏命令目录,这里放的是游戏中可以使用的各种命令,
只有admin才可以修改这个目录
cmdsadm 只有天神(admin)可以使用的命令
cmdsarch 只有大巫师(arch)以上才可以使用的命令
cmdswiz 只有巫师(wizard)以上才可以使用的命令
cmdsapp 只有巫师学徒(wizard)以上才可以使用的命令
cmdsimm 只有荣誉玩家(immortal)以上才可以使用的命令零报告制度
cmdsusr 只有普通玩家(player)以上才可以使用的命令
cmdsstd 所有生物(npc and player)都可以使用的命令命令目录采用子集格式,
权限高的命令完全包含权限低的命令,比如天神可以使用所有游戏命令,
普通玩家只能使用cmdsusr和cmdsstd目录下的命令。
data 游戏数据目录,只有arch以上权限才可以修改这个目录
databoard 各个留言板的数据
datalogin 玩家登录数据
dataur 玩家档案,呵呵,这里记录的是每个玩家的所有劳动成果
datanpc 一些特殊npc的数据,比如商店老板
datadaemon 重要的系统数据,比如emote词,英汉翻译词典
datamail 玩家信件
feature 标准继承函数。只有admin才可以对这个目录进行修改这些函数是非常重要的,
是MUD里各种物件,包括玩家,NPC惊人的近义词,物品,房间等的各种功能的标准定义,
这些函数反映了整个MUD的与众不同之处,一个好的MUDLIB必然要对这些函数进行优化。
而要设计新的程序,必须对这个目录所有文件有所了解。
obj 系统物件,这是经常在MUD里被调用的各种物件。
这个目录下的物件被复制后跟调用他的物件具有相同的euid,
也就是说具有相同的权限,所以,这里的一个npc如果经admin编译后复制出来,
也具有了admin权限。这点非常重要,有些物件必须具有跟玩家相同的euid才能正常使用
,比如符纸。而出于安全考虑,这个目录下的物件不可以随便复制。
只有arch以上才可以修改此目录。
objboard 游戏中各个留言板
objnpc 一些特殊的NPC
objsheet 各种符纸
objweapons 兵器白卷英雄
objmisc 其它乱七八糟的东西,比如信箱等
quest 游戏里各种任务quest的文件,此目录需要wizard以上权限才可以修改
binaries 文件编译过程生成的二进制文件,此目录ROOT权限才可以修改
d 区域目录,游戏的地图门派和NPC存放的地方。此目录wizard以上权限可以修改。
这里是整个MUDLIB最简单最常用的东西,也是玩家可以直接接触到的东西。
玩家所呆的任何一个房间都应该对应这个目录下的一个文件,
房间里每个NPC也都对应一个文件。这个目录下存在许多子目录,
分别对应游戏的不同区域(domain)。
ddomainnpc 该区域中的npc
ddomainnpcobj 该区域中npc身上的物品
ddomainobj 该区域中的物品
data_bak 档案备份目录,保存需要备份的重要数据。admin可以修改
include 头文件目录,只有admin可以修改。这里放的是游戏中各个文件所需要的头文件,
其中以下几个特别重要:
globals.h全局定义的头文件,这是一个特殊的头文件,
他不需要在任何一个文件里被调用,但是这里定义的所有变量可以在任何一个文件里直接使用。
这里一般用来定义非常重要的或者许多地方需要调用
的变量。对这个文件的修改必须重新启动游戏才可以生效。command.h
这里定义的是各个权限等级所能够使用的命令目录,所以,除了admin,
应该绝对禁止任何人修改此文件。
includerace 种族的头文件
includenet 网络功能的头文件
open 系统临时目录,ftp登陆目录,任何人都具有写权限。
questobj FY3的task险象环生的意思专门目录,存放各个task物品文件。wizard以上权限可以修改。
u 巫师工作目录,存放各个巫师开发过程的半成品。
这里的子目录名只能为各个巫师的euid,
而只有对应euid的人才有对相应目录的修改权限。比如一个目录是lion,
那么只有lion这个ID或者比lion权限高的人
才可以修改它下边的内容。
clone 物品目录,存放游戏中需要经常复制的各种物品,wizard以上权限可以写。
这个目录下的物品一般被其他地方复制(clone)出来,但他们的euid是固定的,
不会随调用它的物件的不同而改变,这就是这个目录和obj目录的最大不同。
此目录arch以上等级可以修改
clonearmor 装备
clonedrug 药品
clonefruit 水果,水果跟食物的不同是吃了可以同时加食物和饮水,
而且有些水果具有养颜美容之功效。
cloneliquid 容器,象酒袋茶壶一类
clonemoney 顾名思义,人见人爱的东西
cloneur 玩家物件,包括login.c(link_ob)和ur.c(body),
此目录只有admin可以修改
clonebooks 各种秘籍
clonefood 吃的
掖怎么读
clonegift 各种礼物,一般是好东东
cloneweapon 兵器
clonemisc 其他杂物,比如尸体,头颅。
daemon 呵呵,这个目录为什么叫这个名字我一直没明白,看下边的说明吧。
此目录只有arch以上可以修改。
daemonskill 游戏中所有的技能
daemoncondition 人物各种状态,比如中毒,恢复等。
daemonclass 这个应该理解为“组织”或“工会”,是ESII从外国MUD里保留下来的东西,
不过随着中文MUD的发展,工会的概念逐渐被淡化,其含义已经跟以前完全不同,
现在他的意思有点象“身份”,比如道士,和尚,喇嘛,官兵,老百姓。。。。
个人有个人的身份。很多情况下,这个跟门派类似,但又不完全相同。
这里存放的是各种不同身份的人所具有的特殊东西,
不过现在一般用来存放各种特殊技能的特殊用法(perform)
doc 文档。 游戏中的各种文本文件,arch以上可以修改
dochelp 各种帮助文件
docefuns 各种系统函数的用法