Попробую кратко и развёрнуто. Константы
- корень установленной КС/сервера кс/папку, куда вы скачали и распаковали кс. в ней хранятся следующие файлы: в Windows версии это hlds.exe hltv.exe hl.exe и тп. а в Linux версии это hlds_ru, hlds_i686 hlds_i486 и тп. ... думаю что и так понятно, что это за папка. - имя файла, над которым мы работаем. Константа вводится для того, чтобы сохранить актуальность статьи надолго, потому что имена библиотек модов содержат свою версию, т.е. от версии к версии имена файлов меняются. Так же в путях до папок или файлов я буду ставит "/" вместо "\". мне так удобнее.
metamod
Прежде чем рассказывать о том, как настраивать amxx (там будем называть amxmodx), нужно знать, как и с помощью чего его подключить к CS 1.6
Существует такой файл /cstrike/liblist.gam в котором указывается путь, до мода кс, который будет управлять игрой.
Содержание файла следующие:
Code game "Counter-Strike"
url_info "www.counter-strike.net"
url_dl ""
version "1.6"
size "184000000"
svonly "0"
secure "1"
type "multiplayer_only"
cldll "1"
hlversion "1111"
nomodels "1"
nohimodel "1"
mpentity "info_player_start"
gamedll "dlls\mp.dll"
gamedll_linux "dlls/cs_i386.so"
trainmap "tr_1"
Нас интересуют gamedll* параметры.
gamedll - параметр для использования в Windows
gamedll_linux - соответственно в Linux.
По умолчанию там подключена стандартная библиотека. Что бы получить больше возможности и гибкости в подключение модов и плагинов, мы можем подключить другую библиотеку, стороннею и не входящую в кс. т.е. её надо скачать.
Скачать для Windows
Скачать для Linux
Скачать для 64-битных ОС.
Дальше немного оформления. Принято, что в папке /cstrike создаётся папка addons, а в ней папка metamod и уже в ней dlls. Т.е. получается /cstrike/addons/metamod/dlls - вот в эту папку и нужно положить скачанную библиотеку metamod`a.
Возвращаемся к нашему файлу liblist.gam. И, в зависимости от того, какую ОС вы используете, нужно заменить параметры Для Windows:
gamedll "addons/metamod/dlls/.dll" Для Linux
Code
gamedll_linux "addons/metamod/dlls/.so" Всё, больше мы файлы CS трогать не будем. За исключением server.cfg, но уже если только для какого конкретного плагина.
Что такое amxmodx?
Своими словами это мод metamod`a, который позволяет использовать расширить возможности движка КС, навешать на него полезности, красивости, новый функционал и кардинально поменять геймплэй.
Установка и подключение плагинов amxmodx.
Официальный сайт
Страница загрузки
Скачивать я рекомендую архив файлов AMX Mod X Base. Там есть для linux (.tar.gz) и для windows (.zip).
Так же рекомендую сразу скачать Counter-Strike Addon - это дополнительный пакет модулей для amxx, что бы можно было воспользоваться большим кол-вом возможностей (статистика, дополнительные моды игры, типа warcraft, zombie и пр...).
На странице загрузки нажимайте на Download - тем самым попадёте на скачивание последнего релиза, а не на архив релизов.. Так вы не запутаетесь. Теперь устанавливаем.
Вы скачали 2 архива - amxmodx-1.8.1-base.zip и amxmodx-1.8.1-cstrike.zip. (1.8.1 - это версия на сегодняшний день, потом естественно она поменяется по мере выхода новых версий).
1) Открываем base и видим там папку addons, в которой есть ещё подкаталоги. берём папку addons и распаковываем в /cstrike. Так как мы там уже создавали папку addons, то Windows попросит заменить папку. Смело заменяйте. Он просто добавит в неё файлы из архива и не тронет папку metamod, которую мы тоже там создали руками.
2) Если нужна статистика или вы будете ставить какой нить мод игры, типа warcraft, zombie, hero и тд... то, открываем архив cstrike и выполняем тоже самое. (папку addons в папку /cstrike). 3) заходим в папку /cstrike/addons/metamod/ и создаём там текстовый файл plugins.ini . и вписываем туда такие строчки: Для Windows:
Code
win32 addons\amxmodx\dlls\amxmodx_mm.dll
Для Linux:
Code
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
Всё, amxmodx подключен.
О файлах и папках
configs - все конфигурационные файлы amxmodx.
data - статистика и в папке lang файлы со строчками сообщений от мода и различных плагинов. в txt файлах хранится несколько вариантов написания одной и тойже строчки на разных языках
dlls - библиотека мода.
documentation - документация, весьма полезная вещь
logs - логи сообщений мода. туда имеет смысл лезть только в случае сбоя в работе модулей иплагинов
modules - тут лежат модули в форумате библиотек (для Windows это *.dll файлы, а для Linux это *.so файлы)
plugins - сюда бросаются плагины в формате *.amxx
scripting - скрипт файлы и исходники плаигнов. Нужны для того, что бы можно было какой нить плагин подправить под себя. Но это не тривиальная задача, поэтому по данному вопросу отдельная тема.
Нам по большому счёту интересна только папка configs, где мы будем редактировать файлы с целью добавления или удаления модулей и плагинов, а так же для настройки модов.
файлы из addons/amxmodx/configs/
amxx.cfg - основной конфиг amxmodx. Настроек там не много.
configs.ini - список конфигов и их названий для быстрого запуска под определённые нужды. мы им не пользуемся. Это для CW серверов и об этом тоже отдельная статья.
maps.ini - список карт, который будет циркулировать на сервере и из которого плагин устанавливающий голосование будет набирать названия карт. Сотрите оттуда всё и вставьте свой набор карт. Содержимое этого файла должно совпадать с содержимом файла /cstrike/mapcycle.txt
speech.ini - фигня для развлекухи админа, которая мешает всем! это проигрывание всяких боемых кличей и команд в игре.
core.ini - файл содержит переменные для amxmodx, которые рекомендуется не трогать.
modules.ini - список модулей
sql.cfg - файл настройки доступа к sql серверу. (некоторые модули и плагины могут использовать для хранения данных как sql_lite в файлах, так и полноценные таблицы БД)
custommenuitems.cfg - редактирование основного меню мода amxx - amxmodmenu
stats.ini - файл с настройками вкл/выкл функций модуля статистики.
clcmds.ini - не смог сформулировать ))) там можно поменять реакцию и уровень доступа команды к серверу. рекомендую не трогать, имхо ничё полезного не принесёт.
cvars.ini - набор команд, которые можно менять через основное меню мода, и можно ли через меню или консоли. три различных позиции, которые можно выбрать через меню.
plugins.ini - список плагинов.
cmdaccess.ini - полезный конфиг для разграничения прав на определённые для админов. Об это в разделе настройки админки.
hamdata.ini - не знаю. кто знает, сообщите.
users.ini - файл с настройками админки и доступа к серверу.
cmds.ini - разрешённые команды в меню и уровень разрешения этих команд. - бесполезняк имхо, не трогайте, он вам в 99% не понадобится. Настройка amxmodx.
Что бы привести amxx к рабочему чистому виду, нужно сделать следующее:
зайти в /cstrike/addons/amxmodx/configs/
- открыть файл modules.ini и закоментировать там все строчки, поставив в начале каждой строки с название модуля знак ";". Всё что там написано сверху на английском можно снести, что бы просто не занимало пространство. Когда будете копировать содержимое файла на форум, в случае возникновения проблем, то этот мусор будет только мешать... вобщем оставьте только названия модулей и закомментируйте всё, что не закомментированно. Мы это делаем для того, что бы модули не запускались повторно. В amxx 1.8.0 и выше есть функция, которая загружает модули в случае, если они необходимы для каких либо модов или плагинов. Если оставить их раскомментированными, то они будут запускаться повторно и в консоль сервера будет сыпаться ряд ошибок с предупреждениями об уже запущеных модулях, которые ни на что не повлияют, но глаз будут резать.
- если вы ставили adodns для amxx, откройте файл amxx.cfg и отлистайте вниз - там несколько параметров добавлено для настройки статистики. Параметр csstats_rank поставьте в значение 0. Это сделано для того, что бы исключить зависание non steam сервера при подключение к нему игровов. Это из-за ошибки в модуле статистики. Так же на зависнет/не зависнет влияет параметр запуска sv_lan, потому что он в свою очередь влияет на то, как сервер будет идентифицировать клиентов, по ip или по стим ip. Так же это зависит от используемого non steam патча. Проблема весьма нагромождённая и решается путём эксперимента с параметром запуска sv_lan 0/1 и параметром в кофиге amxx.cfg - csstats_rank 0/1/2. Админка
Открываем users.ini
Его содержимое изначально такое:
Code
; Users configuration file
; File location: $moddir/addons/amxmodx/configs/users.ini
; Line starting with; is a comment
; Access flags:
; a - immunity (can't be kicked/baned/slayed/slaped and affected by other commmands)
; b - reservation (can join on reserved slots)
; c - amx_kick command
; d - amx_ban and amx_unban commands
; e - amx_slay and amx_slap commands
; f - amx_map command
; g - amx_cvar command (not all cvars will be available)
; h - amx_cfg command
; i - amx_chat and other chat commands
; j - amx_vote and other vote commands
; k - access to sv_password cvar (by amx_cvar command)
; l - access to amx_rcon command and rcon_password cvar (by amx_cvar command)
; m - custom level A (for additional plugins)
; n - custom level B
; o - custom level C
; p - custom level D
; q - custom level E
; r - custom level F
; s - custom level G
; t - custom level H
; u - menu access
; z - user (no admin)
; Account flags:
; a - disconnect player on invalid password
; b - clan tag
; c - this is steamid/wonid
; d - this is ip
; e - password is not checked (only name/ip/steamid needed)
; Password:
; Add to your autoexec.cfg: setinfo _pw ""
; Change _pw to the value of amx_password_field ; Format of admin account:
; ; Examples of admin accounts:
; "STEAM_0:0:123456" "" "abcdefghijklmnopqrstu" "ce"
; "123.45.67.89" "" "abcdefghijklmnopqrstu" "de"
; "My Name" "my_password" "abcdefghijklmnopqrstu" "a"
"loopback" "" "abcdefghijklmnopqrstu" "de"
Вот на русский переведён в общих чертах:
Code
; Users configuration file
; File location: $moddir/addons/amxmodx/configs/users.ini
; Line starting with; is a comment
; Access flags: - флажки доступа. наборы этих флагов определяют возможности администратора.
; a - иммунитет. защищает админа от диструктивных действий другого администратора и эффектов воздействия некоторых плагинов. (если флаг у админа есть, то он будет защищён от кик, слэп, слэй, бан и других комманд, которые к нему могут применить другие администраторы).
; b - если на сервере есть резервные столы для администратора, то обладатель этого флага будет допущен к их использованию
; c - amx_kick - админу даётся возможность кикать других игроков
; d - amx_ban и amx_unban команды - возможность банить и разбанивать игроков...
; e - amx_slay и amx_slap команды результат которых является кил игрока и отнятие определённого кол-ва хелсов соответственно.
; f - amx_map команда - позволить админу менять карту.
; g - amx_cvar - позволить админу менять квары сервера. (cvars.ini - там указаны наборы комманд которыми можно пользоваться)
; h - amx_cfg команда - позволить админу подгружать геймплей конфиги
; i - amx_chat - это разрешение относится к админским say командам. для админов есть множество различных способов писать текст как в чат, так и на экране у игроков или у когото отдельно...
; j - amx_vote - позволить админу ставить голосования как обычные текстовые, так и ставить на голосование карты для их последующей смены. (так можно обойти отсутствие флага f, имейте ввиду)
; k - доступ к sv_password команде
; l - эот флаг даёт доступ к amx_rcon команде. Оставляйте его только у тех администраторов, кто считается основным, или вменяемым. Этой командой можно сделать на сервере всё что у годно - действуйет как rcon команда сервера.
; m - custom level A (for additional plugins)
; n - custom level B
; o - custom level C
; p - custom level D
; q - custom level E
; r - custom level F
; s - custom level G
; t - custom level H
; u - доступ к меню мода - советую оставить этот флаг у всех админов, т.к. он существенно упрощает и ускоряет
; z - user (no admin) - этот флаг назначается всем игрокам заходящим на сервер, если это не изменено в amxx.cfg в соответствующем пункте. Флаг указывает моду, что это простой юзер и особых привилегий не имеет.
; Account flags: - флаг определяет по какому принципу определяется администратор
; a - этот флаг ставится обычно при использование админки по имени и указывает на то, что если у игрока не принялся пароль или он его не указал, то его кикает с сервера.
; b - clan tag - админку можно назначить так же по тегу команды. разумнее использовать этот флаг вместе с предыдущим
; c - говорит о том, что моду нужно назначить админку по стим айди
; d - админка по IP, можно использовать вместе с флагом "е".
; e - указывает на то, что пароль проверять не надо. рекомендую ставить только с флагом "d", т.к. ip адрес админа узнать сначала надо, а потом умудриться его себе поставить, что в сетях хороших провайдеров сделать довольно сложно.
; Password:
; Add to your autoexec.cfg: setinfo _pw ""
; Change _pw to the value of amx_password_field
тут речь о том, что пароль лучше всего указать в конфиге, который запускается при заходе в игру. команда setinfo _pw "" указывает какой используется пароль при авторизации на сервере. угловые кавычки естественно писать не надо. тег _pw можно заменить на любой другой в конфиге amxx.cfg. Полезно при админках на разных серверах с разными паролями. Об этом позже. ; Format of admin account: - тут показано в каком порядке указываются наборы флажков.
; ; Examples of admin accounts:
; "STEAM_0:0:123456" "" "abcdefghijklmnopqrstu" "ce"
; "123.45.67.89" "" "abcdefghijklmnopqrstu" "de"
; "My Name" "my_password" "abcdefghijklmnopqrstu" "a"
Последняя строчка дана для реального примера. это админка того компьютера, на котором запущен сервер. стирайте строчку или вписывайте вместо loopback свой IP адрес...
Code
"loopback" "" "abcdefghijklmnopqrstu" "de"
Кто не заметил и не понял, то знак ";" вначале строчки говорит о том, что она закоментирована и мод при чтение кофига не берёт эти строчки во внимание.
Настройка мода.
сейчас разберём amxx.cfg
Весь кофиг сюда копировать не будем... просто вынесу все параметры
amx_default_access "z" - дефолтный флаг, который назначится пользователю. можно внимать хоть все флаги доступа из users.ini, тогда все будут админами. "z" означает что это простой игрок.
amx_password_field "_pw" - тег для указания пароля. если здесь поменять, то надо будет уже не setinfo _pw "" писать, а соответственно то, на что поменяли тег.
amx_mode - режим работы мода. есть три значения: 0 - пользователи не проверяются в users.ini, админка не работает. 1 - обычный режим, права проверяются в users.ini. 2 - все, кого нет в users.ini будет выброшены с сервера.
amx_show_activity - режим уведомлений о действиях администратора. так же есть три значания: 0 - нет уведомлений, 1 - все будут видеть что делает админ, но не будет написано имя админа, 2 - будет уведомление о действиях админа с указанием имени админа.
amx_scrollmsg - сообщение которое крутится в нижней части экрана с интервалом, который указан в цифрах после сообщения. 600 секунд по умолчаию. советую поставить 1200 - раздражать хоть не будет частым появлением.
amx_imessage - цветной текст который появляется в верхней части экрана... в тексте можно поставить "\n", тогда после него текст будет спущен на строчку ниже. своеобразный Еnter (конец строки)
amx_freq_imessage - частота появления amx_imessage. по умолчанию стоит 180. рекомундую так же увеличить этот параметр.
amx_plmenu_bantimes - это набор стандартных значений в amx_banmenu. делается для того, чтобы админу было удобно и быстро банить на нужные ему интервалы времени. значения указываются в минутах через пробел. помним что "0" - перманентный бан.
amx_plmenu_slapdmg - тоже, что и amx_plmenu_bantimes, только относится это к слап команде.
amx_flood_time - интервал времени, который лроден пройти между двумя сообщениями в чате одного и того же игрока. в секундах. служит ля защиты от флада в чат. игрок пишущий быстрее предупреждается и его сообщения не выводятся.
amx_reservation - кол-во резервных слотов для администратора владеющим флагом "b" в файле users.ini
amx_hideslots - кол-во спрятаных слотов. просто будет в статистиках и мониторингах показано, что сервер с maxplayers 16 на 15 слотов, при этом будет 1 слот спрятан/
amx_time_voice - 0/1 - включить отключить произношения времени противным кривым голосом каждйы раз, когда кто то в чат напишет thetime или timeleft
amx_vote_delay - время которое нужно выдержать между двумя голосованиями в секундах.
amx_vote_time - время в секундах, ограничивающие длительность голосования.
amx_vote_answers - 0/1 - показывать не показывать результат голосования.
amx_votekick_ratio - по умолчанию 0.40 - процент согласных с голосованием amx_votekick, что бы голосование было успешным.
amx_voteban_ratio - аналогично amx_votekick_ratio
amx_votemap_ratio - аналогично amx_voteban_ratio
amx_vote_ratio - любое другое голосование.
(**примечание: 0,40 - означает всего лишь 40% прогосовавших. ИМХО это не считается общим мнение и процент надо увеличивать, иначе голосования будут проходить не честно**)
amx_extendmap_max - максимальное время в минутах, на которое может быть продлена карта (при старте голосования на выбор карты всегда есть вариант продления карты)
amx_extendmap_step - шаг продления карты в минтах. 15 по умолчанию - будет продлеваться на 15 минут ... и т.п.
amx_client_languages - 0/1 - возможность выбирать язык amxx для пользователя.
amx_debug 0/1/2 - дебаггинг работы мода и плагинов. 0 - отладка не работает, 1 - включается отладка для всех плагинов. 2- включается отладка для плагинов и мода.
amx_mldebug "" - отладка для мультиязыковых плагинов... подробностей не знаю (: а дальше ещё небольшой набор параметров для тех, кто ставил аддоны статистики к моду amxmodx....
csstats_rank - режим привязки ранк статистики: 0 - по нику, 1- по ID, 2 - по IP. Достаточно часто из-за того, что ставится "1" или "2" сервера падают когда на них заходят более 1 человека. происходит это из-за того, что сервер не назначает уникального ID non steam клиентам и (или) не определяет игрока по IP. это зависит от 2-х вещей: 1) параметры запуска, а именно sv_lan 0/1, 2) патч сервера.
csstats_maxsize - размер файла статистики. по умолчанию стоит 3500. ИМХО мало для того, что бы поставить и забыть про его существование. удвойте и можно очень долго не беспокоиться о том, что в один прекрасный момент он привысит свой лимит и сервер либо не запустится, либо не будет писать стату и скорее всего лагать. особенно опасно тем, у кого клиенты всё время разные и унизаписей создаётся огромное кол-во.
csstats_rankbots - 0/1- вести/не вести статистику для ботов...
amx_statsx_duration - время вывода статистической информации.
Рекомендации
1) создать файл plugins-my.ini и сунуть туда все сторонние плагины, которые вы будете подключать. я, например, в общий файл plugins.ini, ничего не дописываю. он существует как есть. Все плагины, которые в нём прописаны. уже работают давно, стабильно и с сбой в их работе случается редко. Единственное что я туда списываю, это плагины статистики, которые добавляются после наложения addons для amxx. Да и так просто аккуратнее.
2) убрать лишние строчки. например те, что выскакивают при заходе игрока на сервере. Например файл открыть adminhelp.txt в папке /cstrike/addons/amxmodx/data/lang/ , найти там параметр TYPE_HELP и затереть строчку после знака "=". строчка, которую вы сотрёте появляется каждый раз после захода на сервер и нафиг никому не нужна. только мешает... Так и со всем остальным мусором... хотя изначально его почти нет. Но по мере добавления плагинов и владелец сервера почему то стремится что бы горело побольше надписей, побольше информации и подольше - это очень сильно мешает, особенно когда создатель сервера не задумывается о том, что у кого то маленький монитор, у кого то просто низкое разрешение экрана и все надписи, которые на большом кране кажутся жидинькими, маленький экран закроют полностью и игроку не будет видно что происходит буквально перед ним. Особенно касается вывода большого кол-ва информации о статистике.
3) maps.ini и mapcycle.txt должны совпадать. вот лист и мапцикл в старых версиях брались из разных файлов и естественно не совпадали, если их не сделали идентичными. + меньше заморочек с плагинами использующими эти списки.