После долгих часов игры в 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.
Ссылки на скачивание:
- MetaMod-1.19 Linux
- AmxModX Base linux
- AmxModX CS Addon Linux
Так, надеюсь все скачали... Я 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
=&
amp
;
new
Some
;
//Должно получится
Some
fignya
=
new
Some
;
|
Обращайте внимание на версии аддонов которые устанавливаете. В данной статье я привел ссылки на совместимые версии, но в интернете сложно найти что-то подходящее.
На этом все. По идее, на данный момент, вы обладатель рабочего сервера Counter-Strike с статистикой игроков и прочим.
Внимание: На x64 debian-based системах необходимо установить lib32gcc1 и всё, что пакет потянет. Иначе можно получить в самом начале ошибку "hldsupdatetool.bin no such file or directory".