Mudlib详解-Mudos运行流程-最小Mudlib
2010/7/25 13:01:16
Mudlib详解
mud服务器目录下的文件夹的作用?
现在大部分中文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