Files
mod_crafting/docs/ru.md
T

5.5 KiB
Raw Blame History

Crafting — мастерские, превращающие материалы в предметы

Crafting добавляет станции, на которых игрок что-то мастерит: верстак, стол алхимика, швейный набор. Станция предлагает фиксированный список рецептов; каждый рецепт берёт из сумки одни предметы и выдаёт другие. Всё это данные — станция, рецепты и обычные предметы — а станцию открывает одна строка сценария. Работает в любой игре: из ответа в диалоге визуальной новеллы, щелчка по объекту или события на тайловой карте.

В игре

В RPG Plus у деревенского колодца стоит верстак. Игрок собрал две серебристые шерсти и три живые смолы и выбирает плащ лесного стража:

Окно верстака у колодца поверх карты деревни: слева три рецепта — Woodland salve, Warden mantle (выбран), Ward lantern; справа — картинка и описание плаща, INGREDIENTS · owned / needed: Silver wolf fur 2 / 2, Living resin 3 / 2; PRODUCTS: Warden mantle × 1; кнопка Craft; внизу — "Ingredients are consumed only when you craft. Esc closes."

  • Рецепты слева; щёлкните по одному, чтобы рассмотреть.
  • Ингредиенты показывают, сколько у вас есть и сколько нужно.
  • Изготовить доступно, только когда всё на месте.

После Изготовить:

Та же панель после изготовления: Silver wolf fur 0 / 2, Living resin 1 / 2 и надпись "Done. The product is in your bag."

Сумка до и после — шерсть ушла, осталась одна смола, плащ прибыл:

Два ряда ячеек сумки. До: гриб, монеты ×25, смола ×3, волчья шерсть ×2. После: гриб, монеты ×25, смола, Warden mantle.

Изготовление занимает время: игровые часы уходят вперёд на Time рецепта, в минутах — для плаща это 10. Сам плащ — экипировка (см. Equipment), носить его можно сразу.

Станция и её рецепты

Верстак из RPG Plus:

{
  "Kind": "craft_station",
  "Items": [
    {
      "Id": "rpg_plus/workbench",
      "Name": "rpg_plus/station/name",
      "Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
    }
  ]
}

и один из его рецептов:

{
  "Kind": "recipe",
  "Items": [
    {
      "Id": "rpg_plus/mantle",
      "Name": "rpg_plus/recipe/mantle/name",
      "Description": "rpg_plus/recipe/mantle/desc",
      "Time": 10,
      "Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
      "Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
    }
  ]
}
  • Станция перечисляет рецепты по id, в порядке показа; рецептами можно делиться между станциями.
  • Input берётся из сумки, Output в неё добавляется; Time — в игровых минутах.
  • Имена и описания — ключи переводов вашего мода.

Учить эти рецепты заранее не нужно: станция предлагает все свои.

Открытие станции

Событие верстака на карте деревни запускает сценарий:

ptext "На верстаке лежит инструкция: «Не пробовать. Не нюхать.»" key=rpg_plus/woodland/workbench/1
action craft.open station=rpg_plus/workbench
end

Пока окно открыто, игрок не может ходить; Esc его закрывает.

Сначала проверка, потом изменения

Изготовление проверяется целиком до того, как что-то меняется: каждый ингредиент и продукт должны существовать, количества должны быть положительными, а в сумке всего должно хватать. Если что-то не так — не берётся ничего. Созданные предметы — обычные предметы, поэтому они сохраняются вместе с сумкой.

Если что-то пошло не так

  1. «Изготовить» серое. Не хватает ингредиента; числа «есть / нужно» показывают, какого.
  2. Рецепта нет в окне. Станция называет в Recipes id, на который не откликается ни один рецепт.
  3. Окно не открывается. id в station= не совпадает ни с одной станцией; проверьте лог.