Перейти к содержимому

Добро пожаловать на Форум www.MakeServer.kz
Зарегистрируйтесь сейчас, чтобы получить доступ ко всем функциям. После регистрации и входа в систему вы сможете создавать темы, отвечать на сообщения в существующих разделах, изменять репутацию другим пользователям,использовать личные сообщения, размещать обновления статуса, управлять профилем и многое другое. Если у вас уже есть учетная запись, Войти здесь - или Зарегистрироваться.
Внимание! Если вы ранее регистрировались на сайте,то проходить повторную регистрацию на форуме не нужно.Вы можете использовать свои логин и пароль от сайта.
MakeServer.kz TeamSpeak Server TeamSpeak Viewer

Фотография

Скрипты для запуска серверов CS 1.6

- - - - -

  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1
Анчоус

Анчоус

    IT специалист

  • Администратор
  • 1 347 сообщений
1) Перед установкой скрипты необходимо установить пакет qstat - yum install qstat и yum screen install

А дальше просто скрипт на php в /usr/local/games/ :

<?php
# Описание серверов в формате:
# array ( 'игра', 'адрес', 'статус' ,'пользователь','скрипт запуска'
# статус - указывает заданное состояние сервера: 0 - отключен, 1- включен
# пользователь - под какой учеткой работает игровой сервер
# скрипт запуска - должен понимать команду start, stop, restart.
# располагается в папке со скриптом перезапуска

$arr = array(
array('-hls','ugniy.ru:27015','1','ugniy','_cs15'),
array('-hls','ugniy.ru:27016','1','ugniy','_cs16_1'),
array('-hls','ugniy.ru:27018','0','ugniy','_cs16_2'),
array('-a2s','ugniy.ru:27022','1','ugniy','_css1'),
array('-a2s','ugniy.ru:27023','1','ugniy','_css2'),
array('-hls','ugniy.ru:27025','1','ugniy','_ts'),
array('-uns','ugniy.ru:7777','1','ugniy','_rune'),
array('-ut2004s','ugniy.ru:7707','1','ugniy','_kf')
);
$i = 0;
$r_fp="";
for ($i = 0; $i < count($arr); $i++) {
$r_game = $arr[$i][0];
$r_ip = $arr[$i][1];
$r_status = $arr[$i][2];
$r_user = $arr[$i][3];
$r_cmd = $arr[$i][4];
$query = " qstat -u " . $r_game . " " . $r_ip ;
exec($query,$r_fp);
if (empty($r_fp[1])){
if ($r_status==1)
{$r_cmd = "su " . $r_user ." ". $r_cmd . " restart";
system($r_cmd, $ret);
}
else {}
}
else {
if ($r_status==0)
{$r_cmd = "su" . $r_user . " " . $r_cmd . " stop";
system($r_cmd, $ret);
}
else {}
}
$r_fp = "";
}
?>


И бабахиваем его в крон проверять каждую минуту.
массив соответственно в начале скрипта заменяем своими серверами и своими скриптами.
поле статус - определяет что делать с сервером - впишете 0, в течение минуты скрипт его погасит, впишете 1 - в течении минуты запустит.

#!/bin/bash
#
# Init file for Rune HoV Server
#
# chkconfig: 35 90 12
# description: Rune: Halls of Valghallar
#
# source function library
SCREEN_NAME=Rune
GAME_PATH=/home/ugniy/.loki/rune/System

start()
{
cd $GAME_PATH && screen -AmdS $SCREEN_NAME ./ucc-bin server AR-Champions.run?game=Arena.ArenaGameInfo?mutator=
RFVotesPlus.RFVotesPlus?AdminName=Ragnarok?AdminPassword=odin LOG=server1.log
}
stop()
{
PID=`ps fax | grep $SCREEN_NAME | grep SCREEN | awk '{ print $1 }'`
kill $PID
}
restart()
{
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0


Для других игр нужно поменять SCREEN_NAME на желаемый, GAME_PATH на нужный и команду в секции start

2) Самый простой скрипт для запуска серверов:

#!/bin/sh
echo "Starting CS 1.6"
sleep 1
screen -A -m -d -S cs-ServerCs ./hlds_run -binary ./hlds_i686 -debug -game cstrike +ip ваш IP +port 27017 -maxplayers 20 +sys_ticrate 1075+sv_lan 0 +map de_dust2 –autoupdate -pidfile cs.pid -pingboost 3 &


Скрипт выполняет запуск серверов и автообновление, если же установить screen, остановка сервера будет производится консольным режимом.
PS Pingboost 3 не обязательно, можно убрать.

3) Скрипт на запуск и остановку серверов:
rc.boot:

#! /bin/sh
# /etc/init.d/csrun
#
# Some things that run always
#touch /var/lock/blah
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting Counter-Strike 1.6 "
/bin/su -l username /games/cs16_new/cs-run1.sh
;;
stop)
echo "Stopping Counter-Strike 1.6 "
csid='cs16n1'
pids=`ps ax | grep SCREEN | grep $csid | awk '{print $1}'`
for pid in $pids
do
kill -9 $pid
done
/usr/bin/screen -q -wipe
;;
*)
echo "Usage: /etc/init.d/csrun {start|stop}"
exit 1
;;
esac
exit 0


cs-run1.sh:

#!/bin/sh export LD_LIBRARY_PATH=/games/cs16_new:$LD_LIBRARY_PATH cd /games/cs16_new/ /usr/bin/screen -A -mdS cs16n1 \ ./hlds_run -game cstrike +sv_lan 1 -nomaster -pingboost 2 -heapsize 768000 \ +map de_nuke +maxplayers 31 +port 27015 \ +mapchangecfgfile timelimit.cfg +exec server.cfg -pidfile cs1.pid -debug \ >/dev/null &






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных