Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Все для cs сервера » Создание кс сервера! » Linux | Собираем сервер с "0"
Linux | Собираем сервер с "0"
DoDoLДата: Четверг, 26.02.2009, 17:19 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус:
Инфо
*Статья на доработке*
========================= Часть 1. Вступление.
Первое - давайте учить матчасть.

1. Что мы будем использовать для работы с серваком?

Первое: шелл клиент.

1.1.1 Если вы уж привыкли к виндам, то милости просим в WinSCP.

Он предлагает фактически уникальную возможность заливки/выливки файлов через ssh. Это очень удобно т.к. например у меня на сервере нет фтп.

1.1.2 Нам все-таки нужен нормальный консольный клиент. Довольно удобно в связке с WinSCP работает PuTTY.

Краткий список команд шелла который вам может понадобится:

Code
vi [filename] - ясно <img src="http://s27.ucoz.net/sm/1/smile.gif" border="0" align="absmiddle" alt="smile">
mkdir [dirname] - делаем директорию
cd [dir] - переходим в дир.
mv - (move) - передвигать файлы
cp - (copy) - копировать
rm (-rf) [dir] - команда удаления. Рекомендую если удаляем директорию, то использовать ключи -rf для рекурсивного удаления (r) и игнорирования всех ошибок и вопросов(f).
chmod - изменение прав на запуск. Если коротко, то делайте 777 и не ошибетесь. Опять-таки используем ключ -R (именно большая) для рекурсивного удаления.
chown - изменение владельца.

Согласитесь, теперь перед нами стоит вопрос чем редактировать файлы?

1.2.1 Если вы выбрали WinSCP, то в принципе это не проблема - там есть встроеный редактор файлов.

Но если все-таки вы выбрали шелл, то:

1.2.2 Vi - Выбор настоящих админов. Другое дело что его понять - не один день. На его тему есть даже шутка - "Vi имеет два режима работы - бибикать и все портить". В принципе не рекомендую.

Итак, будем считать что первый пункт пройден - и мы таки зашли на сервер и готовы его мучать.

Скриншоты:


========================= Часть 2. Установка.

2.1 давайте сделаем нового юзера для запуска серверов(потому что запускать под рутом ето изврат)

Code
useradd games

У меня он называется геймс, хотя можно назвать как хотите )

2.2 Ставить сервак я буду в /usr/games/hlds_dm (т.к. как раз нужен ЦСДМ сервак ) )

Code
stp-b:~# mkdir /usr/games/hlds_dm
stp-b:~# chown games:games /usr/games/hlds_dm
stp-b:~# cd /usr/games/hlds_dm/

Под рутом ясное дело.

2.3 После чего нам его права уже не понадобятся

Code
su games

Итак, скачиваем наш сервак с оффа.
Code
stp-b:/usr/games/hlds_dm# wget[url=http://forum.hlds.us/redirector.php?url=http%3A%2F
%2Fstorefront.steampowered.com%2Fdownload%2Fhldsupdatetool.bin]http://forum.hlds.us/redirector.php?url=http%3A%2F%2Fstorefront.steampowered.com%2Fdownload%2Fhldsupdatetool.bin[/url]
2.4
Даем файлу права на исполнение и выполняем его
Code
chmod +x hldsupdatetool.bin

Code
./hldsupdatetool.bin

Так как нам наплевать на вальв и его соглашения, то вводим yes

После чего лично у меня вышли такие 2 последние строчки:
E

Code
nter 'yes' to accept this agreement, 'no' to decline: yes
extracting steam.tar.Z...done

Если у вас не такое - то лучше задайте вопрос что сделали не так.

2.5

У нас после етого появился файлик readme.txt:
[code]Half-Life Dedicated Server (Steam) Update Tool
[4.07.05]

HldsUpdateTool is an application that will update an existing Half-Life
Dedicated Server installation to the latest version or will download the
latest version (from scratch) if an existing version is not found.
To save time/bandwidth downloading files, it's better to install
HldsUpdateTool into the root folder of an existing Half-Life Dedicated
Server installation.

Installation
1) Creating an account

It is no longer necessary to have a Steam account to use this tool.

2) Getting the latest version of the Dedicated Server

To download the latest version of the dedicated server to your machine:

a) Open a command prompt.

b) Change to the directory where the HLDS Update Tool is installed.

c) Run the HLDS Update Tool with the "update" command:

>HldsUpdateTool.exe -command update -game <game> -dir <installdir>

<game> "cstrike", "dmc", "dod", "ricochet", "tfc", "valve", "Counter-Strike Source", or "hl2mp"

<installdir> is the path where you want the files installed
e.g. . (for the current directory) or c:\hlserver

e.g.
>HldsUpdateTool.exe -command update -game cstrike -dir .

or

>HldsUpdateTool.exe -command update -game cstrike -dir c:\hlserver

(NOTE: that will be ./steam instead of HldsUpdateTool.exe for
Linux users)

d) Steam remembers the options you use, so when you need to update
next time you only need to run:

>HldsUpdateTool.exe -command update <game>

e) You can also install multiple copies of the server by specifying a
different <installdir>.

f) Half-Life mods (eg cstrike, dod) and Source mods (eg hl2mp) must
be installed to separate directories

3) Updating your Dedicated Server

If your dedicated server becomes out-of-date you will see the following
message in your server console and in the server log:

"Your server needs to be restarted in order to receive the latest update."

To update, stop your dedicated server and run the update commands described
in Section 2 (above).

 
DoDoLДата: Четверг, 26.02.2009, 17:20 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус:
Инфо
4) Help

To see this info and info about other options of the tool, run it with "-?"
and it will print them on the screen.

About Steam
-----------
Steam is a broadband business platform for direct software delivery and
content management. At its core, Steam is a distributed file system and
shared set of technology components that can be implemented into any
software application.

Privacy
-------
Valve respects the privacy of its users. The details of our privacy policy
can be viewed at:

После чего лично у меня вышли такие 2 последние строчки:
http://www.valvesoftware.com/privacy.htm

FAQ
---
1) Q: No one is connecting to my server/I get errors when I try to connect to
my server.

A: Run the HLDS Update Tool with the "update" command to make sure you
have the most recent version.

2) Q: When I first run the HldsUpdateTool I see a message about "Could not
create file: Permission denied". What's wrong?

A: The HldsUpdateTool has the ability to auto-update itself, but to do
this it must be able to overwrite itself. Make sure the Windows user
you're logged-in as has permission to overwrite the "HldsUpdateTool"
executable.

3) Q: Where can I get help?

A: Join the Steampowered forums or one of the Valve Server Admin Mailing
lists:
http://www.steampowered.com/forums
http://list.valvesoftware.com/mailman
/listinfo
[/code]
Мой совет - сделать такую команду:

Code
rm hldsupdatetool.bin&&rm readme.txt

Все равно ети 2 файла нам не понадобятся.

2.6 Ура, мы таки дошли до забирания будущего нашего сервера с вражеской територии.

2.6.1
Забираем файлы , которые надо стиму:

Code
./steam

2.6.2 Забираем сам сервер:
Code
stp-b:/usr/games/hlds_dm# ./steam -command update -game cstrike -dir /usr/games/hlds_dm/

После чего можно попить чай - в зависимости от канала сервера.
Code
Downloading: /usr/games/hlds_dm/\valve\valvecomm.lst
Downloading: /usr/games/hlds_dm/\valve\violence.cfg
Downloading: /usr/games/hlds_dm/\valve\xeno.wad

HLDS installation up to date
stp-b:/usr/games/hlds_dm#

У меня процесс закончился так.

Теперь у нас есть работающий СТИМ цс 1.6 сервер.

Code
stp-b:/usr/games/hlds_dm# vi /usr/games/hlds_dm/cstrike/server.cfg

И настраиваем под себя.

Список настроек:
[code]server.cfg

//Server name
hostname "Название сервера на латине" - имя вашего сервера, которое будет видно в списке серверов

//Rcon password
rcon_password "ркон пасс" - пароль для управления сервером (д.б. известен только вам)

//settings
mp_allowspectators 1 - на сервере можно присутствовать спектатором
mp_autocrosshair 0 - автоаим (примитивный AimBot)
mp_autokick 0 - кик с сервера простаивающих игроков или Тимкиллеров
mp_autoteambalance 1 - автобаланс команд (перевес в количестве игроков одной команды над другой не может превышать количества игроков указанных командой mp_limitteams)
mp_buytime 0.5 - время закупки оружия в начале раунда в минутах
mp_c4timer 35 - время в сек. до взрыва установленной бомбы
mp_chattime 10 - Количество секунд, на которое сервер позволяет игрокам писать в общий чат после конца карты и до загрузки новой
mp_decals 200 - Количество отображаемых одновременно дыр от выстрелов , пятен крови и т.д
mp_fadetoblack 0 - включение после вашей смерти черного экрана до окончания раунда
mp_falldamage 1 - управляет кол-вом снимаемых HP при падении (но она по-моему уже давно убрана из HLDS)
mp_flashlight 1 - использование фонарика
mp_forcecamera 0 - установка камеры наблюдения за своей комадой после смерти
mp_forcerespawn 1 - принудительный быстрый респаун для убитого клиента (если убили не можешь двинутся с того места)
mp_fraglimit 0 - количество фрагов, при достижении которого игра на карте будет завершена
mp_freezetime 2 - время невозможности движения игрока в начале раунда в секундах
mp_footsteps 1 - слышимость шагов (при беге)
mp_friendlyfire 1 - повреждения при стрельбе по своим
mp_hostagepenalty 0 - количество убитых заложников до применения бана в игре
mp_limitteams 1 - максимальное количество превышения игроков одной команды над другой (от 1 и до бесконечности )
mp_maxrounds 0 - максимальное количество раундов, при достижении которого игра на карте будет считаться законченной
mp_playerid 1 - This variable controls what players see when they put their crosshair over an enemy, a hostage, or a teammate
mp_spawnprotectiontime 10 - кик игрока, сделавшего тимкилл в начале раунда в течении этого количества секунд
mp_roundtime 3 - время раунда в минутах
mp_startmoney 800 - стартовое количество денег в начале игры на карте
mp_timelimit 30 - длительность игры на одной карте в минутах
mp_tkpunish 0 - применение санкций при ТимКиле (пропуск следующего раунда)
mp_winlimit 0 - количество выигрышей одной команды при достижении которого игра на карте считается законченной

sv_airaccelerate 10 - задает значение сопротивления воздуха
sv_allowdownload 1 - возможность скачивания с сервера недостающих карт и т.д.
sv_allowupload 0 - возможность закачивания на сервер файлов игроков (спрей-логов, карт и т.д.)
sv_alltalk 0 - разговор в микрофон доступен всем играющим на сервере (включая трупы)
sv_cheats 0 - разрешение использования читов
sv_consistency 1 - проверка клиента, чтобы на сервере могли играть только со стандартными моделями ,звуками и.т.д
sv_contact ваша почта - контакный почтовый адрес администратора сервера
sv_enableoldqueries 1 - старый метод запросов для совместимости с программами статистики (например Психостат)
sv_footsteps 1 - слышимость шагов (при беге)
sv_friction 4 - Трение на карте
sv_gravity 800 - Гравитация карты
sv_maxrate 20000 - максимальная пропускная способность сетевого канала сервера с учетом клиентской стороны (значение считается по формуле)
sv_maxspeed 320 - скорость движения игрока по карте
sv_maxunlag 0.5 - максимальная лаг компенсация в секундах
sv_maxupdaterate 40 - Ограничивает частоту обновлений сервера. Чем выше значение,тем больше пакетов будет послано клиентам (зависит от sv_maxrate и также считается по формуле )
sv_minrate 0 - минимальная пропускная способность сетевого канала
sv_minupdaterate 10 - нижний предел частоты обновления сервера
sv_password "пароль" - пароль только для входа на сервер, например, на клановый сервер. Не должен совпадать с ркон паролем!
sv_pausable 0 - возможность паузы на сервере
sv_rcon_banpenalty 15 - количество в минутах блокирования доступа к серверу при неправильном определенном количестве попыток ввода ркон пароля
sv_rcon_maxfailures 5 - максимальное количество неправильно введенного rcоn_password-а (затем BAN)
sv_rcon_minfailures 5 - минимальное количество неправильно введенного rcоn_password-а (затем BAN)
sv_rcon_minfailuretime 30 - время, после которого счетчик (sv_rcon_maxfailures) сбрасывается
sv_specaccelerate 5 - настройка режима спектатора в режиме "привидения"
sv_specnoclip 1 - настройка режима спектатора в режиме "привидения"
sv_specspeed 3 - настройка режима спектатора в режиме "привидения"
sv_stats 1 - сбор статистики использования процессора
sv_stepsize 18 - размер шага игрока (если поставить 100-150 то можно на de_aztec, например, из воды прямо к бомбе подняться или на подвесной мост )
sv_stopspeed 75 - скорость остановки игрока
sv_timeout 30 - время ожидания ответа от клиента в секундах по истечении которого клиент будет отключен
sv_unlag 1 - возможность компенсации лагов
sv_voiceenable 1 - разрешить использовать микрофон или нет

 
DoDoLДата: Четверг, 26.02.2009, 17:20 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус:
Инфо
decalfrequency 10 - время в секундах, через которое игроки могут наносить на поверхности своё следующее спрей-лого
host_framerate 0 - задает sys_tickrate сервера (аналог -tickrate в ярлыке запуска) [/code]
Code
Ну и не забываем пропатчить наш сервер под ностим
Для тех, у кого сервера на Linux, сделал нормальный патч (на Питоне) на основе своего старого nowon патча, который плюс к тому же исправляет некоторые дополнительные вещи:
Исправляет работу в режиме LAN без использования Steam (так называемый
no-WON patch) (нужен например, если у пользователей попросту нет Интернета), а также исправляет работу последних версий Cheating Death. Также я выключил дурацкое сообщение "NET_SendPacket ERROR:" которое у меня частенько выводится из-за того, что центральный сервер Valve недоступен из нашей локальной сети.
Работает для библиотек engine_XXX.so, включая engine_amd64.so для версий
начиная как минимум с версии 16 (Февраль 2005) вплоть до Linux Server Engine
version 29 (Январь 2006), и с большой вероятностью будет работать для
следующих версий (пока Valve опять что-нибудь не придумает чтобы усложнить
жизнь честным пользователям).
Большое спасибо Hand за то, что сделал самую сложную часть работы (а именно, нашел конкретные места с проверками) :-)
Также в архиве есть скрипт steam_update, который обновляет в автоматическом режиме сервер через STEAM, тут есть такая тонкость, что перед обновлением неплохо бы восстановить первоначальное содержимое файлов engine_XXX.so, иначе он их скачивает по новой. Ну а после обновления, естественно, он их обратно исправляет (уже новые версии).
Инструкция по эксплуатации внутри скриптов :-) (в кодировке 1251, уж такую я кодировку у себя в Linux использую, и другим рекомендую).

Patch

========================= Часть 3. Запуск.

Итак, будем считать что случилось чудо и мы таки поставили ностим сервер.

3.1 Запуск сервера.

Перед тем как доустанавливать всякие прибамбасы рекомедую сделать тестовый запуск.

Code
./hlds_run -console +sv_lan 1 -insecure -game cstrike -nomaster +maxplayers 16 +port 27015 +map de_dust2 +ip 127.0.0.1 -pingbooster 1

+sv_lan 1 -insecure -nomaster - ети ключи запуска для обхода защиты. sv_lan обязателен на ломаных серверах.

-game cstrike - запускаем сервер именно контры.

+maxplayers 16 - макс. к-во игроков

+port 27015 - порт для игры

+map de_dust2 - карта

-pingbooster 1 - linux сервер содержит встроеный бустер - от 0 до 3 (0 - наим. нагрузка)

Еще рекомендую заюзать такой шелл скрипт - конечно не без недостатков(убивает сразу все сервера (( ), но полезен - т.к. не надо искать ключи запуска.

Code
#!/bin/bash
RETVAL=0

path="/usr/games/hlds_l"

start() {
#start deamons
if [ -d $path ]; then
echo -n $"Starting CS server: "
cd $path
./hlds_run -console +sv_lan 1 -debug -insecure -game cstrike -nomaster +maxplayers 16 +port 27015 +map de_dust2 +ip cs1.cstrike.com.ua -pingbooster 1 -pidfile cs.pid&
touch ./cs.run
echo -n "[ ok ]
"
else
echo -n "[ FAILD ]
"
fi
}

stop() {
if [ -f $path/cs.run ]; then
killall hlds_run
killall hlds_i486
killall hlds_amd
cd $path
rm -R ./cs.run
echo "Stpoing CS server [ ok ]
"
else
echo -n "Stoping CS [ FAILD ]
"
fi
}

status() {
cd $path;
pid=`$path/cs.pid`;
if [ -f $path/cs.pid ]; then
echo -n "CS 1.6 Main server is Up and
";
echo -n "Runing
";
fi
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
esac

exit $RETVAL

Путь
Code
path="/usr/games/hlds_l"

и
Code
./hlds_run -console +sv_lan 1 -debug -insecure -game cstrike -nomaster +maxplayers 16 +port 27015 +map de_dust2 +ip cs1.cstrike.com.ua -pingbooster 1 -pidfile cs.pid&
touch ./cs.run

ключи запуска перед заливкой на сервак рекомендую поправить.

заливаем в /etc/init.d/ (у меня - /etc/init.d/cs ) - и делаем

Code
chmod 777 /etc/init.d/cs

(под root ом)

теперь можно зайти под юзером, под которым у нас сервак - и запустить-таки.

Code
su games
/etc/init.d/cs start

Теперь можно за свою работу чесно потестить сервер полчаса.

Когда наигрались, можно ставить metamod и amxmodx:

Качаем первое и второе соответственно с www.metamod.org и амхмодх.орг
делаем папки для метамода и амх:

делаем папки для метамода и амх:

Code
mkdir cstrike/addons
mkdir cstrike/addons/amxmodx
mkdir cstrike/addons/metamod

Заменяем в cstrike/liblist.gam
[/code]gamedll_linux "dlls/cs_i386.so"
на
Code
gamedll_linux "addons\metamod\metamod_i386.so"

Metamod установлен. Теперь амх:
создаем файл cstrike/addons/metamod/plugins.ini и в него помещаем:
Code
linux addons/amxmodx/dlls/amxmodx_mm_i386.so

Итак, у нас установлен amxmodx и metamod. После чейнджмапа они заработают.
 
Форум » Все для cs сервера » Создание кс сервера! » Linux | Собираем сервер с "0"
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последнии темы Читаемые темы Лучшии пользователи Новые пользователи
Зарег. на сайте
Всего: 28
Новых за месяц: 0
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0
Из них
Администраторов: 2
Модераторов: 2
Проверенных: 1
Обычных юзеров: 23

Изготовление баннеров...

(1)

Изготовление больших ...

(1)

Мини-профиль+

(0)

Автоматическое поздра...

(0)

Обновление странцы ка...

(0)

Шаблон под ucoz

(0)

Шаблон cs для ucoz (б...

(0)

Шаблон под кс

(0)

Шаблон by XaKeP

(0)

Собираем готовый серв...

(2)


Copyright MyCorp © 2020