Создание батника с автоперезапуском для сервера S.T.A.L.K.E.R. — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Flammable (обсуждение | вклад) |
Flammable (обсуждение | вклад) (оформление) |
||
Строка 20: | Строка 20: | ||
Создается он с помощью системного блокнота, который можно вызвать из меню Пуск>Стандартные, или меню Пуск>Выполнить>notepad. При сохранении файла важно обратить внимание на кодировку, это такой выпадающий список в окне сохранения файла под именем файла, нужно выбрать ANSI. В дальнейшем для редактирования командного файла щелкните по нему правой кнопкой мыши выберите «Изменить» или открыть с помощью Блокнота. При двойном клике по файлу будет выполняться сценарий. <span lang="ru">Для тех у кого имя сервера на русском языке отображается некорректно рекомендуется создавать сценарий в текстовом редакторе Bred3 (http://www.astonshell.ru/freeware/bred3) и сохранять в нем в кодировке OEM.<br> | Создается он с помощью системного блокнота, который можно вызвать из меню Пуск>Стандартные, или меню Пуск>Выполнить>notepad. При сохранении файла важно обратить внимание на кодировку, это такой выпадающий список в окне сохранения файла под именем файла, нужно выбрать ANSI. В дальнейшем для редактирования командного файла щелкните по нему правой кнопкой мыши выберите «Изменить» или открыть с помощью Блокнота. При двойном клике по файлу будет выполняться сценарий. <span lang="ru">Для тех у кого имя сервера на русском языке отображается некорректно рекомендуется создавать сценарий в текстовом редакторе Bred3 (http://www.astonshell.ru/freeware/bred3) и сохранять в нем в кодировке OEM.<br> | ||
Сценарий в командном файле выглядит примерно так:<br> | Сценарий в командном файле выглядит примерно так:<br> | ||
− | < | + | <blockquote>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)</blockquote> |
<br> | <br> | ||
Здесь на сайте код сценария может отбражаться в несколько строк. В Блокноте этот код должен быть <u>в одной строке</u>, иначе работать не будет.<br> | Здесь на сайте код сценария может отбражаться в несколько строк. В Блокноте этот код должен быть <u>в одной строке</u>, иначе работать не будет.<br> | ||
+ | |||
+ | |||
+ | == Первая часть кода == | ||
+ | |||
Разберем по порядку:<br> | Разберем по порядку:<br> | ||
<div> | <div> | ||
Строка 51: | Строка 55: | ||
Примечание: все файлы с расширением *.ltx являются простыми текстовыми файлами и открываются и редактируются с помощью Блокнота.<br> | Примечание: все файлы с расширением *.ltx являются простыми текстовыми файлами и открываются и редактируются с помощью Блокнота.<br> | ||
'''Подробнее об -fsltx ..\fsgame.ltx:'''</p> | '''Подробнее об -fsltx ..\fsgame.ltx:'''</p> | ||
− | + | Сервер при своей работе производит чтение и запись параметров из различных файлов конфигурации, которые находятся на «путях поддержки».</p> | |
− | + | Настройка путей поддержки важна для запуска нескольких серверов, использующих различные списки смены карт (мапцикл) и банлисты. Тем не менее, если у вас всего один сервер, либо все серверы используют один и тот же банлист и мапцикл — следует настроить один путь поддержки, отличающийся от пути по умолчанию.</p> | |
− | + | В параметре '''-fsltx''' нужно указать значение, которое является относительным путем к файлу '''fsgame.ltx''', который находится в каталоге установки игры. Весь путь указывать не нужно, только имя файла. Создайте копию '''fsgame.ltx''', переименуйте его и укажите измененное имя.</p> | |
− | + | Например:</p> | |
− | + | <span style="font-family: courier new,courier;">-fsltx ..\myserverfs.ltx</span></p> | |
<p> </p> | <p> </p> | ||
<table style="background-color: #ffffcc" border="0" align="justify"> | <table style="background-color: #ffffcc" border="0" align="justify"> | ||
Строка 64: | Строка 68: | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | + | Чтобы настроить путь поддержки для сервера, открываем '''fsgame'''. В первой строке вы увидите:</p> | |
− | + | <span style="font-family: courier new,courier;">$app_data_root$=true|false|C:\Users\Public\Documents\STALKER-STCS\</span></p> | |
− | + | Как видно, в этой строке указан путь к папке, которая и является путем поддержки по умолчанию. Желательно этот путь поменять.</p> | |
− | + | Например:</p> | |
− | + | <span style="font-family: courier new,courier;">$app_data_root$=true|false|D:\myservers\myserverDM<span style="color: #ff0000;">\</span></span></p> | |
− | + | <span style="color: #ff0000;">В конце пути обязательно должна быть косая черта</span></p> | |
<table style="background-color: #ffffcc" border="0"> | <table style="background-color: #ffffcc" border="0"> | ||
<tbody> | <tbody> | ||
Строка 77: | Строка 81: | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | + | Если вы собираетесь запускать несколько серверов, которые будут использовать разные мапциклы и банлисты — так же создайте новый '''fsgame''' и пропишите в нем другую '''app_data''', а в командных сценариях для запуска этих серверов в параметрах '''-fsltx''' впишите свой '''fsgame'''. Вы получите выделенные '''fsgame''' и '''app_data''' для каждого сервера.</p> | |
− | + | Если вы запускаете несколько серверов, которые будут использовать общие мапцикл и банлист, вам достаточно создать один '''fsgame''' для всех серверов.</p> | |
− | + | Есть еще один способ изменения '''app_data''' для сервера, отличный от предыдущего. При этом не нужно создавать копии '''fsgame''' и менять '''-fsltx ..\fsgame.ltx'''. Здесь используется дополнительный параметр '''-overlaypath''', в значении которого нужно просто указать путь к '''app_data''' сервера.</p> | |
− | + | Например:</p> | |
− | + | <span style="font-family: courier new,courier;">-fsltx ..\fsgame.ltx -overlaypath D:\myservers\myserverDM<span style="color: #ff0000;">\</span></span></p> | |
− | + | <span style="color: #ff0000;">В конце пути обязательно должна быть косая черта</span></p> | |
<table style="background-color: #ffffcc; width: 797px; height: 66px;" border="0"> | <table style="background-color: #ffffcc; width: 797px; height: 66px;" border="0"> | ||
<tbody> | <tbody> | ||
<tr> | <tr> | ||
<td style="width: 100%;">Примечание: имена каталогов не должны содержать пробелов, в противном случае заключайте их в кавычки. | <td style="width: 100%;">Примечание: имена каталогов не должны содержать пробелов, в противном случае заключайте их в кавычки. | ||
− | + | Например:</p> | |
− | + | <span style="font-family: courier new,courier;">-overlaypath «D:\my servers\my server DM\»<br /><br /></span>Вы также можете заменить пробелы ''символом подчеркивания'' ''('''_''')''<span style="font-family: courier new,courier;"><br /></span></p> | |
</td> | </td> | ||
</tr> | </tr> | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | + | Параметр '''-overlaypath''' имеет более высокий приоритет подмены '''app_data'''. Это значит, что если вы используете этот параметр, уже не важно, какой '''fsgame''' вы используете и какой в нем путь к '''app_data'''.</p> | |
− | + | <span style="color: #ff0000;">Подменять '''app_data '''параметром '''-overlaypath''' намного проще, но иногда по непонятным причинам этот параметр не работает и сервер падает сразу при запуске. В этой ситуации используйте подмену через</span>'''<span style="color: #ff0000;"> fsgame.</span><br />'''</p> | |
− | + | В обоих случаях создавать саму папку '''app_data''' на диске необязательно, она будет создана автоматически при запуске сервера.</p> | |
− | + | '''-ltx user.ltx:'''</p> | |
− | + | Здесь нужно указать имя файла конфигурации, который лежит в папке '''app_data'''. Именно в нем записаны все параметры сервера. Имя файла — любое, набранное латинскими буквами и не содержащее пробелов, например:</p> | |
− | + | <span style="font-family: courier new,courier;">-ltx myserverDM.ltx</span></p> | |
<table style="background-color: #ffffcc" border="0"> | <table style="background-color: #ffffcc" border="0"> | ||
<tbody> | <tbody> | ||
Строка 106: | Строка 110: | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | + | Если несколько серверов используют одну '''app_data''', для каждого сервера нужно указать различные имена файла '''LTX'''. Имя файла не имеет значения, если серверы используют разные '''app_data'''.</p> | |
− | + | Сам файл '''ltx''' в '''app_data''' создавать необязательно; если вы запустите сервер с пустой '''app_data''', то в этот файл будут скопированы команды из оригинального '''user.ltx''', который лежит в папке, указанной в оригинальном '''fsgame.ltx'''. В принципе, нет необходимости вписывать команды в '''LTX''', так как все необходимые параметры и настройки игры указываются в командном сценарии, хотя некоторые необязательные параметры читаются только из '''LTX'''. В '''LTX''' нельзя указывать некоторые функциональные команды консоли, такие как бан, кик, смена карты погоды, отмена голосования и т. п.</p> | |
− | + | '''Зачем такие сложности?'''</p> | |
− | + | Как говорилось выше, это нужно для серверов, использующих разные мапциклы и банлисты. Также замена '''app_data''' и '''LTX''' для сервера частично решает проблему подключения себя к своему серверу. Это связано с тем, что сама игра тоже использует файлы и параметры из оригинальной '''app_data''', путь к которой указан в оригинальном '''fsgame.ltx''' и '''user.ltx'''. В любом случае, вы можете не менять '''app_data''', но '''LTX''' желательно сменить.<br /><br /><br />Первая часть командного файла рассмотрена.</p> | |
− | + | Она может выглядеть так:</p> | |
− | + | <span style="font-family: courier new,courier;">dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserverDM.ltx</span></p> | |
− | + | или так:<br><br> | |
− | < | + | <span style="font-family: courier new,courier;">dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\fsgame.ltx -overlaypath D:\myservers\myserverDM\ -ltx myserverDM.ltx</span><br><br> |
− | < | + | В следующей части командного файла прописаны параметры и настройки самой игры и сетевые параметры сервера. Эти параметры являются аналогами настроек запуска сервера из интерфейса игры. |
− | + | ||
− | < | + | |
− | < | + | == Вторая часть кода== |
− | + | ||
− | + | Строка командного файла в этой части выглядит примерно таким образом:<br><br> | |
− | + | <span style="font-family: courier new,courier;">-start server (mp_agroprom/dm/ver=1.0/параметр1=значение1/параметр2=значение2/параметр..n=значение..n) client(localhost)</span><br><br> | |
− | + | Все по порядку: | |
− | + | -start server — запускает сервер. Настроек и значений не имеет. | |
− | < | + | Первые параметры в скобках для ЧН и ТЧ различны. Они соответствуют параметрам вкладки Сервер интерфейса запуска сервера через игру. |
+ | Рассмотрим параметры для ЧН:<br> | ||
+ | mp_agroprom — начальная карта при первом запуске сервера. Не имеет значений, так как параметр сам является еще и значением.</p> | ||
+ | Допустимые значения для карт, поставляемых на установочном диске:<br><br> | ||
<table id="table5" style="width: 100%;" border="1"> | <table id="table5" style="width: 100%;" border="1"> | ||
<tbody> | <tbody> | ||
<tr> | <tr> | ||
<td> | <td> | ||
− | + | mp_agroprom — Завод «Агропром»</p> | |
− | + | mp_atp — АТП</p> | |
− | + | mp_autostation — Автостанция</p> | |
− | + | mp_bath — Бассейн (большой)</p> | |
− | + | mp_darkvalley — Темная долина</p> | |
− | + | mp_factory - Завод «Янтарь»</p> | |
− | + | mp_firestation — Пожарная станция</p> | |
− | + | mp_garbage — Свалка</p> | |
− | + | mp_limansk — Лиманск</p> | |
− | + | mp_lost_village — Заброшенная деревня</p> | |
− | + | mp_military_1 — Военные склады</p> | |
− | + | mp_military_2 — Старая деревня</p> | |
− | + | mp_pool — Бассейн (маленький)</p> | |
− | + | mp_railroad — Ж/Д станция</p> | |
− | + | mp_rembasa — Ремонтная база</p> | |
− | + | mp_rostok — Завод «Росток»</p> | |
− | + | mp_sport_center — Спортивный центр</p> | |
− | + | mp_training_camp — Тренировочный лагерь</p> | |
− | + | mp_workshop — Заброшенная фабрика</p> | |
</td> | </td> | ||
</tr> | </tr> | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | + | </p> | |
− | + | </p> | |
<p>dm — тип игры. Так же как и карта является значением.</p> | <p>dm — тип игры. Так же как и карта является значением.</p> | ||
− | + | Допуситые значения:</p> | |
− | + | dm — Все против всех</p> | |
− | + | tdm — Команда пртив команды</p> | |
− | + | ah — Охота за артефактом</p> | |
− | + | cta — Захват артефакта</p> | |
− | + | ver=1.0 — просто ver=1.0. Указывается только в ЧН.</p> | |
− | + | ||
− | + | Примеры:</p> | |
− | + | <span style="font-family: courier new,courier;">-start server(mp_agroprom/dm/ver=1.0/ </span></p> | |
− | + | <span style="font-family: courier new,courier;">-start server(mp_rembasa/tdm/ver=1.0/ </span></p> | |
− | + | <span style="font-family: courier new,courier;">-start server(mp_pool/ah/ver=1.0/ </span></p> | |
− | + | <span style="font-family: courier new,courier;">-start server(mp_limansk/cta/ver=1.0/ </span></p> | |
<p> </p> | <p> </p> | ||
− | + | Параметры для ТЧ:</p> | |
<p>(testers_mp_agroprom/deathmatch</p> | <p>(testers_mp_agroprom/deathmatch</p> | ||
− | + | testers_mp_agroprom — начальная карта.</p> | |
− | + | Названия карт, поставляемых на установочном диске:</p> | |
<p> </p> | <p> </p> | ||
<table id="table5" style="width: 100%;" border="1"> | <table id="table5" style="width: 100%;" border="1"> | ||
Строка 176: | Строка 183: | ||
<tr> | <tr> | ||
<td> | <td> | ||
− | + | testers_mp_agroprom — Завод «Агропром»</p> | |
− | + | testers_mp_atp — АТП</p> | |
− | + | testers_mp_darkvalley — Темная долина</p> | |
− | + | testers_mp_factory - Завод «Янтарь»</p> | |
− | + | testers_mp_lost_village — Покинутая деревня</p> | |
− | + | testers_mp_military_1 — Военные склады</p> | |
− | + | testers_mp_pool — Бассейн</p> | |
− | + | testers_mp_railroad — Ж/Д станция</p> | |
− | + | testers_mp_rostok — Завод «Росток»</p> | |
− | + | testers_mp_workshop — Брошенная фабрика</p> | |
<p>mp_military_2 — mp_military_2</p> | <p>mp_military_2 — mp_military_2</p> | ||
</td> | </td> | ||
Строка 191: | Строка 198: | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | + | deathmatch — режим игры.</p> | |
− | + | Допустимые режимы:</p> | |
− | + | deathmatch — Все против всех<br /> teamdeathmatch — Команда против команды<br /> artefacthunt — Охота за артефактом</p> | |
− | + | Примеры:</p> | |
− | + | <span style="font-family: courier new,courier;">-start server(testers_mp_agroprom/deathmatch</span></p> | |
− | + | <span style="font-family: courier new,courier;">-start server(testers_mp_pool/teamdeathmatch</span></p> | |
− | + | <span style="font-family: courier new,courier;">-start server(testers_mp_railroad/ artefacthunt</span></p> | |
− | + | Чтобы организовать мапцикл (смена карт после окончания матча) нужно создать в папке app_data сервера текстовый файл maprot_list.ltx и в нем прописать карты в той последовательности, в которой они будут автоматически меняться по окончании матча.</p> | |
− | + | Содержимое файла maprot_list.ltx с полным списком карт мапцикла для ЧН, поставляемых на установочном диске:</p> | |
<p> </p> | <p> </p> | ||
<table id="table5" style="width: 100%;" border="1"> | <table id="table5" style="width: 100%;" border="1"> | ||
Строка 229: | Строка 236: | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | + | Содержимое файла maprot_list.ltx с полным списком карт мапцикла для ТЧ, поставляемых на установочном диске:</p> | |
<p> </p> | <p> </p> | ||
<table id="table5" style="width: 100%;" border="1"> | <table id="table5" style="width: 100%;" border="1"> | ||
Строка 251: | Строка 258: | ||
</table> | </table> | ||
<p>Карты в maprot_list.ltx можно прописывать в любой последовательности и в любом количестве, также допускается повторно прописывать одну и ту же карту.</p> | <p>Карты в maprot_list.ltx можно прописывать в любой последовательности и в любом количестве, также допускается повторно прописывать одну и ту же карту.</p> | ||
− | + | Если в папке app_data отсутствует maprot_list.ltx, то мапцикла на сервере не будет, но игроки смогут переключаться на другие карты голосованием.</p> | |
− | + | Если несколько серверов используют одну app_data, то соответственно они смогут использовать только один на всех мапцикл.</p> | |
− | + | Чтобы особо не мучиться с прописыванием карт в maprot_list.ltx, создайте сервер через игровой интерфейс, на вкладке сервер укажите нужные вам карты и запустите сервер. В оригинальной app_data найдите maprot_list.ltx и скопируйте его в app_data своего сервера. Выключите сервер, запущенный через интерфейс игры.</p> | |
− | + | </p> | |
<hr width="100%" size="2" /> | <hr width="100%" size="2" /> | ||
− | + | </p> | |
− | + | Большинство следующих параметров командного файла соответствуют тем параметрам, которые находятся на вкладке '''Опции''' интерфейса запуска.</p> | |
− | + | Они имеют следующий синтаксис:</p> | |
− | + | /параметр1=значение1/параметр2=значение2/параметр..n=значение..n</p> | |
− | + | Значения этих параметров дублируются в файле LTX. Значения прописанные в командном файле имеют более высокий приоритет чем значения в LTX, если они различны.</p> | |
− | + | Каждый режим игры имеет свои специфические параметры.</p> | |
− | + | Рассмотрим эти параметры:</p> | |
− | + | '''Общие параметры для всех типов игры:'''</p> | |
<table id="table2" border="1"> | <table id="table2" border="1"> | ||
<tbody> | <tbody> | ||
Строка 652: | Строка 659: | ||
</table> | </table> | ||
<p>'''Настройки клиента:'''</p> | <p>'''Настройки клиента:'''</p> | ||
− | + | К серверу, всегда, даже если на нем никого нет, подключен некий виртуальный игрок. Никто о нем не знает, никто его не видит, но он есть.</p> | |
− | + | Параметры подключения такого скрытого игрока прописываются в самом конце строки сценария.</p> | |
<p>client(localhost/portcl=4554/name=admin)</p> | <p>client(localhost/portcl=4554/name=admin)</p> | ||
<p> </p> | <p> </p> | ||
− | + | client(localhost — обязательная запись.</p> | |
− | + | вместо localhost можно прописать внешний IP-адрес сервера если используется NAT и есть проблемы с подключением самого себя.</p> | |
− | + | Ваш внешний IP {rdaddphp file=/mpnscripts/iptxt.php}</p> | |
− | + | portcl — описание в таблице выше</p> | |
− | + | name — любой набор буквенно-цифровых символов. Необязательный параметр. Может быть опущен.<br /><br /><br />Все особенности создания командного файла здесь разобраны. Подведем итог.</p> | |
− | + | Вот один из примеров запуска сервера DM.</p> | |
<table id="table5" style="width: 100%;" border="1"> | <table id="table5" style="width: 100%;" border="1"> | ||
<tbody> | <tbody> | ||
Строка 670: | Строка 677: | ||
</table> | </table> | ||
<p>В эту строку можно добавить любые параметры из таблицы выше. Все зависит от вашего вкуса и предпочтений.</p> | <p>В эту строку можно добавить любые параметры из таблицы выше. Все зависит от вашего вкуса и предпочтений.</p> | ||
− | + | '''Автоперезапуск сервера'''/p> | |
− | + | Пример:</p> | |
− | + | :load</p> | |
<p>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)</p> | <p>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)</p> | ||
goto load | goto load |
Версия 18:15, 1 марта 2010
Содержание
- 1 Зачем использовать батник для запуска сервера?
- 2 Первая часть кода
- 3 Вторая часть кода
- 4 Как командный файл может решить проблему выпадения из мастер-листа при подключении к локальному серверу
- 5 Что такое сумма битовых флагов?
- 6 Параметры, на которые нужно обратить особое внимание (назначаются в LTX)
Зачем использовать батник для запуска сервера?
Этот способ запуска сервера предназначен для решения следующих проблем:
- пропадание из мастер-листа и невозможности подключения клиентов при подключении самого себя к серверу с компьютера на котором запущен этот сервер
- автоматического перезапуска сервера при вылетах
- запуска нескольких серверов
Синтаксис командного файла для ТЧ и ЧН одинаков, но имеются небольшие различия, которые будут указаны.
Командный файл - это простой текстовый файл с любым именем и расширением *.CMD, который в нашем случае должен находиться в каталоге установки игры в папке \bin\, например:
E:\Program Files\GSC World Publishing\STALKER\bin\myserver.cmd
Создается он с помощью системного блокнота, который можно вызвать из меню Пуск>Стандартные, или меню Пуск>Выполнить>notepad. При сохранении файла важно обратить внимание на кодировку, это такой выпадающий список в окне сохранения файла под именем файла, нужно выбрать ANSI. В дальнейшем для редактирования командного файла щелкните по нему правой кнопкой мыши выберите «Изменить» или открыть с помощью Блокнота. При двойном клике по файлу будет выполняться сценарий. Для тех у кого имя сервера на русском языке отображается некорректно рекомендуется создавать сценарий в текстовом редакторе Bred3 (http://www.astonshell.ru/freeware/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:</p>
Сервер при своей работе производит чтение и запись параметров из различных файлов конфигурации, которые находятся на «путях поддержки».</p>
Настройка путей поддержки важна для запуска нескольких серверов, использующих различные списки смены карт (мапцикл) и банлисты. Тем не менее, если у вас всего один сервер, либо все серверы используют один и тот же банлист и мапцикл — следует настроить один путь поддержки, отличающийся от пути по умолчанию.</p>
В параметре -fsltx нужно указать значение, которое является относительным путем к файлу fsgame.ltx, который находится в каталоге установки игры. Весь путь указывать не нужно, только имя файла. Создайте копию fsgame.ltx, переименуйте его и укажите измененное имя.</p>
Например:</p>
-fsltx ..\myserverfs.ltx</p>
Далее все файлы, являющиеся переименованными копиями fsgame.ltx, будем называть просто fsgame, независимо от того, как вы назовете файл и сколько копий будете использовать. |
Чтобы настроить путь поддержки для сервера, открываем fsgame. В первой строке вы увидите:</p> $app_data_root$=true|false|C:\Users\Public\Documents\STALKER-STCS\</p> Как видно, в этой строке указан путь к папке, которая и является путем поддержки по умолчанию. Желательно этот путь поменять.</p> Например:</p> $app_data_root$=true|false|D:\myservers\myserverDM\</p> В конце пути обязательно должна быть косая черта</p>
Далее папку, которую вы назначите путем поддержки для сервера, будем называть app_data, независимо от того, как вы ее назовете и сколько их будете использовать. |
Если вы собираетесь запускать несколько серверов, которые будут использовать разные мапциклы и банлисты — так же создайте новый fsgame и пропишите в нем другую app_data, а в командных сценариях для запуска этих серверов в параметрах -fsltx впишите свой fsgame. Вы получите выделенные fsgame и app_data для каждого сервера.</p> Если вы запускаете несколько серверов, которые будут использовать общие мапцикл и банлист, вам достаточно создать один fsgame для всех серверов.</p> Есть еще один способ изменения app_data для сервера, отличный от предыдущего. При этом не нужно создавать копии fsgame и менять -fsltx ..\fsgame.ltx. Здесь используется дополнительный параметр -overlaypath, в значении которого нужно просто указать путь к app_data сервера.</p> Например:</p> -fsltx ..\fsgame.ltx -overlaypath D:\myservers\myserverDM\</p> В конце пути обязательно должна быть косая черта</p>
Примечание: имена каталогов не должны содержать пробелов, в противном случае заключайте их в кавычки.
Например:</p>
-overlaypath «D:\my servers\my server DM\» |
Далее файл, указанный в параметре -ltx будет иметь условное имя LTX, независимо от того, как вы его назовете. |
Если несколько серверов используют одну app_data, для каждого сервера нужно указать различные имена файла LTX. Имя файла не имеет значения, если серверы используют разные app_data.</p>
Сам файл ltx в app_data создавать необязательно; если вы запустите сервер с пустой app_data, то в этот файл будут скопированы команды из оригинального user.ltx, который лежит в папке, указанной в оригинальном fsgame.ltx. В принципе, нет необходимости вписывать команды в LTX, так как все необходимые параметры и настройки игры указываются в командном сценарии, хотя некоторые необязательные параметры читаются только из LTX. В LTX нельзя указывать некоторые функциональные команды консоли, такие как бан, кик, смена карты погоды, отмена голосования и т. п.</p>
Зачем такие сложности?</p>
Как говорилось выше, это нужно для серверов, использующих разные мапциклы и банлисты. Также замена app_data и LTX для сервера частично решает проблему подключения себя к своему серверу. Это связано с тем, что сама игра тоже использует файлы и параметры из оригинальной app_data, путь к которой указан в оригинальном fsgame.ltx и user.ltx. В любом случае, вы можете не менять app_data, но LTX желательно сменить.
Первая часть командного файла рассмотрена.</p>
Она может выглядеть так:</p>
dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserverDM.ltx</p>
или так:
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 — начальная карта при первом запуске сервера. Не имеет значений, так как параметр сам является еще и значением.</p>
Допустимые значения для карт, поставляемых на установочном диске:
mp_agroprom — Завод «Агропром»</p> mp_atp — АТП</p> mp_autostation — Автостанция</p> mp_bath — Бассейн (большой)</p> mp_darkvalley — Темная долина</p> mp_factory - Завод «Янтарь»</p> mp_firestation — Пожарная станция</p> mp_garbage — Свалка</p> mp_limansk — Лиманск</p> mp_lost_village — Заброшенная деревня</p> mp_military_1 — Военные склады</p> mp_military_2 — Старая деревня</p> mp_pool — Бассейн (маленький)</p> mp_railroad — Ж/Д станция</p> mp_rembasa — Ремонтная база</p> mp_rostok — Завод «Росток»</p> mp_sport_center — Спортивный центр</p> mp_training_camp — Тренировочный лагерь</p> mp_workshop — Заброшенная фабрика</p> |
testers_mp_agroprom — Завод «Агропром»</p> testers_mp_atp — АТП</p> testers_mp_darkvalley — Темная долина</p> testers_mp_factory - Завод «Янтарь»</p> testers_mp_lost_village — Покинутая деревня</p> testers_mp_military_1 — Военные склады</p> testers_mp_pool — Бассейн</p> testers_mp_railroad — Ж/Д станция</p> testers_mp_rostok — Завод «Росток»</p> testers_mp_workshop — Брошенная фабрика</p> mp_military_2 — mp_military_2 |
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 с полным списком карт мапцикла для ТЧ, поставляемых на установочном диске:</p>
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, то мапцикла на сервере не будет, но игроки смогут переключаться на другие карты голосованием.</p> Если несколько серверов используют одну app_data, то соответственно они смогут использовать только один на всех мапцикл.</p> Чтобы особо не мучиться с прописыванием карт в maprot_list.ltx, создайте сервер через игровой интерфейс, на вкладке сервер укажите нужные вам карты и запустите сервер. В оригинальной app_data найдите maprot_list.ltx и скопируйте его в app_data своего сервера. Выключите сервер, запущенный через интерфейс игры.</p> </p>
</p> Большинство следующих параметров командного файла соответствуют тем параметрам, которые находятся на вкладке Опции интерфейса запуска.</p> Они имеют следующий синтаксис:</p> /параметр1=значение1/параметр2=значение2/параметр..n=значение..n</p> Значения этих параметров дублируются в файле LTX. Значения прописанные в командном файле имеют более высокий приоритет чем значения в LTX, если они различны.</p> Каждый режим игры имеет свои специфические параметры.</p> Рассмотрим эти параметры:</p> Общие параметры для всех типов игры:</p>
Параметр | Описание | Значения | Примечание | ||
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 | Настройка режимов наблюдения |
Бит<a name="spectrsumm" title="spectrsumm"></a> |
Значение |
Сумма битовых флагов. <a href="#votesumm">Подробнее</a> | |
1 | Свободный полет | ||||
2 | От 1 лица | ||||
4 | Свободно привязанный | ||||
8 | От 3 лица | ||||
16 | Только для команды | ||||
0 | Все выключены | ||||
vote | Включение определенных пунктов голосования |
Бит<a name="votetable" title="votetable"></a> |
Значение |
Сумма битовых флагов. <a href="#votesumm">Подробнее</a><a href="#checksumm"> </a> Аналог: команда консоли 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-да |
Настройки клиента:
К серверу, всегда, даже если на нем никого нет, подключен некий виртуальный игрок. Никто о нем не знает, никто его не видит, но он есть.</p> Параметры подключения такого скрытого игрока прописываются в самом конце строки сценария.</p>
client(localhost/portcl=4554/name=admin)
client(localhost — обязательная запись.</p>
вместо localhost можно прописать внешний IP-адрес сервера если используется NAT и есть проблемы с подключением самого себя.</p>
Ваш внешний IP {rdaddphp file=/mpnscripts/iptxt.php}</p>
portcl — описание в таблице выше</p>
name — любой набор буквенно-цифровых символов. Необязательный параметр. Может быть опущен.
Все особенности создания командного файла здесь разобраны. Подведем итог.</p>
Вот один из примеров запуска сервера DM.</p>
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) |
В эту строку можно добавить любые параметры из таблицы выше. Все зависит от вашего вкуса и предпочтений.
Автоперезапуск сервера/p> Пример:</p>
- load</p>
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
Если добавить строчку из примера перед строкой сценария и соответствующую строчку после, то ваш сервер будет автоматически перезапускаться после вылета.</p> Помешать перезапуску сервера может системная служба отправки отчетов в Microsoft, и различные системные отладчики, которые перед тем как закрыть приложение, сообщают об ошибке пользователю. Отключите эти функции в операционной системе.
Как командный файл может решить проблему выпадения из мастер-листа при подключении к локальному серверу
Существует предположение о том, что серверу необходимо указать правильные порты. Для этого нужно в параметрах portsv portgs portcl прописать значения, не равные 5445 5446 5447 и не равные между собой. Если эти параметры в строке сценария вовсе не указывать, то сервер будет по умолчанию использовать значения 5445 5446 5447. При подключении с локального компьютера на этих портах возникают конфликты, так как игра по умолчанию тоже использует несовместимые порты.
Порты 5445 5446 5447 предназначены только для подключения с удаленных компьютеров. Если вы запускаете несколько серверов, то значения этих параметров должны различаться не только между собой, но еще и в разных командных файлах. Если выразиться проще, то сервера не должны использовать одинаковые порты. Иначе говоря, серверы не должны использовать порты, занятые другими приложениями.
Еще одна проблема может возникнуть из-за запрета в роутере или модеме подключения самого себя через внешний адрес. В этой ситуации у вас будет неверный хост. Для решения этой проблемы обратитесь к документации к своему сетевому оборудованию.
Что такое сумма битовых флагов?
Это целое число, являющееся суммой битов включенных элементов. Элементы, биты которых не участвуют в сумме, будут выключены.</p>
Рассмотрим на примере включения выключения пунктов голосования:
Например нам надо выключить пункты Изменить погоду и Рестарт. Для составления суммы лучше всего эту ситуацию рассматривать с другой стороны — нужно не выключить эти пункты, а включить все другие кроме этих пунктов.
Смотрим <a href="#votetable">биты</a> всех других пунктов кроме Изменить погоду и Рестарт. Такие пункты как Все выключены и Все включены в суммах никогда не участвуют.
Бит |
Значение |
0 | Все выключены |
1 | Все включены |
2 | Рестарт |
4 | Быстрый рестарт |
8 | Выбросить |
16 | Заблокировать |
32 | Изменить карту |
64 | Изменить погоду |
128 | Режим |
В итоге vote=4+8+16+32+128=188. Пункты голсования будут выглядеть таким образом:
Включение выключение других пунктов голосования, а так же режимов наблюдения производится аналогичным способом.
К сожалению, не все важные параметры можно прописать в командном файле, в нем прописываются только жизненно важные. Все остальные пишутся в LTX.
Параметры, на которые нужно обратить особое внимание (назначаются в LTX)
Команда | Параметры | Описание |
---|---|---|
mm_net_con_spectator | 1,32 | Число наблюдателей |
mm_net_con_spectator_on | on, off | Включить/отключить режим наблюдателя (Применяет параметр выше) |
sv_bearercantsprint | 0,1 | Выключить/включить возможность бежать, когда игрок несёт артефакт |
sv_client_reconnect_time | 0,60 | Время в течении которого за игроком сохраняется статистика/ранг/деньги если он вышел или вылетел |
sv_console_update_rate | 1,100 | Скорость обновления консоли |
sv_hail_to_winner_time | 0,60000 | Время на приветствие победителя |
sv_remove_corpse | -1,0,1 | Удалять тело после смерти игрока (-1 — никогда, 0 — сразу, 1 — по времени в конфигах) |
sv_remove_weapon | -1,0,1 | Удалять оружие после смерти игрока (-1 — никогда, 0 — сразу, 1 — по времени в конфигах) |
sv_dump_online_statistics_period | 0,60 | Период через который будет сохраняться файл online_dump.ltx |
sv_statistic_collect | 0,1 | Расширенная статистика в online_dump.ltx |
sv_vote_participants | 0,1 | Учитывать голоса только проголосовавших |
sv_vote_quota | 0.000,1.000 | Процент для успешного голосования |
sv_vote_time | 0.500,10.000 | Время на голосование |
sv_teamkill_punish | 0,1 | Кикать за тимкилл |
sv_teamkill_limit | Максимальное количество тимкиллов |
Автор: Максим «Бармен» Максимов