# Schema Tools — редактор данных и палитра команд Schema Tools — это два окна для авторов, целиком построенные на описаниях, которые моды поставляют как схемы (см. мод Schemas): - **Редактор данных** правит сущности любого описанного вида — характеристики, классы, предметы, персонажей, боевые действия, магазины, рецепты — в формах; - **палитра команд** пишет строку сценария из формы, проверяет её и вставляет в редактор сценариев. Ни одно окно не знает заранее ни вида, ни действия: в них появляется всё, что описали загруженные моды. Оба открываются из набора инструментов на панели инструментов игры, прямо во время игры. ## Редактор данных Выберите мод сверху, вид данных слева и запись посередине; форма справа. Вот железный меч из Classic RPG Rules в RPG Plus: ![Редактор данных: мод classic_rpg_pack, слева виды (rpg_tileset 10, Stats 11, Archetypes 3, Equipment slots 3, Items 20, Characters 5, Battle actions 7, Shops 1, Crafting station 1, Recipe 3), посередине девять его предметов с выбранным Iron sword, справа форма: Id, Name и Description с текстом на семи языках, Cost 30, Picture, Item types TargetUsed, Item action action/equip, Equip type sword и черта на характеристике Attack.](assets/data-editor-item.jpg) Форма собирает поля нескольких модов в одну: Id, имя, описание, стоимость, картинку, типы предмета и действие предмета описывает Items Engine; **Equip type**, список **Traits** (характеристика и величина) и классы, которым можно носить вещь, добавляет Equipment. Вид, описанный двумя модами, остаётся одной формой. - **Тексты** (`Name`, `Description`) показываются как свой ключ перевода и строка на каждый язык мода; пишутся они в собственные файлы локализации мода. - **Ссылки** (характеристика, предмет, класс) — списки id, которые знает игра. - **Списки** вроде traits дают карточку на каждый элемент с его собственными полями. - Свойства, которых нет ни в одной схеме, сохраняются и показываются среди прочих полей как JSON. Панель инструментов: **Новый** (Ctrl+N) добавляет запись со значениями по умолчанию из схемы, **Копия** (Ctrl+D) дублирует выбранную, **Удалить** сначала спрашивает, **Отменить**/**Повторить** (Ctrl+Z / Ctrl+Y или Ctrl+Shift+Z) шагают по изменениям, **Сохранить** (Ctrl+S) пишет только изменённые файлы, с переводами строк LF. Сразу после сохранения запущенная игра видит изменения: новый предмет можно выдать и надеть без перезапуска. В списке сверху — только моды, в которые можно писать. Записи мода — это записи из его собственных файлов; чтобы изменить сущность другого мода, правьте её в том моде. ## Палитра команд Выберите действие или команду слева (поиск по словам вроде «урон», «предмет», «check»), заполните форму — и строка появится под ней: ![Палитра с выбранным Change a stat for good: «Описано модом stats_base», Stat Strength · str, Value 2, Who пусто, строка «action stat.add stat=str value=2» и «Со строкой всё в порядке».](assets/palette-line.jpg) Строка проверяется по мере ввода, по тем же правилам, что у Validator. Опечатка в характеристике: ![Та же форма с характеристикой strenght: строка «action stat.add stat=strenght value=2» и ошибка «'stat.add': 'stat' называет характеристику 'strenght', которую не определяет ни один загруженный мод».](assets/palette-misspelt.jpg) **Вставить** кладёт строку в сценарий, открытый в редакторе сценариев, под курсор; **Копировать** — в буфер обмена. Сценарий провидицы в RPG Plus после вставки: ![Редактор сценариев с помеченным как изменённый seer.scenario (seer *): строка 2 теперь «action stat.add stat=str value=2», между приветствием провидицы и проверкой удачи.](assets/scenario-inserted.jpg) На диск ничего не пишется, пока автор не нажмёт **Сохранить** в редакторе сценариев. Текст сценария остаётся источником правды: палитра только помогает его писать. ## Если что-то пошло не так 1. **Нет вида или действия.** Ни один загруженный мод не описал его в схеме; страница Schemas объясняет, как добавить описание. 2. **Список модов пуст.** Ни в один мод нельзя писать (можно только в моды, установленные папками; упакованные — нельзя). 3. **«Вставить» говорит, что сценарий не открыт.** Сначала откройте его в редакторе сценариев или воспользуйтесь «Копировать». 4. **Поле — обычное текстовое поле.** Его тип в схеме — text или неизвестен.