讨论下普通玩家指令权限的问题
mud吧
全部回复
仅看楼主
level 13
isbiluo 楼主
指令权限有2个地方可以控制
一个是 feature/command.c 里面指定不同身份用户可以使用的cmd目录
一个是 cmd文件本身用 SECURITY_D->valid_grant() 判断是否特殊身份可使用
第一种方法, 我发现不同代码里面给普通玩家使用的有2种处理方式
一种是全包括了, 包括wiz的cmd目录
#define PLR_PATH ({"/cmds/skill/", "/cmds/std/", "/cmds/usr/", "/cmds/adm/", "/cmds/arch/", "/cmds/wiz/", "/cmds/app/", "/cmds/imm/"})比如说hell的代码, tx的代码
当然wiz目录的cmd权限 被 valid_grant 限定了玩家不能用
第二种是 只设定了玩家能用的cmd
#define PLR_PATH ({"/cmds/group/", "/cmds/usr/", "/cmds/std/", "/cmds/skill/"})比如说sj的代码
===============
现在奇怪的是, 明明第2种方法更简洁, 为啥还有第一种方法存在的市场?
有什么我没考虑到的么?

2012年07月30日 09点07分 1
level 8
第一种方法是为了指令授权机制
2012年07月30日 12点07分 2
level 13
isbiluo 楼主
你理解错我的意思了, 我问的是
玩家 #define PLR_PATH 设定差异的问题
不是 SECURITY_D->valid_grant() 的问题, SECURITY_D->valid_grant() 主要给不同的wiz权限的人分cmd
2012年07月31日 01点07分 3
同样可以给玩家使用wiz命令的权利
2012年07月31日 02点07分
level 10
第一种方式应该是扩展出来的。标准的xkx采用的都是第二种方式。
很显然,第一种方式希望在某些特定的情况下,player可以使用wiz的某些命令。我不喜欢这个设计,乱糟糟的。还不如把这个命令放在usr里,然后用wizardp和 wiz_level区分判断。
典型的比如hp,get
2012年07月31日 02点07分 4
level 1
架构不合理的多了去了, 比如player命令为什么要分 /usr /std 和 /skill ? 这三个目录完全没区别
2012年07月31日 04点07分 5
还是有区别的么, 比如说坐牢的人 skill就不能用, 哈哈哈
2012年07月31日 04点07分
这个当然有区别了,std下的命令是npc也可以执行的,比如kill. usr下的命令则是player才能用的,比如passwd,news,finger,who skill嘛,则纯粹是为了分类,让一个目录下不要有那么多文件,不好找。
2012年07月31日 08点07分
@hijzhang 有必要限制NPC指令权限吗?不想让NPC用的就不要写进NPC代码里不就行了? std usr skill三个目录合成一个会有什么不良后果呢? 合成一个目录反而更好找, 现在找一个生僻点的命令还得翻三个目录真心不方便
2012年07月31日 16点07分
@wiki6630 你家需要清理指令啦, 给指令加参数什么的, 指令太多了记忆都好烦
2012年08月01日 05点08分
level 1
你好,请问你能帮我xkx2001里面把我自己的id设置成wiz吗?或者是给一个完成的单机侠客行mud(早期的)。很会念以前运镖、挖药、熬八丹的日子。谢谢
2019年12月19日 04点12分 6
level 7
一般都是用的第二种
2019年12月22日 02点12分 8
1