Создание командного файла (он же батник, он же ярлык,
он же файл сценария) для запуска выделенного сервера S.T.A.L.K.E.R. Тени
Чернобыля (ТЧ) и Чистое небо (ЧН). Этот способ запуска сервера предназначен для решения следующих
проблем: - пропадание из мастер-листа и невозможности подключения
клиентов при подключении самого себя к серверу с компьютера на котором запущен
этот сервер
- автоматического перезапуска сервера при вылетах
- запуска нескольких серверов
Синтаксис командного файла для ТЧ и ЧН одинаков, но
имеются небольшие различия, которые будут указаны. Командный файл это простой текстовый файл с слюбым именем
расширением *.CMD, который должен находиться в каталоге установки игры в
папке \bin\, например E:\
Program Files\GSC World Publishing\STALKER\bin\myserver.cmd
Создается с помощью
системного блокнота, который можно вызвать из меню Пуск>Стандартные или
меню Пуск>Выполнить>notepad. При сохранении файла важно обратить
внимание на кодировку, это такой выпадающий список в окне сохранения файла
под именем файла, нужно выбрать ANSI. В дальнейшем для редактирования
командного файла щелкните по нему правой кнопкой мыши выберите «Изменить»
или открыть с помощью Блокнота. При двойном клике по файлу будет выполняться
сценарий. Сценарий в командном файле
выглядит примено так:
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 на диске необязательно, она будет создана автоматически при запуске сервера. -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 с полным списком карт мапцикла для ТЧ, поставляемых на установочном диске:
sv_addmap testers_mp_agroprom sv_addmap testers_mp_atp sv_addmap testers_mp_darkvalley sv_addmap testers_mp_factory sv_addmap testers_mp_lost_village sv_addmap testers_mp_military_1 sv_addmap testers_mp_pool sv_addmap testers_mp_railroad sv_addmap testers_mp_rostok sv_addmap testers_mp_workshop sv_addmap mp_military_2 | Карты в 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, если они различны. Каждый режим игры имеет свои специфические параметры. Рассмотрим эти параметры: Общие параметры для всех типов игры: Параметр | Описание | Значения | Примечание | hname | Имя сервера | Например: /hname=My Server/ | | maxplayers | Максимальное количество игроков на сервере | 2-32 | | psw | Пароль для входа на сервер | Необязательный | | public | | 0 - Сервер в локальной сети | Не будет отображаться в мастер листе | 1 - Интернет сервер | Будет отображаться в мастер листе | portsv | Номер порта сервера | 1-65535 | Эти три параметра решают проблему выпадения сервера из мастер-листа, при подключении самого себя к серверу. Более подробная информация дана ниже. | portgs | Порт GameSpy | 1-65535 | portcl | Порт клиента. Прописывается в самом конце сценария. | 1-65535 | battleye | Античит | 1-включен | Работает, если public=1 | 0-выключен | estime | Начальное время суток в игре. | 00:00-23:59 | От времени суток зависит погода | Ясная | 9:00 | Облачная | 13:00 | Дождь | 16:00 | Ночь | 01:00 | etimef | Скорость изменения погоды | 0.0-100.0 | Десятичное число с одним знаком после точки. Оптимальное значение 1.0 | ans | Аномалии | 0-выключены | | 1-включены | anslen | Период работы аномалий | 0-бесконечные | | 1-180 - время в минутах | pdahunt | +100р за поднятый рюкзак | 0-нет | | 1-да | warmup | Разогрев | 0-выключен | | 1-3600 - время в секундах | timelimit | Время матча | 0-бесконечный | | 1-180 - время в минутах | dmgblock | Время неуязвимости после рождения | 0-отключено | | 1-600 время секундах | dmbi | Индикатор неуязвимости | 0-выключен | | 1-включен | fraglimit | Лимит фрагов | 0-бесконечные | Используется только для режимов DM и TDM | 1-100 | spectrmds | Настройка режимов наблюдения | Бит | Значение | Сумма битовых флагов. Подробнее | 1 | Свободный полет | 2 | От 1 лица | 4 | Свободно привязанный | 8 | От 3 лица | 16 | Только для команды | 0 | Все выключены | vote | Включение определенных пунктов голосования | Бит | Значение | Сумма битовых флагов. Подробнее Аналог: команда консоли SV_VOTE_ENABLED | 0 | Все выключены | 1 | Все включены | 2 | Рестарт | 4 | Быстрый рестарт | 8 | Выбросить | 16 | Заблокировать | 32 | Изменить карту | 64 | Изменить погоду | 128 | Режим | frcrspwn | Принудительное рождение | 0-выключено | Для DM и TDM | 1-3600-время в секундах. Не забывайте что иногда игрокам нужно зайти в магазин | Общие настройки всех командных режимов: Параметр | Описание | Значения | Примечание | abalance | Автобаланс команд | 0-выключен | Производится после окончания матча за счет игроков набравших наименьшее количество очков | 1-включен | aswap | Автосмена команд | 0-выключен | После окончания матча игроки автоматически меняются командами | 1-включен | fi | Иконка над головами игроков своей команды | 0-выключен | | 1-включен | fn | Имена над головами игроков своей команды | 0 - только тогда, когда клавиша CapsLock нажата | | 1 - CapsLock действует как переключатель | ffire | Коэффициент повреждения, наносимого игроками одной команды друг другу. | 0.0-2.0 | 1.0 = 100%, 2.0 = 200% | Настройки только для режимов AH и CTA: Параметр | Описание | Значения | Примечание | anum | Количество артефактов | 1-100 | | astime | Артефакт лежит пока его никто не поднимет | 0-всегда | Только для AH | 1-180-время в минутах | ardelta | Задержка артефакта. Время до появления нового | 0-выключен | Только для AH | 1-600-время в секундах | reinf | Рождение игроков | -1 - когда артефакт принесен на базу или одна из команд польностью уничтожена | | 0-игроки рождаются когда захотят | 1-3600-время через которое игроки будут принудительно рождены. | artrettime | Время через которое артефакт вернётся на вашу базу , если противник его потерял | 0-сразу | Только для CTA | 1-300 время в секундах | actret | Артефакт нужно взять в руки и нажать огонь | 0-нет | Только CTA | 1-да | Настройки клиента: К серверу, всегда, даже если на нем никого нет, подключен некий виртуальный игрок. Никто о нем не знает, никто его не видит, но он есть. Параметры подключения такого скрытного игрока прописываются в самом конце строки сценария. client(localhost/portcl=4554/name=admin) client(localhost – обязательная запись. 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 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 предназначены только! для подключения с удаленных компьютеров. Если вы запускаете несколько серверов, то значения этих параметров должны различаться не только между собой, но еще и в разных командных файлах. Если выразиться проще, то сервера не должны использовать одинаковые порты. А если уж совсем копнуть глубже, то сервера не должны использовать порты занятые другими приложениями. На просторах интернета можно найти очень много статей о том, как добавить сервер в мастер-лист, наш сайт не исключение. Везде обычно рекомендуют открыть именно порты 5445 5446 5447. Парадокс. Нет. Просто все везде имеют ввиду, что вы будете запускать сервер из интерфейса игры, а игра использует эти порты по умолчанию. Соответственно если вы прописали в командном файле во всех трех параметрах порты не по умолчанию, то доступ вы должны открыть по указанным вами портам, а не 5445 5446 5447. Что такое сумма битовых флагов? Это целое число, являющееся суммой битов включенных элементов. Элементы, биты которых не участвуют в сумме, будут выключены. Рассмотрим на примере включения выключения пунктов голосования: Например нам надо выключить пункты Изменить погоду и Рестарт. Для составления суммы лучше всего эту ситуацию рассматривать с другой стороны - нужно не выключить эти пункты, а включить все другие кроме этих пунктов. Смотрим биты всех других пунктов кроме Изменить погоду и Рестарт. Такие пункты как Все выключены и Все включены в суммах никогда не участвуют. Бит | Значение | 0 | Все выключены | 1 | Все включены | 2 | Рестарт | 4 | Быстрый рестарт | 8 | Выбросить | 16 | Заблокировать | 32 | Изменить карту | 64 | Изменить погоду | 128 | Режим |
В итоге vote=4+8+16+32+128=188 Пункты голсования будут выглядеть вот таким образом: Включение выключение других пунктов голосования, а так же режимов наблюдения производится аналогичным способом.
К сожалению не все не все важные параметры можно прописать в командном файле, в нем прописываются только жизненно важные. Все остальные пишутся в LTX. Более подробную информацию о командах вы можете узнать в соответствующей теме. И в заключение Размышления на тему: Опять же на просторах интернета можно найти информацию о том, что, не модно нынче в батнике
|