Как читать таблицы#

Пути ниже отсчитываются от выбранного элемента macro, а не от корня файла. Например, properties/hull/@max находится внутри /macros/macro. Таблицы охватывают основные поля корпуса и связанных ресурсов; это не полный перечень полей всех классов X4.

Значения примера сверены с базовыми каталогами 9.00. Отсутствующий атрибут не равен нулю: часть настроек задаётся в defaults.xml. По одному XML нельзя доказать итоговое значение после всех расширений и игровых модификаций оборудования.

Идентификация и классификация#

Путь Тип Назначение
@name Строковый ID Уникальное имя macro; на него ссылаются индекс и товар
@class ID класса Класс определения, например ship_s; не название и не просто размер модели
component/@ref ID component Описание модели; меняйте только при переходе на другой совместимый component
properties/identification/@name Текстовая ссылка Отображаемое имя; например {990001,1} с собственным текстовым ID
properties/identification/@description Текстовая ссылка Описание из языкового файла
properties/identification/@makerrace ID расы Производитель; это не текущий владелец экземпляра
properties/purpose/@primary Строковая категория Основное назначение; само по себе не создаёт AI-приказ
properties/ship/@type ID типа корабля Например fighter; это отдельное поле от class

Для собственного варианта согласуйте имя и описание в macro и ware. Изменение одной стороны может дать разные подписи в интерфейсе. Синтаксис текстовых ссылок разобран в локализации.

Прочность, люди и запасы#

Путь в macro корпуса Тип / единицы Пример Elite 9.00 и смысл
properties/hull/@max Число, единицы прочности 1800: максимальная прочность корпуса, не щит
properties/people/@capacity Целое, люди 2: вместимость; поле не нанимает людей
properties/storage/@missile Целое, ракеты 0: ракетный запас, не товарный трюм
properties/storage/@deployable Целое, устройства Запас размещаемых устройств; у примера задаётся через defaults
properties/storage/@countermeasure Целое, контрмеры Отдельный запас контрмер; не объём контейнерного груза

Стоимость корпуса хранится в товаре, параметры щита - в оборудовании. Увеличение hull/@max не ремонтирует повреждённый экземпляр. Пример полного точечного патча: прочность Elite.

Товарный трюм находится в storage macro#

В проверенной связке Elite con_storage01 указывает на storage_arg_s_fighter_02_a_macro. В нём properties/cargo/@max равно 150, а properties/cargo/@tags равно container. max задаёт объём в м³; число единиц товара зависит также от его volume.

XML
<diff>
  <replace sel="/macros/macro[@name='storage_arg_s_fighter_02_a_macro']/properties/cargo/@max">300</replace>
</diff>

Путь файла патча: assets/units/size_s/macros/storage_arg_s_fighter_02_a_macro.xml. Ожидается объём 300 вместо 150; тип container сохраняется. Это не 300 единиц любого товара. Для условного товара объёмом 2 м³ такой трюм вмещает 150 единиц при отсутствии другого груза.

Патч storage затронет все macro, ссылающиеся на этот ресурс. Для трюма только своего варианта создайте отдельный storage macro, зарегистрируйте его и измените ссылку нового корпуса. Другие типы груза нельзя разрешать простым увеличением max.

Масса и движение#

Путь Тип / пример На что влияет
properties/physics/@mass Положительное число; у Elite 3.772 Масса в данных движка; перевод в килограммы здесь не установлен
properties/physics/inertia/@pitch Числовой параметр Инерция вращения по тангажу; yaw и roll задаются отдельно
properties/physics/drag/@forward Числовой параметр Сопротивление продольному движению; не прямая скорость в м/с
properties/physics/drag/@horizontal Числовой параметр Боковое сопротивление; есть отдельные vertical и угловые оси
properties/physics/accfactors/@forward Безразмерный множитель Корректировка продольного ускорения; у Elite 1.2
properties/physics/accfactors/@horizontal Безразмерный множитель Корректировка бокового ускорения; у Elite 0.8
properties/jerk Блок настроек Плавность изменения ускорения, а не отдельная сила двигателя
properties/steeringcurve/point Точки кривой Изменение управляемости в зависимости от режима скорости

Точные параметры двигателя и маневровых двигателей находятся в других macro. Продолжение с типами, единицами и примером: полёт корабля.

Что проверять после изменения#

Сначала проверьте путь, один выбранный узел и изменённый XML. Затем сравните новый экземпляр в игре: максимум корпуса, людей, трюм и движение при одинаковом оборудовании. Существующее сохранение проверяйте отдельно. Примеры этой статьи не объявляются пройденными игровыми тестами.