灵魂面甲服务器权限
服务器访问权限可以通过控制台命令进行管理,这些命令会在服务器的WS/Saved目录中保存文件。
控制台命令
这些是你可以在游戏内控制台中输入的命令。
EnableServerPermissionList InPermissionType[int] InEnable[int]
启用或禁用指定权限类型的使用。
- InPermissionType: 权限列表的ID
- InEnable: 是否启用或禁用权限列表
- 0: 禁用权限列表
- 1: 启用权限列表
注意:此命令的效果将在服务器重启后丢失。如果你想要持久化,必须添加-serverpm
命令行参数(如下所述)。
命令使用示例。以下将启用账户黑名单(禁用列表)。
gm EnableServerPermissionList 1 1
AddServerPermissionList InPermissionType[int] InSteamID[string]
将玩家或IP添加到指定权限类型的列表中。
- InPermissionType: 权限列表的ID
- InSteamID: 如果它是账户列表,则添加到列表中的玩家Steam ID,或者如果它是IP列表,则添加IP地址。
命令使用示例。以下将添加一个具有Steam ID 76561100000000000的玩家到账户黑名单(禁用列表)。
gm AddServerPermissionList 1 76561100000000000
以下将添加IP地址12.34.56.78到IP黑名单(禁用列表)。
gm AddServerPermissionList 3 12.34.56.78
RemoveServerPermissionList InPermissionType[int] InSteamID[string]
从指定权限类型的列表中删除玩家或IP。
- InPermissionType: 权限列表的ID
- InSteamID: 如果它是账户列表,则从列表中删除玩家Steam ID,或者如果它是IP列表,则删除IP地址。
命令使用示例。以下将从账户白名单(允许列表)中删除具有Steam ID 76561100000000000的玩家。
gm RemoveServerPermissionList 2 76561100000000000
ShowServerPermissionDetails
打印服务器权限的当前状态到控制台。
命令使用示例。
gm ShowServerPermissionDetails
命令行
这些参数可以在服务器启动时传递给服务器。
-serverpm mask[int]
通过位掩码设置哪些权限已启用。要计算掩码值,请为要启用的列表添加表中"掩码"列的值。
注意:你必须指定此命令行选项才能在服务器重启后保持权限状态。如果缺少此选项,服务器启动时所有权限列表将禁用。
权限列表文件
每个权限列表保存到服务器上的WS/Saved
目录中的文件。这些列表中的每一行都是单个Steam ID或IP地址。如果服务器离线,这些列表可以手动编辑,但服务器运行时,你应该使用上面描述的管理员控制台命令。
权限类型
有5种权限类型可以启用或禁用,每个类型都有分配给它的玩家Steam ID列表。
ID | 类型 | 描述 | 掩码 | 关联文件 |
---|---|---|---|---|
0 | 账户白名单 |
如果启用,只有列表上的玩家才能进入服务器。玩家通过Steam ID识别。 如果尝试从不在白名单上的账户连接,您将收到消息"服务器仍在自测!" |
1 | WhiteAccountList.txt |
1 | 账户黑名单 |
如果启用,列表上的玩家不能进入服务器。玩家通过Steam ID识别。 将玩家添加到此列表将立即从服务器踢出他们,无论黑名单是否启用。他们将收到消息"管理员已禁止该账户。" 如果尝试从黑名单IP连接,您将收到消息"您的账户已被禁止访问和登录服务器!" |
2 | BlackAccountList.txt |
2 | IP白名单 |
如果启用,服务器将仅接受来自列出的IP地址的连接。 要白名单您的本地网络,您通常需要白名单您的路由器而不是单个客户端的私有IP。 如果尝试从不在白名单上的IP连接,您将收到消息"服务器仍在自测!" |
4 | WhiteIPList.txt |
3 | IP黑名单 |
如果启用,服务器将拒绝来自列出的IP地址的连接。 将IP添加到此列表不会踢出当前连接的玩家。 如果尝试从黑名单IP连接,您将收到消息"您的IP地址已被禁止访问服务器。无法登录!" |
8 | BlackIPList.txt |
4 | 静音列表 | 如果启用,列表上的玩家将在游戏中被静音(无法向任何频道发送聊天消息)。玩家通过Steam ID识别。 | 16 | BanSpeek.txt |
示例:禁止玩家
以下是如何禁止服务器上的玩家。您可以使用类似的方法编辑其他权限列表。
启用禁用列表
为了使玩家禁止生效,您首先需要启用账户黑名单。要永久启用此功能,您需要将以下内容添加到服务器启动命令。
-serverpm=2
值2
是上面表中的"掩码"值。如果您想启用除禁止列表之外的其他列表,请在此处使用总和值,而不是2。
注意:你需要访问你的服务器启动脚本来进行此更改。如果您的服务器是远程托管的,有很大机会默认启用账户黑名单。但如果不是,请检查他们是否在控制面板中提供了启用选项,或者联系他们以请求他们启用它。您可以使用ShowServerPermissionDetails
控制台命令在游戏中检查账户黑名单是否已启用。
如果我需要在服务器运行时启用黑名单怎么办?
如果您发现自己处于这种情况,您可以使用以下游戏内控制台命令从游戏控制台启用账户黑名单。
gm EnableServerPermissionList 1 1
请注意,这只会启用列表,直到服务器重启。如果您希望在服务器重启后保持列表启用,则仍需要添加启动参数。
查找Steam ID
您需要定位要禁止的玩家的Steam ID。您不能通过名称禁止玩家。
注意:玩家名称旁边的数字是玩家Steam ID的最后6位数字。您需要他们的完整Steam ID来禁止他们,但您可以使用此6位数字来确认您是否找到了正确的Steam ID,以防您有多个具有相同名称的玩家。
选项1:服务器日志
目前,定位玩家Steam ID的最简单方法似乎是服务器日志。这可以在服务器目录中的WS/Saved/Logs/WS.log
中找到。如果您的服务器是远程托管的,您的提供者应该提供查看日志或通过FTP或文件管理器下载日志的方法。
在服务器日志中,搜索要禁止的玩家的名称。任何时候玩家连接到服务器时,它都会记录如下一行。
logStoreGamemode: player ready. Addr:1.2.3.4, Netuid:76561101234567890, Name:Sara
此行告诉您他们的IP地址、Steam ID和玩家名称。
选项2:控制台命令
如果您出于某种原因无法访问日志文件(例如,如果您不是服务器所有者),则可以使用游戏内控制台命令的另一种方法来定位玩家Steam ID。
- 确保您已通过
gm key password
命令在服务器上启用管理员权限。 - 确保游戏中的玩家已加载到您面前。您需要靠近玩家,或者使用
WeiSui
/Follow_Player_view
远程查看玩家。 - 运行以下控制台命令。(不要使用"gm"前缀,因为这将输出到服务器日志而不是您的游戏控制台。)
GetAll HPlayerState PlayerName
GetAll HPlayerState UniqueID
- 检查这些命令的输出。这是一个示例。
>>> GetAll HPlayerState PlayerName <<< 0) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2147453922.PlayerName = Sara 1) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2144100789.PlayerName = Crystal >>> GetAll HPlayerState UniqueID <<< 0) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2147453922.UniqueId = 76561101234567890 1) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2144100789.UniqueId = 76561109876543210
- 将每个命令中的演员ID匹配起来,以确定哪个玩家是哪个玩家。在上面的示例中,您可以看到玩家名为"Sara"的玩家具有Steam ID
76561101234567890
,因为他们共享相同的演员IDHPlayerState_2147453922
。请确保使用演员ID进行匹配,而不是打印在行开头的索引。列表顺序没有保证。
提示:您无法直接从游戏控制台复制文本。但是,控制台输出也会打印到您的本地游戏日志中,您可以在其中复制它。您可以在%LocalAppData%\WS\Saved\Logs\WS.log
中找到该日志。
禁止玩家
根据服务器是否正在运行,禁止玩家有不同的方法。
服务器正在运行
如果服务器正在运行,您需要连接到服务器并使用游戏控制台禁止玩家。
首先,确保您通过gm key password
命令启用了管理员权限。
输入以下控制台命令来禁止玩家。将steamid
替换为玩家Steam ID。
gm AddServerPermissionList 1 steamid
示例
gm AddServerPermissionList 1 76561101234567890
这将立即从服务器踢出玩家并禁止他们。
- 如果他们没有被踢出,那么您可能输入了错误的Steam ID。
- 如果他们被踢出,但随后登录,这意味着您的账户黑名单未启用。在启用列表后,您可以使用命令
gm KickPlayer steamid
再次踢出他们,将steamid
替换为玩家Steam ID。
取消禁止
如果您想取消禁止服务器上的玩家,过程几乎与禁止他们相同。唯一的区别是您使用RemoveServerPermissionList
而不是AddServerPermissionList
示例
gm RemoveServerPermissionList 1 76561101234567890
服务器未运行
如果您想在服务器未运行时禁止或取消禁止玩家,可以直接在服务器上编辑账户黑名单文件,位于WS/Saved/BlackAccountList.txt
。
文件中的每一行都表示被禁止的玩家的Steam ID。您可以添加或删除行来禁止或取消禁止玩家。这是一个示例文件,其中两个玩家被禁止。
76561101234567890 76561109876543210
注意:编辑文件时,服务器正在运行时不会生效。如果您正在运行服务器,请使用游戏控制台命令。