先占坑(20230128),有空了再详细写写。
已更新!
主要内容包含:
- admin flags是什么?有哪些?
Admin flags是一系列用来标记用户权限的“等级标记”,不同的flag代表着不同的权限。
SourceMod默认支持下面这些权限flags:
名字 |
标志flag |
目的 |
reservation |
a |
获取保留通道的权限 |
generic |
b |
通用管理员;需要管理员权限 |
kick |
c |
踢出其他玩家 |
ban |
d |
封禁其他玩家 |
unban |
e |
移除封禁 |
slay |
f |
攻击其他玩家 |
changemap |
g |
更改地图或者游戏属性 |
cvar |
h |
更改大多数cvars. |
config |
i |
执行config文件 |
chat |
j |
特殊聊天权限 |
vote |
k |
创建投票 |
password |
l |
给服务器设定密码 |
rcon |
m |
使用RCON命令 |
cheats |
n |
改变sv_cheats 或使用作弊命令 |
root |
z |
开启所有标志并且无视免疫等级 |
custom1 |
o |
自定义组1. |
custom2 |
p |
自定义组2. |
custom3 |
q |
自定义组3. |
custom4 |
r |
自定义组4. |
custom5 |
s |
自定义组5. |
custom6 |
t |
自定义组6. |
举个例子:
在/addons/sourcemod/configs/admins_simple.ini 文件中,我们添加了下面的内容
"STEAM_0:1:16" "bce" //这个SteamID可以统一, 踢人, 解封,但是没有免疫等级
注意:上面提到的“免疫等级(immunity)”是一个数值标记,拥有相同的免疫等级的管理员,相互之间是可以进行管理的;默认情况下,高免疫等级的玩家不会受到低免疫等级的玩家控制!
- admin group是什么?能干嘛?
Admin Group 是 SourceMod中,用来设置管理员组的一种方法。同一个Group下面的所有的管理员,默认拥有一模一样的权限。Group的好处在于:可以非常轻松地为相同group的管理员增加、减少权限flag。
举个例子:
在configs/admin_groups.cfg 文件中,有如下内容
"Groups"
{
"Basic Admin"
{
"flags" "abc" //保留位置、一般管理、踢人
"immunity" "1" //低权限豁免值
"Overrides"
{
"sm_map" "allow" //即便没有map的flag,也允许使用sm_map指令
"@CSDM" "deny" //禁止执行来自CSDM组的指令
}
}
}
这个例子表示,有一个组,名为Basic Admin,这个组内:
所有的管理员都拥有abc这三个flag,也就是拥有保留位、一般管理、踢人的权限;他们的免疫等级都是1。
注意:上面的例子里面提到了Overrides,这个我们下面再去讨论。
- admin override是什么?有啥用?
Admin Override 在SourceMod中,用来重构原本的管理员权限。
举个例子:
在configs/admin_overrides.cfg 文件中,有如下内容:
Overrides
{
"sm_map" "k" //改变 "sm_map" 的默认权限flag为"k" flag.
"@CSDM" "m" //权限flag为"m" 的用户,将拥有组名为CSDM的group的管理员的任何权限的执行权限
"sm_chat" "" //任何人都可以使用 "sm_chat"命令(默认情况下,使用sm_chat是需要特定权限的)
}
这个例子可以这样理解,“sm_map”命令的默认执行权限flag是g,但是我们可以将它重写为k,此时拥有k 权限的玩家就可以执行原来本属于g权限玩家才能够执行的命令
实战:
讲到这里,大家应该对上面的3个主题已经有所了解了。我这里向大家提出一个题目,以此考验大家是否真的理解了admin flags的相关内容。
问题:如果一个管理员A,他的权限是abcdefg,但是我想要让他的权限简单一点,用权限o就可以表示abcdefg,该怎么做呢?
答案:
admins_simple.ini文件中添加如下信息
"STEAM_1:1:64036271" "@VIP_1" //表示用户属于group名称为VIP_1的组
在admin_overrides.cfg中,添加下面的信息,表示我们先将VIP_1这个组的权限重写为了 o flag
在admin_group.cfg中,添加下面的信息,表示我们新增了一个group,名称为VIP_1,组内管理员的权限为bcdfgjk,免疫等级为1
参考资料: