Что получится#
Небольшое расширение hello_x4, которое пишет сообщение в журнал. Для первого шага достаточно XML и Mission Director.
Создайте папки#
Рабочая структура расширения относительно папки extensions:
hello_x4/
├── content.xml
└── md/
└── HelloX4.xmlНе добавляйте лишний уровень hello_x4/hello_x4. Игра должна найти content.xml непосредственно в корне расширения. Выберите одну установку и один тестовый профиль; не держите несколько копий расширения с одинаковым ID.
Опишите расширение#
Файл content.xml:
<?xml version="1.0" encoding="utf-8"?>
<content id="hello_x4" name="Hello X4" version="100"
author="Your name" enabled="1" save="1"
description="A minimal Mission Director example.">
<dependency version="900" />
</content>Замените автора и используйте собственный уникальный id. Зависимость здесь соответствует базовой версии 9.00, с которой работает эта вики. Добавляйте сторонние зависимости только тогда, когда действительно используете их API.
Добавьте игровой код#
Файл md/HelloX4.xml:
<?xml version="1.0" encoding="utf-8"?>
<mdscript name="HelloX4">
<cues>
<cue name="Hello">
<actions>
<debug_text text="'Hello, X4!'" />
</actions>
</cue>
</cues>
</mdscript>mdscript и cue - имена элементов XML. HelloX4 и Hello - ваши идентификаторы. Кавычки внутри text нужны потому, что атрибут содержит MD-выражение со строковым литералом.
Проверьте запуск#
- Включите расширение в игре и перезапустите X4, если игра этого требует.
- Используйте тестовое сохранение или новую игру.
- Включите журнал: параметры и чтение лога.
- Найдите
Hello, X4!и проверьте отсутствие ошибок импорта этого MD-файла.
Уже выполненный cue сохраняет своё состояние. Загрузка старого сейва не обязана повторять сообщение - это не доказательство, что файл не загрузился. Подробнее: сохранения и миграции.
Следующий шаг#
Разберите жизненный цикл cue, затем переходите к событиям Lua ↔ MD. Для изменения существующих данных игры начните с XML diff-патчей.