Files

6.0 KiB
Raw Permalink Blame History

World Map Engine — путешествия между местами по нарисованной карте

World Map Engine показывает полноэкранную картинку игрового мира с отмеченными на ней местами. Игрок открывает карту, выбирает место и отправляется туда: игра переключается на сцену этого места. Сценарии могут открывать, закрывать, прятать и снова показывать места по ходу истории, и игра сохраняет эти изменения.

Её использует Cthangover. Это не то же самое, что тайловые карты RPG World: карта мира — одна картинка с областями, по которым можно щёлкать, и переход меняет сцену; тайловая карта — сетка, по которой герой идёт с клетки на клетку.

Карта в игре

Открывается по иконке карты на панели инструментов.

Карта мира Cthangover: долина с двумя городами среди гор и рек; подписи "Villa" и "Town entrance" отмечают два места, штриховка показывает, где они; легенда слева внизу (вы здесь, доступна, закрыта) и подсказка внизу.

  • Места — области, нарисованные поверх картинки; их выдаёт штриховка. У некоторых мест есть ещё и круглая эмблема с иконкой.
  • Легенда: зелёный — где вы сейчас, золотой — доступно, серый — закрыто.
  • Щёлкните место, чтобы увидеть его карточку: состояние, описание и кнопку Перейти. Карту закрывают Esc или ×.

Выбран вход в город (Town entrance): его область обведена золотым, справа карточка — Available, "The northern entrance to the town", Transition, Travel.

Перейти переключает игру на сцену места:

После перехода: сцена входа в город с её первой строкой и двумя ответами.

Место закрыто — в карточке написано «Путь ещё не открыт.», а кнопки «Перейти» нет — когда сценарий его закрыл, когда у него нет сцены или когда его сцены нет в той игре, в которую играют.

Как добавить карту мира в игру

Игре нужны две вещи в её модах:

  1. Картинка — фон с именем map (например backgrounds/map.png).
  2. Места — JSON-файлы в папке map/. Все позиции — доли ширины и высоты картинки, от 0 до 1, поэтому карта работает при любом размере.

Вот вход в город из Cthangover (сокращённый пример):

{
  "Items": [
    {
      "ID": "town_entry",
      "points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
      "title": "",
      "scene": "town_entry",
      "description": "mapzone/town_entry/info",
      "locked": false,
      "hidden": false
    },
    {
      "ID": "town_entry_label",
      "points": [],
      "title": "mapzone/town_entry",
      "label_pos": [0.7246, 0.2163]
    }
  ]
}
  • points — контур области, по которой можно щёлкать.
  • scene — логическая сцена, на которую переключает «Перейти».
  • title, description — ключи переводов; title — имя места на его карточке и эмблеме.
  • image и image_pos — иконка и её позиция: так место получает круглую эмблему.
  • label_pos — отдельно стоящее имя на карте. Зона, у которой есть только title и позиция подписи (как town_entry_label), — это имя, а не место: щёлкнуть по ней нельзя.
  • locked — закрыто на старте; hidden — не показано на старте.

Cthangover держит имена своих мест в отдельных зонах-подписях и оставляет title самих мест пустым — поэтому на карточке выше нет имени наверху.

Карту мира также можно нарисовать и отредактировать в редакторе карт из Editor Tools.

Изменение мест из сценария

action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry

Изменение попадает в сохранение и остаётся после загрузки; новая игра стартует со значениями из JSON.

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

  1. «Карта недоступна». Ни у одного мода игры нет фона с именем map.
  2. В место нельзя попасть. Его scene пуста или написана с ошибкой, либо сценарий его закрыл.
  3. Место не на своём месте. Позиции — это доли картинки (0–1), а не пиксели.