1. Что мы будем использовать для работы с серваком?
Первое: шелл клиент.
1.1.1 Если вы уж привыкли к виндам, то милости просим в WinSCP.
Он предлагает фактически уникальную возможность заливки/выливки файлов через ssh. Это очень удобно т.к. например у меня на сервере нет фтп.
1.1.2 Нам все-таки нужен нормальный консольный клиент. Довольно удобно в связке с WinSCP работает PuTTY.
Краткий список команд шелла который вам может понадобится:
vi [filename] - ясно
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.1 давайте сделаем нового юзера для запуска серверов(потому что запускать под рутом ето изврат)
useradd games
У меня он называется геймс, хотя можно назвать как хотите
2.2 Ставить сервак я буду в /usr/games/hlds_dm (т.к. как раз нужен ЦСДМ сервак ) )
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 После чего нам его права уже не понадобятся
su games
Итак, скачиваем наш сервак с оффа.
stp-b:/usr/games/hlds_dm# wget http://storefront.steampowered.com/download/hldsupdatetool.bin
2.4
Даем файлу права на исполнение и выполняем его
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
Так как нам наплевать на вальв и его соглашения, то вводим yes
После чего лично у меня вышли такие 2 последние строчки:
Enter 'yes' to accept this agreement, 'no' to decline: yes extracting steam.tar.Z...done
Если у вас не такое – то лучше задайте вопрос что сделали не так.
2.5
У нас после етого появился файлик readme.txt:
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 -dir
"cstrike", "dmc", "dod", "ricochet", "tfc", "valve", "Counter-Strike Source", or "hl2mp"
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
e) You can also install multiple copies of the server by specifying a
different .
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).
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:
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
Мой совет – сделать такую команду:
rm hldsupdatetool.bin&&rm readme.txt
Все равно ети 2 файла нам не понадобятся.
2.6 Ура, мы таки дошли до забирания будущего нашего сервера с вражеской територии.
2.6.1
Забираем файлы , которые надо стиму:
./steam
Теперь можно ознакомится с тем что оно может.
stp-b:/usr/games/hlds_dm# ./steam
Checking bootstrapper version ...
Use: steam -command <command> [parameters] [flags]
Commands:
update: Install or update HLDS
parameters:
-game <game> - Game name: use 'list' to see available games
-dir <installdir> - HLDS Install dir
(if dir not specified, will use value from last run of tool)
flags:
-verify_all - Verify all HLDS files are up to date
-retry - Automatically retry every 30 seconds if the Steam Network is busy
-remember_password - Remember password (if a username is supplied)
For example: steam -command update -game cstrike -dir /hlds
version: View installed versions
list: View available games
Optional parameters for all commands:
-username <username> - Steam account username (only needed to access limited content)
-password <password> - Steam account password (only needed to access limited content)
2.6.2 Забираем сам сервер:
stp-b:/usr/games/hlds_dm# ./steam -command update -game cstrike -dir /usr/games/hlds_dm/
После чего можно попить чай – в зависимости от канала сервера.
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 сервер.
stp-b:/usr/games/hlds_dm# vi /usr/games/hlds_dm/cstrike/server.cfg И настраиваем под себя.
Список настроек:
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 - разрешить использовать микрофон или нет decalfrequency 10 - время в секундах, через которое игроки могут наносить на поверхности своё следующее спрей-лого host_framerate 0 - задает sys_tickrate сервера (аналог -tickrate в ярлыке запуска) (с) перто
Ну и не забываем пропатчить наш сервер под ностим
Для тех, у кого сервера на 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 использую, и другим рекомендую).
Итак, будем считать что случилось чудо и мы таки поставили ностим сервер.
3.1 Запуск сервера.
Перед тем как доустанавливать всякие прибамбасы рекомедую сделать тестовый запуск.
./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 - наим. нагрузка)
Еще рекомендую заюзать такой шелл скрипт – конечно не без недостатков(убивает сразу все сервера ), но полезен – т.к. не надо искать ключи запуска.
#!/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
Путь
path="/usr/games/hlds_l"
и
./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 ) – и делаем
chmod 777 /etc/init.d/cs
(под root ом)
теперь можно зайти под юзером, под которым у нас сервак – и запустить-таки.
su games /etc/init.d/cs start
Теперь можно за свою работу чесно потестить сервер полчаса.
Когда наигрались, можно ставить metamod и amxmodx:
Качаем первое и второе соответственно с www.metamod.org и www.amxmodx.org .
делаем папки для метамода и амхx:
mkdir cstrike/addons mkdir cstrike/addons/amxmodx mkdir cstrike/addons/metamod
Заменяем в cstrike/liblist.gam
gamedll_linux "dlls/cs_i386.so"
на
gamedll_linux "addons/metamod/dlls/metamod_i386.so".
Metamod установлен. Теперь амхx:
создаем файл cstrike/addons/metamod/plugins.ini и в него помещаем:
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
Итак, у нас установлен amxmodx и metamod. После чейнджмапа они заработают.

а если ты не рут?..если выделили тебе кусок места удалённо..с чего начать?
А подругому никак.
Да кто тебе сказал такую дрянь? Можно и под другим юзером…нужно только знать какое пространство и права тебе выделили =) 3092095 ICQ
команда ./steam -command update -game cstrike -dir . начала скачивать 300метровое обновлеие только после 3го ее ввода