Skip to content

Секция NStationary

Alexander Oblovatniy edited this page Oct 13, 2016 · 14 revisions

Note: English version

Класс il2fb.parsers.mission.sections.nstationary.NStationarySectionParser отвечает за разбор секции NStationary. Каждая строка в этой секции описывает отдельный неподвижный объект (здания и постройки к ним не относятся).

Пример секции:

[NStationary]
  0_Static vehicles.stationary.Stationary$Wagon1 1 152292.72 89662.80 360.00 0.0
  1_Static vehicles.artillery.Artillery$SdKfz251 2 31333.62 90757.91 600.29 0.0 0 1 1
  2_Static vehicles.planes.Plane$I_16TYPE24 1 134146.89 88005.43 336.92 0.0 null 2 1.0 I-16type24_G1_RoW3.bmp 1
  3_Static ships.Ship$G5 1 83759.05 115021.15 360.00 0.0 60 3 1.4

Пример разбора:

Конечным результатом работы парсера является словарь с элементом stationary который содержит список статических объектов.

Для разных типов объектов набор параметров может отличаться:

  1. все объекты имеют минимум 7 параметров;
  2. артиллерия имеет 3 дополнительных параметра;
  3. самолеты имеют 5 дополнительных параметров;
  4. корабли имеют 3 дополнительных параметра.

Давайте рассмотрим их все:

Обычные объекты

Обычные объекты — это все те объекты, у которых обычный набор параметров, а именно: аэростаты, источники света, радиостанции, поезда, транспорт и проч.

Для хранения данных об этих объектах используется структура il2fb.parsers.mission.sections.nstationary.StationaryObject.

Пример определения:

0_Static vehicles.stationary.Stationary$Wagon1 1 152292.72 89662.80 360.00 0.0
0_Static

Идентификатор объекта, который был выдан полным редактором миссий. Содержит слово Static, перед которым расположен префикс: целочисленный порядковый номер.

Путь

id

Тип

str

Значение

исходная строка

vehicles.stationary.Stationary$Wagon1

Тип объекта (stationary) и его кодовое название (Wagon1).

Путь

type

Тип

сложная константа тип объекта

Путь

code

Тип

str

Значение

исходная строка

1

Кодовый номер стороны, которой принадлежит объект.

Путь

belligerent

Тип

сложная константа стороны

152292.72

Координата X.

Путь

pos.x

Тип

float

Значение

исходное значение, преобразованное в вещественное число

89662.80

Координата Y.

Путь

pos.y

Тип

float

Значение

исходное значение, преобразованное в вещественное число

360.00

Угол поворота.

Путь

rotation_angle

Тип

float

Значение

исходное значение, преобразованное в вещественное число и взятое по модулю 360

0.0

Этот параметр присутствует у всех объектов, но в общем случае не ипользуется. Он имеет значение только для артиллерии (см. ниже).

Aртиллерия

Aртиллерия имеет все те же параметры, что и обычные объекты. Так же в новых версиях игры артиллерия имеет некоторые дополнительные параметры, которые описаны ниже.

Для хранения данных об этих объектах используется структура il2fb.parsers.mission.sections.nstationary.StationaryArtillery.

Пример определения:

1_Static vehicles.artillery.Artillery$SdKfz251 2 31333.62 90757.91 600.29 0.0 0 1 1
0.0

Время пробуждения (в минутах): время, которое пройдет с момента вхождения вражеской техники в зону действия объекта до момента, когда объект начнет реагировать.

Путь

awakening_time

Тип

float

Значение

исходное значение, преобразованное в вещественное число (0.0 для объектов старых версий)

0

Дистанция открытия огня.

Путь

range

Тип

int

Значение

исходное значение, преобразованное в целое число (0 для объектов старых версий)

1

Уровень мастерства стрелков.

Путь

skill

Тип

сложная константа навыки

Значение

константа (None для объектов старых версий)

1

Указывает, использовать корректировщик или нет.

Путь

use_spotter

Тип

bool

Значение

True, если 1, иначе False (False для объектов старых версий)

Летательные аппараты

Летательные аппараты имеют все те же параметры, что и обычные объекты. Так же в новых версиях игры они имеют некоторые дополнительные параметры, которые описаны ниже.

Для хранения данных об этих объектах используется структура il2fb.parsers.mission.sections.nstationary.StationaryAircraft.

Пример определения:

2_Static vehicles.planes.Plane$I_16TYPE24 1 134146.89 88005.43 336.92 0.0 null 2 1.0 I-16type24_G1_RoW3.bmp 1
null

Кодовое имя воздушных сил. Например, de или fr. В секции NStationary ВВС РККА почему-то имеют код null.

Путь

air_force

Тип

сложная константа воздушные силы

Значение

константа (None для объектов старых версий)

2

Многозначительный параметр, который может принимать следующие значения:

Значение Смысл
0 Игроки не могут использовать этот самолет для взлета
1 Игроки могут использовать этот самолет для взлета
2 Игроки могут использовать этот самолет для взлета, объект будет восстановлен после успешной посадки
Путь

allows_spawning

Тип

bool

Значение

True, если 1 или 2, иначе False (False для объектов старых версий)

Путь

is_restorable

Тип

bool

Значение

True, если 2, иначе False (False для объектов старых версий)

1.0

Не используется (отсутствует у объектов старых версий).

I-16type24_G1_RoW3.bmp

Название окраса.

Путь

skin

Тип

str

Значение

исходная строка или None, если null (None для объектов старых версий)

По умолчанию

null

1

Использовать опознавательные знаки или нет.

Путь

show_markings

Тип

bool

Значение

True, если 1, иначе False (False для объектов старых версий)

Корабли

Корабли имеют все те же параметры, что и обычные объекты. Так же в новых версиях игры они имеют некоторые дополнительные параметры, которые описаны ниже.

Для хранения данных об этих объектах используется структура il2fb.parsers.mission.sections.nstationary.StationaryShip.

Пример описания:

3_Static ships.Ship$G5 1 83759.05 115021.15 360.00 0.0 60 3 1.4
60

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

Путь

awakening_time

Тип

float

Значение

исходное значение, преобразованное в вещественное число (0.0 для объектов старых версий)

3

Уровень мастерства стрелков.

Путь

skill

Тип

сложная константа навыки

Значение

константа (None для объектов старых версий)

1.4

Время перезарядки (в минутах) зенитных орудий на корабле.

Путь

recharge_time

Тип

float

Значение

исходное значение, преобразованное в вещественное число (0.0 для объектов старых версий)