В этом гайде я покажу, как управлять правами пользователей в SourceMod.
SourceMod — это addon для MetaMod, поддерживающий большинство игр на Source Engine. Это мощная и хорошо оптимизированная платформа для создания плагинов и управления администрированием сервера. 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 Engine, вы можете выполнить команду status в Developer Console, чтобы получить Steam ID текущих игроков, подключённых к серверу.
В противном случае вы можете воспользоваться такими инструментами, как Steam ID Finder и Steam ID I/O, чтобы найти Steam ID.
Флаги
Чтобы определить, какие конкретные права вы хотите назначить пользователям, нужно понимать систему флагов SourceMod и то, какой доступ они дают. Каждый флаг обозначается одним символом.
Вот список флагов, доступных в SourceMod.
| Название | Флаг | Назначение |
|---|---|---|
| reservation | a |
Даёт доступ к зарезервированному слоту. |
| generic | b |
Даёт базовые права администратора (требуется для доступа админа). |
| kick | c |
Даёт доступ к кику других игроков. |
| ban | d |
Даёт доступ к бану других игроков. |
| unban | e |
Даёт доступ к снятию банов. |
| slay | f |
Даёт доступ к убийству и нанесению урона другим игрокам. |
| changemap | g |
Даёт доступ к смене карты или основных игровых параметров. |
| cvar | h |
Даёт доступ к изменению большинства ConVar. |
| config | i |
Даёт доступ к выполнению конфигурационных файлов. |
| chat | j |
Даёт особые права в чате. |
| vote | k |
Даёт доступ к запуску или созданию голосований. |
| password | l |
Даёт доступ к установке пароля на сервер. |
| rcon | m |
Даёт доступ к использованию команд RCON. |
| cheats | n |
Даёт доступ к изменению ConVar sv_cheats или использованию команд для читов. |
| root | z |
Включает все флаги и игнорирует значения иммунитета. |
Кроме того, есть пользовательские (custom) флаги, которые могут использоваться плагинами и т. д.
| Название | Флаг |
|---|---|
| custom1 | o |
| custom2 | p |
| custom3 | q |
| custom4 | r |
| custom5 | s |
| custom6 | t |
Более подробную информацию о флагах можно найти здесь.
Пароли
При желании вы можете обязать конкретных пользователей вводить пароль перед тем, как использовать назначенные им пользовательские права. Им нужно будет вводить этот пароль каждый раз при подключении к игровому серверу, но они могут автоматизировать этот процесс на своей стороне, если захотят.
Сначала вам нужно изменить файл addons/sourcemod/configs/core.cfg и поменять значение строки PassInfoVar с _password на что-то своё, например _test. Пользователь должен знать свой конкретный пароль и значение, на которое вы установили PassInfoVar.
Когда пользователь подключается к игровому серверу, ему нужно выполнить следующую команду в Developer Console.
setinfo "<PassInfoVar Password>" "<User Password>"
Например:
setinfo "_test" "myCustomPass123"
Если пользователь хочет автоматизировать этот процесс на своей стороне, ему нужно изменить файл <Game Dir>/cfg/autoexec.cfg и добавить в него указанную выше команду.
Иммунитет
Флаг immunity не позволяет администраторам воздействовать друг на друга в зависимости от уровня иммунитета клиента.
Например, если у первого администратора иммунитет 20, а у второго — только 10, то первый администратор может воздействовать на второго, но второй не может воздействовать на первого.
ПРИМЕЧАНИЕ - Администраторы с флагом z (root) могут воздействовать на любого игрока или администратора, независимо от уровня иммунитета.
Управление правами пользователей
Управление правами пользователей и назначение флагов осуществляется путём изменения файла внутри директории addons/sourcemod/configs (или папки addons\sourcemod\configs на Windows).
Есть два файла, которые вы можете редактировать, они описаны ниже.
Использование файла 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
Использование этого файла требует ввода большего количества строк при назначении прав пользователям, но может считаться более чистым способом. Формат файла использует KeyValues SourceMod. Пользователей нужно добавлять внутри секции Admins.
Вот общий формат для добавления пользователей.
"<Name>"
{
"auth" "steam"
"identity" "<Steam ID>"
"flags" "<Flags>"
"immunity" "<Immunity>"
}
Вот список ключей, которые можно назначить каждому пользователю.
auth- Должен быть одним из значенийsteam,nameилиip(если не используется пользовательский метод аутентификации), и указывает SourceMod, как интерпретировать значение identity.identity- Уникальное значение, которое позволяет SourceMod найти пользователя по методу аутентификации и заданному значению.password- Задаёт пароль, который пользователь должен ввести.group- Задаёт имя группы, которую пользователь должен наследовать, если она доступна. Можно указать несколько строк group. Символ@указывать не нужно, так как здесь нет неоднозначности.flags- Флаги доступа, которые должен получить пользователь.immunity- Уровень иммунитета, который должен получить пользователь.
Перезагрузка пользователей
После назначения прав пользователю(ям) через файлы, упомянутые выше, вам нужно перезагрузить кэш администраторов, чтобы права вступили в силу.
Кэш должен автоматически перезагружаться при смене карты или перезапуске сервера. Вы можете использовать серверную команду sm_reloadadmins, чтобы перезагрузить кэш вручную и не ждать смены карты или перезапуска сервера.
Смотрите также
- Adding Admins - Подробная Wiki по добавлению админов от AlliedMods.
- SourceBans++ - Популярный плагин, который упрощает управление пользователями, группами, банами и многим другим!
Если у вас есть вопросы или отзывы по этому гайду, пожалуйста, ответьте в теме форума здесь! Этот гайд будет дорабатываться и улучшаться со временем.
Присоединяйтесь к нашему Discord серверу!

