Создание командного файла (он же батник, он же ярлык, он же файл сценария) для запуска выделенного сервера S.T.A.L.K.E.R. Тени Чернобыля (ТЧ) и Чистое небо (ЧН). Этот способ запуска сервера предназначен для решения следующих проблем:
* пропадание из мастер-листа и невозможности подключения клиентов при подключении самого себя к серверу с компьютера на котором запущен этот сервер
* автоматического перезапуска сервера при вылетах
* запуска нескольких серверов
Синтаксис командного файла для ТЧ и ЧН одинаков, но имеются небольшие различия, которые будут указаны.
Командный файл это простой текстовый файл с любым именем и расширением *.CMD, который должен находиться в каталоге установки игры в папке \bin\, например:
E:\Program Files\GSC World Publishing\STALKER\bin\myserver.cmd
Создается с помощью системного блокнота, который можно вызвать из меню Пуск>Стандартные или меню Пуск>Выполнить>notepad. При сохранении файла важно обратить внимание на кодировку, это такой выпадающий список в окне сохранения файла под именем файла, нужно выбрать ANSI. В дальнейшем для редактирования командного файла щелкните по нему правой кнопкой мыши выберите «Изменить» или открыть с помощью Блокнота. При двойном клике по файлу будет выполняться сценарий. Для тех у кого имя сервера на русском языке отображается некорректно рекомендуется создавать сценарий в текстовом редакторе Bred3 и сохранять в нем в кодировке OEM.
Сценарий в командном файле выглядит примено так:
dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\fsgame.ltx -ltx user.ltx -start server(mp_agroprom/dm/ver=1.0/параметр1=значение1/параметр2=значение2/параметр..n=значение..n) client(localhost)
Здесь на сайте код сценария может отбражаться в несколько строк. В Блокноте этот код должен быть в одной строке, иначе работать не будет.
Разберем по порядку:
* dedicated\xrEngine.exe – относительный путь к исполняемому файлу сервера ЧН
* dedicated\XR_3DA.exe – относительный путь к исполняемому файлу сервера ТЧ
* -i – отменяет захват устройств ввода. Без этого параметра не будет работать мышь.
* -nosound - отключение проигрывания звука на сервере.
* -silent_error_mode – отключает окно сообщения об ошибке при вылете сервера, рекомендуется для сервера с автоперезапуском. В некоторых случаях при отсутствии этого параметра сервер не будет перезапущен, пока вы сами не закроете окно с сообщением об ошибке. Также рекомендуется отключить различных отладчиков, отправку отчетов в Microsoft и т.п.
Параметры: -fsltx ..\fsgame.ltx -ltx user.ltx имеют некоторую зависимость друг от друга, и очень важно их правильно настроить.
-fsltx - это параметр, ..\fsgame.ltx - значение этого параметра, -ltx - параметр, user.ltx - значение.
Примечание: все файлы с расширением *.ltx являются простыми текстовыми файлами и открываются и редактируются с помощью Блокнота.
Подробнее об -fsltx ..\fsgame.ltx:
Сервер при своей работе производит чтение и запись параметров из различных файлов конфигурации, которые находятся на "путях поддержки".
Настройка путей поддержки важна для запуска нескольких серверов, использующих различные списки смены карт (мапцикл) и банлисты. Тем не менее, если у вас всего один сервер, либо все серверы используют один и тот же банлист и мапцикл - следует настроить один путь поддержки, отличающийся от пути по умолчанию.
В параметре -fsltx нужно указать значение, которое является относительным путем к файлу fsgame.ltx, который находится в каталоге установки игры. Весь путь указывать не нужно, только имя файла. Создайте копию fsgame.ltx, переименуйте его и укажите измененное имя.
Например:
-fsltx ..\myserverfs.ltx
Далее все файлы, являющиеся переименованными копиями fsgame.ltx, будем называть простоfsgame, независимо от того, как вы назовете файл и сколько копий будете использовать.
Чтобы настроить путь поддержки для сервера, открываем fsgame. В первой строке вы увидите:
$app_data_root$=true|false|C:\Users\Public\Documents\STALKER-STCS\
Как видно, в этой строке указан путь к папке, которая и является путем поддержки по умолчанию. Желательно этот путь поменять.
Например:
$app_data_root$=true|false|D:\myservers\myserverDM\
В конце пути обязательно должна быть косая черта
Далее папку, которую вы назначите путем поддержки для сервера, будем называть app_data, независимо от того, как вы ее назовете и сколько их будете использовать.
Если вы собираетесь запускать несколько серверов, которые будут использовать разные мапциклы и банлисты - так же создайте новый fsgame и пропишите в нем другую app_data, а в командных сценариях для запуска этих серверов в параметрах -fsltxвпишите свой fsgame. Вы получите выделенные fsgame и app_data для каждого сервера.
Если вы запускаете несколько серверов, которые будут использовать общие мапцикл и банлист, вам достаточно создать один fsgame для всех серверов.
Есть еще один способ изменения app_data для сервера, отличный от предыдущего. При этом не нужно создавать копии fsgame и менять -fsltx ..\fsgame.ltx. Здесь используется дополнительный параметр -overlaypath, в значении которого нужно просто указать путь к app_data сервера.
Например:
-fsltx ..\fsgame.ltx -overlaypath D:\myservers\myserverDM\
В конце пути обязательно должна быть косая черта
Примечание: имена каталогов не должны содержать пробелов, в противном случае заключайте их в кавычки.
Например:
-overlaypath "D:\my servers\my server DM\"
Вы также можете заменить пробелы символом подчеркивания (_)
Параметр -overlaypath имеет более высокий приоритет подмены app_data.Это значит, что если вы используете этот параметр, уже не важно, какой fsgame вы используете и какой в нем путь к app_data.
Подменятьapp_dataпараметром -overlaypath намного проще, но иногда по непонятным причинам этот параметр не работает и сервер падает сразу при запуске. В этой ситуации используйте подмену через fsgame.
В обоих случаях создавать саму папку app_data на диске необязательно, она будет создана автоматически при запуске сервера.
-ltx user.ltx:
Здесь нужно указать имя файла конфигурации, который лежит в папке app_data. Именно в нем записаны все параметры сервера. Имя файла - любое, набранное латинскими буквами и не содержащее пробелов, например:
-ltx myserverDM.ltx
Далее файл, указанный в параметре -ltx будет иметь условное имя LTX, независимо от того, как вы его назовете.
Если несколько серверов используют одну app_data, для каждого сервера нужно указать различные имена файла LTX. Имя файла не имеет значения, если серверы используют разные app_data.
Сам файл ltx в app_data создавать необязательно; если вы запустите сервер с пустой app_data, то в этот файл будут скопированы команды из оригинальногоuser.ltx, который лежит в папке, указанной в оригинальном fsgame.ltx. В принципе, нет необходимости вписывать команды в LTX, так как все необходимые параметры и настройки игры указываются в командном сценарии, хотя некоторые необязательные параметры читаются только из LTX. В LTX нельзя указывать некоторые функциональные команды консоли, такие как бан, кик, смена карты погоды, отмена голосования и т.п.
Зачем такие сложности?
Как говорилось выше, это нужно для серверов, использующих разные мапциклы и банлисты. Также замена app_data и LTX для сервера частично решает проблему подключения себя к своему серверу. Это связано с тем, что сама игра тоже использует файлы и параметры из оригинальной app_data, путь к которой указан в оригинальном fsgame.ltx и user.ltx. В любом случае, вы можете не менять app_data, но LTX желательно сменить.
Первая часть командного файла рассмотрена.
Она может выглядеть так:
dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserverDM.ltx
или так:
dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\fsgame.ltx -overlaypath D:\myservers\myserverDM\ -ltx myserverDM.ltx
В следующей части командного файла прописаны параметры и настройки самой игры и сетевые параметры сервера. А если быть более точным, то эти параметры являются аналогами настроек запуска сервера из интерфейса игры.
Строка командного файла в этой части выглядит примерно таким образом:
-start server (mp_agroprom/dm/ver=1.0/параметр1=значение1/параметр2=значение2/параметр..n=значение..n) client(localhost)
Все по порядку:
-start server – запускает сервер. Настроек и значений не имеет.
Первые параметры в скобках для ЧН и ТЧ различны. Они соответствуют параметрам вкладки Сервер интерфейса запуска сервера через игру.
Рассмотрим параметры для ЧН:
mp_agroprom – начальная карта при первом запуске сервера. Не имеет значений, так как параметр сам является еще и значением.
Допустимые значения для карт, поставляемых на установочном диске:
mp_agroprom – Завод «Агропром»
mp_atp - АТП
mp_autostation - Автостанция
mp_bath – Бассейн (большой)
mp_darkvalley – Темная долина
mp_factory - Завод «Янтарь»
mp_firestation – Пожарная станция
mp_garbage - Свалка
mp_limansk - Лиманск
mp_lost_village – Заброшенная деревня
mp_military_1 – Военные склады
mp_military_2 – Старая деревня
mp_pool – Бассейн (маленький)
mp_railroad – Ж/Д станция
mp_rembasa – Ремонтная база
mp_rostok – Завод «Росток»
mp_sport_center – Спортивный центр
mp_training_camp – Тренировочный лагерь
mp_workshop – Заброшенная фабрика
dm – тип игры. Так же как и карта является значением.
Допуситые значения:
dm – Все против всех
tdm – Команда пртив команды
ah – Охота за артефактом
cta – Захват артефакта
ver=1.0 – просто ver=1.0. Указывается только в ЧН.
Примеры:
-start server(mp_agroprom/dm/ver=1.0/ -start server(mp_rembasa/tdm/ver=1.0/
-start server(mp_pool/ah/ver=1.0/
-start server(mp_limansk/cta/ver=1.0/
Параметры для ТЧ:
(testers_mp_agroprom/deathmatch testers_mp_agroprom
– начальная карта.
Названия карт, поставляемых на установочном диске:
testers_mp_agroprom – Завод «Агропром»
testers_mp_atp - АТП
testers_mp_darkvalley – Темная долина
testers_mp_factory - Завод «Янтарь»
testers_mp_lost_village – Покинутая деревня
testers_mp_military_1 - Военные склады
testers_mp_pool - Бассейн
testers_mp_railroad - Ж/Д станция
testers_mp_rostok - Завод «Росток»
testers_mp_workshop – Брошенная фабрика
mp_military_2 - mp_military_2
deathmatch – режим игры.
Допустимые режимы:
deathmatch – Все против всех
teamdeathmatch – Команда против команды
artefacthunt – Охота за артефактом
Примеры:
-start server(testers_mp_agroprom/deathmatch -start server(testers_mp_pool/teamdeathmatch
-start server(testers_mp_railroad/ artefacthunt
Чтобы организовать мапцикл (смена карт после окончания матча) нужно создать в папке app_data сервера текстовый файл maprot_list.ltx и в нем прописать карты в той последовательности, в которой они будут автоматически меняться по окончании матча.
Содержимое файла maprot_list.ltx с полным списком карт мапцикла для ЧН, поставляемых на установочном диске:
sv_addmap mp_agroprom/ver=1.0
sv_addmap mp_atp/ver=1.0
sv_addmap mp_autostation/ver=1.0
sv_addmap mp_bath/ver=1.0
sv_addmap mp_darkvalley/ver=1.0
sv_addmap mp_factory/ver=1.0
sv_addmap mp_firestation/ver=1.0
sv_addmap mp_garbage/ver=1.0
sv_addmap mp_limansk/ver=1.0
sv_addmap mp_lost_village/ver=1.0
sv_addmap mp_military_1/ver=1.0
sv_addmap mp_military_2/ver=1.0
sv_addmap mp_pool/ver=1.0
sv_addmap mp_railroad/ver=1.0
sv_addmap mp_rembasa/ver=1.0
sv_addmap mp_rembasa/ver=1.0
sv_addmap mp_rostok/ver=1.0
sv_addmap mp_sport_center/ver=1.0
sv_addmap mp_training_camp/ver=1.0
sv_addmap mp_workshop/ver=1.0
Карты в maprot_list.ltx можно прописывать в любой последовательности и в любом количестве, также допускается повторно прописывать одну и ту же карту.
Если в папке app_data отсутствует maprot_list.ltx, то мапцикла на сервере не будет, но игроки смогут переключаться на другие карты голосованием.
Если несколько серверов используют одну app_data, то соответственно они смогут использовать только один на всех мапцикл.
Чтобы особо не мучиться с прописыванием карт в maprot_list.ltx, создайте сервер через игровой интерфейс, на вкладке сервер укажите нужные вам карты и запустите сервер. В оригинальной app_data найдите maprot_list.ltx и скопируйте его в app_data своего сервера. Выключите сервер, запущенный через интерфейс игры.
___________________________________________________________________________________________
Большинство следующих параметров командного файла соответствуют тем параметрам, которые находятся на вкладке Опции интерфейса запуска.
Они имеют следующий синтаксис:
/параметр1=значение1/параметр2=значение2/параметр..n=значение..n
Значения этих параметров дублируются в файле LTX. Значения прописанные в командном файле имеют более высокий приоритет чем значения в LTX, если они различны.
Каждый режим игры имеет свои специфические параметры.
Рассмотрим эти параметры:
Общие параметры для всех типов игры:
Общие настройки всех командных режимов:
Настройки только для режимов AH и CTA:
Настройки клиента:
К серверу, всегда, даже если на нем никого нет, подключен некий виртуальный игрок. Никто о нем не знает, никто его не видит, но он есть.
Параметры подключения такого скрытого игрока прописываются в самом конце строки сценария.
client(localhost/portcl=4554/name=admin)
client(localhost – обязательная запись.
вместо localhost можно прописать внешний IP-адрес сервера если используется NAT и есть проблемы с подключением самого себя.
Ваш внешний IP 195.98.166.130
portcl – описание в таблице выше
name – любой набор буквенно-цифровых символов. Необязательный параметр. Может быть опущен.
Все особенности создания командного файла здесь разобраны. Подведем итог.
Вот один из примеров запуска сервера DM.
dedicated\xrEngine.exe -i –nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserver.ltx -start server(mp_agroprom/dm/ver=1.0/public=1/hname=first_dm_server/portsv=4554/portgs=4556/battleye=1/estime=9:00/spectrmds=0/fraglimit=0/timelimit=30/dmgblock=3/dmbi=0/ans=1/anslen=3/warmup=60/pdahunt=1) client(localhost/portcl=4557)
В эту строку можно добавить любые параметры из таблицы выше. Все зависит от вашего вкуса и предпочтений.
Автоперезапуск сервера
Пример:
:load
start /wait dedicated\xrEngine.exe -i –nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserver.ltx -start server(mp_agroprom/dm/ver=1.0/public=1/hname=first_dm_server/portsv=4554/portgs=4556/battleye=1/estime=9:00/spectrmds=0/fraglimit=0/timelimit=30/dmgblock=3/dmbi=0/ans=1/anslen=3/warmup=60/pdahunt=1) client(localhost/portcl=4557)
goto load
Если добавить строчку из примера перед строкой сценария и соответствующую строчку после, то ваш сервер будет автоматически перезапускаться после вылета.
Помешать перезапуску сервера может системная служба отправки отчетов в Microsoft, и различные системные отладчики, которые перед тем как закрыть приложение, сообщают об ошибке пользователю. Отключите эти функции в операционной системе.
Как командный файл может решить проблему выпадения сервера из мастер-листа, при подключении самого себя к серверу?
Существует предположение о том, что серверу надо указать серверу правильные порты.
Для этого нужно в параметрах portsv portgs portcl прописать значения НЕ! равные 5445 5446 5447 и не равные между собой. Если эти параметры в строке сценария вовсе не указывать, то сервер будет по умолчанию использовать значения 5445 5446 5447. При подключении с локального компьютера на этих портах возникают конфликты, так как игра по умолчанию тоже использует несовместимые порты.
Если выразиться проще, то порты 5445 5446 5447 предназначены только для подключения с удаленных компьютеров.
Если вы запускаете несколько серверов, то значения этих параметров должны различаться не только между собой, но еще и в разных командных файлах. Если выразиться проще, то сервера не должны использовать одинаковые порты.
В целом серверы не должны использовать порты занятые другими приложениями.
И еще одна проблема может возникнуть из-за запрета в роутере или модеме подключения самого себя через внешний адрес. В этой ситуации у вас будет неверный хост. Для решения этой проблемы обратитесь к документации к своему сетевому оборудованию.
Что такое сумма битовых флагов?
Это целое число, являющееся суммой битов включенных элементов. Элементы, биты которых не участвуют в сумме, будут выключены.
Рассмотрим на примере включения выключения пунктов голосования:
Например нам надо выключить пункты Изменить погоду и Рестарт. Для составления суммы лучше всего эту ситуацию рассматривать с другой стороны - нужно не выключить эти пункты, а включить все другие кроме этих пунктов.
Смотрим биты всех других пунктов кроме Изменить погоду и Рестарт. Такие пункты как Все выключены и Все включены в суммах никогда не участвуют.
В итоге vote=4+8+16+32+128=188
Пункты голсования будут выглядеть вот таким образом:
Включение выключение других пунктов голосования, а так же режимов наблюдения производится аналогичным способом.
_____________________________________________________________________________
К сожалению, не все важные параметры можно прописать в командном файле, в нем прописываются только жизненно важные. Все остальные пишутся в LTX.
Параметры на которые нужно обратить особое внимание (назначаются в LTX)
Автор: Максим Максимов (Бармен)
Источник
Инфу взял от туда потому как там более подробно и понятно все описано
Вот мой готовый сервер на Чистое небо (Сделал там небольшое описание че да куда кидать и тд)
Доступно только для пользователей