Собираем
сервер с нуля Содержание 0.
Вступление 1. Установка чистого сервера 2. Настройка сервера 3.
Установка metamod 4. Установка и настройка AMX Mod X 5.
Установка античита на примере sXe-Injected 6. Установка HLBooster 7.
Сервер для двух протоколов (47 и 48): Dproto 8. Сайты и ссылки для
скачки
0. Вступление Давно
уже была мысль написать свою статью про создание выделенного сервера CS
1.6 с AMX Mod X. Если даже очень хорошо поискать мануалы про установку
AMX, то вряд ли вы найдёте больше двух разных статей (их копируют очень
часто). Обе уже сильно устарели, ссылки побились, вышли новые версии
программ, много чего поменялось, есть много непонятных моментов,
особенно для новичков. Статья написано полностью с нуля, никакого
копи-паста.
Сразу скажу, что для сервера требуется достаточно
мощная машина, тем более, если вы рассчитываете играть на своем сервере с
этого же компьютера (Intel Pentium 4, 3 GHz, 1 GB Ram минимум). Если
сервер не только для локальной сети, но и для инета, то вам понадобиться
широкий канал (от 2 мб/с) и самое главное – выделенный ip адрес, он
чаще всего покупается у провайдера за отдельную аб. плату (50-100
р/мес).
1. Установка чистого сервера Сначала
определимся, что такое HLDS, и где его взять. HLDS – Half Life Dedicated
Server – выделенный сервер для Half-Life и CS 1.6. Выделенный – значит
отдельный, для его запуска лучше использовать отдельный компьютер,
сервер создается без запуска самой игры, что очень удобно. Чаще всего
ставятся именно выделенные сервера. В no-steam версиях CS он обычно
устанавливается вместе с самой игрой, т.к. сервер использует многие
файлы самой игры (т.е. HLDS – это серверная часть игры). Использовать
этот сервер не рекомендуется, но вполне реально. Нам нужна последняя,
официальная, "чистая" версия HLDS. Он бесплатный, его можно спокойно
скачать из интернета. Сервер скачивается с официального сайта, 315
мб. Для этого нам понадобиться программка hldsupdatetool. Скачиваем
её: http://storefront.steampowered.com/downloa...supdatetool.exe.
Устанавливаем, путь установки лучше оставить по умолчанию
(C:\Program Files\Valve\HLServer). Запускаем HldsUpdateTool.exe, пойдет
процесс проверки обновлений (программы, а не самого сервера). Если есть
обновления, она сама их скачает и установит. Создаем папку serv на диске
C:. В эту папку (C:\serv\) будет скачиваться сервер. Далее нам нужно
запустить HldsUpdateTool.exe с ключами -command update -game cstrike
-dir c:\serv. Как запустить программу с ключами? Проще всего это
сделать через ярлык: нажимаем правой кнопкой по hldsupdatetool.exe и
выбираем создать ярлык. Заходим в его свойства (правой кнопкой мыши по
ярлыку -> свойства). Смотрим на поле объект, там у нас должно быть
"C:\Program Files\Valve\HLServer\HldsUpdateTool.exe" (если вы делали всё
в точности по этой статье). Нам нужно всего лишь к этой строчке
добавить ключи, написанные выше. В результате это будет выглядеть так:
"C:\Program Files\Valve\HLServer\HldsUpdateTool.exe" -command update
-game cstrike -dir c:\serv. Не напутайте с пробелами, всё должно
выглядеть точно так, как написано; нажимаем "Применить". Запускаем
ярлык, пойдет процесс загрузки HLDS. Внимание! Бывает, что сервер не
отвечает и скача не идет, придется попробовать еще раз, но позже. По
окончанию загрузки в папке C:\serv\ появится куча файлов, это и есть наш
HLDS. Сразу сделайте копию этой папки на всякий случай, чтоб было
откуда восстанавливаться. Папку с сервером можно его перенести в любое
другое удобное место. Пусть это будет D:\Server\. Сам сервер уже
можно запустить, заходим в папку сервера, запускаем hlds.exe. Выбираем
параметры и Start Server. Не забудьте, что сейчас у вас в руках
официальный сервер, а значит с No-Steam (пиратская кс) на сервер вы не
зайдёте. Будет ошибка "STEAM validation rejected". Как это лечится
читайте в разделе про Dproto. Как узнать версию сервера? Наберите в
консоли сервера version:
Protocol
version 48 Exe version 1.1.2.6 (cstrike) Exe build: 15:34:33
Jun 15 2009 (4554)
2. Настройка
сервера Все основные параметры сервера хранятся в файле
cstrike\server.cfg. Открываем его блокнотом. Смело оттуда всё
удаляем и вставляем следующее:
//
Set the Host Name hostname "testing…" // Имя сервера.
//
Set the rcon password rcon_password "password" // Пароль для
управления сервером через консоль клиента. Чтобы данная функция не
работала, оставьте пустым.
// Server Logging log on //
включаем режим записи логов mp_logdetail 3 // определяем детальность
записи логов mp_logmessages 1 // записывать сообщения
//
Server Variables mp_timelimit 30 // Время на карту (в мин) mp_autokick
0 mp_autoteambalance 1 // Автоматический баланс команд. mp_c4timer
35 // Время таймера на бомбе (в сек) mp_flashlight 1 // Разрешить
фонарик mp_footsteps 1 mp_freezetime 2 // Время для закупки в
начале раунда, когда нельзя двигаться (в сек) mp_friendlyfire 0 //
Режим попадания по своим тим-мэйтам mp_hostagepenalty 0 mp_limitteams
0 mp_tkpunish 0 mp_roundtime 2.5 // Длительность раунда (в мин)
mp_buytime 0.50 // Время, от начала раунда, когда ещё можно купить
оружие (в мин) mp_fadetoblack 0 mp_forcechasecam 1 mp_forcecamera
0 mp_kickpercent 100 mp_playerid 1 mp_startmoney 800 mp_chattime
3 mp_falldamage 1 // Есть урон от падений
Рассмотрим подробнее, что здесь написано: start
"Server" – запуск консоли с заголовком Server /min – свернуть после
запуска /high – ставим высокий приоритет -console - сервер
стартует в консольном режиме -game cstrike - запускать сервер под CS -insecure
– отключить VAC +maxplayers 17 – количество слотов (до 32) +map
de_dust2 - сервер запуститься с карты de_dust2 +port 27015 - порт,
на котором будет работать сервер
Меняем всё как вам нужно, Файл
-> Сохранить как. Имя файла: Server.cmd. Тип файла: все файлы.
Сохраняем в корневом каталоге сервера. Теперь запускаем сервер
только через Server.cmd
3. Установка metamod Metamod
служит для подключения дополнительных модов на сервер, таких как AMX Mod
X, StatsMe, античитов и др. Скачать metamod можно c официального
сайта: http://prdownloads.sourceforge.net/metamod...in.zip?download
(310 Кб, версия 1.19). В папке cstrike создаем папку addons, а
внутри неё папку metamod. И распаковываем файл metamod.dll в неё.
Открываем \cstrike\liblist.gam (блокнот) и исправляем строчку gamedll
"dlls\mp.dll" на gamedll "addons\metamod\metamod.dll" и сохраняем. Всё,
метамод установлен, можно приступать к установке модов.
4.
Установка и настройка AMX Mod X Качаем AMX Mod X 1.8.1 с
официального сайта http://www.amxmodx.org/downloads.php. Есть два
варианта: первый - скачать Full Installer, тогда всё поставится
автоматически, просто следуйте указаниям инсталлятора, не забудьте там
выбрать тип мода: CS 1.6; второй – скачать отдельно AMX Mod X Base (это
базовые файлы, для всех модов) и Mod Addon Pack - Counter-Strike Addon –
Windows. Открываем первый архив, выделяем в WinRar папку addons и
нажимаем "извлечь в…", вверху пишем путь до папки \cstrike\ (например, у
меня это D:\Server\cstrike), жмём Ок. Открываем второй архив, делаем
абсолютно всё также, соглашаемся на замену всех файлов.
В папке
cstrike/addons/metamod открываем файл plugins.ini (создаем, если нет
его), там прописываем строчку: win32
addons/amxmodx/dlls/amxmodx_mm.dll и сохраняем. Так мы подключили AMX
Mod X.
Вот так у нас выглядит папка addons:
--addons - папка addons в
<server>/cstrike/ |--metamod - здесь установлен
Metamod |--amxmodx - здесь установлен AMX Mod X |--dlls -
файл amxmodx_mm.dll должен быть здесь |--modules - папка
модулей (.dll) |--plugins - папка плагинов (.amxx) |--scripting
- папка исходников плагинов и компилятора скриптов
|--include - папка библиотек (includes) |--compiled –
скомпилированные плагины |--doc - документация |--data
- статистика |--lang - переводы на разные языки |--configs -
файлы настроек |--logs - логи AMX Mod X
Переходим
к самой длинной части этого руководства – настройке AMX Mod X. Далее
идем в папку csrtike/addons/amxmodx/configs. Открываем файл amxx.cfg, в
нём содержатся основные настройки AMX Mod X.
// AMX Mod X echo Executing AMX Mod X
Configuration File
// Уровень доступа всех, кто не прописан в
users.ini (обычных игроков) // По умолчанию: "z" amx_default_access
"z"
// Поле (~переменная) для пароля // Для ввода пароля
(админам) используется команда setinfo _pw pass (где _pw – это и есть
поле пароля, а pass - сам пароль) // По умолчанию: "_pw" amx_password_field
"_pw"
// Вход на сервер // 0 – отключить авторизацию,
игроки не будут проверяться (не будет присвоен ни один уровень доступа) //
1 – нормальный режим, все флаги в аккуантах ставятся // 2 – кикать
всех, кого нет в листе юзеров (users.ini) // По умолчанию: 1 amx_mode
1
// Показывать активность админа // 0 – не показывать //
1 – показывать, но без ника админа (например, ADMIN Kicked Player) //
2 – показывать, с ником (например, ADMIN MegaPlayer Kicked Player) //
По умолчанию: 2 amx_show_activity 2
// Частота в секундах и
текст сообщения, которое будет прокручиваться // По умолчанию:
"Welcome to %hostname% -- This server is using AMX Mod X" 600 amx_scrollmsg
"Welcome to %hostname% -- This server is using AMX Mod X" 600
//
Сообщение по центру экрана (в конце цвет в RGB) // По умолчанию:
"Welcome to %hostname%" "000255100" // "This server is using AMX
ModX\nVisit http://www.amxmodx.org" "000100255" amx_imessage
"Welcome to %hostname%" "000255100" amx_imessage "This server is
using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"
//
Частота вывода на экран этого сообщения (см. выше) в секундах // По
умолчанию: 180 amx_freq_imessage 180
// Время бана для меню
(amx_banmenu) // Используйте 0 для перманент банов (навсегда) //
По умолчанию: 0 5 10 15 30 45 60 amx_plmenu_bantimes 0 5 10 15 30
45 60
// Урон от слэпа (slap) для меню (amx_slapmenu) //
Слэй автоматически идет первым параметром // По умолчанию: 0 1 5 amx_plmenu_slapdmg
0 1 5
// Как часто игроки могут писать сообщения в чат в
секундах (защита от флуда) // По умолчанию: 0.75 amx_flood_time
0.75
// Количество резервируемых слотов для админов // По
умолчанию: 0 amx_reservation 0
// Скрывать резервируемые
слоты // По умолчанию: 0 amx_hideslots 0
// Показывать
оставшееся время до конца карты // a – белый текст внизу по центру
экрана // b – голосовое сопровождение // c – не добавлять
"remaining" (для голоса) // d – не добавлять "hours/minutes/seconds"
(для голоса) // e – показывать/озвучивать, если текущее время
меньше, чем установлено в параметре // По умолчанию: "ab 1200" "ab
600" "ab 300" "ab 180" "ab 60" "bcde 11" amx_time_display "ab 1200"
"ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
// Сопровождать
голосом команды "say thetime" и "say timeleft" // По умолчанию: 1 amx_time_voice
1
// Минимальная задержка в секундах между двумя голосованиями //
По умолчанию: 10 amx_vote_delay 10
// Сколько длится
голосование в секундах // По умолчанию: 10 amx_vote_time 10
//
Показывать, кто за что проголосовал // По умолчанию: 1 amx_vote_answers
1
// Отношения для результатов голосования
// По
умолчанию: 0.40 amx_votekick_ratio 0.40
// По умолчанию:
0.40 amx_voteban_ratio 0.40
// По умолчанию: 0.40 amx_votemap_ratio
0.40
// По умолчанию: 0.02 amx_vote_ratio 0.02
//
Максимальное время, на которое может быть продлена карта (в минутах) //
По умолчанию: 90 amx_extendmap_max 90
// На сколько может
быть продлена карта за раз (в минутах) // По умолчанию: 15 amx_extendmap_step
15
// Разрешить выбирать язык // По умолчанию: 1 amx_client_languages
1
// Дебаг-режим // 0 - отключен // 1 – плагины с
опцией "debug" в plugins.ini запускаются в debug режиме // 2 – все
плагины запускаются в debug режиме // По умолчанию: 1 amx_debug 1
// Статистика ведётся // 0 – по нику // 1 - по authid //
2 - по ip // По умолчанию: 1 csstats_rank 1
//
Максимальный размер файла статистики // По умолчанию: 3500 csstats_maxsize
3500
// Записывать статистику ботов // По умолчанию: 0 csstats_rankbots
0
// Время для отображения статистики после смерти (в секундах)
// По умолчанию: 12.0 amx_statsx_duration 12.0
// Время
отображения статистики (HUD) после конца раунда // Отрицательное
время уберёт статистику до того, как freezytime раунда закончится //
По умолчанию: -2.0 amx_statsx_freeze -2.0
Теперь
открываем modules.ini, в нём содержится список подключаемых модулей.
Всё, что написано с символа ";" считается комментарием и не учитывается.
Поэтому чтобы отключить модуль, поставьте перед его названием символ
";". Не вдаваясь в подробности, оставьте вот такой набор модулей:
Переходим
к файлу users.ini. Как несложно догадаться, в нём расписаны полномочия
юзеров. В самом низу файла будут строчки вида . Одна строчка – один юзер. -
ник или ip или steam_id - пароль - флаги полномочий - флаги
входа на сервер
Флаги полномочий:
a - Флаг иммунитета. Человека нельзя
кикнуть/забанить/сделать slay/slap и т.п. b - Флаг, разрешающий
подключение на резервные слоты. c - Флаг доступа к команде amx_kick.
d - Флаг доступа к командам amx_ban и amx_unban. e - Флаг
доступа к командам amx_slap и amx_slay. f - Флаг доступа к команде
amx_map. g - Флаг доступа для изменений cvar настроек через
amx_cvar. h - Флаг доступа к amx_cfg. i - Флаг доступа к
amx_chat и другим чат командам. j - Флаг доступа к amx_vote и другим
командам голосования. k - Флаг доступа для изменения cvar
переменной sv_password. l - Флаг доступа к amx_rcon и возможности
изменения всех cvar на сервере. m-t - Зарезервированные флаги (для
сторонних плагинов) u - Флаг доступа к меню. z - Флаг
пользователя. Не даёт ни каких полномочий.
Флаги
входа на сервер:
a -
отключает игрока, если пароль не совпадает b - клан тэг c - это
steam_id или won_id d - это ip e - пароль не проверяется (нужен
только ник/ip/steam_id) k - имя или тэг чувствительны к регистру
(т.е. если вы поставите этот флаг к нику Player и на него стоит пароль,
тогда кто угодно может использовать имя plAyEr, никаких полномочий он
при этом не получит)
Пропишем себя
админом, добавим такую строчку: "123.45.67.89" ""
"abcdefghijklmnopqrstu" "de" (где 123.45.67.89 – ваш ip, пароля не
требуется) Или по нику: "My Name" "my_password"
"abcdefghijklmnopqrstu" "a" (где My Name – ваш ник, а пароль -
my_password, не забудьте перед коннектом к серверу прописать в консоли
setinfo _pw "my_password")
Теперь плагины. Плагины повышают
функциональность сервера, добавляют статистику, эффекты и прочее.
Открываем файл plugins.ini, там видим набор стандартных плагинов.
Отключить плагин можно точно так же, как модуль – поставить перед его
названием ";". Для установки нового плагина скопируйте его в папку
plugins, а в plugins.ini пропишите название файла (не забудьте на конце
.amxx).
Все карты на сервере должны быть прописаны в файле
maps.ini. Добавили новую карту в папку maps? Не забудьте прописать её
название в maps.ini, иначе она не появится на голосовании.
5.
Установка античита на примере sXe-Injected Чтобы установить
античит типа клиент-сервер, нужно сначала поставить на свой сервер
серверную часть, а игрокам установить клиентскую. Одним из таких
античитов является sXe-Injected, его мы и попробуем установить.
Cкачиваем http://sxe-injected.biz/load/0-0-0-161-20 (это для
сервера) и http://sxe-injected.biz/load/0-0-0-158-20 (это для
игроков). Открываем первый архив, в файле install.txt описан процесс
установки на английском (так что, если есть знания – вперёд, там всё
очень подробно расписано). Создаём в папке addons папку sxei, в неё
переносим файлы из архива sxei.ini и sxei_mm.dll. В файл
metamod/plugins.ini дописываем строчку win32 addons/sxei/sxei_mm.dll.
Осталось прописать настройки. Открываем server.cfg и дописываем:
// Настройки античита sXe __sxei_required
0 // кикать игроков без sxe? (1-да, 0-нет) Запускаем сервер и
вводим в консоль команду meta list, ищем примерно вот такую строчку: sXe
Injected RUN - sxei_mm.dll v6.9, если она есть, значит, всё работает.
Осталось установить игрокам клиент sXe.
[b]6. Установка HLBooster
(1.7 или 2.40) [/b] HLBooster позволяет снизить пинг игроков,
повышая нагрузку на процессор. Ставить только на мясные сервера, если
слотов больше 14. Если меньше – то смысла особого нет. Помните, что
бустер повышает риск падения сервера, так что если у вас с ним сервер
падает, попробуйте сначала поменять версию, а если не поможет, лучше его
вообще не использовать. В данный момент распространены две версии 2.40 и
1.7. Я не ощутил между ними большой разницы, но т.к. версию 2.40 много
ругают, будем ставить 1.7. Скачиваем:
[url=http://narod.ru/disk/3323574000/hl_booster_136_17_24.rar.html]http://narod.ru/disk/3323574000/hl_booster_136_17_24.rar.html[/url]
Создаём в папке addons папку booster, в неё копируем файл из
архива, версия 1.70, booster_mm.dll. В файл metamod/plugins.ini
дописываем строчку win32 addons/booster/booster_mm.dll. Настройки можно
прописать в файле server.cfg, но я бы рекомендовал отделить их от
основных. В server.cfg прописываем одну единственную строчку: exec
booster.cfg. Создаём в папке cstrike файл booster.cfg, в него вписываем
настройки: [code]booster_show_connmsg 1 booster_autofps 400 booster_minsleepms
5 booster_force_systicrate 0 booster_cpu_enabled 0 booster_cpu_spikemax
3 booster_cpu_spikelevel 75 booster_cpu_mminc 2
7.
Сервер для двух протоколов (47 и 48): Dproto Как вы знаете
сейчас активно играют на двух протоколах: на 47 и 48. На 47 - нонстим,
на 48 - стимовцы и нонстим с патчем на 48 протокол. Официально
поддерживается только 48 протокол, и наш сервер, соответственно тоже.
Поэтому придется поколдовать, чтобы сделать сервер для двух протоколов.
Раньше более-менее решалась проблема заменой swds.dll на патченый.
Сейчас появилось нормальное решение от человека с ником Crock. Dproto
- это библеотека, подключаемая через metamod, позволяет заходить на
сервер с двух протоколов и имеет много полезных настроек. Новые версии
Dproto выкладывается на форуме (там же можно задать вопрос разработчику,
если у вас с английским лады): http://cs.rin.ru/forum/viewtopic.php?f=29&t=52728. Скачиваем
последнюю версию. Создайте папку dproto в каталоге
D:\Server\cstrike\addons\. Файл dproto.dll из архива, в папке
bin\windows скопируте в папку D:\Server\cstrike\addons\dproto\. В файле
metamod\plugins.ini допишите такую строчку: win32
addons/dproto/dproto.dll. Файл dproto.cfg из архива поместите в
корень сервера (D:\Server\). В нём содержаться настройки dproto,
откройте его. В принципе, можно ничего не менять, но вот это стоит
рассмотреть отдельно:
#
ServerInfoAnswerType (0/1) # Sets server answer type for query
requests # 0 = New style (Source Engine) # 1 = Old Style (Fix
favorites list for p.47 clients) # 2 = Hybrid mode - best solution
for now, server is visible anywhere ServerInfoAnswerType = 2
Параметр
ServerInfoAnswerType отвечает за то, как будет наш сервер отображаться в
списках серверов. Дело в том, что после 24 патча поменялся механизм
"обнаружения" сервера. Все, у кого клиент (игра) ниже 24 патча (касается
только нон-стим) не увидят более новые серверы в избранных серверах /
поиске. Поэтому до сих пор нужно было выбирать, либо ставить старый
сервер, чтоб был виден игрокам со старым клиентом (обычно нонстим) или
ставить новый сервер, чтобы нормально отображался в новом клиенте
(обычно стим). Но был придуман "гибридный метод", позволяющий серверу
нормально отображатся и в старых клиентах и в новых. Так что рекомендую
ставить ServerInfoAnswerType = 2.
Приложение
1: Список всех команд Amx Mod X 1.8.1 Админские: amx_addadmin
[password] [authtype] Добавить админа amx_addban [reason] Добавить бан к бан-листу сервера amx_ban