Half-Life Deathmatch: Source это классический дезматч Half-Life 1, пересобранный на том же движке Source, что и HL2:DM. Хостинг близок к HL2:DM с двумя отличиями, о которых стоит знать заранее: сервер устанавливается как два приложения, а свежая установка падает при загрузке, пока вы не добавите один симлинк. Оба момента разобраны ниже.
Установка сервера (два приложения)
HLDM:Source это мультиплеерный движок HL2:DM (приложение 232370), запускающий контент Half-Life 1 (приложение 360). Установите оба анонимно в одну папку:
./steamcmd.sh +login anonymous \
+app_update 232370 validate \
+app_update 360 validate \
+quitПапка игры это hl1mp, а конфиг, который она читает при загрузке:
<install>/hl1mp/cfg/server.cfgПодвох: симлинк server_srv.so
Именно это ставит людей в тупик. Выделенный движок загружает игровой код из файла server_srv.so, но HLDM:Source поставляется только с server.so. Без псевдонима сервер падает с segfault в момент загрузки, с ошибкой ServerDLL_Load и без внятного сообщения. Решение это один симлинк рядом с реальным файлом в hl1mp/bin:
cd <install>/hl1mp/bin
ln -sf server.so server_srv.soСделайте это один раз после установки. Повторный запуск безвреден, поэтому это безопасно поместить в стартовый скрипт, который выполняется перед srcds.
Строка запуска
Та же обёртка srcds_run, что и у HL2:DM, направленная на папку игры hl1mp. Стартовая карта и лимит игроков задаются аргументами:
./srcds_run -game hl1mp -console \
-port 27015 \
+map crossfire \
+maxplayers 16 \
+exec server.cfg- Стандартные карты это crossfire (классика, с кнопкой запуска ракеты), boot_camp, bounce, datacore, frenzy, lambda_bunker, rapidcore, snarkpit, stalkyard, subtransit и undertow.
- maxplayers 16 подходит для стандартных карт. crossfire и stalkyard остаются весёлыми с полным сервером.
- Порт 27015 это игровой порт и порт запросов. Откройте UDP (и TCP для RCON) в вашем файрволе.
Стандартный server.cfg
Имя, пароли и правила идут в hl1mp/cfg/server.cfg. Каждый сам за себя или командный режим задаётся через mp_teamplay, тот же переключатель, что и в HL2:DM:
hostname "My HLDM:Source Server" // CHANGE ME
rcon_password "pick-a-long-secret" // CHANGE ME
sv_password "" // a word here = private, blank = open
sv_lan 0
mp_teamplay 0 // 0 = free-for-all, 1 = team deathmatch
mp_fraglimit 0 // kills to end the map, 0 = no limit
mp_timelimit 20 // minutes to end the map, 0 = no limitДля этой сборки нет работающих ботов, поэтому нужны реальные игроки. Лучше всего с парой друзей на crossfire.