以ES2为底层的炎黄MUD游戏二次开发指南

国内MUD二次开发基础教程

国内基本所有MUD都是以ES2为底层,MUD基本结构和语法相通,对新WIZ来说,了解任何一个MUD的二次开发,再去维护其它MUD都能比较快的上手。

要学习二次开发,需要掌握二点:LPC语法基础和ES2游戏框架结构。

LPC语法基础可以看这里:LPC 语言教程

ES2游戏框架结构可以看这里:东方故事2 mudlib 目录结构及指令说明

下面以炎黄MUD源码为例,熟悉游戏的二次开发。

教程包括以下内容:

  • 炎黄MUD目录结构

炎黄MUD目录结构及文件说明

为方便不熟悉的管理员游戏开发,这里列出本游戏的目录结构及相关资料并做说明。

目录结构

目录 说明
adm 系统目录,包括守护进程,主控对象,模拟外部函数对象及重要唯一NPC等
b 游戏十四天书任务(help skybook)相关目录,本部分未开发完成,建议使用此LIB的开发者自己继续
backup 游戏存档备份目录
bin 游戏驱动程序目录
clone 游戏具体可复制对象文件目录,包括游戏主要共用NPC、物品和玩家连线对象
cmds 游戏玩家互交指令目录
d 游戏世界主要目录,包括世界地区、该地区特有NPC和物品等
data 存档存放目录
doc 游戏开发资料和文档
dump 存档临时恢复目录
feature 游戏特色功能模块,所有代码中继承的F_XXX即为这里的文件
help 游戏帮助文档目录
include 游戏头文件目录
inherit 游戏功能对象继承目录
kungfu 游戏门派NPC、技能及状态和特技相关目录
log 游戏日志目录
shadow telnet等特殊功能的shadow目录
u 游戏管理员工作目录
www websocket服务目录

守护进程

/adm/daemons目录下存放的是游戏的守护进程,这些文件多数是自动加载并为游戏提供各种服务,如登录守护进程、战斗守护进程、任务守护进程等。

系统函数(模拟外部函数)

/adm/single/simul_efun中是MUD提供的模拟外部函数,具体函数和功能建议查阅代码。

游戏可复制对象目录

这里存放着游戏中的各类生物、物品、任务和玩家对象,因为历史原因开发不规范,目录比较混乱。

目录 说明
beast 游戏毒蛇类野兽对象目录,建议改名为snake
board 游戏各门派流言板对象目录
book 游戏中的各种武功秘籍
cloth 游戏中装备衣服目录
fam 师门任务奖励物品目录
fish 鱼类对象目录,钓鱼任务相关
food 食物相关对象目录
game 游戏中的五子棋、飞行棋等小游戏
gift 游戏中各种任务奖励对象
herb 游戏中各种药材,任务及制药相关材料
horse 游戏中的马匹
insect 游戏中的毒虫
item 十四天书任务相关特别物品
lonely 游戏中的独有物品,原则上不应该同时存在多件
medicine 游戏中的药品
misc 游戏中的杂项物品
money 游戏中的白银黄金等货币
npc 游戏中的共公普通NPC
poison 游戏中的毒药
quarry 游戏中可打猎的各种野兽,可以做猎人相关任务
quest 自由任务功能对象
questob 游戏任务物品
shop 游戏中各城市玩家可以租用的商店
special 游戏帮派相关特殊物品
tattoo 游戏刺青相关图谱
ultra 游戏中的超级丹药
user 玩家连线和登录对象
weapon 游戏中的各种公共兵器
worm 游戏中的各种非毒虫类生物

游戏地域

d目录中包括了几乎所有游戏中的地区,每个地区下面又包括这个地域的特定NPC(如:/d/city/npc)和对象(如:/d/city/obj)。这里不一一列出,请自己直接查看代码。


  • 游戏主要管理指令

游戏指令在/cmds/目录下,这里包括管理员指令和玩家指令,可以在游戏中使用help查看,因为指令众多,这里只列出管理员的辅助指令,方便开发测试。

指令 说明
board 列出游戏中的所有留言板(可直接传送过去)
callouts 列出游戏中的所有延时呼叫
call 呼叫对象中的函数
cat/more 查看文件源码
cd 切换当前工作目录
child 列出指定文件在游戏中的所有副本
clone 复制对象到环境
color 列出ANSI颜色
copyskill 复制对象的属性和技能
data 查看指定对象的存档数据
dest 从游戏中清除指定对象
eval 可以在指令中执行代码片断,方便测试
ff 查找指定对象中的函数是在哪个文件中
findusr 查找并返回指定玩家对象和连线对象
find 根据名称查找指定目录中的文件并返回列表
goto 传送指令
guilei 可以把游戏目录中的房间、NPC和物品做数据列表统计
home 回到开发者工作室
ilist 列出指定对象继承的所有对象
info 列出指定对象的相关资料
ip 查看玩家IP列表
loadall/updateall 加载游戏中的所有对象
localcmds 查看当前环境所有可用指令
ls 列出目录中文件
mem 查看游戏或指定对象内存占用
nodie 设置死亡保护(不是不会死,而是无损失)
overview 列出指定主题的游戏对象和内存信息
possess/fushen 灵魂附体,占据别的生物的身体
pwd 显示当前工作目录
qdef 清理游戏中的自由任务
qinfo 列出游戏中的自由任务
qload 查看CPU占用情况
rehash 列新指令列表,如果在线新增了指令需要更新列表
setsk 设置技能等级
smash 秒杀别人
status/status1 查看游戏系统占用信息
summon 召唤对象到当前环境
telnet 在线连接到其它游戏
tongji 统计所有在线玩家的技能数据
ulist 列出线上玩家和对象文件
updatei 编译更新文件和继承文件(不包括复制对象)
update 更新文件代码
variables 查看指定对象的所有全局变量和非私有变量的值
weight 改变自身的重量
where 查找指定生物所在地
which 查找指令位置
who1/who2/who3 查看在线玩家列表
whoami 我是谁
whohave 列出拥有指定物品的玩家
whoride 列出骑马的玩家

京ICP备13031296号-4