Найдите настоящее поле#

В локально прочитанном исходнике X4 9.00 корабль ship_arg_s_fighter_02_a_macro имеет properties/hull/@max = 1800. Новый пример задаёт абсолютное значение 3600.

Исходная структура и селектор сверены с данными установленной игры. Запуск нового расширения в игре отдельно не выполнялся - это учебный пример.

Структура мода#

Полные файлы лежат в wiki/examples/elite_hull:

TEXT
wiki_elite_hull/
├── content.xml
└── assets/units/size_s/macros/
    └── ship_arg_s_fighter_02_a_macro.xml

В корне wiki_elite_hull нужен свой content.xml:

XML
<content id="wiki_elite_hull" name="Wiki: Elite Hull" version="100"
         author="Your name" enabled="1" save="1"
         description="Sets Elite Vanguard hull to 3600.">
  <dependency version="900" />
</content>

Примените точечный патч#

Содержимое файла по пути исходного macro:

XML
<diff>
  <replace sel="/macros/macro[@name='ship_arg_s_fighter_02_a_macro']/properties/hull/@max">3600</replace>
</diff>

Здесь изменяется один атрибут конкретного macro. Остальные параметры корабля не копируются в расширение целым оригинальным файлом.

Проверьте изменение#

  1. Убедитесь, что игра видит расширение и оно включено.
  2. Проверьте отсутствие ошибок применения diff.
  3. Сравните максимальную прочность выбранного варианта с исходной.
  4. Проверьте новый экземпляр и отдельно уже сохранённый корабль.
  5. Выполните сохранение и загрузку тестовой игры.

Патч максимальной прочности не является командой ремонта повреждённого корабля. Другой мод может переписать тот же атрибут позже.

Другие параметры#

Масса, груз, двигатели и экипаж могут находиться в разных связанных данных. Не ищите универсальный speed или capacity без проверки назначений поля: macro и component.

Скачивание файлов: примеры кода. Основы селекторов: XML diff.