Найдите настоящее поле#
В локально прочитанном исходнике X4 9.00 корабль ship_arg_s_fighter_02_a_macro имеет properties/hull/@max = 1800. Новый пример задаёт абсолютное значение 3600.
Исходная структура и селектор сверены с данными установленной игры. Запуск нового расширения в игре отдельно не выполнялся - это учебный пример.
Структура мода#
Полные файлы лежат в wiki/examples/elite_hull:
wiki_elite_hull/
├── content.xml
└── assets/units/size_s/macros/
└── ship_arg_s_fighter_02_a_macro.xmlВ корне wiki_elite_hull нужен свой content.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:
<diff>
<replace sel="/macros/macro[@name='ship_arg_s_fighter_02_a_macro']/properties/hull/@max">3600</replace>
</diff>Здесь изменяется один атрибут конкретного macro. Остальные параметры корабля не копируются в расширение целым оригинальным файлом.
Проверьте изменение#
- Убедитесь, что игра видит расширение и оно включено.
- Проверьте отсутствие ошибок применения diff.
- Сравните максимальную прочность выбранного варианта с исходной.
- Проверьте новый экземпляр и отдельно уже сохранённый корабль.
- Выполните сохранение и загрузку тестовой игры.
Патч максимальной прочности не является командой ремонта повреждённого корабля. Другой мод может переписать тот же атрибут позже.
Другие параметры#
Масса, груз, двигатели и экипаж могут находиться в разных связанных данных. Не ищите универсальный speed или capacity без проверки назначений поля: macro и component.
Скачивание файлов: примеры кода. Основы селекторов: XML diff.