MUDLIB各个目录是干什么的?
2007/5/12 22:24:55

现在大部分中文MUD都是在东方故事(esII)基础上发展起来的,其目录结构基本一样,也有个别MUD为了标新立异对个别目录换了个名字以示不同,但其实质没有什么变化。
    这个做的最可恶的是xkx,把一个好好的daemon目录换成了一个不土不洋的kungfu,里边却还是skill,condition这些洋名,简直让人faint!我实在看不出这种修改有什么好处,除了添麻烦(xkx对一些命令的汉化,什么cha,du...也是如此)。不过,也有一些是为了系统更合理而修改的。
    对MUDLIB目录的解释已经有许多版本了,基本也没什么区别,下边是我的解释,以我自己整理的一份MUDLIB为基础,如果有目录不同的地方适当贯通就是了。 
/adm 这里是最基本,最底层的程序,是整个MUD的控制枢纽。这个目录只有admin权限可以修改。
/adm/daemons 守护程序目录。守护程序是指游戏中频繁调用的控制类程序,MUD里各种基本功能都是由这些程序控制的。这些程序一般在游戏一启动就自动载入内存。
    按照unix下文件命名习惯,这里的程序多以d.c结尾,比如combatd.c就是控制战斗的程序。另外由于这些程序调用非常频繁,一般都做了宏定义(查看/include/globals.h),例如/adm/daemons/combatd.c
定义为COMBAT_D,在其它程序里可以适用这些宏定义代替这些文件名。
/adm/etc 系统配置目录,此目录定义为CONFIG_DIR 这里放的是游戏的系统文档文件,比如游戏的欢迎画面,巫师列表,BAN掉的IP记录等。
/adm/obj 这里只有两个文件,但却是整个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()函数,需要预先载入的文件定义在/adm/etc/preload里。
4.MUD进入多用户状态,允许玩家登录。
    以上过程必须正确无误的执行完,否则游戏无法正确启动。
    master.c和simul_efun.c这两个文件只能在游戏启动时由mudos自动载入,不可以在游戏中用update的方法载入,而且这两个物件也不允许非ROOT权限的物件摧毁(destruct)它,因为他们的摧毁就等于游戏关闭 。
/adm/simul_efun 防真函数目录,这里放的是定义各类防真函数的文件,这些文件由SIMUL_EFUN_OB(也就是/adm/obj/simul_efun)来载入内存。 
/cmds 游戏命令目录,这里放的是游戏中可以使用的各种命令,只有admin才可以修改这个目录
/cmds/adm 只有天神(admin)可以使用的命令
/cmds/arch 只有大巫师(arch)以上才可以使用的命令
/cmds/wiz 只有巫师(wizard)以上才可以使用的命令
/cmds/app 只有巫师学徒(wizard)以上才可以使用的命令
/cmds/imm 只有荣誉玩家(immortal)以上才可以使用的命令
/cmds/usr 只有普通玩家(player)以上才可以使用的命令
/cmds/std 所有生物(npc and player)都可以使用的命令命令目录采用子集格式,权限高的命令完全包含权限低的命令,比如天神可以使用所有游戏命令,普通玩家只能使用

下一页
返回列表
返回首页
©2025 MUD游戏网_文字mud 电脑版
Powered by iwms