Jump to content
xedoc

IL2 CDR (AKA Командер)

Recommended Posts

Программа просто перезапустит сервер, с тем параметром, с которым он был запущен.

То-есть загрузится первая карта. 

 

Текущее название миссии у коммандера есть, но вот только проблема - как сказать серверу, что надо переключиться на указанную миссию. RCON-команды такой вроде нет.

 

Это не есть гуд. Надо думать как грузить следующую. В голову приходит несколько профилей сдс с всеми варинтами карт.

Share this post


Link to post
Share on other sites

Это не есть гуд. Надо думать как грузить следующую. В голову приходит несколько профилей сдс с всеми варинтами карт.

Это тоже не есть гуд.

Другой вариант - парсить SDS и менять список карт "на лету". Но это тоже гемор.

Share this post


Link to post
Share on other sites

Для отдельного сервера, это можно сделать прямо в скрипте AntiFreeze.cs

Для этого придется сохранять текущее название миссии, в классе Antifreeze как-то так:

        private string CurrentMissionFile { get; set; }
        public override void OnMissionStart(MissionLogEventStart data)
        {
            CurrentMissionFile = data.MissionFile;
        }

Затем это название передавать при создании объекта таймера перезагрузки. И при перезагрузке, в зависимости от имени файла миссии подставлять необходимый sds в arguments, в вызове StartProcess(exeFile, arguments, directory)

 

Share this post


Link to post
Share on other sites

 

Для отдельного сервера, это можно сделать прямо в скрипте AntiFreeze.cs

Для этого придется сохранять текущее название миссии, в классе Antifreeze как-то так:

        private string CurrentMissionFile { get; set; }
        public override void OnMissionStart(MissionLogEventStart data)
        {
            CurrentMissionFile = data.MissionFile;
        }

Затем это название передавать при создании объекта таймера перезагрузки. И при перезагрузке, в зависимости от имени файла миссии подставлять необходимый sds в arguments, в вызове StartProcess(exeFile, arguments, directory)

 

 

Неудобство этого метода заключается в том, что если карт на сервере больше 3х - упаришься SDS-ки создавать и править их при обновлениях...

Share this post


Link to post
Share on other sites

 

 

Это не есть гуд. Надо думать как грузить следующую. В голову приходит несколько профилей сдс с всеми варинтами карт.
 

Гагарин, тебя не поймешь.

Когда я тебе писал, что есть мысль придумать такой вариант, ты говорил что проблем с зависаниями сервера крыльев нет.

Дескать рестарта по утрам достаточно.

То есть я в первую очередь из-за зависаний нормала написал xedoc-у, про эту всю катавасию.Ну и для остальных, у кого будет виснуть.

 

А теперь, "не есть гуд".

Хотя я самого начала про момент ротации думал, и писал, что скорее всего придётся ротацию рандомную ставить, если часто падать будет.Но этого же нет, да?

Мне, кстати показалось, что ротация на крыльях сейчас рандомная и стоит.

 

Для зависания и ребута сервера раз в условную неделю, отличное решение сейчас, нужно проверить на нормале, как будет работать.

Ну а если совсем припрёт, можно и парсер sds сделать конечно.

 

PS. Тон такой, потому что не выспался.

Share this post


Link to post
Share on other sites

Парсер это конечно кромко сказано. На самом деле надо будет просто выдрать список карт из секции, одной строкой кода:

var rotationSection = Re.GetSubString(sdsFileContent, @"\[rotation\].*?\[end\]");

Переставить местами строки с миссиями, а затем обычным String.Replace()  записать обратно в файл и запустить сервер ;)

Share this post


Link to post
Share on other sites

Парсер это конечно кромко сказано. На самом деле надо будет просто выдрать список карт из секции, одной строкой кода:

var rotationSection = Re.GetSubString(sdsFileContent, @"\[rotation\].*?\[end\]");

Переставить местами строки с миссиями, а затем обычным String.Replace()  записать обратно в файл и запустить сервер ;)

Вот блин. До чего дошел прогресс...

Share this post


Link to post
Share on other sites

 

Гагарин, тебя не поймешь.

Когда я тебе писал, что есть мысль придумать такой вариант, ты говорил что проблем с зависаниями сервера крыльев нет.

Дескать рестарта по утрам достаточно.

То есть я в первую очередь из-за зависаний нормала написал xedoc-у, про эту всю катавасию.Ну и для остальных, у кого будет виснуть.

 

А теперь, "не есть гуд".

Хотя я самого начала про момент ротации думал, и писал, что скорее всего придётся ротацию рандомную ставить, если часто падать будет.Но этого же нет, да?

Мне, кстати показалось, что ротация на крыльях сейчас рандомная и стоит.

 

Для зависания и ребута сервера раз в условную неделю, отличное решение сейчас, нужно проверить на нормале, как будет работать.

Ну а если совсем припрёт, можно и парсер sds сделать конечно.

 

PS. Тон такой, потому что не выспался.

Существкющий рандом тупой. Проходит миссия 1 и тут же может загрузиться рандомно она же. Тебе будет интересна такая ротация? )

 

Если взялись делать, давайте думать как лучше. Ибо... меня такой вариант для сервера не устроит, и ставить это обновление я не вижу смысла ибо... Загрузка каждый раз первой мисси задолбает через пару дней. Это хорошо тому у кого эта миссия одна.

 

Пс. Админ тмеет право не высыпаться, но не имеет права на тон при обсуждении рабочих вопросов;)

Share this post


Link to post
Share on other sites

ОК, напишу метод RotateMaps(sdsFile, prevMission) :)

Share this post


Link to post
Share on other sites

 

 

Проходит миссия 1 и тут же может загрузиться рандомно она же. Тебе будет интересна такая ротация? )
 

С таким не сталкивался, но сталкивался когда карта повторялась через 1.

Тогда, тут ты прав.

 

 

 

Загрузка каждый раз первой мисси задолбает через пару дней.

Да почему каждый раз то?

Первая миссия будет только в случае падения сервера же. Что вроде как не часто...

Но я тут подумал, что если xedoc это сделает, то будет лучше тем, что в случае падения, будет ротация в sds меняться, что есть хорошо, не будет приедаться. 

 

 

Ты из отпуска вернулся что ли?

Share this post


Link to post
Share on other sites

Да почему каждый раз то?

Первая миссия будет только в случае падения сервера же. Что вроде как не часто...

Но я тут подумал, что если xedoc это сделает, то будет лучше тем, что в случае падения, будет ротация в sds меняться, что есть хорошо, не будет приедаться. 

 

 

Ты из отпуска вернулся что ли?

 

 

Дапотомучто. На карте с движущийся ЛФ зависало постоянно. Пришлось ее убрать покачто.

 

Угу  :cray:

Share this post


Link to post
Share on other sites

После последнего обновления сервеной части пстоянно падает командер (.

 

Что прислать для посмотреть?

Share this post


Link to post
Share on other sites

Просто прибей файл Documents\IL2CDR\Scripts\LogParserTest.cs, видимо случайно в архив попал.

Хотя почему он не может найти тип DialogResult в System.Windows.Forms - вопрос еще тот...

Share this post


Link to post
Share on other sites

Просто прибей файл Documents\IL2CDR\Scripts\LogParserTest.cs, видимо случайно в архив попал.

Хотя почему он не может найти тип DialogResult в System.Windows.Forms - вопрос еще тот...

 

Командер не обновлял (стоит предыдущая версия) до нового патча все работало нормально. Без пилотов командер тоже работает нормально. Вчера при наличии более 40 пилотов падал после максимум работы постоянно. Данного файла в папке нет.

 

Кстати можно ли реализовать функцию при которой командер парсил события с момента его падения? Складывая в БД данные с того момента, как он "лег"?

Share this post


Link to post
Share on other sites

Хочу спросить умных людей, кто знает инструментарий "дсервер+редактор":

1)заложена ли сама возможность передачи параметров(например число уцелевших объектов на предыдущей карте) при запуске новой миссии, например с целью перезапуска той же самой карты, но с другими исходными данными?

2)если да, то подскажите, где об этом подробней узнать(можно в личку).

Спасибо.

Share this post


Link to post
Share on other sites

Судя по молчанию, никто не знает ответа?

А тогда, ну кроме сбора и обработки  логов, какая функция возложена на обсуждаемый здесь командер, если никто не знает, как передать все его расчеты(экономика и т.п) в миссию?

Или молчание - результат партизанской деятельности "знаю, но не скажу"?  :)

UPD Без обид, но на данный момент выбор следующей миссии возможен логикой самого редактора. Беда в том, что чем сложней логика внутри самой миссии, тем больший набор карт придется штамповать, что конечно же есть изврат ПМСМ. Исключительно поэтому и возник сам вопрос.

Edited by =J13=xarann

Share this post


Link to post
Share on other sites

1) коммандер держит в памяти список текущих объектов. Точнее тех объектов, спаун которых передается в логах. По ходу миссии, если объект уничтожается, то это можно отследить.

2) в игру можно передавать информацию rcon-ом, через команду serverinput. Из сриптов программы можно пользоваться rcon-ом.

Edited by xedoc

Share this post


Link to post
Share on other sites

 в игру можно передавать информацию rcon-ом, через команду serverinput. Из сриптов программы можно пользоваться rcon-ом.

Спасибо, мил человек, за ответ. Еще пара вопросов. Я просто пытаюсь разобраться с широтой инструментария, что дан нам свыше(от разработчиков).

Правильно ли я понял, в самой миссии за прием команды отвечает "translator server input", который  по сути является триггером, от которого можно только дёрнуть событие?

Получается, все взаимодействие с картой на приём данных, сводится к дерганью бита с уникальным именем и не более того (чтобы поменять значение в счетчике с N на M, надо будет городить схему)? 

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

Share this post


Link to post
Share on other sites

кседок а что темма с коммандером загнулась?...чет посто на сайте у тебя сейчас((

Share this post


Link to post
Share on other sites

Админы говорят, что сервера фризит из-за коммандера. Даже обычный опрос rcon-а вроде грузит сервер.

Поэтому перестал им заниматься пока.

Share this post


Link to post
Share on other sites

Печально!(( Это 100%-ая инфа, все подтвердили ее? или стоит еще проверить?

Share this post


Link to post
Share on other sites

Если будет интересно админам, могу попробовать убрать регулярный опрос RCON-а, оставить только один запрос, для определения имени сервера. Это единственная функция, которая напрямую дергает сервер. Все остальное - обычное чтение файлов. Оно тормозить сервер не может.

Только тогда список игроков будет без пинга.

Share this post


Link to post
Share on other sites

95$, каждое DLC оплачивать отдельно

Edited by 72AG_Crusader

Share this post


Link to post
Share on other sites

эм, можна тупой вопрос?

 - обсуждаемый коммандер не может работать с удалённым сервером и его принципиально нужно запускать на одной машине с выделенным сервером?

Share this post


Link to post
Share on other sites
В 24.09.2015 в 01:41, xedoc сказал:

Админы говорят, что сервера фризит из-за коммандера. Даже обычный опрос rcon-а вроде грузит сервер.

Поэтому перестал им заниматься пока.

 

А нельзя командер запускать только для обработки логов сыгранной миссии?

 

Возвращайтесь пожалуйста. Фризы немного починили. Я хочу создать кооперативный проект, мне нужна небольшая помощь с созданием движка на стороне, обрабатывающим результаты миссий и выводящим результаты на сайт.

Share this post


Link to post
Share on other sites
Posted (edited)

У кседокса базис за основу взять только - соединение с рконом и работу серверинпута, парсер логов можете самим под свои задачи написать 

Edited by -DED-Rapidus

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...