Настройка сервера S.T.A.L.K.E.R. Зов Припяти

Материал из xrWiki
Перейти к: навигация, поиск

Запуск игрового сервера[править]

Для запуска игрового сервера вы можете воспользоваться bat-файлами (находящимися в папке с установленной игрой), которые содержат стандартные конфигурации игровых серверов.

Параметры среды окружение сервера[править]

Для запуска процесса выделенного сервера (dedicated\xrEngine.exe) требуется, чтобы рабочей папкой была та, в которой находятся dll-файлы игры (обычно это в папке bin, установленной игры). Т.е. из папки bin, запустить .\dedicated\xrEngine.exe

После того, как серверный процесс запущен, он должен загрузить файловую систему. Файловая система определяется конфигурационным файлом fsgame.ltx (который обычно находится на уровень выше папки bin).

Чтобы задать путь к этому конфигурационному файлу, используйте параметер командной строки -fsltx Т.е. из папки bin запустить .\dedicated\xrEngine.exe -fsltx ..\fsgame.ltx

Итак, процесс сервера запущен. Движемся дальше.

Для сервера нужна папка $app_data_root$, заданная в конфигурационном файле (fsgame.ltx). В этой папке хранятся все необходимые конфигурационные файлы. Если у вас несколько игровых серверов на одной машине, вы можете создать несколько разных fsgame.ltx для каждого с разными директориями $app_data_root$.

Параметры командной строки[править]

Рассмотрим стандартную команду запуска:

.\dedicated\xrEngine.exe [ -fsgltx путь_к_fsgame.ltx ] [ -ltx путь_к_user.ltx ]  [ -start server(имя_карты/режим_игры/public=1/hname=имя_сервера/другие_параметры) client(localhost/другие_параметры) ]

Подробнее по ключам:

  • -fsltx - путь к файлу конфигурации fsgame.ltx
  • -ltx - путь к файлу конфигурации игры.
  • -start server(параметры) client(localhost) - запустить сервер с параметрами и подключиться к нему (client(localhost) - обязательный)

Подробнее по параметрам:

  • public – интернет сервер (будет проверять CD-key и только для залогиненых в GameSpy пользователей)
  • hname – Имя сервера
  • psw – пароль (строка)
  • spectrmds – режимы наблюдателя (битовая маска):
    • бит 0: свободный полет
    • бит 1: наблюдать из глаз других игроков (если наблюдатель)
    • бит 2: наблюдать со стороны (вид от 3-его лица)
    • бит 3: свободно крутить камерой (при виде от 3-его лица)
    • бит 4: зарезервировано
    • бит 5: наблюдать из глаз можно только за игроками из своей команды.

По умолчанию задано значение 34 (что в бинарном коде выглядит так: 100010), это означает:

  1. свободный полет запрещен
  2. наблюдать за другими игроками из их глаз разрешено
  3. наблюдать со стороны после убиства запрещено
  4. крутить камерой после убийства нельзя
  5. зарезервировано
  6. наблюдать за другими из их глаз можно только из своей команды
  • estime – начальное время в игре (по умолчанию 9.00 утра)
  • fraglimit – лимит фрагов (если 0 – значит лимита нет)
  • timelimit – лимит времени игры (если 0 – значит лимита нет)
  • dmgblock – время бессмертия после рождения в секундах.
  • dmbi – показывать индикатор неуязвимости (значения: 0 или 1)
  • ans – включить аномалии (значения: 0 или 1)
  • anslen – время через которое аномалии меняются
  • warmup – время разминки в секундах
  • pdahunt – давать 100$ при поднятии рюкзачков (значения: 0 или 1)
  • abalance – автоматический баланс команд перед началом раунда (значения: 0 или 1)
  • aswap – автоматический обмен командами (значения: 0 или 1)
  • ffire – коэффициент повреждения по дружественным целям (значения: от 0.0 до 1.0, по умолчанию: 1.0)
  • fn – показывать имена игроков твоей команды
  • anum – количество артефактов для победы

Для режима «Охота за артефактом»:

  • ardelta – время через которое родится артефакт (в секундах, по умолчанию 30 секунд)
  • astime – время жизни артефакта (в минутах, по умолчанию: 3 минуты)
  • reinf – время через которое будут рождены игроки (в секундах, по умолчанию 20)

Для режима «Захват артефакта»:

  • artrettime – время, через которое артефакт вернется на базу, если его выронили (в секундах, по умолчанию: 45)
  • dmgblock – время неуязвимости игроков на базе (в секундах, по умолчанию: 5 секунд)


Параметры сети[править]

Необходимые сетевые параметры:

  • UDP ports range: [5445 - 5646]
  • UDP ports: 27900, 29910,
  • TCP ports: 80, 29900, 29901, 28910

Настройка портов сервера[править]

При запуске сервера можно задать, на какой UDP порт будет завязан игровой сервер. На этот порт будет производится первоначальные запросы при соединении. Если у Вас на одной физической машине размещаются несколько игровых серверов, то эти порты должны отличаться. Желательно на число большее 32-ух. Этот порт можно задать с помощью параметра сервера portsv.

Также серверу в интернете понадобится привязать (забиндить) порт для взаимодействия с сервером GameSpy (GameGSC :) ). Этот порт тоже должен быть уникален, и задается параметром portgs.

Если не задать порты, то система попытается их определить автоматически, например:

start server(mp_agroprom/dm/portsv=5450/portgs=5451) client(localhost)
start server(mp_agroprom/dm/portsv=5490/portgs=5491) client(localhost)
start server(mp_agroprom/dm/portsv=5530/portgs=5531) client(localhost)

Настройка фильтра IP адресов[править]

Сервер можно настроить для видимости в определенной подсети, т.е. клиенты из другой подсети его не увидят и не смогут к нему присоединится.

Доступные подсети задаются в конфигурационном файле ip_filter.ltx, который находится в папке, заданной значением ключа $app_data_root$

Этот файл должен содержать секцию subnet_list, в которой перечислены маски подсетей в формате CIDR.

Например (содержание файла ...\_appdata_\ip_filter.ltx):

[subnet_list]
62.16.0.0/19
62.64.64.0/18
62.72.160.0/19
62.80.160.0/19
62.149.0.0/19

Права доступа администраторов[править]

Права доступа администраторов задаются конфигурационным файлом radmins.ltx, который находится в папке, заданной значением ключа $app_data_root$

Этот файл должен содержать секцию radmins, в которой задаются пары <имя пользователя>=<пароль>

Например (содержание файла ...\_appdata_\radmins.ltx):

[radmins]
mega_admin=mega_password

Настройка статистики сервера[править]

Для того, чтобы включить сбор статистики игр на сервере, необходимо ввести две команды в консоль:

  1. sv_statistic_collect 1 - включает сбор статистики по играм.
  2. sv_dump_online_statistics_period 3 – включает сброс статистики по игре в файл online_dump.ltx каждые 3 минуты.

Файлы статистики записываются в папочку, заданную значением ключа $logs$ плюс \mp_stats\имя сервера\

Подробная статистика записывается только в конце игры. Поэтому если вы выйдите из игры перед концом, то ваша статистика не сохранится.

Очень важно помнить о том, что sv_statistic_collect 1 и sv_dump_online_statistics_period 3 — это консольные команды, которые записываются в user.ltx, поэтому проследите, чтобы user.ltx грузился правильный.


Игровые настройки[править]

Для режима Deathmatch[править]

  • sv_dmgblocktime – время бессмертия после рождения
  • sv_fraglimit – лимит фрагов (если 0 - бесконечно)
  • sv_timelimit – лимит времени (если 0 – бесконечно)

Для режима TeamDeathmatch[править]

Такие же как и в Deathmatch-е, плюс:

  • sv_friendlyfire – коэфициент повреждения от огня по своим. (по умолчанию: 1.0)
  • sv_teamkill_limit – максимальное количество убийств своих, после которого будет произведен кик

Для режима ArtefactHunt[править]

Такие же как и в TeamDeathmatch (кроме sv_fraglimit), плюс:

  • sv_artefacts_count – количество артефактов для победы

Для режима CaptureTheArtefact[править]

Такие жк как и в ArtefactHunt, плюс:

  • sv_artefact_returning_time – время, через которое артефакт будет возвращен, если его выронили

Кик игроков[править]

Для того чтобы кикнуть игрока, Вы можете воспользоваться командой sv_kick_id которая прнимает как параметер идентификатор сессии игрока.

Чтобы получить идентификатор сессии игрока, используется команда sv_listplayers, которая выводит список игроков и их идентификаторы. Вы можете передать часть ника игрока этой команде. Например sv_listplayers cheater и тогда эта команда выведет только тех игроков, в имени которых есть подстрока chetaer.

Вы можете использовать макрос last_printed, который будет указывать на последнего выведенного игрока командой sv_listplayers.

Например, нужно быстро кикнуть читера с именем mega_cheater:

sv_listplayers mega_chea
sv_kick_id last_printed

Бан игроков[править]

Бан игроков осуществляется командой

sv_banplayer <идентификатор сессии игрока> <время в секундах>

Например, нужно быстро забанить на час читера с именем mega_cheater:

sv_listplayers mega_chea
sv_banplayer last_printed 3600

Снятие и проверка скриншотов экрана игроков[править]

Для того, чтобы сделать скриншот игрока, сначала вы должны залогинится в игре под администратором (ra login <имя> <пароль>).

Затем ввести следующую команду:

ra make_screenshot <идентификатор сессии игрока>

Чтобы проверить подлинность скриншота, вы можете воспользоваться утилитой mp_screenshots_info.exe

Чтобы ее запустить, войдите в папку с fsgame4mpu.ltx, и запустите

.\bin\mp_screenshots_info.exe <имя файла скриншота без пути>

Если у вас нет файла fsgame4mpu.ltx, скопируйте fsgame.ltx в fsgame4mpu.ltx

Скриншоты утилита будет искать в папке, заданной ключом $logs$\screenshots

Снятие и проверка дампов образа игры игроков[править]

Аналогично предыдущей команде (ra make_screenshot), делается и дамп конфигов игрока.

Синтаксис команды:

ra make_config_dump <идентификатор сессии игрока>

Конфиг-дампы хранятся в папке заданной ключом $logs$\screenshots

Как и в случае скриншота, вы можете проверить валидность конфиг дампа утилитой mp_configs_verifyer.exe (которая запускается также как и mp_screenshots_info.exe)

Например:

.\bin\mp_configs_verifyer.exe -f 091007-182149_stalker.ltx


Секретные функции[править]

Баннер провайдера и правила игры на сервере[править]

Вы можете разместить свой баннер и правила поведения на Вашем сервере прямо в игре!

Для этого поместите в папку $app_data_root$ два файла:

  1. server_logo.jpg - (658 x 215 пикселей)
  2. server_rules.txt – файл с правилами поведения на сервере


Источник[править]

Скопировано из доков GSC