Перейти к содержимому
xedoc

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

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

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

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

 

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

 

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

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


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

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

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

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

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


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

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

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

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

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

 

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


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

 

Для отдельного сервера, это можно сделать прямо в скрипте 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-ки создавать и править их при обновлениях...

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


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

 

 

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

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

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

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

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

 

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

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

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

 

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

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

 

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

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


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

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

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

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

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


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

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

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

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

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

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


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

 

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

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

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

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

 

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

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

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

 

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

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

 

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

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

 

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

 

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

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


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

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

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


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

 

 

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

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

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

 

 

 

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

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

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

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

 

 

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

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


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

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

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

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

 

 

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

 

 

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

 

Угу  :cray:

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


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

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

 

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

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


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

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

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

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


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

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

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

 

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

 

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

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


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

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

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

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

Спасибо.

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


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

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

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

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

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

Изменено пользователем =J13=xarann

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


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

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

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

Изменено пользователем xedoc

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


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

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

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

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

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

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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


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

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

Изменено пользователем 72AG_Crusader

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


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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
В 24.09.2015 в 01:41, xedoc сказал:

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

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

 

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

 

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

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


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

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

Изменено пользователем -DED-Rapidus

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


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

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

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

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

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

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

Войти

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

Войти сейчас

×