Плагин AMX Mod X для Counter-Strike 1.6 - это скомпилированный файл .amxx. Чтобы установить его, скопируйте файл в cstrike/addons/amxmodx/plugins/, добавьте его имя отдельной строкой в cstrike/addons/amxmodx/configs/plugins.ini, включите в modules.ini нужные ему модули и смените карту. Это весь механизм. Хорошим или плохим сервер 1.6 делает то, какие плагины вы выбрали, как мало их у вас работает и можете ли вы понять, почему один из них не загрузился, - лог AMX Mod X говорит это одной строкой, а большинство людей его никогда не открывает. В этом руководстве - файлы плагинов, стандартные плагины, которые стоит оставить, популярные сторонние плагины, компиляция из исходников, админы в файле или базе данных и ошибки, которые вы реально увидите.
Файлы, которые управляют плагинами#
AMX Mod X загружается через Metamod, а его собственная конфигурация лежит в cstrike/addons/amxmodx/. Если вы ещё не собрали этот стек, ReHLDS, Metamod и изменение liblist.gam описаны в статье руководство по серверу Counter-Strike 1.6. Если meta list показывает, что AMX Mod X работает, то для плагинов важны вот эти файлы:
| Файл | Назначение |
|---|---|
configs/plugins.ini | Какие плагины загружаются и в каком порядке |
configs/plugins-*.ini | Дополнительные списки плагинов, загружаются после основного |
configs/maps/plugins-<map>.ini | Плагины, которые загружаются только на одной карте |
configs/modules.ini | Модули для загрузки, когда автозагрузки недостаточно |
configs/amxx.cfg | Основные cvars, выполняются при старте каждой карты |
configs/users.ini | Админы, если не используется SQL |
configs/sql.cfg | Настройки базы данных для SQL-админов и SQL-плагинов |
plugins/ | Сами файлы .amxx |
logs/ | Ежедневные логи и error_*.log для ошибок плагинов |
scripting/ | Исходники .sma, include-файлы и компилятор |
plugins.ini читается сверху вниз, и порядок иногда важен: плагин, регистрирующий команду, которую использует и другой плагин, выигрывает или проигрывает в зависимости от того, какой загрузился первым. Точка с запятой комментирует строку - так плагин отключают, не удаляя его.
; Admin base - exactly one of theseadmin.amxx ; admins from users.ini;admin_sql.amxx ; admins from a database; Basicadmincmd.amxx ; amx_kick, amx_ban, amx_map and the restadminhelp.amxx ; amx_helpadminslots.amxx ; reserved slotsmultilingual.amxx ; per-player language; Menusmenufront.amxx ; amxmodmenuplmenu.amxx ; player menus: kick, ban, slap, teammapsmenu.amxx ; map and vote menus; Chat and votesadminchat.amxx ; amx_say, amx_chat, amx_psayantiflood.amxx ; chat flood protectionadminvote.amxx ; amx_votemap, amx_votekick, amx_voteban; Mapsnextmap.amxx ; "nextmap" in chatmapchooser.amxx ; end-of-map votetimeleft.amxx ; "timeleft" in chat; Counter-Strikestatsx.amxx ; /rank, /top15, round stats (needs csx);restmenu.amxx ; weapon restrictions; Third-party plugins below this lineresetscore.amxxСтандартный список немного отличается в AMX Mod X 1.8.2, 1.9 и 1.10, но структура та же. Сторонние плагины идут в самый низ, под комментарием, чтобы после обновления AMX Mod X - которое может заменить стандартный plugins.ini - их было легко вернуть обратно.
Плагины для отдельных карт и дополнительные списки
Любой файл с именем configs/plugins-<something>.ini загружается после plugins.ini, и это аккуратный способ держать группу плагинов вместе: plugins-zombie.ini для мода, plugins-community.ini для ваших собственных добавлений. Списки для отдельных карт в configs/maps/ загружают плагин только на этой карте - так сервер запускает плагин ножевой арены на картах 35hp_ и больше нигде. Некоторые версии AMX Mod X также принимают в той же папке файл по префиксу карты, например plugins-de.ini; прежде чем полагаться на совпадение по префиксу, проверьте документацию своей версии.
Модули: то, что упускают#
Плагины вызывают функции, которые находятся в модулях - скомпилированных библиотеках в addons/amxmodx/modules/. Стандартные модули - fun, engine, fakemeta, hamsandwich, cstrike, csx, sqlite и mysql. AMX Mod X 1.8 и новее автоматически загружает модули, которые плагин объявляет как нужные, поэтому modules.ini обычно остаётся таким, как поставляется. Если плагину нужен модуль, которого в папке нет вовсе, плагин не загружается, и лог об этом сообщает.
На современных серверах стоит упомянуть один сторонний модуль. ReAPI - модуль AMX Mod X, который открывает плагинам хуки ReHLDS и ReGameDLL. Многие новые плагины - и большинство написанных для нынешних публичных серверов - требуют его, потому что хуки в игру через ReGameDLL быстрее и надёжнее, чем патчинг через fakemeta. Если на странице плагина написано «requires ReAPI», установите в modules/ сборку модуля, которая соответствует вашим версиям ReHLDS и ReGameDLL, и проверьте через amxx modules, что он загрузился.
amxx versionamxx modulesamxx pluginsmeta listВыполняйте эти четыре команды в консоли сервера после любого изменения. amxx plugins перечисляет все плагины с их статусом - running, paused, bad load или stopped, - а amxx modules показывает, какие модули загрузились. У плагина со статусом bad load причина записана в logs/.
Админы: users.ini или база данных#
Админы подробно, с полной таблицей флагов, разобраны в руководстве по серверу CS 1.6. Если коротко: по одному админу на строку в configs/users.ini, идентификация по SteamID с флагами аккаунта ce, флаги доступа подбираются для каждого человека, а amx_reloadadmins применяет изменения без перезапуска.
; identity password access flags account flags"STEAM_0:1:123456" "" "abcdefghijklmnopqrstu" "ce""STEAM_0:0:987654" "" "bcdefiju" "ce"Флаги админов и иммунитет работают одинаково во всех админ-системах Source и GoldSrc - общая модель описана в статье флаги админов и иммунитет в SourceMod, если у вас есть и более новые игры.
Если серверов больше одного или команда часто меняется, храните админов в базе данных. Закомментируйте admin.amxx, раскомментируйте admin_sql.amxx, включите модуль mysql, если он не загружается автоматически, и заполните sql.cfg:
amx_sql_host "db.example.net"amx_sql_user "amxx"amx_sql_pass "a-long-random-password"amx_sql_db "amxx"amx_sql_table "admins"amx_sql_type "mysql"При первом запуске с рабочим подключением admin_sql создаёт свою таблицу админов. После этого все серверы, направленные на одну базу данных, делят один список админов. Игровой тариф на RE:NODE включает один слот базы данных со сгенерированными хостом, пользователем и паролем; SQL-плагины AMX Mod X ожидают MySQL-совместимый сервер, поэтому проверьте движок слота в панели, прежде чем подключать их.
Основные cvars в amxx.cfg#
configs/amxx.cfg выполняется при старте каждой карты. Несколько его cvars меняют поведение всех админ-плагинов:
| Cvar | Обычное значение | Что делает |
|---|---|---|
amx_mode | 1 | 0 выключено, 1 обычный режим, 2 кикает всех, кого нет в списке админов |
amx_password_field | "_pw" | Поле setinfo клиента, в котором передаётся пароль админа |
amx_default_access | "" | Флаги для игроков не из users.ini; оставьте пустым |
amx_show_activity | 2 | Объявлять действия админов с их именем |
amx_reservation | 0 или 1 | Слоты, оставленные свободными для админов с флагом b |
amx_vote_ratio | 0.02 | Доля голосов, нужная для принятия голосования |
amx_vote_time | 10 | Сколько секунд длится голосование |
amx_votekick_ratio | 0.40 | Доля, нужная для кика голосованием |
amx_voteban_ratio | 0.40 | Доля, нужная для бана голосованием |
amx_extendmap_max | 90 | Максимальная длительность продлённой карты, в минутах |
amx_extendmap_step | 15 | Сколько минут добавляет одно продление |
Значения по умолчанию слегка различаются между версиями AMX Mod X, а поставляемый amxx.cfg описывает каждое в комментарии. Прочитайте его один раз - он короткий.
Популярные плагины и их цена#
Каталог плагинов для 1.6 огромен и копился двадцать лет. Большинству серверов нужно совсем немного. Вот давние и широко используемые варианты, сгруппированные по задачам:
| Плагин | Решает | Примечания |
|---|---|---|
| AMXBans | Баны с историей, веб-интерфейсом, общие для нескольких серверов | Нужна MySQL-совместимая база данных и веб-хостинг для панели |
| Advanced Bans | Баны на время, хранятся локально или в SQL, без веб-панели | Проще, чем AMXBans |
| Galileo или Deagsmapmanager | Лучшие голосования за карту, номинации, rock the vote | Заменяет стандартный mapchooser.amxx |
| Reset Score | /rs обнуляет собственный счёт игрока | Крошечный, на публичных серверах его ждут все |
| High ping kicker | Убирает игроков, которые слишком долго держат высокий пинг | Задайте щедрый лимит и время на исправление |
| AFK manager | Переводит в зрители или кикает бездействующих игроков | Важнее всего на заполненных серверах |
| CSDM | Deathmatch с возрождениями и меню оружия | Модуль плюс плагины; у ReGameDLL есть свои варианты |
| GunGame | Режим с прогрессией оружия | Превращает сервер в другую игру |
| Zombie Plague | Мод с заражением зомби | Полноценный мод со своим набором плагинов и моделями |
| Deathrun manager | Карты deathrun с одним игроком на ловушках | Нужны карты deathrun |
Когда вы заменяете стандартный плагин - Galileo вместо mapchooser.amxx, продвинутую систему банов вместо команд бана, - закомментируйте стандартный. Два плагина, регистрирующие одно и то же голосование или одну и ту же команду, - самая частая причина жалоб «голосование прошло дважды» или «моя команда ничего не делает».
Системы банов
Стандартный amx_ban пишет баны в собственный список банов движка, banned.cfg, через writeid. Это работает, игроки этого не видят, и истории нет: нельзя узнать, кто кого забанил, когда и за что, а список у каждого сервера свой. Для сервера с двумя админами, которые общаются друг с другом, этого хватает. Этого перестаёт хватать, как только у вас появляется команда, потому что первый спор о бане превращается в перепалку без всяких записей.
AMXBans переносит баны в базу данных с записью админа, причины, срока и карты и добавляет веб-интерфейс, где игроки могут найти свой бан, а команда - снять его. Цена - настройка базы данных и небольшого PHP-сайта для интерфейса, и здесь пригодится веб-хостинг, если его некуда ещё поставить. Advanced Bans - золотая середина: баны на время с причинами, в файле или SQL, без веб-панели. Выберите одну систему банов и уберите остальные; если два плагина ведут свои списки банов, игрок, забаненный в одном, желанный гость в другом.
Управление картами
Стандартный mapchooser.amxx в конце карты запускает голосование по configs/maps.ini или по циклу карт, если этот файл пуст. В нём нет номинаций, нет rock-the-vote и нет памяти о недавно сыгранных картах, поэтому каждый вечер побеждают одни и те же три карты. Galileo и Deagsmapmanager добавляют номинации, «rtv» в чате, список исключения недавних карт и более удобные меню голосования. Любой из них стоит поставить на публичный сервер, где больше нескольких карт, и обоим нужно отключить стандартный mapchooser.amxx и обычно nextmap.amxx - в их документации сказано, какие именно. Держите список карт в соответствии с тем, что реально лежит на сервере и на вашем хостинге FastDL, иначе голосование предложит карту, которую половина игроков затем будет качать со скоростью 20 КБ/с.
Полноценные моды вроде Zombie Plague, GunGame и CSDM меняют весь сервер. Запускайте их на отдельном сервере, а не как переключатель на публичном; их игроки - другая публика, а плагины мода рассчитывают на то, что работают одни.
Компиляция плагинов из исходников#
Половина полезных плагинов для 1.6 распространяется как исходник .sma, и скомпилировать их легко, если знать, где компилятор. AMX Mod X поставляет amxxpc в scripting/, а стандартные include-файлы - в scripting/include/.
$ cd cstrike/addons/amxmodx/scripting$ ./amxxpc resetscore.sma -o../plugins/resetscore.amxxВ Windows это amxxpc.exe с теми же аргументами. Если плагину нужен сторонний include - плагинам ReAPI нужен reapi.inc и сопутствующие файлы, - положите эти файлы в scripting/include/ перед компиляцией. Компилятор сообщает об отсутствующих include и синтаксических ошибках с номером строки.
Компилируйте той же версией AMX Mod X, что работает на сервере, или более старой. Плагин, скомпилированный компилятором 1.10, может использовать natives, которых нет на сервере 1.8.2, и не загрузится с ошибкой об отсутствующем native. На хостинге с панелью, где нет shell, компилируйте на своей машине соответствующим пакетом AMX Mod X и загружайте файл .amxx через файловый менеджер или SFTP - оба способа описаны в статье SFTP и файловый менеджер.
Разобранный пример: публичный сервер на 24 слота#
Чтобы сделать всё сказанное конкретным, вот набор плагинов, который на самом деле нужен типичному классическому публичному серверу - карты de_ и cs_, 24 слота, несколько админов-добровольцев, - и почему в нём каждая строка.
- Стандартная база.
admin.amxx,admincmd.amxx,adminhelp.amxx,plmenu.amxx,menufront.amxx,adminchat.amxx,antiflood.amxx,multilingual.amxx. Это админ-инструменты, которых ждёт каждый член команды, и они почти ничего не стоят. - Голосования.
adminvote.amxxдля кика голосованием с разумными долями. Возможность для игроков убрать читера, пока ни одного админа нет онлайн, стоит того; задайтеamx_votekick_ratioдостаточно высоким, чтобы трое друзей не могли выгнать незнакомца. - Карты. Galileo или Deagsmapmanager вместо
mapchooser.amxx, плюсtimeleft.amxx. Голосование за карту - функция, которую игроки замечают больше всего. - Статистика.
statsx.amxxдля/rankи/top15. Игрокам нравится, и он лёгкий. - Баны. Advanced Bans или AMXBans, если серверов больше одного или админов больше нескольких.
- Удобство. Reset Score и AFK manager. Заполненный сервер с тремя бездействующими игроками - это сервер, который теряет людей у входа.
- Поначалу больше ничего. Поработайте так неделю, затем добавляйте по одному плагину, когда кто-то просит что-то конкретное.
Это около пятнадцати плагинов, и сервер на 24 слота с ними спокойно работает на одном ядре, укладываясь заметно меньше чем в гигабайт памяти. Соблазн - добавить звуковые паки, шапки, следы, дополнительные HUD-сообщения и пять видов цветного чата. Каждое из этого - загрузка для каждого нового игрока, немного больше работы в игровом потоке и ещё одна вещь, которая сломается при обновлении. Серверы, которые годами сохраняют свою аудиторию, обычно самые скучные.
Храните копию рабочей папки addons/amxmodx/configs и список плагинов где-нибудь вне сервера. На RE:NODE ручной backup перед каждым изменением - одна кнопка, и его можно заблокировать, чтобы ротация его не удалила; почему стоит попробовать восстановить backup до того, как он понадобится, объясняет статья backup, который действительно восстанавливается.
Отладка и производительность#
Когда плагин ведёт себя странно, допишите debug после его имени в plugins.ini и смените карту:
resetscore.amxx debugПосле этого ошибки выполнения будут содержать номер строки и стек вызовов в logs/error_<date>.log. Когда закончите, уберите debug - он замедляет плагин.
Движок 1.6 однопоточный, и плагины AMX Mod X работают в этом потоке. Плагин, который запускает повторяющуюся задачу каждую десятую долю секунды или перебирает все сущности в каждом кадре, - прямой налог на время кадра сервера. Загруженный публичный сервер на 32 слота с тридцатью плагинами может работать заметно хуже, чем тот же сервер с десятью. Способ найти медленный плагин непримечателен: ставьте плагины на паузу по одному через amxx pause <name>, пока сервер заполнен, или закомментируйте половину сторонних плагинов и сравните. Жалобы на пинг после нового плагина редко связаны с сетью.
Решение проблем#
`bad load` в `amxx plugins`. Откройте самый свежий файл в logs/. «Module/Library not found» означает отсутствующий модуль - часто ReAPI или csx. «Function not present» или «native not found» означает, что плагину нужна более новая версия AMX Mod X или модуль, которого у вас нет.
Плагин загружается, но его команда ничего не делает. Другой плагин зарегистрировал ту же команду раньше, или у игрока нет флага, которого требует команда. Проверьте amxx cmds на повторные регистрации.
После перезапуска у админов нет прав. admin.amxx и admin_sql.amxx оба закомментированы, оба включены, или SQL-подключение не удалось и плагин откатился в никуда. Активной должна быть ровно одна админ-база.
Голосование за карту появляется дважды. Два плагина карт. Закомментируйте mapchooser.amxx, если используете замену.
После обновления всё перестало загружаться. Бинарники Metamod или AMX Mod X были заменены, или liblist.gam сбросился. meta list покажет, какого слоя не хватает. Привычка к откату описана в статье что делать, когда обновление мода всё сломало.
Плагин работает в Windows, но не в Linux. Регистр в имени файла. Linux считает ResetScore.amxx и resetscore.amxx разными файлами; в plugins.ini имя должно совпадать точно.
FAQ#
Куда класть плагины AMX Mod X на сервере CS 1.6?
Файл .amxx кладётся в cstrike/addons/amxmodx/plugins/, а его имя пишется отдельной строкой в cstrike/addons/amxmodx/configs/plugins.ini. Смените карту или перезапустите сервер, затем проверьте amxx plugins в консоли.
Можно ли использовать файлы .sma напрямую?
Нет. Сервер загружает только скомпилированные файлы .amxx. Скомпилируйте .sma через amxxpc из папки scripting/ той же версии AMX Mod X, что работает на сервере, и загрузите результат.
Сколько плагинов - это слишком много?
Фиксированного числа нет, но каждый плагин работает в единственном игровом потоке сервера. Двадцать хорошо написанных плагинов - нормально; пять плохо написанных - нет. Оставляйте только то, чем пользуются игроки, и замеряйте после каждого добавления.
Нужен ли мне ReAPI?
Только если его требует плагин, но многие современные плагины требуют. Если ваш сервер работает на ReHLDS и ReGameDLL - а современный сервер 1.6 должен, - ReAPI естественное дополнение, и его загрузка почти ничего не стоит.
Можно ли сделать общих админов для нескольких серверов?
Да. Используйте admin_sql.amxx и направьте все серверы на одну базу данных в sql.cfg. AMXBans так же работает для банов.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.