Часть 2.
Большинство следующих параметров командного файла соответствуют тем параметрам, которые находятся на вкладке Опции интерфейса запуска.Они имеют следующий синтаксис: /параметр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
(sv_setnvtime) | Начальное время суток в игре. | 00:00-23:59 | От времени суток зависит погода | Ясная | 9:00 | Облачная | 13:00 | Дождь | 16:00 | Ночь | 01:00 | etimef
| Скорость изменения погоды | 0.0-100.0 | Десятичное число с одним знаком после точки. Оптимальное значение 1.0 | ans
(sv_anomalies_enabled) | Аномалии | 0-выключены |
| 1-включены | anslen
(sv_anomalies_length) | Период работы аномалий | 0-бесконечные |
| 1-180 - время в минутах | pdahunt
(sv_pda_hunt) | +100р за поднятый рюкзак | 0-нет |
| 1-да | warmup
(sv_warm_up) | Разогрев | 0-выключен |
| 1-3600 - время в секундах | timelimit
(sv_timelimit) | Время матча | 0-бесконечный |
| 1-180 - время в минутах | dmgblock
(sv_dmgblocktime) | Время неуязвимости после рождения | 0-отключено |
| 1-600 время секундах | dmbi
(sv_dmgblockindicator) | Индикатор неуязвимости | 0-выключен |
| 1-включен | fraglimit
| Лимит фрагов | 0-бесконечные | Используется только для режимов DM и TDM | 1-100 | spectrmds
(sv_spectr_firsteye sv_spectr_freefly sv_spectr_freelook sv_spectr_lookat sv_spectr_teamcamera) | Настройка режимов наблюдения | Бит
| Значение | Сумма битовых флагов. Подробнее
| 1 | Свободный полет | 2 | От 1 лица | 4 | Свободно привязанный | 8 | От 3 лица | 16 | Только для команды | 0 | Все выключены | vote
(sv_vote_enabled) | Включение определенных пунктов голосования | Бит
| Значение | Сумма битовых флагов. Подробнее
Аналог: команда консоли SV_VOTE_ENABLED | 0 | Все выключены | 1 | Все включены | 2 | Рестарт | 4 | Быстрый рестарт | 8 | Выбросить | 16 | Заблокировать | 32 | Изменить карту | 64 | Изменить погоду | 128 | Режим | frcrspwn
(sv_forcerespawn) | Принудительное рождение | 0-выключено | Для DM и TDM | 1-3600-время в секундах. Не забывайте что иногда игрокам нужно зайти в магазин |
Общие настройки всех командных режимов: Параметр | Описание | Значения | Примечание | abalance
(sv_auto_team_balance) | Автобаланс команд | 0-выключен | Производится после окончания матча за счет игроков набравших наименьшее количество очков | 1-включен | aswap
(sv_auto_team_swap) | Автосмена команд | 0-выключен | После окончания матча игроки автоматически меняются командами | 1-включен | fi
(sv_friendly_indicators) | Иконка над головами игроков своей команды | 0-выключен |
| 1-включен | fn
(sv_friendly_names) | Имена над головами игроков своей команды | 0 - только тогда, когда клавиша CapsLock нажата |
| 1 - Caps Lock действует как переключатель | ffire
(sv_friendlyfire) | Коэффициент повреждения, наносимого игроками одной команды друг другу. | 0.0-2.0 | 1.0 = 100%, 2.0 = 200% |
Настройки только для режимов AH и CTA: Параметр | Описание | Значения | Примечание | anum
| Количество артефактов | 1-100 |
| astime
(sv_artefact_stay_time) | Артефакт лежит пока его никто не поднимет | 0-всегда | Только для AH | 1-180-время в минутах | ardelta
(sv_artefact_respawn_delta) | Задержка артефакта. Время до появления нового | 0-выключен | Только для AH | 1-600-время в секундах | reinf
(sv_reinforcement_time) | Рождение игроков | -1 - когда артефакт принесен на базу или одна из команд польностью уничтожена |
| 0-игроки рождаются когда захотят | 1-3600-время через которое игроки будут принудительно рождены. | artrettime
(sv_artefact_returning_time) | Время через которое артефакт вернётся на вашу базу , если противник его потерял | 0-сразу | Только для CTA | 1-300 время в секундах | actret
(sv_activated_return) | Артефакт нужно взять в руки и нажать огонь | 0-нет | Только CTA | 1-да |
Что такое сумма битовых флагов? Это целое число, являющееся суммой битов включенных элементов. Элементы, биты которых не участвуют в сумме, будут выключены. Рассмотрим на примере включения выключения пунктов голосования: Например нам надо выключить пункты Изменить погоду и Рестарт. Для составления суммы лучше всего эту ситуацию рассматривать с другой стороны - нужно не выключить эти пункты, а включить все другие кроме этих пунктов. Смотрим биты всех других пунктов кроме Изменить погоду и Рестарт. Такие пункты как Все выключены и Все включены в суммах никогда не участвуют. Бит
| Значение
| 0
| Все выключены
| 1
| Все включены
| 2
| Рестарт
| 4
| Быстрый рестарт
| 8
| Выбросить
| 16
| Заблокировать
| 32
| Изменить карту
| 64
| Изменить погоду
| 128
| Режим
|
В итоге vote=4+8+16+32+128=188 Пункты голсования будут выглядеть вот таким образом: Включение выключение других пунктов голосования, а так же режимов наблюдения производится аналогичным способом.Настройки клиента: К серверу, всегда, даже если на нем никого нет, подключен некий виртуальный игрок. Никто о нем не знает, никто его не видит, но он есть. Параметры подключения такого скрытого игрока прописываются в самом конце строки сценария. client(localhost/portcl=4554/name=admin) client(localhost – обязательная запись.вместо localhost можно прописать внешний IP-адрес сервера если используется NAT и есть проблемы с подключением самого себя. Ваш внешний IP 31.23.125.167 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)В эту строку можно добавить любые параметры из таблицы выше. Все зависит от вашего вкуса и предпочтений.
Внимание!!! Длина строки аргументов не должна превышать 487 символов. Это одна из основных причин падения сервера при запуске. |
Выполнение заданной команды при запуске сервера
Некоторые команды консоли могут быть введены только вручную, например sv_startteammoney. Это доставляет некоторое неудобство: при каждом рестарте сервера (либо загрузке новой карты) необходимо заново вводить эту команду. Для решения этой проблемы можно использовать параметр -$. Добавьте его в строку аргументов, а затем допишите команду. После старта сервера эта команда будет выполнена автоматически. Однако здесь есть один ньюанс: после параметра -$ может быть записана команда с максимум одним аргументом. Это значит, что использовать sv_startteammoney в таком виде нельзя. Для того, чтобы выполнять команды с более чем одним аргументом, запишите их в конфигурационный файл all_server_settings.ltxи поместите в папке app_data_root, а затем добавьте в строку аргументов -$sv_status. После запуска сервер выполнит команду sv_status, т.е. загрузит команды, записанные вами в all_server_settings.ltx. Ввиду того, что длина строки аргументов не должна превышать 487 символов, могут возникнуть проблемы с запуском сервера через командный файл. Использование -$sv_status позволит сократить длину строки аргументов, убрав из нее те параметры, которые можно заменить на аналогичные им консольные команды в all_server_settings.ltx. Аналоги консольных команд указаны в таблицах. Команды в all_server_settings.ltx имеют более высокий приоритет при запуске сервера с использованием -$sv_status, чем параметры командной строки и настройки LTX, и тем самым обеспечивается гарантированное сохранение настроек при падении сервера. В этот файл можно записывать любые команды в любом количестве, а так же записывать одну и ту же команду несколько раз. Пример: dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserver.ltx -$sv_status -start server(итд*Список всех известных консольных команд находится здесь.
Автоперезапуск сервера Пример: :loadstart /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, и различные системные отладчики, которые перед тем как закрыть приложение, сообщают об ошибке пользователю. Отключите эти функции в операционной системе. В операционных системах Windows 7 даже при отключенных службах отчетов об ошибках при падении сервера все равно выскакивает системное сообщение о том что программа xrEngineне работает и сервер будет перезапущен только если вручную закрыть это сообщение. Для решения этой проблемы создайте отдельный батник со сценарием: :loadC:\Windows\System32\taskkill.exe /f /im WerFault.exe goto load Единственный недостаток такого способа автозакрытия системного сообщения в том, что закрываться будут сообщения для всех программ, не только для сервера. Ничего лучшего на данный момент не придумано. Запуск нескольких серверов на одном компьютере Для каждого сервера в параметрах portsv potrgs portcl нужно указать разные порты. Каждый сервер не должен использовать порты, которые используются другими серверами. В целом серверы не должны использовать порты занятые другими приложениями.Как командный файл может решить проблему выпадения сервера из мастер-листа, при подключении самого себя к серверу? Бывают такие ситуации, что к серверу никто не может подключиться или сервер выпадает из мастер-листа когда вы сами играете на своем сервере и все становится нормально когда вы уходите с сервера. Если у вас такого не происходит, то эта глава не для вас. Есть такое предположение, что это происходит по следующим причинам:
- Сервер использует порты по умолчанию: 5445 5446 5447
- Сервер и игра используют одну и ту же app_data и user.ltx
Если в сценарии запуска не указывать порты(portsv potrgs portcl), то сервер будет использовать порты по умолчанию: 5445 5446 5447. Укажите порты не равные 5445 5446 5447. Смените app_data и user.ltx. Еще один из способов решения проблемы для компьютера с одним сервером это не указывать в сценарии potrgs или прописать potrgs=-1. Но в этом случае вы не сможете запустить несколько серверов, потому что все серверы будут использовать один и тот же порт = 5447.
Авторы:Максим Максимов (Бармен), Павел "Flammable" КоваленкоОбсудить на форуме ONLINE интерфейс для создания батника для сервера S.T.A.L.K.E.R.
При копировании статьи прямая активная ссылка на www.mpnetworks.ru с указанием автора обязательна.
|