东方故事2 mudlib及资料
东方故事2官方网址:http://es2.muds.net/ , mudlib下载地址:http://es2.muds.net/download/
mudlib说明
东方故事2是中文MUD的鼻祖,也是国内所有主流MUD的底层
目录结构
以下列出的是ES2 mudlib 根目录下标准的子目录结构,以及简短的说明。
/adm | 储存由系统管理者所管理的程式与资料档。 |
/std | 储存标准物件的程式码。 |
/obj | 储存通用物件的程式码。 |
/feature | 储存物件特征的程式码。 |
/daemon | 储存游戏制度精灵的程式码。 |
/d | 储存开放区域的程式码。 |
/cmds | 储存全域性使用者指令的程式码。 |
/include | 储存系统表头档。 |
/doc | 储存说明文件文字档。 |
/data | 储存使用者帐号、物件资料。 |
/u | 储存巫师工作目录。 |
/log | 储存系统日志。 |
系统函数(Simul-Efuns)
以下列出的是ES2 mudlib 目前定义的simul-efun 及扼要的用途说明。
chinese_number | 传回中文格式的数字如「一百三十六」等。 | |
chinese_period | 传回中文时间的表示法如「一小时三十六分」等。 | |
to_chinese | 传回一个英文词汇的对应中文名称。 | |
break_chinese_string | 将一个含有中文的字串依照指定长度断成数行。 | |
currency_string | 传回中文钱的表示法如「三两银子又十二文钱」等。 | |
cat | 将一个档案的内容显示给this_player()。 | |
log_file | 将一段文字写入指定的日志(log) 档。 | |
assure_file | 检查并建立一个档案路径中所有的目录。 | |
base_name | 传回物件的真正档名(去掉物件流水号)。 | |
gender_self | 传回指定性别的中文第二人称。 | |
gender_pronoun | 传回指定性别的中文第三人称。 | |
getoid | 传回物件的流水号。 | |
file_owner | 传回指定档案的拥有者(巫师) 代号。 | |
creator_file | 传回指定档案的建立者UID,用来设定物件被建立时的权限。 | |
destruct | 覆盖efun 中的destruct,作各种检查。 | |
users | 覆盖efun 中的users,作各种检查。 | |
livings | 覆盖efun 中的livings,作各种检查。 | |
objects | 覆盖efun 中的objects,作各种检查。 | |
exec | 覆盖efun 中的exec,作各种检查。 | |
user_cwd | 传回指定巫师目前的工作目录(实作错误)。 | |
user_home | 传回指定巫师的home 目录。 | |
user_path | 传回指定巫师的home 目录加上'/'。 | |
user_data | 传回指定使用者的人物存档档名。 | |
login_data | 传回指定使用者的帐号存档档名。 | |
mail_data | 传回指定使用者的邮件信箱存档档名。 | |
resolve_path | 传回展开'.' 与'..' 表示法的路径名称。 | |
wiz_level | 传回指定使用者的巫师等级。 | |
wizhood | 传回指定使用者的巫师等级名称。 | |
wiz_level | 传回指定使用者的巫师等级。 | |
ntime | 传回ISO-8601 的日期时间表示法。 | |
snoop | 覆盖efun 中的snoop,作各种检查。 | |
message_vision | 将讯息加上人称变化,显示给多个对象。 | |
tell_object | 利用message efun 提供与早期MudOS 的相容efun。 | |
tell_room | 利用message efun 提供与早期MudOS 的相容efun。 | |
shout | 利用message efun 提供与早期MudOS 的相容efun。 | |
write | 利用message efun 提供与早期MudOS 的相容efun。 | |
say | 利用message efun 提供与早期MudOS 的相容efun。 |
系统表头档(Include Headers)
表头档位于/include 目录下,以下列出ES2 目前使用中的表头档。
<action.h> | 定义人物特征F_ACTION 所使用到的巨集符号。 |
<action.h> | 定义人物特征F_ACTION 所使用到的巨集符号。 |
<ansi.h> | 定义ANSI 色彩/游标控制码的巨集符号。 |
<armor.h> | 护具类物件的标准表头档,含护具类物件的继承定义。 |
<attack.h> | 定义人物特征F_ATTACK 中宣告的函式原型。 |
<attribute.h> | 定义特征F_ATTRIBUTE 中宣告的函式原型与巨集符号。 |
<char.h> | 定义人物特征F_* 巨集符号。 |
<combat.h> | 定义人物特征F_COMBAT 所使用到的巨集符号。 |
<command.h> | 定义指令系统所使用到的巨集符号,以及预设指令搜寻路径。 |
<condition.h> | 定义人物特征F_CONDITION 所使用到的巨集符号。 |
<condition.h> | 定义人物特征F_CONDITION 所使用到的巨集符号。 |
<config.h> | 定义ES2 mudlib 系统组态,与开启/关闭某些选择性功能的符号。 |
<copyright.h> | ES2 mudlib 著作权声明的表头档。 |
<daemon.h> | 定义精灵物件*_D 的巨集符号。 |
<dbase.h> | 定义特征F_DBASE 所使用的巨集符号。 |
<explore.h> | 定义利用使用者特征F_FLAG 纪录使用者探险点数的检查点所使用的巨集符号。 |
<function.h> | MudOS 的函式指标所使用的巨集符号(根据MudOS 定义)。 |
<globals.h> | ES2 mudlib 的系统预设表头档。 |
<intermud.h> | Intermud 通讯协定相关的巨集定义。 |
<item.h> | 一般物件的标准表头档,含一般物件的继承定义。 |
<localtime.h> | MudOS 的localtime efun 所使用的巨集符号(根据MudOS 定义)。 |
<login.h> | 有关玩家身分验证、人物创造的组态设定。 |
<move.h> | 定义特征F_MOVE 所宣告的函式原型。 |
<mudlib.h> | 有关ES2 mudlib 的版本资讯等巨集定义。 |
<name.h> | 定义特征F_NAME 所宣告的函式原型。 |
<obj.h> | 定义通用物件的位置。 |
<origin.h> | MudOS 的origin efun 所使用的巨集符号(根据MudOS 定义)。 |
<race.h> | 游戏中与种族相关的巨集符号。 |
<room.h> | 房间类物件的标准表头档,未包含继承定义。 |
<runtime_config.h> | MudOS 的get_config efun 所使用的巨集符号(根据MudOS 定义) |
<score.h> | 定义人物特征F_SCORE 所宣告的函式原型。 |
<skill.h> | 定义人物特征F_SKILL 所宣告的函式原型。 |
<socket_err.h> | MudOS 的socket 族群efun 所使用的巨集符号(根据MudOS 定义)。 |
<statistic.h> | 定义特征F_STATISTIC 所宣告的函式原型。 |
<team.h> | 定义人物特征F_TEAM 所宣告的函式原型。 |
<type.h> | MudOS 的typeof 运算传回值的巨集定义(根据MudOS 定义)。 |
<user.h> | 定义使用者特征的F_* 符号,以及一些相关组态设定。 |
<weapon.h> | 武器类物件的标准表头档,含武器类物件的继承定义。 |
物件特征(Feature Objects) 物件特征是ES2 mudlib 异于其他mudlib 的最主要特色,在ES2 mudlib 的设计哲学中,一个物件分析到最后,就是一群物件特征的聚合体。
ES2 mudlib 在物件特征的目录下,另外细分几个族群,分列如下:
具有属性 | /feature/attribute.c |
具有计量值 | /feature/statistic.c |
具有资料库 | /feature/dbase.c |
具有自动释放功能 | /feature/clean_up.c |
具有唯一性 | /feature/unique.c |
可以被饮用 | /feature/drink.c |
可以被装备 | /feature/equip.c |
可以被食用 | /feature/food.c |
可以被移动 | /feature/move.c |
可以被看见与指名 | /feature/name.c |
可以被储存 | /feature/save.c |
可以被研读 | /feature/study.c |
人物特征
能够攻击 | /feature/char/attack.c |
能够使用指令 | /feature/char/command.c |
能够计算货币 | /feature/char/finance.c |
能够接收讯息 | /feature/char/message.c |
能够学习技能 | /feature/char/skill.c |
能够进行持续性动作 | /feature/char/action.c |
能够维持战斗状态 | /feature/char/combat.c |
能够受辅助/不良状况效果影响 | /feature/char/condition.c |
能够建立师徒关系 | /feature/char/master.c |
能够提升等级、经验 | /feature/char/score.c |
能够组织队伍 | /feature/char/team.c |
使用者特征
能够储存alias | /feature/char/alias.c |
能够储存物品 | /feature/char/autoload.c |
能够编辑文字 | /feature/char/edit.c |
能够纪录事件旗标 | /feature/char/flag.c |
能够使用分页功能 | /feature/char/more.c |
护具类物件特征
盔甲类 | /feature/armor/armor.c |
衣物类 | /feature/armor/cloth.c |
鞋类 | /feature/armor/feet.c |
戒指类 | /feature/armor/finger_eq.c |
手套类 | /feature/armor/hand_eq.c |
头盔类 | /feature/armor/head_eq.c |
护腿类 | /feature/armor/leg_eq.c |
项链类 | /feature/armor/neck_eq.c |
腰带类 | /feature/armor/waist_eq.c |
武器类物件特征
斧类 | /feature/armor/axe.c |
刀类 | /feature/armor/blade.c |
钝器类 | /feature/armor/blunt.c |
匕首类 | /feature/armor/dagger.c |
针类 | /feature/armor/needle.c |
枪类 | /feature/armor/pike.c |
杖类 | /feature/armor/staff.c |
剑类 | /feature/armor/sword.c |
鞭类 | /feature/armor/whip.c |
标准物件(Standard Objects)
标准物件主要提供区域建造者物件的基础原型,区域建造者经由「继承」这些标准物件来撰写区域内的物件。ES2 mudlib 在标准物件目录下另外细分几个族群,分列如下:
留言板物件 | /std/bboard.c |
人物状况定义物件 | /std/condition.c |
技能定义物件 | /std/skill.c |
货币物件 | /std/money.c |
房间类物件 | /std/room.c |
钱庄 | /std/room/bank.c |
当铺 | /std/room/hockshop.c |
当铺储藏室 | /std/room/hockshop_storage.c |
客栈 | /std/room/inn.c |
旅行点 | /std/room/journey.c |
物品类物件 | /std/item.c |
可合并物品 | /std/item/combined.c |
容器物品 | /std/item/container.c |
液态物品 | /std/item/liquid.c |
药材 | /std/item/pharmacy.c |
原物料 | /std/item/reagent.c |
类人种族 | /std/race/humanoid.c |
人物类物件 | /std/char.c |
非玩家人物 | /std/char/npc.c |
另外有一类介于标准物件与通用物件之间的重要物件,因为物件权限的规划, 被安排放在标准物件的目录下,这些物件包括:
使用者帐号物件 | (/std/obj/login.c) |
使用者物件 | (/std/obj/user.c) |
尸体物件 | (/std/obj/corpse.c) |
精灵物件(Daemons Objects) 精灵物件是指游戏系统中一些用来提供某些功能,但是并不具备实体的抽象物件, 这些功能并不专属于某几种物件,也不依存某些物件而存在。它们的角色类似神话中掌管大自然的火之精灵、光之精灵等,因此而得名。
精灵物件主要分为两类,第一类位于/adm/daemons 目录下,为具有ROOT 权限的系统精灵;另一种位于/daemon 下,为具有MUDLIB 权限的游戏制度精灵。
目前ES2 的系统精灵包括:
指令代换精灵 | /adm/daemons/aliasd.c | 负责提供系统通用alias 给所有使用者。 |
频道精灵 | /adm/daemons/channeld.c | 负责提供所有通讯频道如chat、wiz、rumor 等。 |
人物精灵 | /adm/daemons/chard.c | 负责设定、检查、人物的状态,包括死亡、复活等。 |
中文精灵 | /adm/daemons/chinesed.c | 负责处理中、英文对照,以及一些与中文相关的功能。 |
家族精灵 | /adm/daemons/cland.c | 负责管理所有玩家间的持久性组织。 |
指令精灵 | /adm/daemons/cmd_d.c | 负责管理玩家指令的搜寻与执行。 |
战斗精灵 | /adm/daemons/combatd.c | 负责所有战斗的进行。 |
制度精灵 | /adm/daemons/daemond.c | 负责管理第二类制度精灵的登记、查询、呼叫。 |
情绪精灵 | /adm/daemons/emoted.c | 负责管理、执行所有的情绪指令。 |
装备强化精灵 | /adm/daemons/enhanced.c | 负责装备的随机强化。 |
使用者查询精灵 | /adm/daemons/fingerd.c | 负责处理并执行finger 指令。 |
连线精灵 | /adm/daemons/logind.c | 负责管理使用者连线登入、创造人物、断线、重新连线等。 |
自然现象精灵 | /adm/daemons/natured.c | 负责管理天气变化与游戏中的自然现象。 |
系统效能精灵 | /adm/daemons/profiled.c | 负责监控、统计系统效能。 |
权力精灵 | /adm/daemons/securityd.c | 负责管理所有物件对档案系统的读写权、以及某些efun 的使用权。 |
邮件精灵 | /adm/daemons/smtpd.c | 负责管理使用者间互相寄送邮件的功能。 |
身分识别精灵 | /adm/daemons/userid.c | 负责网路使用者身份识别。 |
虚拟物件精灵 | /adm/daemons/virtual.c | 负责管理虚拟物件的产生。 |
制度精灵主要随各MUD 游戏设计不同而异,目前ES2 所使用的制度精灵有以下几类:
种族精灵 | 位于/daemon/race 目录下 |
职业精灵 | 位于/daemon/class 目录下 |
技能精灵 | 位于/daemon/skill 目录下 |
状态精灵 | 位于/daemon/condition 目录下 |
留言板物件 | 位于/daemon/board 目录下 |
指令物件(Command Objects)
指令物件唯一的用途是用来提供使用者执行指令,这些物件的特色是:具有ROOT 权限,但是在执行指令时,通常会降低为和执行指令的使用者相同的权限。
目前ES2 mudlib 将指令物件依照使用权限高低分为以下几类, 权限较高的使用者可以使用权限较低者全部的指令。
大神指令 | 位于/cmds/adm 目录下 |
大巫师指令 | 位于/cmds/arch 目录下 |
巫师指令 | 位于/cmds/wiz 目录下 |
实习巫师指令 | 位于/cmds/app 目录下 |
见习巫师指令 | 位于/cmds/imm 目录下 |
玩家指令 | 位于/cmds/usr 目录下 |
一般指令 | 位于/cmds/std 目录下 |
以下是ES2 目前所有的通用指令: (不含由物件、房间、职业、种族所提供的特殊指令)
chpass | 大神 | 设定除了大神以外,任意使用者的密码。 |
shutdown | 大神 | 立即关闭游戏伺服器。 |
callouts | 大巫师 | 列出所有物件待执行的callout函数。 |
chinese | 大巫师 | 中文精灵的管理工具,可设定中英文对照。 |
cleanup | 大巫师 | 对所有物件呼叫自动清除(clean_up)函式。 |
force | 大巫师 | 强迫另一位使用者执行指定的指令。 |
heal | 大巫师 | 完全恢复一位使用者的健康状态。 |
overview | 大巫师 | 检视系统一些物件的统计资料。 |
possess | 大巫师 | 附身在指定的NPC物件。 |
promote | 大巫师 | 提升/降低指定使用者的巫师等级。 |
purge | 大巫师 | 删除指定使用者的帐号 |
reboot | 大巫师 | 启动系统正常的重新启动程序,开始倒数计时,并发出讯息警告所有使用者。 |
rehash | 大巫师 | 更新指令搜寻快取。 |
reset_okip | 大巫师 | 设定指定使用者的登入IP地址检查。 |
restore | 大巫师 | 取回指定使用者的人物备份档。 |
resurrect | 大巫师 | 将指定使用者从死亡状态复活。 |
slay | 大巫师 | 直接杀死指定的使用者或生物。 |
wizlock | 大巫师 | 设定/取消非巫师的使用者登入限制。 |
analyze | 巫师 | 显示并分析指定使用者或生物的状态与能力。 |
call | 巫师 | 呼叫指定物件的指定函式。 |
cat | 巫师 | 列出指定档案的内容。 |
cost | 巫师 | 计算执行某一指令所需要的微指令(instruction)数。 |
daemon | 巫师 | 制度精灵的查询/管理工具。 |
exile | 巫师 | 立即驱逐指定的玩家,并且禁止上线一段时间。 |
ff | 巫师 | 查询某一函数在物件中,函数定义所在的档名。 |
ilist | 巫师 | 显示指定物件的继承树。 |
info | 巫师 | 显示指定物件的内部状态。 |
invis | 巫师 | 开启/关闭巫师隐身状态。 |
localcmds | 巫师 | 显示巫师目前由身上物件与所在房间提供的所有指令。 |
qload | 巫师 | 显示系统目前的负荷。 |
quiet | 巫师 | 设定/取消指定使用者在公共频道上的发言限制。 |
snoop | 巫师 | 监听指定使用者所收到的讯息。 |
summon | 巫师 | 立即将指定使用者移动到巫师所在的地点。 |
tail | 巫师 | 显示指定档案的最后几行。 |
userid | 巫师 | 用身分识别精灵查询使用者身份。 |
cp | 实习巫师 | 拷贝指定的档案。 |
edit | 实习巫师 | 编辑指定的档案。 |
home | 实习巫师 | 立即移动到自己的工作室或巫师公会。 |
mkdir | 实习巫师 | 建立一个子目录。 |
mv | 实习巫师 | 移动(更名)指定的档案或子目录。 |
rm | 实习巫师 | 删除指定的档案。 |
rmdir | 实习巫师 | 删除指定的子目录。 |
cd | 见习巫师 | 改变工作目录。 |
clone | 见习巫师 | 复制指定的物件。 |
dest | 见习巫师 | 摧毁指定的物件。 |
edemote | 见习巫师 | 编辑情绪指令。 |
goto | 见习巫师 | 立即移动到指定的房间或指定的使用者身边。 |
home | 见习巫师 | 立即移动到自己的工作室或巫师公会。 |
items | 见习巫师 | 显示身上或房间中物品的真实名称。 |
ls | 见习巫师 | 显示工作目录或指定目录的内容。 |
mem | 见习巫师 | 显示系统或指定物件所占用的记忆体量。 |
more | 见习巫师 | 以分页方式显示指定档案的内容。 |
pwd | 见习巫师 | 显示自己的工作目录与工作档案。 |
status | 见习巫师 | 显示系统使用记忆体的统计资料。 |
update | 见习巫师 | 重新载入指定的物件,或更新使用者物件。 |
where | 见习巫师 | 寻找指定的物件,或列出所有使用者的位置。 |
which | 见习巫师 | 显示提供某一指令的物件档名。 |
whoami | 见习巫师 | 显示自己目前的权限。 |
abandon | 玩家 | 放弃学习指定的技能。 |
alias | 玩家 | 设定/查询指令替代功能。 |
backup | 玩家 | 备份人物存档。 |
balance | 玩家 | 查询银行帐户余额。 |
ccmd | 玩家 | 帮派指令。 |
chfn | 玩家 | 修改自己的电子邮件、签名等个人资料。 |
cls | 玩家 | 清除萤幕。 |
describe | 玩家 | 设定自己的人物描述。 |
disable | 玩家 | 将指定的技能设定为不使用。 |
enable | 玩家 | 将指定的技能设定为使用。 |
estimate | 玩家 | 评估指定对手的战斗能力。 |
finger | 玩家 | 查询离线使用者。 |
gain | 玩家 | 查询技能进步的状况。 |
help | 玩家 | 查询说明文件。 |
hp | 玩家 | 显示人物生命点数。 |
identify | 玩家 | 鉴定物品。 |
ignore | 玩家 | 用来关闭所有来自指定使用者的tell讯息。 |
inventory | 玩家 | 显示人物身上携带的物品。 |
keep | 玩家 | 将指定物品作上记号,以免不小心丢掉或卖掉。 |
localtime | 玩家 | 显示伺服器所在地的时间。 |
nick | 玩家 | 设定自己的绰号。 |
okip | 玩家 | 设定允许登入IP地址的检查。 |
option | 玩家 | 设定一些关于显示讯息的开关。 |
order | 玩家 | 命令自己的宠物、喽啰做某些事情。 |
passwd | 玩家 | 修改自己的密码。 |
praise | 玩家 | 赞扬其他的使用者。 |
quit | 玩家 | 结束连线离开游戏。 |
save | 玩家 | 将人物资料存档。 |
score | 玩家 | 显示人物属性、经验值等资讯。 |
semote | 玩家 | 显示情绪指令列表。 |
skills | 玩家 | 显示人物的技能。 |
suicide | 玩家 | 自杀、删除人物帐号。 |
time | 玩家 | 显示游戏世界目前的时间。 |
to | 玩家 | 输入含有换列字元的命令。 |
tune | 玩家 | 关闭指定的频道。 |
undescribe | 玩家 | 删除人物的描述。 |
uptime | 玩家 | 显示伺服器执行的时间。 |
version | 玩家 | 显示MUD所使用的伺服器名称与版本。 |
visitor | 玩家 | 显示MUD的使用者人次统计。 |
who | 玩家 | 显示所有使用者的列表。 |
wimpy | 玩家 | 设定自动逃跑的参数。 |
wizlist | 玩家 | 查询巫师团队的人员名册。 |
acquire | 一般 | 向其他人物学习技能。 |
apprentice | 一般 | 向其他人物拜师学艺。 |
ask | 一般 | 向其他人物询问问题。 |
backstab | 一般 | 对其他人物发动偷袭。 |
berserk | 一般 | 对其他人物发动狂暴攻击。 |
buy | 一般 | 向其他人物购买物品。 |
cast | 一般 | 施展法术。 |
charge | 一般 | 指定战斗中优先攻击目标。 |
close | 一般 | 关闭门窗等。 |
conjure | 一般 | 施展法术。 |
drink | 一般 | 喝饮料。 |
drop | 一般 | 丢弃物品。 |
eat | 一般 | 吃食物。 |
emote | 一般 | 作动作。 |
enter | 一般 | 进入特定场所。 |
exert | 一般 | 使用内功。 |
fight | 一般 | 向其他人物提出比试的要求。 |
fill | 一般 | 将容器注入液体。 |
follow | 一般 | 设定人物自动跟随其他人物一起行动。 |
get | 一般 | 从地上或其他容器中捡起物品。 |
give | 一般 | 将身上的物品给予指定的人物。 |
go | 一般 | 往指定的方向移动。 |
guard | 一般 | 设定人物保护的对象。 |
halt | 一般 | 终止战斗或正在进行的活动。 |
kill | 一般 | 开始以杀死对方为目的的战斗。 |
lock | 一般 | 使用钥匙将门锁上。 |
look | 一般 | 检视物品或周遭的环境。 |
open | 一般 | 开启门窗。 |
perform | 一般 | 使用招式。 |
put | 一般 | 将物品放进容器。 |
remove | 一般 | 卸下装备。 |
reply | 一般 | 回答来自其他玩家的tell。 |
say | 一般 | 说话,让位于同一房间中的人物听到。 |
search | 一般 | 在所在的环境搜寻特定的物品。 |
shout | 一般 | 大吼大叫,让所有其他玩家听到。 |
sneak | 一般 | 尝试以不引人注意的方式,向指定的方向移动。 |
steal | 一般 | 尝试向指定的对象偷窃。 |
study | 一般 | 从特定物品上学习技能。 |
team | 一般 | 和其他人物组织队伍。 |
tell | 一般 | 传送讯息给指定的使用者。 |
unlock | 一般 | 用钥匙开门。 |
unwield | 一般 | 卸下武器。 |
wear | 一般 | 穿上装备。 |
whisper | 一般 | 和指定对象耳语。 |
wield | 一般 | 使用武器。 |