«Войны в свободное время 2» или CS сервер + статистика в офисе

После долгих часов игры в BattleField 2, протяженных поездок на танках и джипах, сумасшедших падений на вертолетах и пары сотни метров собранной статистики по всему этому веселью, пришла пора задуматься о террористической обстановке на игровом фронте. Как же там заложники поживают? А не засыпало ли пылью старый, добрый de_dust2?

Сегодня я расскажу вам как установить и настроить игровой сервер Counter-Strike 1.6 и прикрутить к нему локальную статистику игроков. Данная статья является второй из серии "Войны в свободное время".

Сервер:

  • НР ProLiant ML350 G5
  • Intel® Xeon® 5160
  • 8 Gb RAM ECC
  • OS Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

В прошлой статье я описывал где храню файлы для серверов, но все равно повторюсь.

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

Вот в папке cs и будут развиваться наши приключения.

Установка сервера Web,PHP,MySQL

Итак, приступим к установке:

Во время установки, сервер MySQL попросит вас ввести пароль.

Настроим виртуальные хосты

На данный момент у нас должен получится вполне рабочий Web сервер. Проверяем путем перехода на IP адрес сервера через любой браузер с компьютера в вашей локальной сети. На экране, если все правильно работает, появится надпись "It, works!".

Изменяем фаил конфигурации виртуальных хостов:

Стираем содержимое файла и вставляем наш новый виртуальный хост:

Теперь папка где лежит наш сайт будет /server/site.

Все готово! приступаем к установке сервера Counter-Strike 1.6!

Установка и настройка Counter-Strike 1.6 сервера

И так, для начала нам необходимо скачать HldsUpdateTool с сайта steampowered.com (скачивать можно в любую темповую директорию):

Далее устанавливаем права и запускаем hldsupdatetool.bin (на данном этапе мы установим Steam):

Через несколько минут (или секунд, зависит от вашего интернет подключения) можно приступать к установке серверной части Counter-Strike 1.6. У нас в папке появился новый файл Steam, с ним то мы и будем работать.

Скачиваем серверную часть:

Параметр dir определяет куда будет установлен сервер. Далее докачиваем файлы для Counter-Strike сервера:

Вот и все, в принципе (согласно теории сферического коня в вакууме) сервер уже готов. Можно запустить и побаловаться. Но нам это не подходит. Впереди еще установка модов и самой статистики.

Переходим к установке и настройке модов необходимых для уютной игры и статистики игроков.

Установка metamod, amxmodx, dproto

Для корректной работы статисти (да и вообще) нам необходимы моды metamod, amxmodx, dproto. С начала я скачал архивы с модами, распаковал и залил на сервер через FTP.

Ссылки на скачивание:

  • MetaMod-1.19 Linux
  • AmxModX Base linux
  • AmxModX CS Addon Linux

Так, надеюсь все скачали... Я 2 дня потратил на поиск совместимых версий. Проблема была в том что при поиске выводились результаты с ссылками на посты годов 2007-2009... Взял лопату, ковырял sourceforge.net. Ну вообщем вам все готовое уже.

Переходим к установке

Создаем в папке cstrike под-директории /addons/metamod/dlls:

Копируем фаил metamod_i386.so в /server/cs/cstrike/addons/metamod/dlls. Создаем фаил plugins.ini в папке /server/cs/cstrike/addons/metamod:

Редактируем фаил /server/cs/cstrike/liblist.gam:

Установка MetaMod завершена. Продолжаем, на подходе AmxModX.

Копируем папку AmxModX (необходимо объединить 2 архива скачанных ранее) в /server/cs/cstrike/addons.

Редактируем /server/cs/cstrike/addons/metamod/plugins.ini:

Так-с, закончили. Более подробно о том как настроить Amx можно почитать тут: counter-strike.cn.ua.

Установка dproto. Данный аддон необходим нам для того, чтобы игроки которые используют не лицензионную версию Counter-Strike могли без беспрепятственно играть на нашем сервере.

Создаем папку dproto в /server/cs/cstrike/addons:

Копируем файл dproto_i386.so из архива который качали ранее в папку /server/cs/cstrike/addons/dproto. Файл конфигурации dproto.cfg копируем в /server/cs/cstrike. Редактируем /server/cs/cstrike/addons/metamod/plugins.ini:

Все. Сейчас проверим запускается ли сервер, а так же установились ли наши аддоны.

Запускаем сервер:

Запустился? Если да то проверяем командой meta list список запущенных аддонов:

Если получили что-то на подобии этого (значение STAT должно стоять RUN для наших установленных аддонов), то все нормально. Если вообще ничего не отобразилось, то проблема кроется в самом начале, проверяйте установку Metamod.

После завершения установки модов, переходим к установке статистики.

Установка Статистики Counter-Strike 1.6 (PsychoStats)

Вот тут у нас первые проблемы. Нормальной статистики на Counter-Strike 1.6, а главное современной, найти не удалось. Зато есть ранее популярный проект PsychoStats, с последней версией 3.2 (на сколько я понял). Сайт проекта давно уже ушел в небытие... Пришлось искать файл psychostats_nightly.tar.gz размером более 5.3 метра. Гугл помог и у меня оказался в руках архив с perl скриптом и папкой upload, содержащей файлы для заливки на Web сервер. то что надо.

Перл, перл... Узнал, что для работы статистики необходим перл и еще пара модулей. Не надо мучится искать как найти через apt недостающие модули и так далее. Устанавливаем все так:

Готово.

Заранее создадим базу данных для нашей статистики. Я это делал через NaviCat.

Зальем файлы из папки upload на наш Web-сервер. и приступим к установке. Запускаем браузер и переходим по такого рода ссылке - httр://вашсайт/install/index.php.

Установка не должна вызвать у вас сложностей, так как там все описано достаточно хорошо. Единственное перед концом почти необходимо выбрать тип игры (Half-Life => Counter-Strike) и указать папку с log файлами (У меня это /server/cs/cstrike/logs).

В 99% случаев у вас появится гора ошибок в шапке сайта. Deprecated... о том как от них избавится я расскажу позже.

Копируем скрипт stats.pl и все что там еще было с ним в папку /server/cs/cstrike. И переходим к завершающей стадии... Редактирование конфигов.

Редактируем конфигурационные файлы

Первым у нас будет stats.cfg:

Теперь server.cfg... Настраивать можно как вам угодно. Но, есть одно НО. Для работы статистики должны быть такие строки:

На очереди AmxModX. Необходимо проверить включены ли модули сбора статистики:

На этом все.

Сбор статистики ведет скрипт stats.pl Чтобы его каждый раз не запускать я добавил его в cron. Запускаться он будет раз в 10 минут.

Вздохнули... проверяем сервер.

Запустился - выдохнули. Теперь статистика будет отображаться на вашем сайте.

Неполадки и их решения, примочки

Первое что попалось на глаза, это огромное количество ошибок выпадающих на сайте. Половина лечится изменением php.ini на вашем сервере. Редактируем его, находим почти в конце переменную mbstring.func_overload и выставляем ей числовое значение 7. Так же не забудьте снять ; в начале переменной.

Вторая половина, это ошибки в коде. В тексте ошибки указывается в каком файле и на какой строке ошибка. Переходим в фаил, находим строку и удаляем знак &. Чаще всего он встречается в таком виде

Обращайте внимание на версии аддонов которые устанавливаете. В данной статье я привел ссылки на совместимые версии, но в интернете сложно найти что-то подходящее.

На этом все. По идее, на данный момент, вы обладатель рабочего сервера Counter-Strike с статистикой игроков и прочим.

Внимание: На x64 debian-based системах необходимо установить lib32gcc1 и всё, что пакет потянет. Иначе можно получить в самом начале ошибку "hldsupdatetool.bin no such file or directory".

Ищите полиглот? Он ждёт вас на сайте poliglott.narod.ru.