--- title: Mission Director: cues и события summary: Структура MD-скрипта, повторяемые обработчики и причины, по которым cue не срабатывает. section: scripting kind: guide status: example tags: ["md","cue","events","Mission Director","instantiate"] sources: ["https://wiki.egosoft.com/X%20Rebirth%20Wiki/Modding%20support/Mission%20Director%20Guide/"] --- ## Структура скрипта MD хранит обработчики внутри `mdscript` → `cues` → `cue`. Действия находятся в `actions`. Cue без условий подходит для короткой инициализации. ```xml ``` Это самостоятельная учебная заготовка. Переменная принадлежит контексту cue; подробнее - [переменные и области видимости](wiki:md-variables). ## Обработчик события Для повторяющихся UI-событий используется следующий шаблон. Фрагмент размещается внутри `cues`: ```xml ``` `instantiate="true"` позволяет обрабатывать повторяющиеся события отдельными экземплярами. Не сохраняйте изменяемые данные разных запросов в общей переменной без явной причины. ## Условие без события При `check_value` без события задайте режим проверки, например `checkinterval` или `onfail`, согласно контракту cue. В проекте отсутствие режима прошло XSD, но вызвало отказ парсера игры. Не используйте `return` как универсальный выход из обычного cue: в нашем сценарии X4 9.00 это было отвергнуто движком. Для раннего ограничения действий использовались условные блоки; возврат результата оставался внутри соответствующей library. ## Отладка Отделяйте три вопроса: загрузился ли файл, пришло ли событие, произошёл ли эффект. Одна строка в логе отвечает только на тот вопрос, для которого её поставили. См. [мост Lua ↔ MD](wiki:md-lua-bridge) и [проверку поведения в игре](wiki:testing).