Сделай сам свой сервер CS: Source
Данная
инструкция предназначена для тех, кто хочет установить выделенный
сервер Counter-Strike: Source. Ее можно взять за основу и для других
модов Source, поддерживаемых VALVe. Предполагается, что человек,
создающий сервер, неплохо разбирается в операционной системе и ему не
нужно отвечать на вопросы из книжки Wndows (Linux) для чайников.
Поэтому здесь рассматривается лишь последовательность шагов по
установке выделенного сервера на знакомую вам платформу.
1. Введение.
Данная
инструкция предназначена для тех, кто хочет установить выделенный
сервер Counter-Strike: Source. Ее можно взять за основу и для других
модов Source, поддерживаемых VALVe. Предполагается, что человек,
создающий сервер, неплохо разбирается в операционной системе и ему не
нужно отвечать на вопросы из книжки Wndows (Linux) для чайников.
Поэтому здесь рассматривается лишь последовательность шагов по
установке выделенного сервера на знакомую вам платформу.
2. Получение дистрибутива.
Настойчиво
рекомендую брать дистрибутив сервера и обновлять его через steam. Это
бесплатно, быстро и своевременно. Единственное препятствие для работы
со стимом, когда машина, на которой установлен сервер, не имеет доступа
в Интернет или находится за фаероллом с закрытыми портами, необходимыми
для скачки сервера или обновлений. Утилита для получения дистрибутива
сервера и его обновления, на сегодняшний день может работать из под
Windows и получать дистрибутив для сервера Linux и наоборот.
Так
что вам остается лишь найти машину, имеющую прямой доступ в Интернет.
Только после того, как вы оказались в тупике и не можете сами получить
дистрибутив сервера или его обновление со steam, тогда уже берите
предоставленный кем-то дистрибутив и при каждом обновлении ждите, что
кто-то сделает патч для вашего сервера.
Для получения
дистрибутива сервера и его дальнейшего обновления через steam
используется утилита Windows HLDS Update Tool и Linux HLDS Update Tool.
Это архивы, после распаковки которых вы получите файлы
HldsUpdateTool.exe для Win и steam для Linux. Если с HldsUpdateTool.exe
все понятно, то файл steam еще необходимо сделать запускающимся: chmod
+x steam. Все эти утилиты Вы можете взять на srcds.com
Теперь утилита готова для запуска:
HldsUpdateTool.exe - для Win
./steam - для Linux
При первом запуске утилита обновится до последней версии и после обновления выдаст синтаксис доступных команд.
Use: hldsupdatetool -command [parameters] [flags]
Commands:
update: Install or update HLDS
parameters:
-game - Mod name: cstrike, tfc, dod, dmc, valve, czero, or ricochet
-dir - 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
For example: hldsupdatetool -command update -game cstrike -dir c:hlds
version: View installed versions
list: View available games
Командой
hldsupdatetool -command list
получаем список доступных модов сервера для скачки.
** 'game' options for Source DS Install:
"Counter-Strike Source"
"dods"
"garrysmod"
"hl2mp"
** 'game' options for HL1 DS Install:
"cstrike"
"czero"
"dmc"
"dod"
"gearbox"
"ricochet"
"tfc"
"valve"
** 'game' options for Third-Party game servers:
"darkmessiah"
"garrysmod"
"redorchestra"
"ship"
"sin"
Осталось лишь набрать команду для получения дистрибутива (используем директорию srcds на диске C: ):
HldsUpdateTool.exe -command update -game "Counter-Strike Source" -dir c:/srcds
и
процесс пошел. Если утилита HldsUpdateTool у вас находится в той же
директории, где будет располагаться сервер, то вместо -dir c:/srcds
делаем -dir . .
По окончанию работы утилиты вы получите надпись:
HLDS installation up to date
Это
значит, что вы получили последнюю версию сервера, и она установлена у
нас в c:/srcds. Создайте скриптик для последующих обновлений сервера
Update.bat (update.sh для Linux) - запустите notepad.exe и в
появившемся окне напишите следующее:
C:/SRCDS/hldsupdatetool.exe -command update -game "Counter-Strike Source" -dir .
Сохраните
файл в папке с Вашим сервером, с названием update.bat (название файла
можете сдалть любое, главное, чтобы расширение было .bat, а не txt!).
Немного
о том, что этот скриптик делает: запускает установку или обновление
сервера Counter-Strike: Source в ту же папку, где находится
hldsupdatool.exe и дожидается окончания этого процесса. Для создания
сервера HL2DM или DODS используйте в параметре -game значение "hl2mp"
или "dods" соответственно (кавычки обязательны!).
или для Linux:
#!/bin/bash
cd /home/cs/srcds_l
./steam -command update -game 'Counter-Strike Source' -dir .
и теперь можно переходить к тестированию и основным настройкам.
3. Тестирование и запуск сервера.
Для
начала создадим скрипт запуска. В Windows это можно сделать ярлыком:
щелкаем правой клавишей на рабочем столе, выбираем Создать/Ярлык, в
появившемся окне «Создание ярлыка» пишем c:/srcds/srcds.exe или находим
srcds.exe через Обзор, даем имя ярлыку и говорим Готово. На рабочем
столе появился новый ярлык. Заходим в его Свойства, выбираем закладку
Ярлык и в строке Объект, где у нас уже прописано С:/SRCDS/srcds.exe,
дописываем:
С:/SRCDS/srcds.exe -console -game cstrike +maxplayers 16 +map de_dust
Если
вы хотите, что бы сервер стартовал автоматически при
запуске/перезагрузки машины, то сделайте такой же ярлык в
Программы/Автозагрузка.
Основные параметры строки запуска и конфигурации сервера не сильно отличаются от серверов на движке HL1.
Теперь рассмотрим запуск сервера на платформе Linux. Простой скрипт запуска start_css.sh:
#!/bin/bash
cd /home/cs/srcds_l
./srcds_run -game cstrike +maxplayers 16 +map de_dust > /home/cs/server_css.log 2>&1 &
При этом, сервер будет писать все свои действия в /home/cs/server_css.log. Останавливаем сервер с помощью скрипта:
#!/bin/bash
kill `ps ax -H --cols 1000|grep -e "-game cstrike"|grep -e "srcds_"|grep -v grep|awk '{printf("%sn",$1);}'`
Вам
осталось выбрать тип сервера, который вы хотите запустить – лановый
(+sv_lan 1 в строке запуска) или доступный из интеренета (+sv_lan 0),
будет ли сервер защищен античитом от VALVe (по умолчанию защищен) или
нет (-insecure в строке запуска), нужно, что бы ваш сервер отображался
в глобальном списке серверов (включено по умолчанию) или нет (-nomaster
в строке запуска).
Вот как выглядит полная типичная строка запуска:
-console -game cstrike -nomaster -insecure -pingboost1 +map de_dust2 +maxplayers 16
Если
сервер был скачан без ошибок, то вы увидите появившуюся консоль
сервера. Если этого не произошло, возвращайтесь к пункту Получение
дистрибутива.
В консоли сервера после всех инициализаций можем набрать:
version - консоль покажет версию сервера;
stats - консоль покажет основные параметры работы на данный момент – загрузку процессора, fps, количество игроков;
exit - закрыть сервер.
Не рекомендуется играть с той же машины, на которой стоит выделенный сервер!
4. Основные настройки.
Убедились
что сервер работает? Теперь желательно его настроить. Подавляющее
большинство настроек SRCDS выполняется с помощью файла server.cfg,
расположенного в папке cfg установленной игры (/cstrike/cfg для
Counter-Strike: Source, /hl2mp/cfg для HL2DM, /dod/cfg для Day of
Defeat: Source).
При отсутствии этого файла (как например при
начальной становке) сервер запускается со значениями по умолчанию.
Пример файла server.cfg для Counter-Strike: Source можно найти в
интернете. Детальное описание всех настроек выходит за рамки данной
статьи.
Другие файлы, на которые вам стоит обратить внимание (на примере CSS, для других игр, замените cstrike на папку игры):
/cstrike/maplist.txt
- содержит список всех карт на сервере. Если карты нет в списке, то ее
нельзя поставить, даже если соответствующий .bsp файл находится в папке
maps
/cstrike/mapcycle.txt - содержит список карт, которые находятся
в игровом цикле. Если карты здесь нет, то поствить ее можно только
вручную.
/cstrike/motd.txt - содержит приветственное сообщение,
демонстрируемое игрокам при входе на сервер или при смене карты. При
форматировании использутеся HTML
/cstrike/cfg/autoexec.cfg -
содержит параметры, которые должны выполняться один раз при запуске
сервера (в отличие от server.cfg, который исполняется при каждой смене
карты).
Сервер скачан, запущен и работает. Установка
дополнительных плагинов на сервер в этой статье рассматриваться не
будет. Я лишь приведу ссылки, где их можно взять:
Metamod: Source
SourceMM Plugins
Mani Admin Plugin
RPG Mod
Zombie Mod