Вопреки возможности скачать уже готовый сервер игры мы будем ставить его с нуля. Во-первых, это даст понять нам как все устроено, а, во-вторых, поможет поставить и настроить только то, чтомы хотим и как мы хотим.
Загрузка и установка HldsUpdateTool
Первое, что нам понадобится - это HLDSUpdateTool. Скачиваем его и запускаем. Устанавливаем в любое место, но только не в папку Стима. Например: D:\Valve\HLServer. Запускаем, выбираем наше местоположение и заканчиваем установку.
Далее переходим в папку с установленным HLDSUpdateTool и запускаем HldsUpdateTool.exe для загрузки обновлений.
Загрузка сервера с использованием HldsUpdateTool
Запускаем командную строку (Win+R -> пишем CMD).
Для установки сервера переходим в папку установленного HldsUpdateTool и пишем команды:
HldsUpdateTool.exe -command update -game left4dead -dir c:\serverpath
или
HldsUpdateTool.exe -command update -game left4dead -dir .
(для текущего расположения)
В случае установки сервера Left4Dead 2 параметр -game должен быть left4dead2. Список всех доступных игр мы увидим, если используем ключ -command list.
В нашем случае она выглядит как
D:
cd D:\Valve\HLServer
HldsUpdateTool.exe -command update -game left4dead -dir d:\Servers\L4D
После установки сервера переходим в его папку, создаем текстовый файл server.cfg и сохраняем его в \l4d\left4dead\cfg
Красным выделены команды, на которые стоит обратить внимание.
//1 - истина, 0 - ложь
//Server general settings
hostname "Название сервера" // Название Сервера
rcon_password "RCON пароль" // Пароль для управления сервером (Remote Control)
sv_rcon_maxfailures "3" // Лимит неверных авторизаций (RCON)
sv_rcon_banpenalty "60" // Время бана при превышении лимита неверных авторизаций (RCON)
sv_steamgroup "id группы" // id steam группы, для привязки сервера
sv_steamgroup_exclusive "0" //Только для членов группы
sv_password "пароль" //пароль доступа к серверу
hostport "27015" //порт сервера
sv_lan "0" //0-сервер для интернета и локальной сети, 1-только для локальной сети
sv_allow_lobby_connect_only "0" //Разрешение соединяться только из лобби.
sv_gametypes "versus" //тип игры (coop,survival,versus)
mp_gamemode "versus" //режим игры (coop,survival,versus)
z_difficulty "normal" //сложность (easy/normal/hard/impossible)
motd_enabled 1 //This enables or disables the message of the day
sv_cheats "0" // Возможности использовать читы (1/0=Вкл/Выкл)
sv_region "255" //Регион нахождения сервера (0=US East coast, 1=US West coast, 2= South America, 3=Europe, 4=Asia, 5=Australia, 6=Middle East, 7=Africa and 255=world)
sv_search_key "1234" //Ключ, который позволит найти сервер через систему матч-мейкинга
sv_visiblemaxplayers "8" // Число игроков, отображаемое в браузере-серверов
// Server Masters
setmaster enable //мастерсервер вкл.
setmaster add 188.40.40.201:27011 //добавление сервера в список setti
setmaster add 68.142.72.250:27011 //будет добавлен в список мастер-сервера
setmaster add 72.165.61.189:27011
setmaster add 69.28.140.246:27011
setmaster add 69.28.140.247:27011
// Server Logs
log "off" // Режим записи логов (On/Off=Вкл/Выкл)
// 0=Отключение записи.
// 1=Запись вражеских атак.
// 2=Запись нападений товарищей.
// 3=Полная запись событий.
mp_logbans "0" // Запись в логи бан-событий (1/0=Вкл/Выкл)
mp_logecho "0" // Анонсировать события в консоли (1/0=Вкл/Выкл)
mp_log_onefile "0" // Единый файл для логов (1/0=Вкл/Выкл)
mp_logfile "0" // Запись логов сервера в файл (1/0=Вкл/Выкл)
mp_logmessages "0" // Возможность записывать сообщения (1/0=Вкл/Выкл)
//Server settings
sv_consistency "0" // Запрет на использование не стандартных моделей (1/0=Вкл/Выкл)
sv_cheats "0" // Встроенные консольные читы (1/0=Вкл/Выкл)
sv_voiceenable "1" // Возможность использования микрофона (1/0=Вкл/Выкл)
sv_alltalk "0" // Общие переговоры по микрофону (1/0=Вкл/Выкл)
sv_contact "your@mail" // Ваш e-mail для обратной связи
sv_pausable "0" //Возможна ли пауза сервера
sv_pure "1" //Совпадает ли контент клиента с тем, что на сервере (возможно не работает с vpk)
sv_pure_kick_clients "1" //Кикать клиентов с кастомным контентом
//sv_tags "" //Теги сервера
// Optimizing server
sv_timeout "20" // Время, по истечении которого игрок отключается от сервера, если от него небыло полученно необходимого отклика (В секундах)
sv_minrate "0"
sv_maxrate "30000"
// Чтение при запуске
exec banned_ip.cfg //добавляем в данный файл banned_ip.cfg список забаненных по Steam ID
exec banned_user.cfg //добавляем в данный файл banned_user.cfg список забаненных по имени игрока
writeid //записываем SteamID игроков)
writeip //записываем IP игроков
За последовательность смены карт и кампаний на сервере отвечают файлы mapcycle.txt, maplist.txt и missioncycle.txt, расположенные в папке l4d/left4dead/
Откройте данные файлы в любом текстовом редакторе и измените последовательность и/или количество карт и кампаний.
Откройте данные файлы в любом текстовом редакторе и измените последовательность и/или количество карт и кампаний.
Изменение MOTD и баннера
Взглянем на картинку, взятую с http://left4dead411.com
Мы видим, что изменить можно как баннер, так и сообщение дня. Поскольку и баннер и MOTD - это просто html файлы, мы можем создать свои собственные файлы, залить на хостинг и использовать ссылки на них в файлах host.txt и motd.txt сервера. Так же можно использовать html-код прямо в файлах host.txt и motd.txt
Нужно также понимать, что баннер и сообщение дня меняют свои размеры, в зависимости от разрешения экрана, на котором они отображаются.
Разрешение | Баннер | MOTD |
800x600 | 335x66 | 600x300 |
1024x768 | 430x86 | 766x382 |
1280x1024 | 575x115 | 1020x510 |
1680x1050 | 400x80 | 718x359 |
1920x1080 | 605x121 | 1076x538 |
Заметте, что соотношение сторон баннера = 5:1
Есть два способа представить баннер: сделать его довольно большим, чтобы он обрезался для людей, которые играют на маленьком разрешении экрана, или использовать таблицы стилей CSS в вашем HTML коде, чтобы автоматически менять размер баннера для пользователей, входящих на сервер.
Запуск сервера
Создаем ярлык для файла srcds.exe, находящегося в папке сервера, открываем его свойства и дописываем параметры запуска (в зависимости от того, какой сервер мы хотим)
D:\Servers\L4D\l4d\srcds.exe -console +sv_lan 0 -game left4dead +maxplayers 8 +map l4d_vs_hospital01_apartment +gamemode versus +ip xxx.xxx.xxx.xxx -port 27015
Так же можно создать bat-файл для запуска сервера с этими параметрами.
Например вот такой файл будет следить за обновлениями сервера и за его "падениями":
Присоединяемся к своему серверу командой: connect xxx.xxx.xxx.xxx (где xxx - наш ip)
О плагинах SourceMod и MetaMod читайте в соотв. резделе.
Обновление сервера
За обновление сервера отвечает команда -verify_all. Т.е. для обновления в командной строке мы должны будем написать
Запуск сервера
Создаем ярлык для файла srcds.exe, находящегося в папке сервера, открываем его свойства и дописываем параметры запуска (в зависимости от того, какой сервер мы хотим)
D:\Servers\L4D\l4d\srcds.exe -console +sv_lan 0 -game left4dead +maxplayers 8 +map l4d_vs_hospital01_apartment +gamemode versus +ip xxx.xxx.xxx.xxx -port 27015
Так же можно создать bat-файл для запуска сервера с этими параметрами.
Например вот такой файл будет следить за обновлениями сервера и за его "падениями":
@echo off
title SRCDS Watchdog/Updater
cls
echo (%date% %time%) Now starting SRCDS Watchdog/Updater
echo (%date% %time%) Now starting SRCDS Watchdog/Updater >> watchdog.log
:begin
echo (%date% %time%) Checking for SRCDS updates
echo (%date% %time%) Checking for SRCDS updates >> watchdog.log
start /wait D:\Servers\L4D\l4d\srcds.exe -command update -game left4dead -dir D:\Servers\L4D
echo (%date% %time%) Starting server
echo (%date% %time%) Starting server >> watchdog.log
start /wait D:\Servers\L4D\l4d\srcds.exe -console +sv_lan 0 -game left4dead +maxplayers 8 +map l4d_vs_hospital01_apartment +gamemode versus +ip xxx.xxx.xxx.xxx -port 27015
echo (%date% %time%) WARNING: SRCDS quit or crashed, restarting
echo (%date% %time%) WARNING: SRCDS quit or crashed, restarting >> watchdog.log
goto begin
title SRCDS Watchdog/Updater
cls
echo (%date% %time%) Now starting SRCDS Watchdog/Updater
echo (%date% %time%) Now starting SRCDS Watchdog/Updater >> watchdog.log
:begin
echo (%date% %time%) Checking for SRCDS updates
echo (%date% %time%) Checking for SRCDS updates >> watchdog.log
start /wait D:\Servers\L4D\l4d\srcds.exe -command update -game left4dead -dir D:\Servers\L4D
echo (%date% %time%) Starting server
echo (%date% %time%) Starting server >> watchdog.log
start /wait D:\Servers\L4D\l4d\srcds.exe -console +sv_lan 0 -game left4dead +maxplayers 8 +map l4d_vs_hospital01_apartment +gamemode versus +ip xxx.xxx.xxx.xxx -port 27015
echo (%date% %time%) WARNING: SRCDS quit or crashed, restarting
echo (%date% %time%) WARNING: SRCDS quit or crashed, restarting >> watchdog.log
goto begin
Присоединяемся к своему серверу командой: connect xxx.xxx.xxx.xxx (где xxx - наш ip)
О плагинах SourceMod и MetaMod читайте в соотв. резделе.
Обновление сервера
За обновление сервера отвечает команда -verify_all. Т.е. для обновления в командной строке мы должны будем написать
HldsUpdateTool.exe -command update -game left4dead -dir c:\serverpath -verify_all
или
HldsUpdateTool.exe -command update -game left4dead -dir . -verify_all
(для текущего расположения)