Jump to content
View in the app

A better way to browse. Learn more.

FRONT LINE

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Ошибки в точках, взлет позже по времени и уже с высотой
image.png

  • Replies 215
  • Views 8.9k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Известная всем - зачастую при смене звания, оно не обновляется на сайте, а лишь в полоске прогресса в плейнсете. Фиксится появлением и исчезновением на филде, но это такое.

  • Результативный вылет (2 сбитых), ранение, успешная посадка на филд. В итоге 0 очков и минус 2k денег. Нахожусь в группе из 1 чел, в журнале вылетов значка группы нет, то есть дохода не было, все в ми

  • https://il2-fl.ru/ru/stats/sortie/48836/0?gamerId=539&tab=flight-log Да, в группе был. Группа "2./SG2"

Posted Images

  • Author
  • Developer
17 минут назад, NooBAsTiK сказал:

Ошибки в точках, взлет позже по времени и уже с высотой
image.png

Нет тут ошибок. Я не виноват, что событие взлета сервер так пишет в лог, с высотой.

2 минуты назад, Zlodey сказал:

Нет тут ошибок. Я не виноват, что событие взлета сервер так пишет в лог, с высотой.

Нет так нет

  • Author
  • Developer
21 минуту назад, Hanko сказал:

За смертные вылеты не списывает очки и деньги, свежие примеры

https://il2-fl.ru/ru/stats/sortie/130493/0?gamerId=1327&tab=flight-log

Во втором все спиано.

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

image.png

Заметил, что иногда как в примере за вылет защитывает как 0 по времени, не смотря на то, что в журнале события взлёта, прыжка с парашютом, крушения и конца задания, получены.

Начало 23.02.2026, 22:12:35
Окончание 23.02.2026, 23:24:32
Длительность 00:00

из журнала полёта:
23.02.2026 23:16:37 Урон 0,29% Окружение
23.02.2026 23:16:37 Урон 0,03% Окружение
23.02.2026 23:21:38 Урон 0,22% Окружение
23.02.2026 23:21:38 Урон 0,02% Окружение
23.02.2026 23:21:42 Прыгнул с парашютом пилот
23.02.2026 23:21:42 Урон 36,08% Окружение
23.02.2026 23:21:42 Крушение 100,00%
23.02.2026 23:24:32 Конец

Подозреваю, что случилось это из-за того, что журнал вылета оба события "Прыгнул с парашютом" и "Крушение" получил буквально одновременно. Хотя на самом деле, я выпрыгнул раньше минимум за 2-2,5 минуты до того, как мой самолет с оборванными флаттером рулями по спирали совершил еще минимум 2-3 размашистых круга почета и довольно жестко, но по касательной ухнулся на поле под ногами, даже без взрыва топлива (самолет защитало как полностью разрушен на 100%, пилот и экипаж соответственно 0% жив-здоров (прыгал с 1000 не меньше)).

Мне кажется, что технически происходит (рейс кондишн) - по какой-то причине неверно (читай не вовремя) получаем время прыжка из самолета или в целом не получаем такое состояние как "прыгнул с парашютом" (как отдельное условие для проверки состояния игрока между событиями "взлёт" и "крушение"). Когда дело доходит до учета прыжка _rootEntity игрока не переключается в промежуточное состояние "жив в парашюте", а просто наследует смерть от крушения самолета, принудительно выставляется IsDead = true для связанного PID игнорируя тот факт, что пилот уже является отдельной сущностью (парашютистом). В общем Sortie получил profile.DurationGame = 0; несмотря на то, что пилот был жив до самой земли, жестко отработало условие (ent.IsDead).

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

Edited by Matpocob

+ если рассматривать тот факт, что каждое срабатывание ent.IsDead приводит еще и к profile.AirStreak = 0; profile.GroundStreak = 0; то в предверье обновления с наградами, не такая уж это возможно и мелочь...

weeeps.png

  • Author
  • Developer
7 часов назад, Matpocob сказал:

рейс кондишн

Не пытайся гадать не понимая как "оно" работает и не видя исходников. Твое дело просто сообщить об ошибке.

Хочешь "работать" над проектом, велкам на собес.

До:

 var list = Sortie.Events
                .Where(x => x.EventType is TypeEventSortie.TakeOff or TypeEventSortie.Landing
                    or TypeEventSortie.IncomingKill)
                .OrderBy(x => x.EventDate)
                .ToList();

После:

 	/// <summary>
    /// Рассчитывает общую продолжительность полета (в секундах) на основе событий взлета и посадки в вылете.
    /// </summary>
    /// <returns>Продолжительность полета в секундах. Возвращает 0, если вылет или его события отсутствуют.</returns>
    private long GetDurationFlight()
    {
        if (Sortie?.Events == null)
            return 0;

        if (TypeVehicle == TypeVehicle.AirCraft)
        {
            var list = Sortie.Events
                .Where(x => x.EventType is TypeEventSortie.TakeOff or TypeEventSortie.Landing
                    or TypeEventSortie.IncomingKill or TypeEventSortie.BotEjectLeave)
                .OrderBy(x => x.EventDate)
                .ToList();

            long totalDuration = 0;
            DateTime? takeOffTime = null;

            foreach (var flightEvent in list)
            {
                if (flightEvent.EventType == TypeEventSortie.TakeOff)
                {
                    // Если мы встречаем взлет, просто запоминаем его время.
                    // Если предыдущий взлет был без посадки, он перезапишется.
                    takeOffTime = flightEvent.EventDate;
                }
                // 2. Вычисляем продолжительность, только если был зафиксирован взлет (takeOffTime != null)
                else if ((flightEvent.EventType == TypeEventSortie.Landing ||
                          flightEvent.EventType == TypeEventSortie.IncomingKill ||
                          flightEvent.EventType == TypeEventSortie.Crash ||
                          flightEvent.EventType == TypeEventSortie.BotEjectLeave) && takeOffTime.HasValue)
                {
                    // Убедимся, что посадка произошла после взлета
                    if (flightEvent.EventDate > takeOffTime.Value)
                    {
                        totalDuration += (long)(flightEvent.EventDate - takeOffTime.Value).TotalSeconds;
                    }

                    // 4. Сбрасываем время взлета, чтобы ожидать следующую пару "взлет-посадка"
                    takeOffTime = null;
                }
            }

            return totalDuration;
        }

        if (TypeVehicle == TypeVehicle.Vehicle)
        {
            return (long)(Sortie.EndDate - Sortie.StartDate).TotalSeconds;
        }

        return 0;
    }

Для тех, кто не понял - исправлено.

  • Author
  • Developer
11 минут назад, Zlodey сказал:

Для тех, кто не понял - исправлено.

Но, работать исправление начнет немного позже.

  • Author
  • Developer
9 минут назад, Zlodey сказал:

Но, работать исправление начнет немного позже.

Хотя, нет, вру. Все уже работает))

51 минуту назад, Zlodey сказал:

Не пытайся гадать не понимая как "оно" работает и не видя исходников. Твое дело просто сообщить об ошибке.Хочешь "работать" над проектом, велкам на собес.

Для тех, кто не понял - исправлено.

Да ладно, что ты меня в краску вгоняешь... Простого одобрительного кивка было бы вполне достаточно ;)
Рад, что фикс уже в работе! За оперативный фикс - спасибо, теперь за стрики спокойнее.

4 часа назад, Zlodey сказал:

Все уже работает))

Обрати внимание в журнале пошла мешанина по хронологии событий. Объединяются явно по временной метке в группу и перемешиваются с другими группами нарушая последовательность произвольно.
image.png

сортирует странно, причем не зависит от выбора стрелок (сначала ранние, сначала поздние) все перемешивает по своему
image.png

Edited by Matpocob

P.S.> Раз уж заговорили о журнале вылета, разрешите добавить свой манюсенький "фичур рюквэйст", пока мысль не выветрилась. Сейчас в лог сыпется очень много событий, особенно "Урон". Раз механизм наполнения явно умеет объединять их по таймингу, быть может, стоит его чуть "причесать", чтобы он одновременные события по одному и тому же объекту суммировал и объединял в одну запись до вывода в журнал? Ну и таже "петрушка" с событием "Урон от Окружения" ... там вообще бывает лента, если самолет в воздухе горит (эти вообще можно было бы склеивать в одну запись с указанием промежутка, аля "16:30:38 - 16:35:12 20,3% Урон Окружение"). У меня аж скрол греется, пока я доберусь до своей посадки, чесслово...

Например, если вместо 10 строк "Урон по грузовику 0,1%" мы станем получать одну строку "Урон по грузовику 1%", это на порядок повысит информативность, удобство, да и в целом UX. Журнал станет чище, а наглядность только выиграет. У-уочень просим-с.

Естественно, это "на завтра/послезавтра на после обеда в пятницу", сначала важнее поднять "хронологию".

Отдельно напоминаю, что я размещаю свои сообщения исключительно как пожелания, делюсь своим навязчивым субъективным мнением исходя из личного опыта и не на чем не настаиваю, ничего не требую, никого ничему бесплатно не обучаю и за свои подколы оплату не прошу, заискиваю только в коварных и корысных целях! Не открывать, к лицу не подносить, не вдыхать, держать подальше от женщин в неэрогированном состоянии, пломбы не снимать, пробу негде ставить.

Create an account or sign in to comment

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.