文字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
增加权限等级

发信人: cloner (!!!!!!!), 信区: Mud_Builder
标 题: Mud_Builer新手QA(三)
发信站: 一塌糊涂 BBS (Mon May 21 09:49:33 2001)

Q:怎样在MUD中加一个新的权限等级?比如(boss)

A:
首先讲讲Es2类MudLib中所谓的权限等级的构成。
从MudOs的层面上讲,在MudLib中的权限,体现在
对文件的读写权限,对efun的调用权限两个方面。

对于文件读写权限的控制,由MASTER_OB的valid_read()
和valid_write()检查。Es2类lib中将这个检查交给了
securityd.c中的同名函数进行,而在这个文件中,
他定义了一套不同于euid,uid的身份制度,也就是通常
说的巫师等级制度。

对于efun调用权限的控制,一部分是一些特殊的efun
比如bind,seteuid,shadow,socket等,他们在MASTER_OB
里有自己的检查函数;另一部分是利用simul_efun和
MASTER_OB里对override的检查来实现的。这个问题以后
有必要再讲。

加一个新的权限等级,就是要在Lib中加入一个有着和
其他等级不同的权限的人群,根据上面的分析,需要
改动的就包括上面相关的文件。

/adm/daemons/securityd.c
首先修改那个wiz_levels,加入你所需要的等级(boss),
理论上,事情已经完结,如果你promote test (boss),
以后你wizlist的时候是可以看到test的。不过这个等级
跟一般的玩家是没有权限上的区别的。要实现区别,
就要在上面提到的各个权限检查中加入对他的额外判断,
在securityd.c中,就包括trusted_write,exclude_write,
trusted_read,exclude_read等mapping的修改,加入对于
(boss)这个等级的额外判断。同时在其他的地方,如果
需要可以加入对他它的判断。

/include/command.h
加入这个等级巫师能够使用的命令,我想你看了文件就该明白
怎么修改。

/feature/command.c
enable_player(),在switch里加入:
case "(boss)":
set_path(???);//这个 ???是你在command.h里定义的宏
//enable_wizard; 加不加这个自己决定
break;

然后更新各个文件,看看效果如何。
pkuxkx.net 5555里我加过一个(online)的等级。
Odysseus 当前离线  
回复时引用此帖

发表新主题 回复

添加到书签


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

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



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


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

站长 fengyue

Content Relevant URLs by vBSEO 3.6.1