Секция NStationary
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': [
StationaryObject(
belligerent=Belligerents.red,
id='0_Static',
code='Wagon1',
pos=Point2D(152292.72, 89662.80),
rotation_angle=0.00,
type=UnitTypes.stationary,
),
StationaryArtillery(
id='1_Static',
belligerent=Belligerents.blue,
code='SdKfz251',
pos=Point2D(31333.62, 90757.91),
rotation_angle=240.29,
type=UnitTypes.artillery,
awakening_time=0.0,
range=0,
skill=Skills.average,
use_spotter=True,
),
StationaryAircraft(
id='2_Static',
code='I_16TYPE24',
belligerent=Belligerents.red,
pos=Point2D(134146.89, 88005.43),
rotation_angle=336.92,
type=UnitTypes.aircraft,
air_force=AirForces.vvs_rkka,
allows_spawning=True,
show_markings=True,
is_restorable=True,
skin="I-16type24_G1_RoW3.bmp",
),
StationaryShip(
belligerent=Belligerents.red,
id='9_Static',
code='G5',
recharge_time=1.4,
pos=Point2D(83759.05, 115021.15),
rotation_angle=0.00,
skill=Skills.ace,
type=UnitTypes.ship,
awakening_time=60.0,
),
],
}
Конечным результатом работы парсера является словарь с элементом stationary
который содержит список статических объектов.
Для разных типов объектов набор параметров может отличаться:
- все объекты имеют минимум 7 параметров;
- артиллерия имеет 3 дополнительных параметра;
- самолеты имеют 5 дополнительных параметров;
- корабли имеют 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ртиллерия имеет все те же параметры, что и обычные объекты. Так же в новых версиях игры артиллерия имеет некоторые дополнительные параметры, которые описаны ниже.
Для хранения данных об этих объектах используется структура 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
для объектов старых версий)