6.0 KiB
World Map Engine — путешествия между местами по нарисованной карте
World Map Engine показывает полноэкранную картинку игрового мира с отмеченными на ней местами. Игрок открывает карту, выбирает место и отправляется туда: игра переключается на сцену этого места. Сценарии могут открывать, закрывать, прятать и снова показывать места по ходу истории, и игра сохраняет эти изменения.
Её использует Cthangover. Это не то же самое, что тайловые карты RPG World: карта мира — одна картинка с областями, по которым можно щёлкать, и переход меняет сцену; тайловая карта — сетка, по которой герой идёт с клетки на клетку.
Карта в игре
Открывается по иконке карты на панели инструментов.
- Места — области, нарисованные поверх картинки; их выдаёт штриховка. У некоторых мест есть ещё и круглая эмблема с иконкой.
- Легенда: зелёный — где вы сейчас, золотой — доступно, серый — закрыто.
- Щёлкните место, чтобы увидеть его карточку: состояние, описание и кнопку Перейти. Карту закрывают Esc или ×.
Перейти переключает игру на сцену места:
Место закрыто — в карточке написано «Путь ещё не открыт.», а кнопки «Перейти» нет — когда сценарий его закрыл, когда у него нет сцены или когда его сцены нет в той игре, в которую играют.
Как добавить карту мира в игру
Игре нужны две вещи в её модах:
- Картинка — фон с именем
map(напримерbackgrounds/map.png). - Места — 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.
Если что-то пошло не так
- «Карта недоступна». Ни у одного мода игры нет фона с именем
map. - В место нельзя попасть. Его
sceneпуста или написана с ошибкой, либо сценарий его закрыл. - Место не на своём месте. Позиции — это доли картинки (0–1), а не пиксели.


