Доброго времени суток Хабра-сообщество!
После долгих часов игры в BattleField 2, протяженных поездок на танках и джипах, сумасшедших падений на вертолетах и пары сотни метров собранной статистики по всему этому веселью, пришла пора задуматься о террористической обстановке на игровом фронте. Как же там заложники поживают? А не засыпало ли пылью старый, добрый de_dust2?
Сегодня я расскажу вам как установить и настроить игровой сервер Counter-Strike 1.6 и прикрутить к нему локальную статистику игроков. Данная статья является второй из серии «Войны в свободное время».
Предыдущие статьи:
BattleField 2 Ranked Server
Сервер:
НР ProLiant ML350 G5
Intel® Xeon® 5160
8 Gb RAM ECC
OS Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
В прошлой статье я описывал где храню файлы для серверов, но все ровно повторюсь.
Для своего удобства, все что касается серверной части я храню в отдельном каталоге в корне системы.
sudo mkdir /server
cd /server
sudo mkdir cs
Вот в папке cs и будут развиваться наши приключения.
Установка сервера Web,PHP,MySQL
Итак, приступим к установке:
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!».
Изменяем фаил конфигурации виртуальных хостов:
sudo nano /etc/apache2/sites-available/default
Стираем содержимое файла и вставляем наш новый виртуальный хост:
<VirtualHost ВАШ.IP.АДРЕС:80>
ServerAdmin somemail@some.ru
ServerName ВАШ.IP.АДРЕС
ServerAlias ВАШ.IP.АДРЕС
DocumentRoot /server/site
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
</VirtualHost>
Теперь папка где лежит наш сайт будет /server/site.
Все готово! приступаем к установке сервера Counter-Strike 1.6!
Установка и настройка Counter-Strike 1.6 сервера
И так, для начала нам необходимо скачать HldsUpdateTool с сайта www.steampowered.com (скачивать можно в любую темповую директорию)
sudo wget http://www.steampowered.com/download/hldsupdatetool.bin
Далее устанавливаем права и запускаем hldsupdatetool.bin (На данном этапе мы установим Steam)
sudo chmod +x hldsupdatetool.bin
sudo ./hldsupdatetool.bin
Через несколько минут (или секунд, зависит от вашего интернет подключения) можно приступать к установке серверной части Counter-Strike 1.6. У нас в папке появился новый файл Steam, с ним то мы и будем работать.
Скачиваем серверную часть:
./steam -command update -game valve -dir /server/cs
Параметр dir определяет куда будет установлен сервер. Далее докачиваем файлы для Counter-Strike сервера.
./steam -command update -game cstrike -dir /server/cs
Вот и все, в принципе (согласно теории сферического коня в вакууме) сервер уже готов. Можно запустить и побаловаться. Но нам это не подходит. Впереди еще установка модов и самой статистики.
Переходим к установке и настройке модов необходимых для уютной игры и статистики игроков.
Установка metamod,amxmodx,dproto
Для корректной работы статисти (да и вообще) нам необходимы моды metamod,amxmodx,dproto.
С начала я скачал архивы с модами, распаковал и залил на сервер через FTP.
Ссылки на скачивание:
MetaMod-1.19 Linux
AmxModX Base linux
AmxModX CS Addon Linux
DProto 0.9.179
Так, надеюсь все скачали… Я 2 дня потратил на поиск совместимых версий =) Проблема была в том что при поиске в google выводились результаты с ссылками на посты годов 2007-2009… Взял лопату, ковырял sourceforge.net. Ну вообщем вам все готовое уже =)
Переходим к установке:
Создаем в папке cstrike под-директории «addons/metamod/dlls/»
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
sudo nano /server/cs/cstrike/addons/metamod/plugins.ini
Редактируем фаил /server/cs/cstrike/liblist.gam
sudo nano /server/cs/cstrike/liblist.gam
=======================================================
gamedll_linux "addons/metamod/dlls/metamod_i386.so" //Заменяем то что было.
Установка MetaMod завершена. Продолжаем, на подходе AmxModX.
Копируем папку amxmodx (необходимо объединить 2 архива скачанных ранее) в /server/cs/cstrike/addons.
Редактируем /server/cs/cstrike/addons/metamod/plugins.ini
sudo nano /server/cs/cstrike/addons/metamod/plugins.ini
========================================================
linux addons/amxmodx/dlls/amxmodx_mm_i386.so //Добавляем данную запись
Так-с, закончили. Более подробно о том как настроить Amx можно почитать тут.
Установка dproto. Данный аддон необходим нам для того, чтобы игроки которые используют не лицензионную версию Counter-Strike могли без беспрепятственно играть на нашем сервере.
Создаем папку dproto в /server/cs/cstrike/addons/
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
sudo nano /server/cs/cstrike/addons/metamod/plugins.ini
========================================================
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
linux addons/dproto/dproto_i386.so //Добавляем данную запись
Все. Сейчас проверим запускается ли сервер, а так же установились ли наши аддоны.
Запускаем сервер:
./hlds_run -binary ./hlds_i686 -nomaster -game cstrike -port 27015 +ip ВАШ.IP.АДРЕС -insecure
Запустился? Если да то проверяем командой meta list список запущенных аддонов.
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 недостающие модули и так далее. Устанавливаем все так:
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
sudo nano /server/cs/cstrike/stats.cfg
======================================================
dbtype = mysql // Тип базы данных
dbhost = localhost // Хост базы
dbport = 3306 // Порт базы
dbname = psychostats3_1 // Название базы
dbuser = ps3 // Пользователь БД
dbpass = // Пароль к БД
dbtblprefix = ps_ //Если будете использовать одну базу для нескольких серверов.. меняйте префикс таблицы.
Теперь server.cfg… Настраивать можно как вам угодно. Но, есть одно НО. Для работы статистики должны быть такие строки:
sudo nano /server/cs/cstrike/server.cfg
==========================================
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
mp_logdetail 3
mp_logmessages 1
На очереди AmxModX. Необходимо проверить включены ли модули сбора статистики:
sudo nano /server/cs/cstrike/addon/amxmodx/configs/plugins.ini
==========================================================
//Проверяем нет ли ; напротив данных модулей:
admin.amxx
statscfg.amxx
statsx.amxx
stats_logging.amxx
На этом все.
Сбор статистики ведет скрипт stats.pl Чтобы его каждый раз не запускать я добавил его в cron. Запускаться он будет раз в 10 минут.
sudo crontab -e
===================================================
*/10 * * * * /server/cs/cstrike/stats.pl
Вздохнули… проверяем сервер.
./hlds_run -binary ./hlds_i686 -nomaster -game cstrike -port 27015 +ip ВАШ.IP.АДРЕС -insecure
Запустился — выдохнули. Теперь статистика будет отображаться на вашем сайте =)
Неполадки и их решения, примочки
Первое что попалось на глаза, это огромное количество ошибок выпадающих на сайте.
Половина лечится изменением php.ini на вашем сервере.
Редактируем его, находим почти в конце переменную mbstring.func_overload и выставляем ей числовое значение 7. Так же не забудьте снять; в начале переменной.
Вторая половина, это ошибки в коде. В тексте ошибки указывается в каком файле и на какой строке ошибка.
Переходим в фаил, находим строку и удаляем знак &. Чаще всего он встречается в таком виде
Some fignya =& new Some;
//Должно получится
Some fignya = new Some;
Обращайте внимание на версии аддонов которые устанавливаете. В данной статье я привел ссылки на совместимые версии, но в интернете сложно найти что-то подходящее.
На этом все =) по идее на данный момент вы обладатель рабочего сервера Counter-Strike с статистикой игроков и прочим.
Если у вас возникнут вопросы или неполадки, пишите мне я вам помогу чем смогу.
Спасибо за внимание.
Автор: btgsystem, «Войны в свободное время 2» или CS сервер + статистика в офисе
игровые аппараты играть на реальные деньги qiwi адреса еще деньги за регистрацию в казино.