Ставим Mani Admin Plugin

Теперь, когда у нас есть установленный и запущенный сервер, нам пора озаботиться вопросами его администрирования. Не секрет, что встроенным Valve средствам администрирования не достает как гибкости, так и банальной функциональности. Так что, если вы хотите облегчить управление собственным сервером, вам нужен сторонний плагин. Двумя наиболее популярными админ-плагинами являются Mani Admin Plugin и BeetleFart MinimumAdmin Mod. Я расскажу вам только о первом в силу следующих причин:

- С Mani Admin Plugin я знаком гораздо больше, а значит могу рассказать о нем лучше
- Лично мне кажется, что Mani обладает более широкой функциональностью и удобством
- Mani является самым распространенным админ-плагином в мире (на данный момент более половины всех Counter-Strike: Source серверов работают под управлением Mani).
- Плагин непрерывно обновляется, обрастая все большей функциональностью
- Автор плагина прислушивается к нуждам коммьюнити и четко представляет будущее развитие плагина
- К тому же автор плагина просто замечательный человек

Прежде, чем перейти к описанию установки, хочу заметить, что детальное описание всех настроек плагина последует позже (причем вероятно значительно позже) просто по соображениям времени. Сейчас я просто расскажу как устанавливать плагин, как назначать админинов и какие конфигурационные файлы за что отвечают.

I. Установка

Первым делом необходимо скачать последнюю версию плагина. На данный момент ею является 1.2 Beta L. Пусть вас не пугает приставка Beta - единственное что отделяет плагин от избавления от нее - это возможность назначать админов через меню. В остальном - это вполне стабильный билд.

Итак, следуем на http://mani-admin-plugin.com, скроллим вниз до первой новости о релизе и выбираем полную версию плагина для вашей игры из списка ссылок.
Скачиваем файл во временную директорию и распаковываем его. Распаковав получаем полную структуру папок плагина, начиная собственно с папки игры (я буду приводить примеры на основе Counter-Strike: Source, поэтому папка игры будет cstrike).

Далее идем в папку addons и запускаем файл CreateVDF. В появившемся окошке выбираем из списка тип игры (в нашем случае Counter-Strike: Source) и жмем Save VDF. Сохраняем получившийся файл в ту же папку addons. (Этот шаг обязателен независимо от используемой платформы).

Для установки плагина на сервер, просто скопируйте получившуюся структуру в папку, где установлен сервер.

Пример: вы распаковали плагин в папку c:\temp\mani, а сервер стоит в папке c:\server. Вам нужно скопировать папку c:\temp\mani\cstrike в папку c:\server поверх уже существующей там.

Если вы все скопировали верно, то в папке c:\server\cstrike\addons у вас появятся файлы mani_admin_plugin.dll и т.п.

Перезапустите сервер. Введите в консоли сервера plugin_print - вы должны увидеть список плагинов, среди которых Mani Admin Plugin. Если не увидели - проверьте правильно ли скопированы файлы. (Если вы используете Source MetaMod - команда plugin_print не выдаст плагинов. Используйте команду meta list).

II. Описание

Теперь перейдем к описанию того, что каждый из файлов делает:

Папка cstrike\addons:

mani_admin_plugin.dll - собственно файл плагина под Windows
mani_admin_plugin.vdf - файл, указывающий серверу откуда необходимо подгрузить плагин
mani_admin_plugin.so - файл плагина под Linux (если вы запускаете сервер под Windows, этот файл можно удалить)

Папка cstrike\addons\mani_admin_plugin\bin:
mani_admin_plugin.dll и mani_admin_plugin.so - это библиотеки плагина под SourceMM для Windows и Linux соответственно. Если вы не знаете, что такое SourceMM или не хотите его использовать (как не хочу я) - можете просто удалить всю папку

Папка cstrike\cfg:

autoexec.cfg - этот файл не принадлежит самому плагину, а является конфигурационным файлом сервера, подгружаемым при каждом запуске. В версиях плагина 1.2 он не используется (в следующих версиях плагина он будет удален из пакета).
mani_server.cfg - основной файл настройки плагина. Один из двух наиболее важных файлов, именно в нем вам придется копаться больше всего.

Папка cstrike\cfg\mani_admin_plugin:

actionsoundlist.txt - в этом файле прописаны действия, при наступлении которых всем игрокам проигрывается определенных звуковой файл (например вход на сервер, начало голосования и т.п.)

adverts.txt - в этом файле вы можете разместить текстовую рекламу, которая будет демонстрироваться на сервере

cexeclist_all.txt - в этом файле вы можете добавить пункты админского меню и соответсвующие им команды. При выборе этих пунктов меню, соответствующие команды будут исполнены на всех клиентах
cexeclist_ct.txt - в этом файле вы можете добавить пункты админского меню и соответсвующие им команды. При выборе этих пунктов меню, соответствующие команды будут исполнены на команде CT
cexeclist_player.txt - в этом файле вы можете добавить пункты админского меню и соответсвующие им команды. При выборе этих пунктов меню, соответствующие команды будут исполнены на одном выбранном вами игроке
cexeclist_spec.txt - в этом файле вы можете добавить пункты админского меню и соответсвующие им команды. При выборе этих пунктов меню, соответствующие команды будут исполнены на всех спектаторах
cexeclist_t.txt - в этом файле вы можете добавить пункты админского меню и соответсвующие им команды. При выборе этих пунктов меню, соответствующие команды будут исполнены на команде T

chattriggers.txt - в этом файле настраиваются параметры блокирования say команд. Это полезно для предотвращение флуда популярными командами типа rank, top10 и т.п. Вы можете настроить, что команда будет блокирована полностью (не отобразится в чате и не сработает), блокирована только в чате (не отобразится в чате, но сработает, то есть клиент получит ответ от сервера/плагина) или блокирована в чате определенное количество раз (например будет отображаться в чате каждый 10-й раз)

clients.txt - список админов, групп и клиентов, имеющих иммунитет. Второй самый важный файл в плагине

commandlist.txt - в этом файле вы можете настроить собственные say команды. Например сделать, чтобы "say @rr" выполняло команду "mp_restartgame 1"

crontablist.txt - базовый планировщик действий. Вы можете настроить график автоматического выполнения определенных команд на сервере

database.txt - здесь хранятся параметры доступа к базе данных

decallist.txt - здесь находится список нестандартных декалей, которые будут закачиваться клиентам и использоваться для работы ma_effects или графической рекламы в игре

default_weapon_restrictions.txt - в этом файле хранятся запреты на оружие, которые будут действовать на всех картах на сервере

downloads.txt - в этот файл заносятся любые файлы, которые вы хотите закачать на клиентов

flaglist.txt - список админских флагов. Файл служит исключительно для информации и функциональности не несет

gametypes.txt - служебный файл плагина, определяющий функциональные ограничения для разных игр и модов. НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ

gimpphrase.txt - в этом файле хранятся фразы, на которые будут заменяться любые чат сообщения "юродивого" игрока (подвершегося команде ma_gimp)

mapadverts.txt - в этом файле хранятся настройки координат и текстур для графической рекламы на картах

pingimmunity.txt - в этом файле хранятся STEAMID или ip адреса клиентов, имеющих иммунитет к ограничениям по пингу

rconlist.txt - в этом файле вы можете настроить пункты админского меню и соответстующие им rcon команды. При выборе этих пунктов меню, на сервере исполнятся соответствующие rcon команды

reserveslots.txt - в этом файле хранятся STEAMID или ip адреса клиентов, обладающих резервными слотами на сервере (админы обладают ими по умолчанию и в этот список их вносить не надо)

restricted_weapons.txt - список оружия, которое админы могут запрещать через меню

soundlist.txt - список алиасов и соответствующих им звуковых файлов, которые можно исполнять на клиентах

spawnpoints.txt - список дополнительных точек респауна на картах. Полезно для серверов, на которых количество слотов выше, чем количество стандартных точек респауна на определенных картах

texturelist.txt - список текстур, необходимых для нестандартных эффектов через ma_effect.

votequestionlist.txt - список пунктов меню и соответствующих им вопросов для голосования. При выборе пункта меню будет запущено голосование с соответствующим вопросом

voterconlist.txt - список пунктов меню и соответствующих им rcon команд. При выборе пункта меню будет запущено голосование за выполнение соответствующей rcon команды.

votemaplist.txt - список карт, за которые могут голосовать игроки при соответствующей настройке в mani_server.cfg. Файл генерится автоматически при первом запуске плагина, в инсталляционном пакете его нет.

webshortcutlist.txt - список ярлыков и соответствующих им URL адресов. При выполнении ярлыка через say у клиента откроется соответствующий адрес во встроенном в игру браузере

wordfilter.txt - список запрещенных слов, которые будут блокироваться в чате

Папка cstrike/cfg/mani_admin_plugin/language:

english.cfg - этот файл содержит текст, который может быть переведен на другие языки. Этот файл необходим для работы плагина и менять его напрямую не рекомендуется

language.cfg - в этом файле указывается язык, на который переведен плагин. Если в нем указано что либо, отличное от english, в этой же папке должен быть соответствующий cfg файл. Например, если в language.cfg указано russian, то в этой же папке должен находиться файл russian.cfg. Текущая версия russian.cfg всегда находится по адресу http://newbie.nashalife.ru/mani/russian.cfg

Папка cstrike/cfg/mani_admin_plugin/mani_logs:

В этой папке хранятся логи Mani плагина, если соответствующая настройка указана в mani_server.cfg

Папка cstrike/cfg/mani_admin_plugin/map_config:

В этой папке хранятся конфиги с настройками Mani, специфичными для определенной карты. Конфиги должны называться имя_карты.cfg. Например: de_dust2.cfg

Папка cstrike/cfg/mani_admin_plugin/restrict:

В этой папке хранятся конфиги ограничения оружия, специфические для конктреных карт. Файл должен называться имя_карты_restrict.txt

Папка cstrike/cfg/mani_admin_plugin/skins:

В этой папке хранятся нестандартные скины и выйлы ресурсов к ним

Папка cstrike/cfg/mani_admin_plugin/data:

Это - служебная папка.

Папка cstrike/materials/decals/custom/mani_admin_plugin:

В этой папке хранятся текстуры, которые вы можете использовать для графической рекламы на сервере или других целей.

Папка cstrike/sound/admin_plugin:

В этой папке хранятся звуки, которые используются Mani плагином.

III. Настройка

Разобравшись с тем, какой файл за что отвечает, можно перейти к настройке плагина.

Первым делом вам необходимо тщательно изучить файл mani_server.cfg и определиться с желаемыми настройками. Детальное описание каждой из них приведено в следующем сообщении. Вы также можете воспользоваться примером моего файла по адресу http://newbie.nashalife.ru/mani/mani_server.cfg

Для того, чтобы настройки подействовали, необходимо добавить в конец файла server.cfg строку "exec mani_server.cfg" (без кавычек).

Далее необходимо настроить админов. Для начала разберемся со структурой файла clients.txt (чисто в информативных целях, на практике вам в него лезть не придется):

При начальной установке плагина файл отсутствует. Он будет создан при первом запуске.

Структура нового файла для назначения админов сложнее, чем раньше, но в реальности - удобнее.
Пример файла можно глянуть тут:

http://newbie.nashalife.ru/mani/clients.txt

Первым делом идем в конец файла и смотрим в раздел "admingroups". Тут прописаны группы доступа. Это ГОРАЗДО удобнее, чем вписывать все флаги на каждого админа.

В отличие от версий 1.1.х по умолчанию все запрещено, и указание флага (буквы) не отбирает права, а дает. Формат задания группы (флаги необходимо указывать через пробел):
"имя_группы" "с п и с о к ф л а г о в"
Флаг admin необходим для получения админских прав. Без него доступа к администрированию не будет независимо от других флагов.
Флаг client дает доступ к управлению списком админов
Флаг pban дает доступ к перманентным банам
Флаг spray дает доступ к отслеживанию спреев игроков
Флаг grav дает доступ к изменению гравитации
Полный список флагов описан в файле flags.txt

Разобравшись с группами переходим к админам:
Все админы прописываются в секции "players".
Первое поле - ID, отделяющего одного админа от другого. По этому полю идентифицируется админ, так что делайте его понятным (пример: admin1 - полохое, обозначение, Vasya Pupkin - хорошее).

Дальше идут параметры:
"name" - понятное вам и другим имя админа
"steam" - SteamID админа
"admingroups" - группы админа
"immunityflags" - параметры иммунитета
"adminflags" - параметры доступа к админским функциям (аналогично тому, как мы делали в группах)
"ip" - ip адрес админа если вы хотите назначать админов по адресам
"nick" - ник админа, если вы хотите назначать админов по никам
"password" - пароль админа (используется только при назначении по никам)

Любой из параметров, кроме пароля, может содержать несколько значений. См. пример с никами в моем файле.

Теперь собственно назначение админов:
Способ 1: Нормальный

Все операции по назначению админов, можно делать прямо из игры или с консоли сервера с помощью команды ma_client и ma_clientgroup.

Проделать это вам необходимо как минимум раз, т.к. добавление через меню (Способ 2) возможно только, если настроен хотя бы один админ.

Параметры я расписал выше, так что теперь просто приведу последовательность команд, которая создает группу с полным доступом, одного админа, устанавливает его SteamID, включает его в группу и дает полный иммунитет (+# при назначении флагов означает "все флаги", индивидуальные флаги добавляются по одному "+a +b +c":

ma_clientgroup addagroup "Full Access" "+#"
ma_client addclient "Newbie"
ma_client addsteam "Newbie" "STEAM_0:1:4562525"
ma_client setaflag "Newbie" "+admin +client"
ma_client addagroup "Newbie" "Full Access"
ma_client setiflag "Newbie" "+#"

Способ 2: Через меню

Тут все элементарно. Назначив себя админом, заходите на сервер, вызываете админское меню (команда admin) и назначаете админов следуя инструкциям в меню.

Способ 3: Если у вас были более ранние версии плагина (1.1.х):

Обновляем плагин с 1.1.х до 1.2 Beta и запускаем сервер. Новая версия плагина обнаружив файлы adminlist.txt, admingroups.txt, immunitylist.txt и immunitygroups.txt автоматически сгенерит clients.txt (в котором теперь хранятся данные об админах) и добавит к расширению старых файлов .old. Все

Плюсы: ничего делать не надо, плагин делает все сам
Минусы: Работает только один раз. Вернее не один, можно конечно вносить изменения в adminlist.txt, удалять clients.txt, перезапускать сервер и позволять плагину генерить clients.txt заново при каждом добавлении админа... Но согласитесь, это геморр.

Все, плагин установлен, настроен и готов к работе. Наслаждайтесь