Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
BorizzK

Запускальщик/рестартер с бэкапом логов, базы и настроек

Рекомендованные сообщения

Накатал по быстрому для себя и своих ребят от нефиг делать, тк в командировке и дейзить возможности нет, только удаленно ковырять сервер
Внутри настройки через переменные
путь к базе сервера и инстанс ид берет из конфига сервера (нужно настроить имя файла и путь в файле)
Мониторит сервер по названию окна, сохранив pid
При вылете в 90% случаев корректно убивает процесс
При перезапуске так же
При каждом старте с 0 и при перезапусках делает бэкапы баз/настроек/

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Изменено пользователем BorizzK
Добавление новой версии (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





Улучшил немного

Было не оч красиво
1 Не было проверки есть сервер и конфиг в папке или нет

2 Теперь есть проверка на повторно запущенный скрипт из одной и той же папки (костыльно, но вполне по линуховому - через pid файл)
если уже запущен скрипт заново запущенный скрипт закрывается

 

Обновил файл
убрал одну проверку

не учел сначала что если серв запускается впервые то и папки storage нет и проверка бы не прошла

убрал ее

 

+ Как бы требуются еще усовершенствования

Доеду до дома доведу до ума

 

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Допилил скрипт

в одной виртуалке

неск серверов в одном сеансе
в скрипте меняю только порт

распознает

повторный запуск исключен в 99% случаев

если окно cmd закрыть ручками бывает cmd зависнет в памяти

и тогда в принципе распозает тк титл окна у зависшего cmd обнуляется

однако в памяти он всеравно остается (винда блиг, хотя подобные приколы стали и на линухе случаться с башем)

но такое бывает крайне редко

 

вобщем у меня и у коллег работает

 

буду считать финальным вариантом

 

Пользоваться не сложно

Поместить в корень с сервером

 

Внутрях поменять/прописать

 

  Версия сервера - при каждом обновлении придется менять посмотрев на версию в заголовке окна
  set "Version=1.0.150000"
  :::Имя экзешника
  set "SrvName=DayZServer_x64.exe"
  :::папка с конфигом/логами/профилем сераерв
  set "SrvConfPath=Instance_1"
  :::Имя файла с конфигом
  set "srvconfigfile=server.cfg"
  :::Порт сервера
  set "Port=2302"
  :::Список модов которые Вы указываете в параметрах для запуска в ключе -mod= - если папки с модами не обнаружены то переменная будет проигнорирована
  set "mods=mytestmod1,mytestmod2"

 

P.S. насколько я понял каждый мод это отдельная папка, верно?

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дополнение
рекомендую добавить в реестр

 

reg add "HKLM\Software\Microsoft\Windows\Windows Error Reporting" /v "DontShowUI" /t REG_DWORD /d 1 /f

 

Ибо WER любит запрс про крашнуте приложение вывести и ждать Вашего ОК и все это время сервер будет считаться запущенным

 

Старый скрипт прибил

Доработанный выложу позже!

 

Всех с НГ!

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всех с НГ

Допилил скрипт

К сожалению пришлось покостылить, тк виндовый шелл местами кривой, а я привык скриптить под линухом где все четко и по нормальному

В итоге от ENABLEDELAYEDEXPANSION пришлось отказаться по некоторым причинам

Вобщем получилось вполне работоспособно

 

Внутрях каменты на русском и английском

 

Кому надо тот разберется, а кто не разберется пишите вопросы и пожелания в этой теме

 

Кроме возможностей выше

гасит зависшие процессы дейза

если Вы вдруг закрыли окно скрипта а бек (если разрешен) и сервер дейз запущены

скрипт берет управление при запуске

Так же при запуске частично проверяет корректность настроек Bec, BE и самого сервера Dayz

 

Теперь добавлена возможность перезапуска и выключения через помещение файла restart или shutdown в корень папки
если файлы пустые то таймаут по умолчанию 2сек

если в файле указать время то перед перезапуском и выключением будет задержка согласно указанному времени в секундах

я в своей чат-админке это реализовал

очень удобно

 

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё это хорошо и увлекательно, только вот зачем использовать сторонний проприетарный архиватор?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не на все моды реагирует почему то... а точнее стоит админка от "Томато" Так он пишет на нее Error типо не может найти хотя все прописал как в "параметрах запуска" И вообще пытался без нее прогрузить моды. Не цепляет он их почему то... хотя приблуда годная... моды бы только нормально цепляла... хотя может косяк у меня... 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Изменено пользователем saikodelic (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А когда все запускаю без твоего батника все работает все функционирует на сервере... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

saikodelic Хрен знает
Мод это отдельная папка или как?

Вижу что папки

Только на скрине не вижу ругагани

Каждый мод в папку

папка в списке

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще чуть допилил

перезагрузка сервера дейз и хост-машины инклюдед

гайд после того как допилю одминку

 

 

 

 

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зафиналил скрипт

Работает нормально на нескольких боевых серверах

 

Ловит команды от моей админки (выложу в соответствующей теме чуть позже)

 

Внутри кучв каментов и основные на русском

 

все обсуждения тут, а не в личке

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK вот со строчками о сервере я и туплю, что да как там вписать) боюсь сломать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Два вопроса:

Что такое steamqueryport и почему не запускает bec?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

rNk1337 А бек в папке BEC в корне сервера?

А версия бека какая?

Чуть ниже спустись  к настройкам BEC

 

	::: BEC SETTINGS BEGIN
		::: Включение/отсключение BEC
		set "becenable=true"
		::: Имя файла сервера BEC
		set "BecSrvName=Bec.exe"
		::: Имя файла конфига сервера BEC
		set "becconfig=Config.cfg"
		::: Путь к BEC
		set "becpath=%SrvCd%\Bec"
	::: BEC SETTINGS END

 

и еще пусть к баттлай в конфиге бек
куда кажет?

 

содержимое файла конфига баттлай BEServer_x64.cfg

 

RConPassword пароль
RestrictRCon 0
RConPort 2303
RConIP 127.0.0.1

 

Такое?

 

Он там должен написать почему если все типа верно

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzKпапка BEC в корне сервера, конфиг BEC находится в папке BEC/config а BEServer.cfg который с рконпассом находится в папке Battleye

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Папка с баттлай по умолчанию сервером создается и туда копируется библиотека в папку которая находится в папке указанной в парамтре -profile

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
	::: DAYZ SERVER SETTINGS BEGIN
		::: Версию менять только на актуальную отображаемув в заголовке окна сервера !!!
		set "Version=1.0.150000"
		
		::: Имя файла сервера
		set "SrvName=DayZServer_x64.exe"
		
		::: Порт сервера
		set "Port=2303"
		
		::: Папка с конфигом сераера (не должна содержать нелатинские символы)
		set "SrvConfPath=!ConfigServer"
		
		::: Имя файла конфига сервера 
		set "SrvConFigfile=server.cfg"
		
		::: Папка профиля сервера, логи, временные файлы, библиотека баттлай для rcon и профиль сервера
		::: В ней лежат динамические настройки и файл с переменными профиля сервера который может хранить некоторые данные состояния мира и да же игроков когда либо подключавшихся к серверу !!!
		::: (не должна содержать нелатинские символы) (так же путь $profile: в серверных скриптах указывает на эту папку)
		::: на эту папку настроены функции отсылки сообщений restart shutdown и machinerestart в AdminTools
		::: Может отличаться от папки конфига сервера
		set "SrvProfilesPath=%SrvConfPath%"
		
		::: Должна быть = SrvProfilesPath (ВРОДЕ БЫ НЕ ИСПОЛЬЗУЕТСЯ)
		::: set "ServerUserPath=!ProfilesServer"
		
		::: Максимальное кол-во памяти сервера (Если сервер запускается 1: Для 16Gb RAM 12288, для 32Gb RAM - 12288 x 2, если 2 - Для 16Gb 7192, для 32Gb RAM - 7192 x 2)
		set "maxmem=12288"
		
		::: Максимальное кол-во используемых ядер процессора
		set "-cpuCount="
		
		::: Моды через запятую (как в параметре -mod=) (если папки с модом нет, оно будет проигнорированно)
		set "mods="
		
		::: Приритет при запуске по умолчанию /NORMAL (см параметры команды start)
		set "priority=/NORMAL"
		
		::: Доп Параметры для строки запуска сервера
		::: Имя сервера, на самом деле имя папки в %SrvProfilesPath%\Users и заголовка имени файлов с профилем сервера (не должна содержать нелатинские символы)
		set "ServerName=Server"
		::: Позволяет распакаовать scripts.pbo в корень папки сервера и использовать ее вместо scripts.pbo, соответственно можно вносить изменения в серверные скрипты
		set "-filepatching=-filepatching"
		::: Включает возможность записи в файлы из скриптов на стороне сервера
		set "-scrallowfilewrite=-scrallowfilewrite"
		set "-freezecheck=-freezecheck"
		set "-autoinit=-autoinit"
		set "-adminLog=-adminLog"
		set "-ShowScriptErrors=-ShowScriptErrors"
		set "-debugLog=-debugLog"
		set "-dologs=-dologs"
		set "-netlog="
		::: Строка параметров запуска сервера формируется ниже на основе параметров указанных в этой секции
	::: DAYZ SERVER SETTINGS END

	::: BEC SETTINGS BEGIN
		::: Включение/отсключение BEC
		set "becenable=true"
		::: Имя файла сервера BEC
		set "BecSrvName=Bec.exe"
		::: Имя файла конфига сервера BEC
		set "becconfig=Config.cfg"
		::: Путь к BEC
		set "becpath=%SrvCd%\Bec"
	::: BEC SETTINGS END

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Внимательно изучите параметры из скрипта выше
пути там указанны относительные

 

и вот конфиг моего BEC

 

#--------------------------------------------------------------------------------------------------------
[Bec]
#--------------------------------------------------------------------------------------------------------

# Set the ip to your server. normally 127.0.0.1 will be fine.
Ip = 127.0.0.1


# Set the port to the server. default port is 2302
Port = 2303


# Set the path to the BattlEye directory that is currently in use by the server.
BePath = D:\DAYZSERVER\DayZServer_1.0.150\!ConfigServer\BattlEye


# Set the path to your Admins.xml file containing your admins.
Admins = Admins.xml


# Set the path to your Commands.xml file.
Commands = Commands.xml

#Log directory
LogDir = .

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK все правильно папка battleye создалась в профиле сервера, почему бек не запускается пути верные

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Явно пишет что конфиг не видит

у меня на всех видит

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пройдитесь вниз скрипта и посмотрите как и что он проверяет

 

И прекращайте держать серваки в папке стима

выносите их оттуда - ибо любое обновление все потереть может нафиг

 

просто папку DayZServer копируете куда угодно и оттуда запускаете

ему пофиг на стим

 

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK Можно ваш BEC пожалуйста ну или его конфиг

Рестартер показывает что неправильно записан порт в Config.cfg BEC, хотя там все верно, какой порт сервера такой и порт BEC

 

Прошу меня извинить, кривой BEC мне попался вот и все...

 

Изменено пользователем rNk1337 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Порт должен соответствовать порту дейза и порту в конфиге баттлай

хотя по идее просто порту баттлай

но у меня проверка по порту дейз

что наверное поменяю потом

 

Я так понял вопрос решен?

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK Спасибо за помощь на этом этапе решен. Все таки попытаюсь выпросить у Вас заведомо рабочий BEC, мой ни в кaкyю не хочет подключаться к серверу...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
    • Автор: 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: 123new
      Много вопросов на данную тему наблюдаю от новичков, попробую прояснить немного сей вопрос.
       
      Предположим. что вы уже знаете на каких координатах вам надо спавнить определенное здание или объект\животное\бота, с каким углом поворота. И так. эта тема для вас.
       
      Сразу делаю пометку, метод, который добавили нам разработчики игры в патче 1.15, очень хорошо описал наш товарищ в сообщении форума:
      Рекоммендую вам использовать именно его!
      Ниже опубликованы старые методы.
       
      Если вы с расставили их с модифицированной версии Offline (Offline by Arksenor это называется), то вы получили и нашли код вида:
      GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13260.040039 0.0 3670.984131").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13262.756836 0.0 3645.180176").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13265.441406 0.0 3619.531982").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13268.124023 0.0 3593.995361").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13270.844727 0.0 3568.186523").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13273.514648 0.0 3542.561279").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13276.195313 0.0 3517.048828").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13278.399414 0.0 3496.097900").SetOrientation("-96.000000 0.000000 0.000000"); Здесь (по примеру первой строки) 1 значение в скобках - id постройки/объекта, 2 значение - координаты в формате X Y Z, разделенные пробелом, 3 - значение поворота примерно в том же формате.
      Как это делать в Offline - статья от автора Offine:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Add-custom-objects-to-your-server-or-mission
       
      И так, инструкция:
      1. Добавляем в начало init.c файла в вашей mpmissions следующий код:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\spawn_buildings.c" 2. Создаем в папке вашей активной mpmissions файлик spawn_buildings.c и заполняем его следующей информацией.
      void SpawnObject( string type, vector position, vector orientation ) { private string NameBlockLog = "[CreateObject] "; private string InfoLog = ""; if(type != "") { auto obj = GetGame().CreateObject( type, "0 0 0" ); if(obj) { if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0)) { obj.SetPosition( position ); obj.SetOrientation( orientation ); obj.Update(); if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']"; Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog); } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog); } } void Write_Log(string message) { Print(String(message)); } 3. Открываем созданный нами файл,  и в конце файла дописываем следующее:
      void SpawnAirfeeldBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } void SpawnKrasnoBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } Где после void - название функции идет, а между открытыми скобками вызов спавна самих зданий на указанных координатах.
      На примере 1 строки:
      Land_CementWorks_ExpeditionB - id постройки (type)
      13251.875000 0.0 3748.525879 - координаты в формате X Y Z
      -96.000000 0.000000 0.000000 - значение поворота в формате X Y Z
      Внимание: id постройки и координаты в примере указаны не верные и требуют подключения дополнительной модификации для корректной работы!!! Координаты не соответствуют названию функции!!!
      4. открываем в MpMissions в папке с вашей активной миссией init.c и перед ЗАКРЫВАЮЩЕЙ скобкой '}' дописываем нужную нам функцию (это будет активация спавна на карте):
      SpawnAirfeeldBuildings(); 5. Готово, Запускайте сервер, и в scripts.log вы увидите процедуру спавна ваших зданий и увидите, спавнятся ли они на карте или нет.
      Можно написать конечно и более готовую, универсальную систему спавна на карте со считыванием конфигурации из файла, но я считаю это лишним.
       
      Как заполнить добавленные здания лутом на карте:
      вариант 1:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Enable-loot-for-custom-placed-objects
      вариант 2: вручную заполнить xml-файл  mapgrouppos.xml в mpmssions данными о местоположении зданий, где rpy - значение поворота здания в формате Z Y X
       
      С помощью данной статьи вы можете разместить любой элемент игры(постройку, животное, зомби, бота), доступный к спавну через любую модификацию-админ. панель. Очень полезный мод в этом смысле BuilderItems, с его помощью можно творить поистину интересные локации!
    • Автор: Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.