东方故事:介绍

东方故事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一般使用武器。
  • 东方故事/介绍.txt
  • 最后更改: 2023/09/19 15:08
  • raymond