В данной статье мы рассмотрим возможность переопределения комманд(разрешений) для администраторов, а также для чего нужен файл
admin_overrides.cfg.
Введение
Команды переопределения являются очень важной составляющей СоурсМода. Они позволяют:
- Изменения доступа к любым командам(частично переменным) администратора, не изменяя при этом исходный код плагинов.
- Изменения доступа к группе команд не меняя исходный код.
- Создание уровней доступа для пользователей.
- Разрешить или запретить доступ к командам администратора или групп администраторов, независимо от установленного доступа(флагов).
Изменение разрешения SourceMod объекта называется - переопределение. Если строка коррекции совпадает с именем команды, то команда будет браться с файла переопределения.
Эта концепция важна по двум причинам:
- Коррекция может изменить права доступа к команде.
- Коррекция может быть использована в качестве пользовательского флага доступа.
Например плагин требует уровень доступа "g" для разрешения использовать команду sm_map, а вы хотите это изменить. Коррекция поможет вам, она может запретить(или разрешить) использовать эту команду группе или изменить флаг доступа к этой комманде(sm_map), например на "k".
Это очень полезно также если требуется получить доступ к команде из меню, но плагин открывает доступ только если админ может использовать команду sm_map. При этом вы не хотите давать ему возможность использовать все команды связанные с доступом sm_map(флаг G).
Переопределение типов
Переопределение бывает двух типов:
переопределение команд доступа и
переопределение группы команд. Переопределении команды отражается на всех владеющих этой командой, тоже и с группами.
Пример 1: Если сделано переопределение для sm_map, то любой администратор получит эту корректировку для команды sm_map.
Пример 2: Если переопределение команд существует для группы CSDM, то все администраторы входящие в эту группу получат эти изменения.
Конфигурация общая
Конфигурация изменений хранится в файле configs/admin_overrides.cfg. Формат файла достаточно прост:
Overrides
{
"[name1]" "[flags]"
"@[group1]" "[flags]"
/* ... */
}
Пояснение:
name - переменная
flags - флаг
group - группа
Чтобы указать группу, то перед её названием поставьте знак "@". Пример:
Overrides
{
"sm_map" "k" //Добавить команду "sm_map" к флагу "k"
"@CSDM" "m" //Разрешить или запретить для группы CSDM команды флага "m"
"sm_chat" "" //Разрешить всем использовать "sm_chat"
}
Конфигурация группы
Переопределения в группе могут только запрещать или разрешать доступ к командам.
Полезные ссылки:
Описание команд администратора
Добавление администраторов на сервер
Групповая политика в SourceMod-е