Проверка, упаковка и публикация
oa-tool mutator check и pack, пробный прогон, что показывает страница каталога, значок и как предложить пакет Core Prime.
Эта глава кратко пересказывает docs/mutators/authoring.md и docs/mutators/oamut-standard.md.
Проверка .oamut
Мутатор упаковывается и проверяется командами oa-tool mutator pack и oa-tool mutator check. oa-tool pack и oa-tool check — команды для .oamap и .oamod. check читает .oamut, а не папку. Он компилирует Lua и разбирает каждый .sm, но не запускает их. Последняя строка — result: ok или result: refused.
$ oa-tool mutator pack commander-radar
$ oa-tool mutator check commander-radar-1.oamut
Отказ называет файл и строку. Исправьте ошибку, прежде чем предлагать пакет. Упакованный Commander Radar называется commander-radar-1.oamut, и его проверка заканчивается строкой result: ok.
Упаковка снаружи папки
Запускайте pack с именем папки, находясь вне её. Без других параметров он пишет <id>-<version>.oamut в текущую папку. --out должен называть файл .oamut: любое другое окончание отклоняется. --force заменяет уже существующий файл. Не упаковывайте . изнутри папки и не оставляйте .oamut внутри неё: пакет не может содержать этот файл. --game-dir для этой команды — ошибка использования.
Пробный прогон
oa-tool mutator diff прогоняет папку пакета через конвейер мутаций игры на папке игры и перечисляет, что изменилось. Параметры идут после последнего двоеточия, как strength=lite в uber-comm. Хук maps запускается только с --map NAME. На 3.1c без мода строки отчёта после заголовка # такие:
$ oa-tool mutator diff --game-dir DIR --mutator ./uber-comm:strength=lite
field units/armcom.fbi [unitinfo] acceleration: 0.15 -> 0.3375 by uber-comm
field units/armcom.fbi [unitinfo] brakerate: 0.3 -> 0.675 by uber-comm
field units/armcom.fbi [unitinfo] builddistance: 60 -> 120 by uber-comm
field units/armcom.fbi [unitinfo] maxdamage: 3000 -> 4500 by uber-comm
field units/armcom.fbi [unitinfo] maxvelocity: 1.2 -> 1.8 by uber-comm
field units/armcom.fbi [unitinfo] turnrate: 1044 -> 1566 by uber-comm
field units/armcom.fbi [unitinfo] workertime: 300 -> 900 by uber-comm
field units/corcom.fbi [unitinfo] acceleration: 0.16 -> 0.36 by uber-comm
field units/corcom.fbi [unitinfo] brakerate: 0.32 -> 0.72 by uber-comm
field units/corcom.fbi [unitinfo] builddistance: 60 -> 120 by uber-comm
field units/corcom.fbi [unitinfo] maxdamage: 3000 -> 4500 by uber-comm
field units/corcom.fbi [unitinfo] maxvelocity: 1.07 -> 1.605 by uber-comm
field units/corcom.fbi [unitinfo] turnrate: 1030 -> 1545 by uber-comm
field units/corcom.fbi [unitinfo] workertime: 300 -> 900 by uber-comm
Пробный прогон в Библиотеке — тот же конвейер на собственном хранилище, без матча. Он не задаёт карту, поэтому хук maps там не запускается. Библиотека запоминает ответ, и её строка «Проверка» — одна из этих. check не применяет мутатор. Пробный прогон и diff применяют.
| Вердикт | Что показывает Библиотека |
|---|---|
compatible | Работает с этим модом, и в строке есть сводка изменений. |
no-effect | Работает, но не меняет ничего из того, что учитывает проверка. |
incompatible | Не работает с этим модом. Далее указана причина. |
failed | Остановился. Далее указана причина. |
| идёт проверка | Проверка с этим модом ещё идёт. |
| ещё не проверено | С этим модом ещё не проверялся. |
Что показывает страница каталога
Страница показывает значок, а если манифест его не называет — значок первого тега, когда этот тег один из восьми. Затем название, автора, версию и выпуск, краткое описание (первую строку description), теги и плашку движка из requires.engine. «Требует» перечисляет requires.mutators. «Параметры» перечисляет каждый параметр. «Что меняет» перечисляет слои. «Работает с» перечисляет works-with. Далее идёт таблица выпусков, затем «Как получить в игре». Этот сайт никогда не даёт ссылку на файл пакета. Скачивание происходит в игре.
Значок
Квадратный PNG: сторона не меньше 1 пикселя и не больше 256 пикселей, размер не больше 256 КиБ. Рисуйте в 128 пикселей. Поле icon в манифесте называет путь, и это имя оканчивается на .png. Без icon значок пакета берётся у первого тега, если этот id — один из восьми. Следующие теги не проверяются.
Предложите его Core Prime
Библиотека контента Core Prime публикуется с машины сопровождающего: каталог подписывается ключом, который никогда её не покидает. Чтобы мутатор попал в список:
- Откройте issue в репозитории Open Annihilation, приложите .oamut (или ссылку на него) и укажите автора и лицензию.
- Сопровождающий запускает проверки на папке игры и добавляет пакет в записи библиотеки.
- Следующая публикация загружает файл по его хешу, подписывает новый каталог и увеличивает его порядковый номер.
- Через несколько минут пакет появляется в Библиотеке у каждого игрока и на этом сайте.
Набор карт или мод предлагаются так же. Подробнее — в главе Публикация в Core Prime.