Перейти к основному контенту

О интерактивной карте

Для реализации интерактивной карты используется открытый проект https://github.com/overviewer/Minecraft-Overviewer/

У нас используется стандартный функционал, в виде меток, ограничения высоты, поворотов и прочего и свои доработки.

Метки:

Может управлять любой игрок сервера, метки храняться в базе и по крон заданию, специльный скрипт, если видет изменения, собирает эти метки и формирует из них конфиг, подходящией овервью.

Такой конфиг представляет собой python файл содержащий массив словарей, в котором есть id, координаты xyz, имя и описание, эти конфиги формируются для каждой карты каждого сервера.

image.png

image.png

Территории:

Территориями также может управлять любой игрок и они также храняться в базе сайта. Для их реализации испольузется js скрипт, который при загрузке карты запрашивает по специальному API сайта массив угловых точек с именами и прочим и с помощью API leaflet строит на карте необходимые территории

image.png

image.png

Территории так же используются для того, чтобы игрок мог пометить понравившуюся территорию, как занятую. Если игрок бросает играть на сервере, то территория удаляется через некоторое время.

Внешний вид карты:

Это customwebassets, стандартная возхможность овервью. Дизайн и верстка от Престижа.

Рендер карты запускается в течении 15 минут, после окончания предыдущего рендера. Это сделано баш скриптом по крону. Он проверяет не запущено ли процесса рендера или синхронизации в данный момент, после чего, если их нет, запускает синхронизацию файлов сервера и запускает сам рендер.

Синхронизация сделана для того, что бы на карте не появлялось артефактов, которые могу быть, если область карты, которая рендерится в текущей момент, изменяется игроками. Это проявляется на карте в виде переставленных или пустых чанков. Синхронизация в данном случае минимизирует появление таких артефактов.