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 // Есть урон от падений
sv_airaccelerate 10 sv_airmove 1 sv_restartround 0 sv_maxspeed 320 sv_proxies 1 sv_allowupload 1 sv_voiceenable 1 sv_alltalk 0 sv_voicequality 4 sv_voicecodec voice_speex allow_spectators 1 pausable 0 cl_weather 0
// cheat and fun modes sv_aim 0 sv_cheats 0
// Set Rates sv_maxrate 20000 sv_spectatormaxspeed 500 sv_maxspeed 320 sv_maxupdaterate 101 sv_minrate 2500 sv_minupdaterate 20 decalfrequency 10 sys_ticrate 200
// Enable/Disable LAN mode sv_lan 1 // Для локальной сети – 1, для Интернета – 0.
3.Запуск сервераТеперь открываем блокнот и пишем следующую строчку (строка запуска сервера): start /HIGH hlds.exe -console -game cstrike +port 27016 +map de_dust2_2x2 +maxplayers 10 +sv_lan 0 -console - сервер стартует в консольном режиме +port 27015 - порт, на котором будет работать сервер (по умолчанию порт 27015) +maxplayers 32 - максимальное количество игроков на сервере +sv_lan 0 - указываем, что на сервер смогут заходить с любым ip-адресом. Если поставить 1, то сервер будет доступен только для игроков в локальной сети Теперь сохраняем Файл -> Сохранить как. Имя файла: Server.cmd. Тип файла: все файлы. Сохраняем в корневом каталоге сервера. Теперь запускаем сервер только через Server.cmd.
3. Установка metamod Metamod служит для подключения дополнительных модов на сервер, таких как AMX Mod X, StatsMe, античитов и др. Он встроен в автоматический установщик Amx Mod X Full Installer, но мы всё будем делать ручками, так что... Скачать Metamod можно отсюда: Здесь (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, в нём содержится список подключаемых модулей.
Всё, что написано с символа ";" считается комментарием и не учитывается.
Поэтому чтобы отключить модуль, поставьте перед его названием символ
";". Не вдаваясь в подробности, оставьте вот такой набор модулей: engine fakemeta ;geoip ;sockets regex ;nvault cstrike csx ;hamsandwich
6. Установка бустера mmtimer Немного теории. Сервер постоянно
просчитывает игровую ситуацию: кто в кого попал, куда передвинулся и
т.д. Кадром сервера называется единичный игровой, просчитываемый момент.
Частота просчитывания кадров называется FPS (frames per second, кадры в
секунду). Чем больше это значение, тем плавнее будет игра для играющих.
Также FPS влияет на прибавку к пингу, она вычисляется по формуле
1000/your_fps. Т.е. если у вашего сервера fps = 64, прибавка к пингу
будет 1000/64 ~ 16 ms. Так что чем больше fps, тем лучше игрокам, но
нагрузка на сервер больше. По умолчанию частота кадров равна 100,
задается переменной sys_ticrate и имеет ограничение в 1000 fps. В
Windows обычными средствами поднять fps выше 512 нельзя. Также важна
стабильность fps, лучше стабильные 200 fps, чем скачущие 100-500.
Бустеры
- плагины (модули), используются для понижения пинга и увеличения fps
на сервере за счет увеличения нагрузки на процессор. Наиболее известные
бустеры: HLBooster 1.7, 2.4, Lite и ALX Lowping. HLBooster 1.7, релиз
которого был аж в 2003, изменял функцию "sleep" ОС, что ускоряло работу
сервера. HL Booster Lite заставлял "просыпаться" сервер, как только к
нему приходили данные от игрока. Ну а HLBooster 2.40 (2004 год) гордо
объединил эти две функции. Проект ALX Lowping почему-то быстро загнулся и
не получил большой популярности (возможно, из-за того, что сложен в
настройке). И вот - совсем недавно - crock (автор Dproto) сделал новый бустер - mmtimer.
Как пишет автор, он действует сразу в трёх направлениях: увеличивает
точность таймера ОС (только под Windows), уменьшает время "сна" процесса
HLDS и снимает ограничение 1000 FPS, встроенное в HLDS. Желаемый FPS
сервера задаётся значением sys_ticrate. Так же имеется "Insane mode",
включается с помощью mm_insane 1, в этом режиме HLDS загружает CPU на
100%, выдавая максимально возможное FPS. Можно, кстати, использовать как
бенчмарк. На хорошим процессоре можно получить интересные цифры вроде
50000 FPS. В режиме mm_insane 2 HLDS более "лояльно" относится к
другим приложениям, давая им шанс поработать после обсчета каждого
кадра. Этот режим позволяет держать несколько серверов на одном ядре. Скачиваем mmtimer: http://depositfiles.com/files/d99366quv. Устанавливается
бустер стандартно: файл mmtimer.dll помещается в папку
cstrike\addons\mmtimer, а в plugins.ini прописывается путь к этому файлу
строчкой win32 addons\mmtimer\mmtimer.dll. Настройки добавляем в
server.cfg: sys_ticrate 1100 // Для 1024 fps mm_insane 0 // Insane mode off
|