counterstrikelogo

В следващата статия ще ви покажа как да инсталирате и настроите Counter-Strike 1.6 сървър под УСУ Линукс. Инструкциите са написани за УСУ 8.x, но би трябвало да са валидни и за други Ubuntu-базирани дистрибуции, както и за по-стари издания на УСУ.
И така, да започваме!

Подготовка

Първо, пускаме терминал от основното меню > Система -> Терминал.
За простота в примера всичко ще се инсталира в подпапка hlds  на домашната папка, и ще е с правата на текущия ви потребител (без да изисква root). Ако желаете да е на друго място, трябва само в следните две команди вместо „hlds“ да напишете пълният път до желаната папка (примерно /opt/hlds или пък нещо друго):

mkdir hlds
cd hlds

Изтегляне на съдържанието

След като сме създали папката и сме я отворили в терминала, продължаваме с изтеглянето на hldsupdatetool.bin:

wget http://storefront.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin

Ще ви се появи въпрос „Enter ‘yes’ to accept this agreement, ‘no’ to decline: “ – напишете yes и щракнете Enter.

Следващата команда може да отнеме много време докато се изпълни (5-10 и повече минути) тъй като тя изтегля съдържанието на Counter Strike (плюс това понякога се бави и преди да започне да тегли). Ако не изтегли нищо и изпише някакви съобщения за грешка, просто се изпълнява още няколко пъти докато успее:

./steam -command update -game cstrike -dir .

Като краен резултат, трябва в папката hlds да изглежда така:

hlds

Като допълнение към стандартната конфигурация на сървъра, ще добавим Metamod-P и Dproto.

Инсталиране на Metamod-P

Изтегляме и инсталираме Metamod-P от http://metamod-p.sourceforge.net/ с команда:

mkdir -p cstrike/addons/metamod/dlls
wget http://prdownloads.sourceforge.net/metamod-p/metamod-p-1.19p32-linux_i586.tar.gz?download -O- | tar -xzvf - -C cstrike/addons/metamod/dlls/

Забележка: може да звучи странно, но за простота съм усложнил малко командите – по този начин не ви се налага ръчно да разархивирате файлове и да ги местите в съответните папки – от вас се изисква единствено да копирате и изпълните описаните команди една по една.

Активираме Metamod-P с команда:

sed -i 's/gamedll_linux "dlls\/cs_i386.so"/gamedll_linux "addons\/metamod\/dlls\/metamod_i386.so"/' cstrike/liblist.gam

Инсталиране на Dproto

Става със следните команди:

wget "http://cs.rin.ru/forum/download/file.php?id=12029" -O/tmp/dproto.zip
mkdir -p cstrike/addons/dproto/
unzip /tmp/dproto.zip dproto_i386.so -d cstrike/addons/dproto/
unzip /tmp/dproto.zip dproto.cfg -d ./
echo "linux addons/dproto/dproto_i386.so" > cstrike/addons/metamod/plugins.ini

Стартиране на сървъра

Сървъра се стартира със следната команда (естествено, може да промените „+map de_aztec“ с избрана от вас карта):

./hlds_run -binary ./hlds_i686 -game cstrike -autoupdate +maxplayers 20 +map de_aztec

Важно е да отбележим че параметъра „-binary ./hlds_i686“ е задължителен. Без него dproto не може да работи правилно.

Ето го и сървъра:

hlds-2

И вече съм вътре… макар и сам 🙂

hlds-3

Автоматично стартиране на сървъра

За целта изпълнете следната команда:

sudo nano /etc/init.d/cstrike-server

Тя ще създаде един празен файл /etc/init.d/cstrike-server и ще го отвори за редактиране в редактора nano.
Копирайте следния скрипт, и го поставете в редактора:

#!/bin/bash
# /etc/init.d/cstrike-server
# version 0.1 2013-01-29 (YYYY-MM-DD)
 
### BEGIN INIT INFO
# Provides:   cstrike-server
# Required-Start: $local_fs $remote_fs
# Required-Stop:  $local_fs $remote_fs
# Should-Start:   $network
# Should-Stop:    $network
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Short-Description:    Dedicated Counter-Strike server
# Description:    Starts the dedicated Counter-Strike server
### END INIT INFO
 
#Settings
HLDS_PATH='/home/lokster/hlds'
CS_USER=lokster
DIR=/home/lokster/hlds
PARAMS="-binary ./hlds_i686 -game cstrike -autoupdate +maxplayers 20 +map de_aztec"
NAME=hlds
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=hlds_run
DESC="Counter-Strike dedicated server"
 
case "$1" in
 start)
    if [[ `su $CS_USER -c "screen -ls | grep $NAME"` ]]
       then
       echo "HLDS is already running!"
    else 
       echo "Starting $DESC: $NAME"
       su $CS_USER -c "cd $DIR; screen -m -d -S hlds ./$DAEMON $PARAMS"
    fi
    ;;
 
 stop)
    if [[ `su $CS_USER -c "screen -ls | grep $NAME"` ]]
       then
       echo -n "Stopping $DESC: $NAME"
       kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
       echo " ... done."
    else
       echo "Coulnd't find a running $DESC"
    fi
    ;;
 
 restart)
    if [[ `su $CS_USER -c "screen -ls | grep $NAME"` ]]
       then
       echo -n "Stopping $DESC: $NAME"
       kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
       echo " ... done."
    else
       echo "Coulnd't find a running $DESC"
    fi
 
    echo -n "Starting $DESC: $NAME"
    su $CS_USER -c "cd $DIR; screen -m -d -S hlds ./$DAEMON $PARAMS"
    echo " ... done."
    ;;
 
 status)
    ps aux | grep -v grep | grep hlds_r > /dev/null
    CHECK=$?
    [ $CHECK -eq 0 ] && echo "HLDS is UP" || echo "HLDS is DOWN"
    ;; 
 *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac
 
exit 0

В началото на скрипта, точно след „#Settings“ променете стойностите на HLDS_PATH и CS_USER така че да са съответно пътя до папката където сте инсталирали сървъра, и името на потребителя ви.
Параметърът PARAMS съдържа параметрите които се подават към hlds. Може да ги оставите така, или пък да ги промените.
Запишете файла с Ctrl+O и след това Enter, и затворете редактора с Ctrl+x.
Изпълнете:

sudo chmod a+x /etc/init.d/cstrike-server
sudo update-rc.d cstrike-server defaults
sudo apt-get update
sudo apt-get install screen

И готово – вече сървъра ще се стартира автоматично при всяко стартиране на системата.
Може ръчно да го спирате и пускате съответно с

sudo service cstrike-server stop

и

sudo service cstrike-server start

Инсталиране на AMX Mod X (незадължително)

Става със следните команди:

wget "http://sourceforge.net/projects/amxmodx/files/AMX Mod X Base/1.8.1/amxmodx-1.8.1-base.tar.gz/download"  -O- | tar -xzvf - -C cstrike/
echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" >> cstrike/addons/metamod/plugins.ini

И така нататък… общо взето четете инструкциите за инсталиране на съответните плъгини Metamod – там си пише как се инсталират под Линукс. Принципа вече би трябвало да е ясен.