Наконец у меня дошли руки до создания статьи о подъеме сервера для CSS на домашнем ПК. Стоит так же сказать, что сервер будет без каких либо модификаций, с простой админкой и стандартными картами. Итак перейдем сразу к делу.
Ставим Source Dedicated Server на Windows ОС
[*] Первым делом определимся где у нас на жестком диске будет находиться сервер, допустим по адресу: d:\Server
[*] Нашим вторым шагом будет скачивание и установка программы
[*] После установки нужного программного обеспечения создаем текстовый документ в папке с будущим сервером, и вписываем в нем следующие:
start /wait d:\Server\hldsupdatetool.exe -command update -game "Counter-Strike Source" -dir .
exit
[*] Запускаем наш файл. Работа нашего скрипта будет идти в 3 шага.
1. Запустит hldsupdatetool и обновит его до последней версии
2. Скачает с серверов Valve Source Dedicated Server (около 1 Гб).
3. После окончания скачивания наш скрипт завершит свою работу.
Ставим Source Dedicated Server на Linux ОС
Процесс установки сервера схож с Windows ОС. Все ниже приведенный команды вводятся в терминал, в скобочках подробное описание каждой команды.
[*] mkdir Server (Создаем в домашнем каталоге папку Server)
[*] cd server (Переходим в эту папку)
[*] wget
[*] chmod +x hldsupdatetool.bin (Устанавливаем права на программное обеспечение)
[*] ./hldsupdatetool.bin (Устанавливаем программу. Вам будет продемонстрировано лицензинное соглашение, введите yes, чтобы согласиться).
[*] ./steam (И запускаем ее. hldsupdatetool под Linux называется steam)
Настраиваем сервер
Перед запуском сервера рекомендуется его настроить по своему усмотрению, для этого:
[*] Создадим файл server.cfg в папке (в нашем случае) d:\Server\cstrike\cfg\
[*] И будем вводить туда консольные команды. Список всех команд приведен ниже.
// вести лог сервера
sv_logbans 1
// записывать в лог баны
sv_logecho 1
// показывать информацию из логов сервера в консоль(сервера)
sv_logfile 1
// записывать логи сервера в файл
mp_logdetail 3
// записывать в лог повреждения от: 0 - выключено; 1 - противников; 2 - своих; 3 - и от противников и от своих.
// разрешить ботам использовать гранаты
bot_allow_machine_guns 0
// разрешить ботам использовать пулемёты
bot_allow_pistols 0
// разрешить ботам использовать пистолеты
bot_allow_rifles 0
// разрешить ботам использовать винтовки
bot_allow_shotguns 0
// разрешить ботам использовать дробовики
bot_allow_snipers 0
// разрешить ботам использовать снайперские винтовки
bot_allow_sub_machine_guns 0
// разрешить ботам использовать мини-пулемёты
// разрешить NPC на сервере
mp_allowspectators 1
// разрешить игрокам после смерти наблюдать за другими игроками
mp_autocrosshair 0
// разрешить автоприцеливание
mp_autokick 0
// разрешить автокик за убийство игроков своей команды?
mp_autoteambalance 1
// разрешить автоматическую балансировку команд
mp_buytime 0.5
// время покупки в минутах
mp_c4timer 35
// время таймера бомбы
mp_chattime 10
// время, в течении которого игроки смогут разговаривать между собой после окончания текущей карты
mp_decals 200
// Колличество разрешённых декалей (спреи, пятна крови, пулевые отверстия)
mp_fadetoblack 0
// после смерти экран становится чёрным, не давая игроку смотреть за другими игроками в режиме спектатора
mp_falldamage 1
// урон от падения
mp_flashlight 1
// разрешить фонарик
mp_forcecamera 1
// разрешить переключения камер в режиме спектатора
mp_forcerespawn 1
// команда для Half-Life 2: Deathmatch. Игрок появляется сразу после смерти
mp_fraglimit 0
// максимальное колличество фрагов, при достижении которого определённым игроком карта сменится на следующую
mp_freezetime 5
// начальный отсчёт времени в начале каждого раунда(для покупки), в секундах
mp_footsteps 1
// звуки шагов
mp_friendlyfire 1
// возможность атаковать своих
mp_hostagepenalty 0
// кикает террориста при убийстве заданного лимита заложников
mp_limitteams 1
// максимальное количество игроков команды 1 которое может превышать количество игроков в команде 2
mp_maxrounds 0
// максимальное количество раундов на одной карте
mp_playerid 1
// контролирует информацию которую игрок видет на панели статуса: 0 все имена; 1 только имена игроков своей команды; 2 без имён
mp_spawnprotectiontime 10
// кикает игроков которые убивают членов своей команды в течении # секунд после перезапуска раунда
mp_roundtime 3
// длина раунда в минутах
mp_startmoney 800
// колличество начальных денег у игроков
mp_teamplay 0
// команда для Half-Life 2: Deathmatch. Игра по командам(Альянс и повстанцы)
mp_timelimit 30
// ограничение по времени на карту, в минутах
mp_tkpunish 0<
// в следующем раунде убить того, кто убил игрока своей команды
mp_weaponstay 0
// команда для Half-Life 2: Deathmatch. После подбирания оружия оно остаётся на месте.(относится только к оружию заранее расположенному на карте разработчиками)
mp_winlimit 0
// максимальное количество побед, после которой произойдёт смена карты
// определяет ускорение игрока, когда он находится в воздухе(например падает)
sv_allowdownload 1
// разрешить загрузку с сервера(например карт)
sv_allowupload 1
// разрешить загрузку на сервер(например спреев)
sv_alltalk 0
// разрешить всем слышать переговоры друг друга по микрофону, вне зависимости от команды
sv_cheats 0
// разрешить игровые читы на сервере (пример: noclip)
sv_consistency 1
// предписывает ли сервер последовательность файла для критических файлов
sv_contact your@email.ru
// e-mail администратора сервера
sv_enableoldqueries 1
// разрешить поддержку старого стиля (Half-life 1) серверных запросов
sv_footsteps 1
// использовать звук шагов при передвижении игрока
sv_friction 4
// коэффициент трения в игре
sv_gravity 800
// гравитация в игре
sv_maxrate 20000
// максимальное колличество байт в секунду, которое может быть передано сервером(0 == без ограничения)
sv_maxspeed 320
// максимальная скорость игрока
sv_maxunlag 0.5
// максимальная лагокомпенсация, в секунду
sv_maxupdaterate 40
// максимальное колличество обновлений(колличество пакетов) которое разрешено на сервере
sv_minrate 0
// минимальное колличество байт в секунду, которое может быть передано сервером(0 == без ограничения)
sv_minupdaterate 10
// минимальное колличество обновлений(колличество пакетов) которое разрешено на сервере
sv_pausable 0
// разрешить ставить паузу во время игры
sv_rcon_banpenalty 15
// колличество минут на которое банится игрок пытавшийся подобрать rcon-пароль к серверу
sv_rcon_maxfailures 5
// максимальное колличество попыток при наборе rcon-пароля, после истечения которых игрок будет забанен
sv_rcon_minfailures 5
// колличество попыток при наборе rcon-пароля во время заданное sv_rcon_minfailuretime, после истечения которых игрок будет забанен
sv_rcon_minfailuretime 30
// колличество секунд для определения неверной rcon-аутенфикации
sv_specaccelerate 5
// ускорение при передвижения в режиме spectator
sv_specnoclip 1
// игрок в режиме spectator может пролетать через стены и объекты
sv_specspeed 3
// скорость передвижения в режиме spectator
sv_stats 1
// собирать статистику использования процессора
sv_stepsize 18
// длинна шага в юнитах
sv_stopspeed 75
// минимальная скорость остановки на поверхности
sv_timeout 30
// если сервер не получает отклика от клиента в течении # секунд, клиент отключается от сервера
sv_unlag 1
// лагокомпенсация
sv_voiceenable 1
// разрешить использование микрофона
decalfrequency 10
host_framerate 0
rcon_password "password"
// задать rcon-пароль для удалённого управления сервером
exec banned_ip.cfg
// добавляем в данный файл banned_ip.cfg список забаненных по Steam ID
exec banned_user.cfg
// добавляем в данный файл banned_user.cfg список забаненных по имени игрока
writeid
// записываем SteamID игроков
writeip
// записываем IP игроков
hostname "Dedicated Server"
// задаём имя сервера
1. Клановый:
//tv_name ""
sv_password ""
//tv_password ""
//tv_relaypassword ""
sv_region 3
sv_contact ""
rcon_password ""
mp_footsteps 1
mp_flashlight 1
mp_autocrosshair 0
mp_friendlyfire 1
mp_chattime 10
mp_timelimit 1000
mp_buytime .25
mp_maxrounds 0
mp_winlimit 0
mp_startmoney 16000
mp_roundtime 2
mp_freezetime 2
mp_c4timer 35
mp_limitteams 0
mp_autoteambalance 0
mp_dynamicpricing 0
mp_falldamage 1
mp_tkpunish 0
mp_autokick 0
mp_spawnprotectiontime 0
mp_hostagepenalty 0
sv_gravity 800
sv_stopspeed 75
sv_maxspeed 320
sv_accelerate 5
sv_airaccelerate 10
sv_wateraccelerate 10
sv_waterfriction 1
sv_footsteps 1
sv_rollspeed 200
sv_rollangle 0
sv_friction 4
sv_bounce 0
sv_maxvelocity 3500
sv_stepsize 18
sv_backspeed 0.6
sv_waterdist 12
sv_pushaway_force 30000
sv_pushaway_min_player_speed 75
sv_pushaway_max_force 1000
sv_rcon_minfailuretime 30
sv_rcon_minfailures 2
sv_rcon_maxfailures 10
sv_rcon_banpenalty 1000
sv_unlag 1
sv_maxunlag 0.5
sv_lagflushbonecache 1
sv_unlag_fixstuck 1
sv_max_usercmd_future_ticks 8
sv_runcmds 1
sv_showimpacts 0
sv_showplayerhitboxes 0
sv_lan 0
sv_minrate 20000
sv_maxrate 30000
sv_minupdaterate 40
sv_maxupdaterate 100
sv_mincmdrate 40
sv_maxcmdrate 100
sv_client_interpolate 1
// sv_client_interp 0.01
sv_client_cmdrate_difference 5
sv_timeout 65
// sv_visiblemaxplayers 12
sv_pure 0
sv_pure_kick_clients 1
sv_enableoldqueries 0
sv_max_queries_sec_global 60
sv_max_queries_window 30
sv_max_queries_sec 3.0
//tv_delay 100
//tv_delaymapchange 1
//tv_enable 1
//tv_dispatchmode 1
//tv_overridemaster 0
//tv_autorecord 0
//tv_maxclients 128
//tv_snapshotrate 16
//tv_timeout 30
//tv_autoretry 1
//tv_chattimelimit 3
//tv_maxrate 5000
//tv_nochat 0
//tv_port 27020
sv_alltalk 1
sv_voiceenable 1
sv_voicecodec vaudio_speex
sv_consistency 1
sv_allowupload 0
sv_allowdownload 1
sv_downloadurl ""
log on
sv_logbans 0
sv_logecho 1
sv_log_onefile 0
sv_logflush 0
sv_logfile 1
sv_logsdir "logs"
sv_logblocks 0
sv_logdownloadlist 1
mp_logdetail 0
sv_specaccelerate 5
sv_specspeed 1.5
sv_specnoclip 1
mp_forcecamera 1
mp_allowspectators 0
mp_playerid 0
mp_playerid_delay 0.5
mp_playerid_hold 0.25
mp_fadetoblack 0
sv_maxreplay 0
sv_pausable 1
sv_cheats 0
sv_filterban 1
sv_stats 0
sv_instancebaselines 1
mp_decals 200
fps_max 1000
decalfrequency 2000
r_spray_lifetime 0
//tv_name ""
//sv_password ""
//tv_password ""
//tv_relaypassword ""
sv_region 3
sv_contact ""
rcon_password ""
mp_footsteps 1
mp_flashlight 1
mp_autocrosshair 0
mp_friendlyfire 1
mp_chattime 10
mp_timelimit 30
mp_buytime .25
mp_maxrounds 0
mp_winlimit 0
mp_startmoney 800
mp_roundtime 2
mp_freezetime 2
mp_c4timer 35
mp_limitteams 1
mp_autoteambalance 0
mp_dynamicpricing 0
mp_tkpunish 0
mp_autokick 0
mp_spawnprotectiontime 0
mp_hostagepenalty 4
sv_gravity 800
sv_stopspeed 75
sv_maxspeed 320
sv_accelerate 5
sv_airaccelerate 10
sv_wateraccelerate 10
sv_waterfriction 1
sv_footsteps 1
sv_rollspeed 200
sv_rollangle 0
sv_friction 4
sv_bounce 0
sv_maxvelocity 3500
sv_stepsize 18
sv_backspeed 0.6
sv_waterdist 12
sv_pushaway_force 30000
sv_pushaway_min_player_speed 75
sv_pushaway_max_force 1000
sv_rcon_minfailuretime 30
sv_rcon_minfailures 5
sv_rcon_maxfailures 10
sv_rcon_banpenalty 5
sv_unlag 1
sv_maxunlag .5
sv_lagflushbonecache 1
sv_unlag_fixstuck 1
sv_max_usercmd_future_ticks 8
sv_runcmds 1
sv_showimpacts 0
sv_showplayerhitboxes 0
sv_lan 0
sv_minrate 20000
sv_maxrate 100000
sv_minupdaterate 40
sv_maxupdaterate 100
sv_mincmdrate 40
sv_maxcmdrate 100
sv_client_interpolate 1
// sv_client_interp 0.01
sv_client_cmdrate_difference 5
sv_timeout 65
// sv_visiblemaxplayers 12
sv_pure 0
sv_pure_kick_clients 1
sv_enableoldqueries 0
sv_max_queries_sec_global 60
sv_max_queries_window 30
sv_max_queries_sec 3.0
//tv_delay 100
//tv_delaymapchange 1
//tv_enable 0
//tv_dispatchmode 1
//tv_overridemaster 0
//tv_autorecord 0
//tv_maxclients 128
//tv_snapshotrate 16
//tv_timeout 30
//tv_autoretry 1
//tv_chattimelimit 3
//tv_maxrate 5000
//tv_nochat 0
sv_alltalk 0
sv_voiceenable 1
sv_voicecodec vaudio_speex
sv_consistency 1
sv_allowupload 0
sv_allowdownload 1
sv_downloadurl ""
log on
sv_logbans 0
sv_log_onefile 0
sv_logecho 1
sv_logflush 0
sv_logfile 1
sv_logsdir "logs"
sv_logblocks 0
sv_logdownloadlist 1
mp_logdetail 3
sv_specaccelerate 5
sv_specspeed 1.5
sv_specnoclip 1
mp_forcecamera 0
mp_allowspectators 1
mp_playerid 0
mp_playerid_delay 0.5
mp_playerid_hold 0.25
mp_fadetoblack 0
sv_maxreplay 0
sv_pausable 0
sv_cheats 0
sv_filterban 1
sv_stats 1
sv_instancebaselines 1
mp_decals 200
fps_max 1000
decalfrequency 2000
r_spray_lifetime 0
1. Переместить файл с картой в папку d:\Server\cstrike\maps
2. Прописать название карты(файла) в текстовые документы d:\Server\cstrike\mapcycle.txt и d:\Server\cstrike\maplist.txt
[*] Так же вы можете изменить окно приветствия при подключении к вашему серверу путем редактирования файла d:\Server\cstrike\motd.txt (ВНИМАНИЕ: Необходимы знания HTML).
Запуск сервер
[*] Для запуска сервера, создадим в папке d:\Server текстовый файл Start.txt и откроем его.
[*] В нем напишем следующие:
cls
:flag
echo (%date% %time%) Thx for Gamer.ru by Draco
echo (%date% %time%) Checking for updates
start /wait d:\Server\update.bat
echo (%date% %time%) Starting SRCDS
start /wait d:\Server\srcds.exe -console -game cstrike +maxplayers 16 +map de_dust
echo (%date% %time%) Restarting SRCDS
goto flag
[*] Теперь для запуска сервера достаточно лишь запустить наш файл Start.bat.
Хочется еще отдельно рассмотреть строку start /wait d:\Server\srcds.exe -console -game cstrike -tickrate 100 +maxplayers 16 +map de_dust из нашего файла запуска.
Мы видим, что запускаемый файл srcds.exe запускается с определенными ключами, а именно:
-console - запускает сервер в консольном режиме. Без этого параметра сервер запустится с графическим интерфейсом (как через Steam) и потребует ручного нажатия кнопки для действительного запуска
-game - указывает игру, для которой запускается сервер.
+maxplayers - указывает максимальное количество игроков на сервере
+map - указывает стартовую карту для сервера.
-tickrate - указывает тикрейт сервера. По умолчанию CSS запускается с тикрейтом 33.
Полный список параметров доступен
Ну вот собственно и все, если у вас будут вопросы, пишите в комментариях, постараюсь на них ответить. В скором времени я вам расскажу как устанавливать моды и прочие вещи на сервер, а на сегодня все.