Ставим Mani Admin Plugin

Ставим 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).
Для установки плагина на сервер, просто скопируйте получившуюся структуру в папку, где установлен сервер.

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

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

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

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" (без кавычек).

Далее необходимо настроить админов. Для этого:

Способ 1: Правим файл 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" - пароль админа (используется только при назначении по никам)

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

ВНИМАНИЕ: Если вы используете хранение данных в базе MySQL, то после исправления файла необходимо выполнить на сервере команду ma_client upload

Способ 2: Нормальный

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

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" "+#"
ma_client upload

Способ 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 заново при каждом добавлении админа... Но согласитесь, это геморр.


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