构建权限


请注意:这里只给出了权限系统的简要介绍,锁和权限完整介绍请看这里


超级用户

严格地说Evennia只有两类用户 —— 超级用户和其他用户。超级用户是你创建的第一个用户,对象号为#1。这是服务器所有者的帐户,拥有全部的功能。超级用户拥有所有的权限,没有锁能够影响到他们。从技术上讲,超级用户不只是拥有所有的权限,他可以绕过所有的权限检查。这使得超级用户无法被锁阻止,这也使得它实际上不适合用于测试游戏中的锁和使用限制。通常,只有一个超级用户就够了。


分配权限

尽管权限可用于任何东西,在 settings.PERMISSION_HIERARCHY 中还是设定了一套权限等级。默认情况下Evennia会创建以下等级:
  1. 神 — 他们基本上拥有和超级用户相同的权限(除了不能绕过权限系统)。应该只分配给真正可信的服务器管理员。
  2. 巫师可以做除服务器相关功能之外的一切事情。所以巫师无法重新加载或关闭服务器,他们也无法在控制台执行任意的Python代码或从硬盘导入文件。
  3. 建造者可以使用所有的建造命令,但不能影响其他玩家或涉及服务器功能。
  4. 玩家指导基本上和普通玩家差不多,但他们可以向数据库添加帮助文件。
  5. 玩家是新玩家的默认组别。新玩家有权使用消息系统、使用和创建新的频道。
拥有某个级别权限的用户会自动获得访问较低级别锁的权限。

要在游戏中指定新的权限,你需要能够使用 @perm 命令。这是一个神级命令,但原则上它也可被设成更低的权限,它只允许分配与你当前等级相等或更低的权限(所以你不能用它来升级自己的权限级别)。如果你自己有神级权限(或是超级用户),你就可以用以下命令把新玩家“汤米”加为核心员工。
@perm/add *Tommy = Immortals
* 可以确保把权限设给玩家,而不是其它名为汤米的角色。通常这是你想要的结果,这样一来不用管当前正在控制哪个角色,相关玩家都可拥有神级权限。要将权限降到和角色相应的等级,可以使用压制功能(见下文)。


压制你的权限

在开发的时候,你会经常想知道用比你低的权限看东西是个什么样子。为此,你可以使用压制。通常情况下,你操纵角色时所使用权限是你的玩家权限。所以即使你的角色只有普通玩家权限,仍然会优先使用你的神级权限。使用 @quell 命令可以改为优先使用角色权限:
@quell
这可以让你改用当前角色的权限来测试游戏。因此原则上开发者或建造者可以建立几个拥有不同权限的测试角色。请注意,你不能用这种方式来提升你的权限,如果角色权限碰巧比玩家权限高,仍然会使用玩家的权限。