如何在 SourceMod 中管理用户权限 (2026)

如何在 SourceMod 中管理用户权限 (2026)

一篇关于如何在 SourceMod 中管理用户权限的指南,包括为用户分配 flags 和 groups。

July 26, 2026阅读约 4 分钟更新于 July 26, 2026
如何在 SourceMod 中管理用户权限 (2026)

在本指南中,我将向你展示如何在 SourceMod 中管理用户权限。

SourceMod 是一个 MetaMod 插件,支持大多数运行在 Source 引擎上的游戏。它是一个功能强大且高度优化的平台,用于创建插件和管理服务器管理事务。SourceMod 被广泛应用于诸如 Team Fortress 2、Left 4 Dead 2 和 Counter-Strike: Source 这样的游戏中!

在运行安装了 SourceMod 的游戏服务器时,你很可能在某个时刻会想要授予自己或他人一些权限,比如踢出和封禁玩家的能力(管理员权限)。

查找 Steam ID

在给用户分配权限之前,你需要先找到他们的 Steam ID。SourceMod 支持 SteamID2(STEAM_X:X:XXXXXXXX)和 SteamID3([U:X:XXXXXX])两种格式。

如果你已连接到一台运行在 Source 引擎上的服务器,你可以在开发者控制台中执行 status 命令,以获取当前连接到服务器的玩家的 Steam ID。

否则,你可以使用诸如 Steam ID Finder 和 Steam ID I/O 这样的工具来查找 Steam ID。

标志(Flags)

要确定你想为用户分配哪些具体权限,你需要理解 SourceMod 的标志(flags)系统以及它们所提供的访问权限。每个标志都用一个单一字符来表示。

以下是 SourceMod 中可用的标志列表。

名称 Flag 用途
reservation a 授予保留位访问权限。
generic b 授予通用管理员权限(管理员必需)。
kick c 授予踢出其他玩家的权限。
ban d 授予封禁其他玩家的权限。
unban e 授予解除封禁的权限。
slay f 授予击杀和伤害其他玩家的权限。
changemap g 授予更改地图或重大游戏玩法功能的权限。
cvar h 授予更改大多数 ConVars 的权限。
config i 授予执行配置文件的权限。
chat j 授予特殊聊天权限。
vote k 授予发起或创建投票的权限。
password l 授予在服务器上设置密码的权限。
rcon m 授予使用 RCON 命令的权限。
cheats n 授予更改 sv_cheats ConVar 或使用作弊命令的权限。
root z 启用所有 flags 并忽略免疫值。

此外,还有一些自定义标志,可供插件等使用。

名称 Flag
custom1 o
custom2 p
custom3 q
custom4 r
custom5 s
custom6 t

关于标志的更多信息,可以在这里找到。

密码

如果你愿意,可以要求特定用户在使用被分配给他们的自定义权限之前输入密码。他们每次连接到游戏服务器时都需要输入这个密码,但如果他们愿意,可以在自己那端将这一过程自动化。

首先,你需要修改 addons/sourcemod/configs/core.cfg 文件,将 PassInfoVar 这一行的值从 _password 改为一些自定义的值,比如 _test。用户需要知道他们自己的密码,以及你为 PassInfoVar 设置的值。

当用户连接到游戏服务器时,他们需要在开发者控制台中执行以下命令。

setinfo "<PassInfoVar Password>" "<User Password>"

例如:

setinfo "_test" "myCustomPass123"

如果用户想在自己那端将此过程自动化,他们需要修改 <Game Dir>/cfg/autoexec.cfg 文件,并将上面的命令添加到该文件中。

免疫(Immunity)

immunity 标志会根据客户端的免疫等级,防止管理员之间互相针对对方。

例如,如果第一个管理员的免疫等级为 20,而第二个管理员的免疫等级只有 10。那么第一个管理员可以针对第二个管理员,但第二个管理员不能针对第一个管理员。

注意 - 拥有 z 标志(root)的管理员可以针对任何玩家或管理员,不受免疫等级的限制。

管理用户权限

管理用户权限和分配标志是通过修改 addons/sourcemod/configs 目录(在 Windows 上为 addons\sourcemod\configs 文件夹)中的文件来完成的。

有两个文件可供你编辑,下面将分别说明。

使用 admins_simple.ini 文件

此文件用于快速分配用户权限。这最适合简单的配置,或想要快速给用户分配权限的情况。在此文件中分配权限时,每一行应遵循以下格式。

"<Steam ID/!IP/Steam name>" "[Immunity Level:]<Flags/@group>" ["password"]

以下是一个示例,向某用户授予 reservation、generic、kick 和 ban 标志,并设置 70 的免疫等级。

"STEAM_0:0:36969327" "70:abcd"

使用 admins.cfg 文件

使用此文件在为用户分配权限时需要输入更多行,但可能被认为更为清晰。该文件的格式使用了 SourceMod 的 KeyValues。用户应添加在 Admins 部分内。

以下是添加用户的通用格式。

"<Name>"
{
    "auth"          "steam"
    "identity"      "<Steam ID>"
    "flags"         "<Flags>"
    "immunity"      "<Immunity>"
}

以下是可以为每个用户分配的键(keys)列表。

  • auth - 必须是 steam、name 或 ip 之一(除非存在自定义的认证方式),用于指示 SourceMod 如何解释 identity 值。
  • identity - 一个唯一值,配合认证方式使 SourceMod 能够找到对应的用户。
  • password - 指定用户必须输入的密码。
  • group - 指定该用户应继承的组名(如果存在)。可以指定多行 group。此处不应带有 @ 符号,因为不存在歧义。
  • flags - 该用户应获得的访问标志。
  • immunity - 该用户应获得的免疫等级。

重新加载用户

通过上述文件为用户分配权限后,你需要重新加载管理员缓存,以使权限生效。

当地图切换或服务器重启时,缓存应会自动重新加载。你也可以使用服务器命令 sm_reloadadmins 手动重新加载缓存,这样就不必等到地图切换或服务器重启了。

另请参阅

  • Adding Admins - AlliedMods 官方关于添加管理员的详细 Wiki。
  • SourceBans++ - 一款广受欢迎的插件,能让管理用户、群组、封禁等操作变得更加轻松!

如果你对本指南有任何问题或反馈,请在其论坛主题这里回复!本指南会随着时间的推移不断完善和改进。

加入我们的Discord 服务器!

评论 (0)

登录后即可评论。

加载中…

发现更多

帖子动态

加载中…

最近动态

加载中…
前往社区