Skip to content

Карта местности

liuch edited this page Sep 4, 2011 · 13 revisions

Автоматическая отрисовка карты местности

Плагин создает и отрисовывает карту на основании получаемых от сервера данных. Карта отображается на главном окне плагина в виде 2D рисунка на ней же отображается положение игрока. Карта заполняется по мере прохождения персонажем локаций. Т.е. на основании его путешествия. На карте могут отображаться возможные пути отхода, наличие противников, наличие телепортов, секретов, метки выставленные игроком. Так же на карте могут отображаться другие игроки находящиеся рядом, если игрок "осмотрелся" через команду 05. Плагин поддерживает работу с несколькими картами.

Минимальный элемент карты

Минимальный элемент представляет из себя место, куда может попасть игрок в результате "хода" или действия в игре. На карте элемент выглядит как кружок какого либо цвета. Цвет зависит от наличия тайников, секретов, противников. У большинства элементов отображаются пути (дороги) по можно попасть или покинуть элемент карты. Элемент карты может быть удалён с текущей карты вместе с путями или перенесён на другую карту.

Пути на карте. Временные пути.

Плагин старается определить возможные направления для прохода игроком от текущего элемента карты. В основном определение производится по тексту, выдаваемому игрой и номеру команды. Естественно не всегда это получается идеально, но в основном направления вычисляются точно. Пути отмечаются полосками разной толщины. Самые толстые полоски обозначают постоянные пути, которые в течении игры всегда были доступны. Самые тонкие линии обозначают временные пути, которые сейчас (если персонаж стоит рядом) или последний раз были не доступны для прохода. Средней толщины линия обозначает временный путь, который сейчас или последний раз был доступен. Примером таких временных путей может служить лабиринт с его постоянно меняющейся структурой. Так же примером временных путей может служить механизм на первом уровне зимнего квеста (Элементаль). Любой тип путей на карте создаётся алгоритмом плагина и не может быть изменён.

Противники на карте

При вступлении в бой, плагин запоминает тип и количество противников и отмечает элемент карты красным цветом. В дальнейшем, при наведении на элемент карты с отмеченными противниками в сплывающей подсказке отображается имена противников и их минимальное и максимальное количество. Плагин не запоминает "стихийные" бои. Т.е. при боях персонажей друг с другом плагин не делает никаких отметок. Список противников и их количество запоминается в файле карт.

Другие игроки на карте

Если в игре в обычном (стоячем) режиме набрать 05 без параметров, то игра показывает местоположение других игроков в пределах 10ти "клеток" карты. Плагин обрабатывает этот ответ сервера и переводит ответ сервера в отметки игроков на карте с подписью ников игроков. Отметки положения других игроков обновляются только при отправке другой команды 05 или очистятся при переключении карты. Эти отметки выглядят как тонкая вертикальная линия, с текстом ника игрока, находящегося в этой позиции. Позиции противников не сохраняются в файле карт.

Метки установленные игроком

Пользователь плагина может отмечать любые места карты специальной галочкой (меткой). При редактировании метки можно указать надпись для метки и цвет метки. Для установки метки необходимо нажать ПКМ на месте карты, где необходимо поставить или отредактировать метку. Надпись метки показывается в сплывающей подсказке. Метки сохраняются вместе с самой картой в файле карт.

Другие элементы карты

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

Использование нескольких карт

Плагин поддерживает работу с несколькими картами. При переходе на другую локацию плагин просматривает список карт и при необходимости переключается на другую карту. Если новой локации не существует ни на одной карте, сначала предпринимается попытка найти наиболее близкую по расположению карту, если подходящей карты нет то плагин переключается на карту "default".

Если создание и отрисовку карты поставить на "самотек" то все локации игры будут собраны на одной физической карте. Обычно квесты на сервере игры разделены между собой некоторыми расстояниями, достаточными что бы визуально отделить карты различных местностей друг от друга. В плагине предусмотрено разделение таких участков друг от друга в отдельные карты с определёнными пользователем именами.

При переходе на новую локацию (местность) необходимо вызвать контекстное меню карты (ПКМ на карте) и выбрать пункт меню "Создать карту". Затем необходимо перенести наш элемент карты из текущей карты (это будет скорее всего карта с именем "default" в новь созданную карту (её нужно будет выбрать из списка). Далее при переходе в другую точку на карте плагин автоматически переключится на наиболее подходящую карту, т.е. на вновь созданную. Новые элементы буду сразу добавляться на эту карту пока вы перемещаетесь в этой местности. В идеале, карта default должна быть пустой, все локации должны быть размешены по своим картам. Например:

/maps list
--= Карты =--
0 - default
1 - Трехградье [loaded]
2 - Раздор
3 - Элементаль. Уровень 1.
4 - Элементаль. Уровень 2.
5 - Элементаль. Уровень 3.
6 - Элементаль. Уровень 4.
7 - Лабиринт
8 - Остров драконов
9 - Остров гоблинов
10 - Буревестниковы острова (Ривз)
11 - Черный коллизей
12 - Коллизей
13 - Горы Артигар
14 - Деревни
15 - Подземный мир
16 - Ёлка
17 - Подледная рыбалка
Всего карт: 18

Преимущества получаемые при разбиении карт:

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

Команды для управления картами

Список и описание команд можно получить отправив /maps в плагин.

/maps clear <index> - Очистка всего содержимого карты с индексом <index>
/maps export <index> <exp_file> - Экспорт карты с индексом <index> в файл с именем <exp_file>
/maps import <imp_file> - Импорт карт из файла
/maps info - основная информация о картах
/maps list - список всех карт
/maps merge <index1> <index2> - Объединение карт
/maps remove <index> - Удаление карты
/maps rename <index> <new_name> - Переименование карты
/maps switch <index> - переключение на карту с указанным индексом
/maps unload <index>- выгрузка карты из памяти без сохранения изменений

Информация для разработчика