
После долгих часов игры в 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)
В прошлой статье я описывал где храню файлы для серверов, но все равно повторюсь.
Для своего удобства, все что касается серверной части я храню в отдельном каталоге в корне системы.
1 2 3 |
sudo mkdir /server cd /server sudo mkdir cs |
Вот в папке cs и будут развиваться наши приключения.
Установка сервера Web,PHP,MySQL
Итак, приступим к установке:
1 |
sudo apt-get install apache2 apache2-mpm-prefork apache2-utils apache2-suexec libapache-asp-perl php5 php5-mysql libapache2-mod-php5 php-pear mysql-server mysql-client libmysqlclient15-dev |
Во время установки, сервер MySQL попросит вас ввести пароль.
Настроим виртуальные хосты
На данный момент у нас должен получится вполне рабочий Web сервер. Проверяем путем перехода на IP адрес сервера через любой браузер с компьютера в вашей локальной сети. На экране, если все правильно работает, появится надпись "It, works!".
Изменяем фаил конфигурации виртуальных хостов:
1 |
sudo nano /etc/apache2/sites-available/default |
Стираем содержимое файла и вставляем наш новый виртуальный хост:
1 2 3 4 5 |
ServerAdmin somemail@some.ru ServerName ВАШ.IP.АДРЕС ServerAlias ВАШ.IP.АДРЕС DocumentRoot /server/site ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ |
Теперь папка где лежит наш сайт будет /server/site.
Все готово! приступаем к установке сервера Counter-Strike 1.6!
Установка и настройка Counter-Strike 1.6 сервера
И так, для начала нам необходимо скачать HldsUpdateTool с сайта steampowered.com (скачивать можно в любую темповую директорию):
1 |
sudo wget http://www.steampowered.com/download/hldsupdatetool.bin |
Далее устанавливаем права и запускаем hldsupdatetool.bin (на данном этапе мы установим Steam):
1 2 |
sudo chmod +x hldsupdatetool.bin sudo ./hldsupdatetool.bin |
Через несколько минут (или секунд, зависит от вашего интернет подключения) можно приступать к установке серверной части Counter-Strike 1.6. У нас в папке появился новый файл Steam, с ним то мы и будем работать.
Скачиваем серверную часть:
1 |
./steam -command update -game valve -dir /server/cs |
Параметр dir определяет куда будет установлен сервер. Далее докачиваем файлы для Counter-Strike сервера:
1 |
./steam -command update -game cstrike -dir /server/cs |
Вот и все, в принципе (согласно теории сферического коня в вакууме) сервер уже готов. Можно запустить и побаловаться. Но нам это не подходит. Впереди еще установка модов и самой статистики.
Переходим к установке и настройке модов необходимых для уютной игры и статистики игроков.
Установка metamod, amxmodx, dproto
Для корректной работы статисти (да и вообще) нам необходимы моды metamod, amxmodx, dproto. С начала я скачал архивы с модами, распаковал и залил на сервер через FTP.
Ссылки на скачивание:
Так, надеюсь все скачали... Я 2 дня потратил на поиск совместимых версий. Проблема была в том что при поиске выводились результаты с ссылками на посты годов 2007-2009... Взял лопату, ковырял sourceforge.net. Ну вообщем вам все готовое уже.
Переходим к установке
Создаем в папке cstrike под-директории /addons/metamod/dlls:
1 2 3 4 5 6 |
cd /server/cs/cstrike sudo mkdir addons cd addons sudo mkdir metamod cd metamod sudo mkdir dlls |
Копируем фаил metamod_i386.so в /server/cs/cstrike/addons/metamod/dlls. Создаем фаил plugins.ini в папке /server/cs/cstrike/addons/metamod:
1 |
sudo nano /server/cs/cstrike/addons/metamod/plugins.ini |
Редактируем фаил /server/cs/cstrike/liblist.gam:
1 |
sudo nano /server/cs/cstrike/liblist.gam |
1 2 3 |
======================================================= gamedll_linux "addons/metamod/dlls/metamod_i386.so" //Заменяем то что было. |
Установка MetaMod завершена. Продолжаем, на подходе AmxModX.
Копируем папку AmxModX (необходимо объединить 2 архива скачанных ранее) в /server/cs/cstrike/addons.
Редактируем /server/cs/cstrike/addons/metamod/plugins.ini:
1 |
sudo nano /server/cs/cstrike/addons/metamod/plugins.ini |
1 2 |
======================================================== linux addons/amxmodx/dlls/amxmodx_mm_i386.so //Добавляем данную запись |
Так-с, закончили. Более подробно о том как настроить Amx можно почитать тут: counter-strike.cn.ua.
Установка dproto. Данный аддон необходим нам для того, чтобы игроки которые используют не лицензионную версию Counter-Strike могли без беспрепятственно играть на нашем сервере.
Создаем папку dproto в /server/cs/cstrike/addons:
1 2 |
cd /server/cs/cstrike/addons/ sudo mkdir dproto |
Копируем файл dproto_i386.so из архива который качали ранее в папку /server/cs/cstrike/addons/dproto. Файл конфигурации dproto.cfg копируем в /server/cs/cstrike. Редактируем /server/cs/cstrike/addons/metamod/plugins.ini:
1 |
sudo nano /server/cs/cstrike/addons/metamod/plugins.ini |
1 2 3 |
======================================================== linux addons/amxmodx/dlls/amxmodx_mm_i386.so linux addons/dproto/dproto_i386.so //Добавляем данную запись |
Все. Сейчас проверим запускается ли сервер, а так же установились ли наши аддоны.
Запускаем сервер:
1 |
./hlds_run -binary ./hlds_i686 -nomaster -game cstrike -port 27015 +ip ВАШ.IP.АДРЕС -insecure |
Запустился? Если да то проверяем командой meta list список запущенных аддонов:
1 2 3 4 5 6 |
meta list Currently loaded plugins: description stat pend file vers src load unlod [ 1] dproto RUN - dproto_i386.so v0.4.8 ini Start Never [ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.1.3 ini Start ANY 2 plugins, 2 running |
Если получили что-то на подобии этого (значение 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 недостающие модули и так далее. Устанавливаем все так:
1 |
sudo apt-get install perl libconfig-inifiles-perl libdbd-mysql-perlsudo |
Готово.
Заранее создадим базу данных для нашей статистики. Я это делал через 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:
1 |
sudo nano /server/cs/cstrike/stats.cfg |
1 2 3 4 5 6 7 8 |
====================================================== dbtype = mysql // Тип базы данных dbhost = localhost // Хост базы dbport = 3306 // Порт базы dbname = psychostats3_1 // Название базы dbuser = ps3 // Пользователь БД dbpass = // Пароль к БД dbtblprefix = ps_ //Если будете использовать одну базу для нескольких серверов.. меняйте префикс таблицы |
Теперь server.cfg... Настраивать можно как вам угодно. Но, есть одно НО. Для работы статистики должны быть такие строки:
1 |
sudo nano /server/cs/cstrike/server.cfg |
1 2 3 4 5 6 7 8 |
========================================== log on sv_logbans 1 sv_logecho 1 sv_logfile 1 sv_log_onefile 0 mp_logdetail 3 mp_logmessages 1 |
На очереди AmxModX. Необходимо проверить включены ли модули сбора статистики:
1 |
sudo nano /server/cs/cstrike/addon/amxmodx/configs/plugins.ini |
1 2 3 4 5 6 |
========================================================== //Проверяем нет ли ; напротив данных модулей: admin.amxx statscfg.amxx statsx.amxx stats_logging.amxx |
На этом все.
Сбор статистики ведет скрипт stats.pl Чтобы его каждый раз не запускать я добавил его в cron. Запускаться он будет раз в 10 минут.
1 |
sudo crontab -e |
1 2 |
=================================================== */10 * * * * /server/cs/cstrike/stats.pl |
Вздохнули... проверяем сервер.
1 |
./hlds_run -binary ./hlds_i686 -nomaster -game cstrike -port 27015 +ip ВАШ.IP.АДРЕС -insecure |
Запустился - выдохнули. Теперь статистика будет отображаться на вашем сайте.
Неполадки и их решения, примочки
Первое что попалось на глаза, это огромное количество ошибок выпадающих на сайте. Половина лечится изменением php.ini на вашем сервере. Редактируем его, находим почти в конце переменную mbstring.func_overload и выставляем ей числовое значение 7. Так же не забудьте снять ; в начале переменной.
Вторая половина, это ошибки в коде. В тексте ошибки указывается в каком файле и на какой строке ошибка. Переходим в фаил, находим строку и удаляем знак &. Чаще всего он встречается в таком виде
1 2 3 |
Some fignya =& new Some; //Должно получится Some fignya = new Some; |
Обращайте внимание на версии аддонов которые устанавливаете. В данной статье я привел ссылки на совместимые версии, но в интернете сложно найти что-то подходящее.
На этом все. По идее, на данный момент, вы обладатель рабочего сервера Counter-Strike с статистикой игроков и прочим.
Внимание: На x64 debian-based системах необходимо установить lib32gcc1 и всё, что пакет потянет. Иначе можно получить в самом начале ошибку "hldsupdatetool.bin no such file or directory".