背景:
阅读文章

DMUS使用指南

[日期:2007-05-05] 来源:  作者:super [字体: ]

ROOM篇
ROOM里面有一个when_sth_arrive(object ob,object from)的函数,会在每当有新物件
移动到这个房间里面的时候,就会自动呼叫ROOM里面的这个函数,其中OB是移动进来的
物件,FROM是从什么地方来的。还有一个process_sound(object sound)的函数,在这个
里面可以对传播过来的声音做一些处理,默认的sound->start_process()是让该sound


继续传播。另外在create()里面可以set("sound/block",n)来设置该房间的隔音程度,
一个声音最大的功效值是50,经过一个房间,功效会减少n+10。
CMD篇
DMUS里面基本上已经取消了CMDS的概念,由各部分的功能代替之。目前在DMUS里面把一个
正常人类的肢体分为六个部分,头,脚,眼睛,耳朵,手,嘴巴,加上一个系统部分,一
共是七个模块。玩家输入的所有东西都将执行这些模块中的东西,这些模块可以动态的增
加和减少,比如一个玩家在战斗中失去了双腿,那么他将没有go这个命令了,这个时候执
行go系统就会提示:What?但是却不影响其它动作。要增加模块的话,需要修改:
/feature/parts.pike
/adm/daemons/bodyd.pike
并且要在/std/body下增加相应的文件,最后需要修改/include/constant.h
最好不要随意的增添新的动作,因为每增添一个动作都必须连玩家存档文件一起修改。

物件篇
凡是继承了F_OBJECT的物件,都将拥有一些特殊的功能,比如动态增减函数,这里的动态
增减函数不仅仅只是对当前物件有效,当前物件保存起来以后,下次读入以后依然可以拥
有那些动态增加上去的函数。

玩家物件篇
在玩家身上有一个叫receive_sound(int n,string c,string f)的函数,是专门用来接受
经过该区域的声音的,其中N是声音强度,C是声音内容,F是声音来源。在这个函数里面
需要把内容显示给玩家,或者当玩家是聋子的时候不做任何处理。另外把信息显示给玩家
是通过一个ob->msg_me(xxx)的函数来实现的,直接的write()将会把后面的内容输出到本地
而不是玩家终端。

声音篇
发声的程序是:/std/body/mouth.pike,其中会调用/obj/sound.pike这个东西。任何
信息都只能通过声音来传递,所以就不存在chat这么不现实的东西了,更不存在tell这种
东西,目前提供的发声的命令,只有一个void say(),say出来的声音强度只有10,正好一
间房子内可以听到,如果想做其它命令的话,只需要把声音强度加大即可,不过过多的高
强度声音会影响系统资源,所以暂时把声音强度限制在50。

如有任何问题请联系本人:

 

尊重作者 转载请注明出处52mud.com

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容      
本文评论   [发表评论]   全部评论 (0)
内容推送
52mud提供
一起回忆泥巴游戏QQ群68186072
52mud官方微信公众平台
热门评论