文字MUD游戏论坛-天下泥潭群英会-水泊梁山  

返回   文字MUD游戏论坛-天下泥潭群英会-水泊梁山 > 西游之旅 > 『 巫师天下 』

『 巫师天下 』 学习如何挂MUD,如何制作MUD。讨论如何管理好一个MUD,做好一个巫师。

发表新主题 回复
 
LinkBack 主题工具 主题评分 显示模式
旧 2011-12-03   #1
高级会员
级别:6 | 在线时长:109小时 | 升级还需:31小时级别:6 | 在线时长:109小时 | 升级还需:31小时级别:6 | 在线时长:109小时 | 升级还需:31小时
 
Odysseus 的头像
 
注册: 08年04月11日
来自: 盘丝洞
帖子: 311
声望力: 20
声望: 50 Odysseus 初领妙道
现金:29两梁山币
资产:1245两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
关于输入和过滤

作者:无名游客  发表时间:2001年5月2日 18:51

--------------------------------------------------------------------------------



当一个到MUDOS的连接创建时,系统将调用MASTER_OB(在配置文件里定义的,一般是/adm/obj/master.c)里的connect函数(也有的是/adm/single/master.c)。
这个函数可以有参数也可以无参数,如果有参数,则参数将传入玩家连接的端口号,有的MUD通过不同的端口实现GB/BIG双系统就是在这个原理上实现的。(一般最多有4个端口可以让玩家连入游戏)

在connect函数里,一个新的LOGIN_OB将被创建,在大多数MUDLIB里,这个LOGIN OB是/clone/user/login.c。
然后系统将调用这个LOGIN_OB的logon()函数,并将interactive传给LOGIN_OB,这时候
logon函数又调用LOGIN_D也就是/adm/daemons/logind.c里的logon()函数,开始进入正式的登录过程。

在登录过程中根据输入创建了一个ID的USER OB,并用exec将interactive从OGIN OB传到了USER OB上,这时候USER OB的process_input才开始起作用。

由此可以看出LOGIN OB和USER OB本质上并没有什么不同。你可以将LOGIN OB的代码进行修改以实现一定的功能。

喜欢LPMUD的可以到CIE站上去取一份TMI2的MUDLIB,然后好好看看里面的文档。相信比大多数流传的中文MUDLIB里的文挡和注释要全很多。

可以看看process_input的说明:
If process_input is present in the player object,then the MudOS driver will send it a copy of each line the player types. Process_input makes it easy to implement features like command history and protection against wizcuffs.
process_input can also modify the player input before it is parsed. if process_input returns a non-zero string, that string is used by the driver instead of what the player typed!

关于在ALIAS里的FLOOD,还有一种办法可以自动减少掉1/3左右的可能性,而对于蓄意FLOOD的人来说,很有可能50%都会被挡住。
刷屏的情况一般有以下几种情况:
1,重复说话,或者说重复命令。
2,说类似的话,比如在前一句话的基础上加上一两个字符
3,说很短的话,比如每句话只有一个字。
4,杂乱无章的话

由于F ALIAS有一个history数组记录着命令,所以理论上可以进行一定的判断来避免FLOOD
另外要注意的是,增加了判断必然要影响效率,但是因为是用户输入接口,所以估计耗费不大(对机器人狂多的MUD例外,而对我架构的聊天室则无所谓)

在我用MUDOS架构的聊天室上我对前3种情况进行过一定的判断,对重复的话我限制了最多几句相同
对短的话进行数量统计,否则就判断是否为相似(采用了折半,减两端字符然后比较是否包含来计算相似度)

这样对3个结果进行一定的判断(重复超过多少,相似度超过多少,短话超过多少)来对输入进行过滤。

这一部分我自己还在尝试找到一个合适的界限。

我很久没怎么碰MUD了。很多地方都记得不大清楚了,有纰漏的地方请多多指正,但是我更希望能起到一个抛砖引玉的作用,大家都能谈谈自己的一些经验之得。不要让整个MUD界总是陷在资源下载,复制,架站,入门的怪圈里。

很多人都认为MUD很容易学是个优点,然而现在看来更是个缺点,太多的人自以为是了,太多的人总是只满足于入门级。对MUD界的发展有何用处?

补充一下:对于命令的历史记录应该只针对会产生信息的命令进行记录!

jackyboy
2001年1月8日贴于泥巴大王
此文并没太多内涵,而且还应该说说以下方面
上面都只是说了MUDLIB里的一些编程和处理,如果谁能补充一下MUDOS调用LIB里用户相关的输入函数的流程,以及MUDOS里对一个用户连接的处理过程最好了。。。。
Odysseus 当前离线  
回复时引用此帖

发表新主题 回复

添加到书签


发帖规则
不可以发表主师
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为格林尼治时间 +9, 现在的时间是 13:39.


Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue

Content Relevant URLs by vBSEO 3.6.1