Counter-Strike 1.6 (hlds-сервер)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Установка hlds-сервера + WEB-статистики.

Живой сервер тут - http://65.108.82.45/ps/ , steam.

Для кого

В первую очередь для себя.

В нулевых общежитие института активно погрузилось в Quake3, StarCraft BW и CS.1.6. Сейчас мне 40+, но игра по прежнему неплохо чистит мозг после работы.

Зачем

Public internet предлагает сотни серверов, но большинство из них перегружено диким количеством плагинов. Бесконечные VIP-привелегии, бесконечные деньги, какие-то новые сущности неведомые в оригинальной версии. Valve создал Вселенную, люди породили франкенштейна.

Захотелось свой чистый сервер от Steam. Пришло понимание, что все инструкции на большинстве форумов сводятся к покупке готового хостинга с готовой сборкой какой-то версии сервера с предустановленными какими-то плагинами.

Так не годится. Собираем свое, никому не платим.

Как все устроено

Для установки сервера Valve community предлагает SteamCMD. Это даст нам оригинальный сервер с официальным VAC.

Стоит отметить, что сейчас большое распостранение получила неофициальная сборка RE-HLDS. Утверждается, что Valve давно не уделяет должное внимание уязвимостям и производительности своего сервера. Новая сборка от энтузиастов делает сервер в 100500 раз круче и добавляет возможность использовать самые новомодные плагины.

Плагины

Сервер без плагинов - печальное зрелище. Плагинам быть!

Чтобы добраться до ядра CS не пересобирая его, был придуман проект AMX Mod X. Он дает возможность писать скрипты в текстовых .sma-файлах, компилировать их в бинарные .amxx-файлы.

В интернете сотни уже готовых amxx-плагинов. Задача сводится к единственному действию - подкинуть файл в нужную директорию совего сервера и все.

amxx в свою очередь общается с ядром CS через посредника metamod. Его последнюю версию я брал, с сайта AMX Mod X, см. Downloads.

Берем оригинал

Я выбрал оригинальный сервер.

Вылезла только одна проблема - не запускается metamod-модуль dproto.

Это неведомый черный ящик с неведомыми исходниками, дающий возможность подключаться к нашему серверу No-Steam клиентам. Нормальная игра, купленная в Steam за 259 рублей, использует протокол p48, а подвальная ломаная сборка работает на протоколе p47.

Да да, очень многие дядьки качают откуда попало неведомый бинарник игры, бесплатно ведь! Запускают это на своем компьютере!

В нашем случае, сервер не сможет обслужить No-Steam клиентов. Поразительно, но таких игроков больше половины по моему опыту.

На смену dproto сейчас пришел новомодный модуль reunion, но он работает только на RE-HLDS-сервере.

Под RE-HLDS идут уже другие плагины, работают через другой RE-API. Не ставил, не пробовал.

Установка

У меня есть свой VPS в Финляндии, на нем крутится OpenVPN-сервер. Полезная теперь штука, ну вы понимаете...

Вот на нем (Debian11) и раскатаем наш HLDS-сервер. Туда же подкинем WEB-сервер, чтобы рисовать статистику игроков.

Весь процесс установки расписан у меня на GitHub.

Люблю Docker за изоляцию процессов от хостовой машины, на нем и соберем.

Нам потребуются контейнеры:

  • nginx - веб страничка

  • php-fpm - статистика PsychoStats это древнючий код на PHP 5.4

  • mysql - статистике нужна БД, да и плагины CS некоторые тоже хотят БД

  • hlds16 - наш HLDS-сервер

Если в контейнерах какие-то файлы требуют частой правки, такие директории я подключаю к хостовой машине в папочку ~/share. Удобно потом расшарить эту папку и со своей домашней Windows-машины просто подкидывать нужные изменения напрямую.

Правда, в итоге, я чаще использовал VSCode-плагин SFTP: тыкнуть "upload" мне оказалось удобней чем водить мышкой по windows explorer-окнам.

Пошаговая инструкция на GitHub, ниже просто список действий, для понимания общей картины.

Поднимаем контейнеры

  1. Закидываем содержимое директории ~/share на VPS-сервер. На это содержимое будут опираться контейнеры, там конфиги для nginx, Dockerfile для сборки контейнеров, конфиги и плагины HLDS, ...

  2. Собираем свою docker image hlds16:latest, см. Dockerfile.

  3. Поднимаем временный docker container, забираем из него к себе на хостовую машину директорию addons (сюда будем накидывать необходимые amxx-плагины в дальнейшем)

  4. Поднимаем рабочий docker container hlds16 с привязкой к директории addons. Так же привязываем к хостовой машине директорию logs (логи потребуются страничке статистики).

  5. Поднимаем docker container mysql с привязкой к директории /mnt/mysql (там можно складировать бэкапы БД).

  6. Поднимаем docker container nginx с привязкой к директории /mnt/www (туда будем накидывать HTML/PHP файлы)

  7. Собираем свою docker image php-fpm-my:54, см. Dockerfile.

  8. Поднимаем docker container php-fpm-54 с привязкой к директории logs от контейнера hlds16, и /mnt/www от контейнера nginx.

С этого места у нас работает hlds + nginx + php-fpm + mysql.

Инициализируем сайт статистики

  1. Распаковываем из zip-архива ~/cstrike необходимое в /mnt/www/ps. Теперь страничка доступна по URL http://65.108.82.45/ps/

  2. Подменяем несколько кривых PHP-скриптов на исправленные, см. ~/cstrike/ps

  3. Инсталируем сайт - http://65.108.82.45/ps/install/

  4. Рассказываем сайту где смотреть логи http://65.108.82.45/ps/admin/logsources_edit.php - вписываем /mnt/cstrike/logs

  5. Распаковываем из zip-архива ~/cstrike perl-скрипты парсера логов в /mnt/www/ps.stat_parser, вписываем атрибуты доступа к БД в /mnt/www/ps/stat_parser/stats.pl. Запускаем парсер в cron.

Доводим под себя сервер HLDS

  1. Правим под себя server.cfg, motd.txt в директории ~/cstrike, закидываем в контейнер hlds16

  2. Накидываем нужные плагины из ~/cstrike или из интернета в директорию addons

  3. Включаем плагины в plugins.ini. Рестартуем контейнер hlds16

Итог

Инсталяция HLDS-сервера + Сайта статистики займет минут 15.

Доводка конфигов + выбор нужных плагинов (+ их настройка) займет несколько дней. Я выбрал только самые необходимые amxmodx:

  • Blue_Fade.sma - фоновая вспышка при поражении противника

  • amx_parachute.sma - парашют за $1000

  • damager.sma - показвает урон от наших выстрелов/гранат

  • map_chooser.sma - rtv голосование за смену карты

Такую конфигурацию считаю классической, минимально необходимой.

Источник: https://habr.com/ru/post/584488/


Интересные статьи

Интересные статьи

Рано или поздно, каждый пэхапешник, пишущий на битриксе, начинает задумываться о том, как бы его улучшить, чтобы и всякие стандарты можно было соблюдать, и современные инструменты разработки использов...
В данной пошаговой инструкции мы подробно опишем весь процесс получения доступа к WhatsApp Business API через официального партнера Facebook — сервис Gupshup и подключени...
Этот пост будет из серии, об инструментах безопасности, которые доступны в Битриксе сразу «из коробки». Перечислю их все, скажу какой инструмент в какой редакции Битрикса доступен, кратко и не очень р...
1С Битрикс: Управление сайтом (БУС) - CMS №1 в России по версии портала “Рейтинг Рунета” за 2018 год. На рынке c 2003 года. За это время БУС не стоял на месте, обрастал новой функциональностью...
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...