Как читать таблицы#
Пути ниже отсчитываются от выбранного элемента 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.
<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. Затем сравните новый экземпляр в игре: максимум корпуса, людей, трюм и движение при одинаковом оборудовании. Существующее сохранение проверяйте отдельно. Примеры этой статьи не объявляются пройденными игровыми тестами.