Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

MinimapSla


SLA

Рекомендуемые сообщения

MinimapSla

Просмотр файла

  • Первая и единственная КРУГЛАЯ миникарта для "Аллодов Онлайн" :)
  • Полноценно работает в абсолютно ВСЕХ инстансах (показывает группу/рейд, квесты, и т.д.).
  • Показывает координаты Межевых камней, Сокровищ, и др. (можно добавлять отметки).
  • Для инстансов, можно рисовать карты (пока нарисована только карта "Чистилища").
  • Множество других мелких улучшений, которые вас обязательно порадуют, если вам уже приходилось пользоваться другими миникартами :)

Подробнее в теме поддержки

  • The first and only ROUND minimap for "Allods Online" :)
  • Fully working in absolutely ALL instances (shows party/raid, quests, etc.).
  • Shows coordinates of Milestones, Treasures, etc. (you can add more markers).
  • It's possible to draw instance maps (currently there is only "Purgatory").
  • A lot of other small improvements, that are sure to delight you, if you've used other minimaps before :)

More in the support topic


  • Добавил
    SLA
  • Добавлено
    11.02.2011
  • Категория

 

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 287
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

MinimapSla - История создания аддона

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

Работу над этим аддоном я начал сразу, как только был выпущен официальный API для создания аддонов (почти год назад, кажется февраль 2010 года), но почти всё это время, работа над аддоном была заброшена (ниже станет ясно, почему). И только выпуск патча АО 2.0.02 (где разработчики игры предоставили свою квадратную миникарту) спровоцировал меня взяться, и закончить разработку MinimapSla. Дело было так...

Когда появился официальный API, никаких миникарт для АО не существовало, и самым первым аддоном, за разработку которого я взялся, КОНЕЧНО, стала миникарта! :) В API нашлись все функции, необходимые для её создания, но не было (и до сих пор нет) никакой документации по созданию виджетов (GUI, графического оформления аддонов). Однако, довольно быстро я догадался, что миникарта должна быть устроена так: виджет с картой нужно поместить внутрь другого квадратного виджета (меньшего размера), и сделать, чтобы виджет с картой "прокручивался" внутри квадратного виджета, по мере передвижения игрока по карте... Однако, сразу столкнулся с двумя техническими проблемами:

1) Чтобы было возможно применять текстуру карты к виждету карты, фон этого виджета должен быть Simple-слоем. А Simple-текстуры не работают.

2) Чтобы текстура стрелки (указатель игрока) вращалась, она тоже должна быть Simple-слоем. А Simple-текстуры не работают.

Просто, оригинальный конвертер текстур, генерировал (и до сих пор это делает) бракованные Simple-текстуры. Я тогда ещё не понимал, что они бракованные, и думал, что это у меня кривые руки, если эти текстуры вообще не получается отобразить в игре. И ещё, в то время, я ещё не понимал, что WidgetLayerSimpleTexture (слой для отображения текстуры) является частью самого ВИДЖЕТА, а не его ТЕКСТУРЫ (как мы привыкли ошибочно думать, благодаря тому, что этот файл генерируется самим конвертером текстур). В общем, я подумал, что с Simple-текстурами у меня ничего не выйдет, и решил сделать всё на Tiled-текстурах (их конвертер генерирует нормально)...

Первую техническую проблему я решил ОЧЕНЬ странным способом, который, наверное, вообще не должен был работать -- нашёл какой-то БАГ, позволяющий программно назначить Simple-текстуру фоном в Tiled-слой (!) При этом, виджет с картой должен был быть "приплюснут", строго пропорционально тому, как "приплюснута" текстура карты. Те из вас, кто не копался в картах АО, могут не знать такой нюанс - в ресурсах игры, текстуры карт имеют размер 1024x886, а в игре они растягиваются до размера 1154x886. То есть, другими словами, у них, как бы, НЕкрвадратная пропорция пикселя (Pixel Aspect Ratio) :) А "растянуть" текстуру можно только на Simple-слое, на Tiled-слое это невозможно - там другая концепция растягивания текстур, сами знаете. Так вот, чтобы воспользоваться этим БАГОМ, мой Tiled-слой карты должен был иметь такие же пропорции, как и текстуры карт - приплюснутые по ширине. Выглядело не очень правильно, но за то, работало.

Вторая техническая проблема - невозможность вращать Tiled-текстуру стрелки, я обошёл не хитрым способом - стрелку сделал из двух круглых виджетов. Один - большой в центре, а второй - маленький, вращается вокруг первого - получилась, как бы, псевдо-стрелка :))

Вот как это выглядело в марте 2010 года. Имхо, этот внешний вид миникарты лёг в основу обоих квадратных миникарт - KaaPex скопировал его у меня, а разработчики игры, в патче 2.0.02, скопировали его у KaaPex (разве нет?) :P

v4cs1u.jpg

Работа над аддоном шла очень медленно (я больше времени проводил на форумах UI9), и всего через месяц, в апреле 2010, неожиданно, KaaPex сделал аддон "Minimap". Только вот, беда была в том, что его "миникарта" занимала почти четверть экрана, потому, что она не была классической миникартой, а была просто целой картой, уменьшенной в размере, и помещённой ЦЕЛИКОМ на экран. Ну ладно, раз кто-то другой успел сделать и выложить "миникарту" до меня, я отдал ему исходник своей миникарты. KaaPex взял оттуда технологию "виджет в виджете", и внедрил в свою миникарту. Его миникарта стала маленькой (как и положено), нормальной миникартой.

Должен также сказать огромное спасибо KaaPex'у, т.к. он сделал одно открытие, без которого не только моя сегодняшняя миникарта, но и многие другие современные аддоны выглядели бы гораздо хуже. А дело было так. KaaPex играл в АО на Маке (Apple Macintosh), под эмулятором Виндовс. И стандартный конвертер текстур у него на Маке вообще не запускался, поэтому, он создавал BIN-текстуры в "AoTextureViewer", а все XDB-файлы делал руками, в блокноте. (Это сейчас все поголовно так делают, а тогда, все пользовались оригинальным конвертером, потому, что тогда он ещё работал). При таком "нестандартом" подходе, он нечаянно, и возможно, сам того не заметив, нашёл способ создания работоспособных Simple-текстур!!! (До KaaPex'a, никто не умел этого делать). Что он сделал? Взял файл WidgetLayerSimpleTexture, и в него поместил UISingleTexture от текстуры, сгенерированной как обычная Tiled-текстура, и это сработало.

Тут мне нужно, наверное, объяснить, в чём проблема с оригинальным конвертером текстур. Когда его просишь сделать Tiled-текстуру, он делает нормальный BIN-файл, внутри которого нормальная DDS-текстура, как и положено. Такие BIN-файлы открываются в "AoTextureViewer", и только такие текстуры вы найдёте в ресурсах игры, других там нет! НО, когда просишь конвертер сделать Simple-текстуру, у него случается припадок шизофрении. Вместо того, чтобы сконвертировать TGA в DDS, он берёт этот TGA, и ЗАПИХИВАЕТ ЕГО В BIN-ФАЙЛ, как есть! Внутри такого BIN-файла - TGA-картинка, и, ЕСТЕСТВЕННО, она НЕ работает в игре, потому, что система (игра, DirectX, видеокарта) умеет работать только с DDS-текстурами, а TGA для них - инопланетная технология... Что сделал KaaPex - показал, как создать Simple-слой с нормальной DDS текстурой.

Это позволило по-другому решить обе технические проблемы. Сделать нормальный Simple-слой для виждета карты (с нормальной пропорцией), и сделать "настоящую" вращающуюся стрелку... Миникарта от KaaPex, может быть, не очень устраивала меня внешне, но она была уже сделана, и нормально работала. Поэтому, не было срочной необходимости доделывать мою миникарту. К тому же, ещё до появления миникарты KaaPex, я надеялся, что выпущу свою миникарту только после того, как смогу сделать её круглой. Правда, сомневался, думал, что если не выйдет, выпущу квадратной. А теперь, когда появилась миникарта от KaaPex, я перестал сомневаться - если ПОЛУЧИТСЯ сделать миникарту круглой, то доделаю и выпущу. А если не получится, тогда вообще нет смысла её выпускать. Так, я забросил её на долгие-долгие месяцы... И лишь иногда, изредка, бился над тем, как сделать миникарту круглой.

Предо мной встали две новые технические проблемы, решения которых до сих пор не было ни в одном аддоне:

3) Чтобы миникарта стала КРУГЛОЙ, нужно наложить на неё маску прозрачности.

4) Длину заголовка с названием зоны нужно уметь динамически менять, в зависимости от длины текста в ней (как в компасе).

Однако, я ЗНАЛ, что каким-то образом, на виджеты можно накладывать маски, так как я видел это в интерфейсе игры (портреты персонажей - КРУГЛЫЕ, а не квадратные, на них наложена круглая маска), и видел сами текстуры масок в ресурсах игры (там они называются "ClipMask").

На решение этих двух задач, ушло много бессонных ночей... :) Решение наложения маски прозрачности, искал методом проб и ошибок. Много раз брался за это дело, но каждый раз, как только были перепробованы все возможные варианты, терпение заканчивалось. Затем, проходило какое-то долгое время, за которое я напрочь забывал всё, что я пробовал в прошлый раз, и когда появлялось настроение, пытался снова. И однажды, решение нашлось! :)

2w59eue.jpg

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

1) В тег <textureMask>, в его href="", нужно прописать именно "UISingleTexture".

2) Вне зависимости от ширины и высоты виджета, размер накладываемой на него текстуры-маски должен быть квадратным (?), а её ширина и высота должны быть степенями двойки (например, 256x256).

3) Текстура самой маски, может быть в любом кодеке, закрашена любым цветом, а сама маска прозрачности - это её Alpha-канал.

4) Если на виджет наложена маска, то во всех текстурах этого виджета, и у всех его дочерних виджетов, Alpha-каналы (прозрачность) работать НЕ будут, НИГДЕ (!)

5) По предыдущей причине, на виджет НЕЛЬЗЯ помещать Foreground-текстуру.

Последний пункт был для меня настоящим "эпическим" провалом, потому, что оказалось, я очень долго экспериментировал с наложенным Foreground'ом, а этого делать было нельзя. Только убрав с виджета Foreground, мне наконец-то удалось добиться того, чтобы маска сработала... Просто, на Foreground-текстуру, действие маски НЕ распространяется (в отличие от Background-текстуры), но вот, "отключение" прозрачности на неё РАСПРОСТРАНЯЕТСЯ, и она просто загораживает квадратом ваш виджет с маской, и даже если маска наложена, вы этого не увидите, пока не уберёте Foreground. Выглядит это так, как будто маска НЕ наложилась.

Как раз после того, как я нашёл способ сделать миникарту круглой, неожиданно, месяц назад, разработчики игры выпустили патч АО 2.0.02, со встроенной КВАДРАТНОЙ миникартой. ЭТО БЫЛА ПРОВОКАЦИЯ!!! :)) Как понимаете, имея на руках рабочую КРУГЛУЮ миникарту, я никак не мог проигнорировать эту провокацию :) Это буквально вынудило меня довести разрабтку аддона до конца.

Теперь, я взялся за динамическое изменение размера заголовка с названием зоны. В исходнике компаса, нет никакого кода, программно меняющего длину этого заголовка. Значит, всё это сделано в системе виджетов. Вытащил параметры виджетов компаса (с помощью ловкости рук и GetPlacementPlain), и оказалось, что там, за это отвечают два виджета - Заголовок, и помещённый в него Текст. Оба виджета имеют <Sizing>, отличный от стандартного WIDGET_SIZING_DEFAULT. Вот их <Sizing>:

Code:
<Placement> / <X> / <Sizing>WIDGET_SIZING_CHILDREN</Sizing> -- Заголовок

<Placement> / <X> / <Sizing>WIDGET_SIZING_INTERNAL</Sizing> -- Текст

Пример использования WIDGET_SIZING_INTERNAL нашёлся прямо в SampleAddons, в аддоне "SampleZoneAnnounce". А вот, с WIDGET_SIZING_CHILDREN у меня ничего не вышло. Но я особо и не искал, после того, как нашёлся способ, программно подстраивать размер Заголовка под размер Текста. Оказывается, можно функцией GetPlacementPlain() получить текущий размер Текста с WIDGET_SIZING_INTERNAL, и использовать его для коректировки размера его материнского контейнера (Заголовка). Но здесь тоже есть заковырка - оказывается, чтобы всё это нормально работало при любых резолюциях экрана, приходится пользоваться функцией widgetsSystem:GetPosConverterParams(). Вот так:

Code:
local s = widgetsSystem:GetPosConverterParams()

local t = wtText:GetPlacementPlain()

local p = wtTitle:GetPlacementPlain()

p.sizeX =  math.ceil( s.fullVirtualSizeX / s.realSizeX * t.sizeX ) + t.posX + t.highPosX

wtTitle:SetPlacementPlain( p )

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

Теперь, когда все технические проблемы с виджетами были решены, нужно было написать почти весь код на Lua. Это было уже делом техники. Но это "дело техники" оказалось труднее, чем я думал. Например, KaaPex, просто скопировал исходник оригинальной карты, с минимальными изменениями. Но я решил написать весь код с нуля. Во-первых, со времён АО 1.0.03 (у нас имеется исходник карты именно из этого, очень старого патча), функционал стандартной карты в АО несколько расширился, поэтому, старый исходник карты нужно было, как минимум, дополнять. Во-вторых, не хотелось копировать все эти "стеклянно-алюминиевые конструкции" из оригинального кода карты, я думал, можно сделать всё гораздо проще и компактнее (в итоге, так и вышло, мой код действительно

Ссылка на комментарий
Поделиться на другие сайты

MinimapSla - Как создавать карты инстансов

Эта инструкция написана для тех из вас, кто желает помочь с созданием карт инстансов :) Хотите попробовать, но не умеете рисовать? Не беда! Ничего рисовать не нужно, достаточно лишь аккуратно собрать все координаты в инстансе, а нарисовать по ним карту я смогу и сам (по вашим скриншотам и координатам).

Quote:

ВНИМАНИЕ! СПИСОК ВСЕХ ИНСТАНСОВ (всего 13 штук, основных):

Те, напротив которых написано "УЖЕ ЕСТЬ", собирать НЕ нужно.

Все остальные - НУЖНЫ. Вы можете помочь их сделать! :)

Лига:

"Крепость Орешек" / "Oreshek Fortress" - УЖЕ ЕСТЬ (спасибо Mehael !)

"Цитадель Тьмы" / "Darkblood Citadel"

"Зачумлённый Замок" / "Castle Blight"

Империя:

"ХАЭС" / "XAES" - УЖЕ ЕСТЬ (спасибо Denai !)

"Большой Купол" / "Laguna Boil"

"Секретная Лаборатория" / "Lab Thirteen"

Общие:

"Малый Храм Тенсеса (Лига)" / "Corridors of Tensess Temple (League)" - УЖЕ ЕСТЬ (спасибо Phoenixpg !)

"Малый Храм Тенсеса (Империя)" / "Corridors of Tensess Temple (Empire)"

"Храм Тенсеса" / "Heart of Tensess Temple"

"Город Демонов" / "Gorluxor's Tower"

"Храм джунов" / "Defiled Ruins"

"Мертвый город" / "Dead City"

"Пожиратель Искр" / "Genoer the Devourer"

Другие:

"Чистилище / Purgatory" - УЖЕ ЕСТЬ

"Башня Великого Мага" / "Clement's Tower" - УЖЕ ЕСТЬ

"Корабль Империи "Непобедимый"" / "The Imperial Ship "Invincible"" - УЖЕ ЕСТЬ

...

В текущей версии миникарты (в следующих, сделаю удобнее), для того, чтобы "начертить" карту инстанса, придётся сначала включить в её настройках опцию MapDrawing. (Вы стоите посреди уже зачищенного инстанса, у вас есть час свободного времени, а эта опция у вас ещё не включена? Её можно включить даже НЕ выходя из инстанса, если у вас установлен аддон AddonManager. Сделайте Alt+Tab в Виндовс, включите опцию, вернитесь в окно игры, и с помощью AddonManager, выключите/включите аддон MinimapSla.)

В файле MinimapSla\Config.lua, нужно включить опцию MapDrawing. (Естественно, после этого нужно либо пере-зайти в игру, либо с помощью AddonManager, выключить/включить аддон MinimapSla.)

Code:
MapDrawing = true,

Теперь, при каждом сделанном вами скриншоте, в файл Allods Online\Personal\Logs\Mods.txt будет записываться примерно такая строка:

Info: addon MinimapSla: Screenshot|Allods_110108_203036.jpg|DeathRealm||390.990|363.420|0.031|1.570|0.425

Здесь, записано название скриншота, название зоны и под-зоны инстанса, точные координаты персонажа, угол поворота персонажа и камеры.

Заметка для умных: Да, я знаю, что точно такая же информация находится в EXIF-данных каждого JPEG-скриншота. И изначально, я хотел использовать именно её. Но после первых тестов оказалось, что она там, мягко говоря, очень неточная (разброс - метров десять в любую сторону), поэтому, пришлось переделать способ сбора координат и AoMapGenerator. И, кстати, выкинуть пару комплектов уже собранных в инстансах скриншотов. Потому, что использовать их было совершенно невозможно.

Сбор координат

Ваша задача - обойти весь инстанс, становясь во все углы, и другие ключевые места, делая при этом скриншоты. Буквально, нужно обойти все те элементы, которые вы хотели бы видеть нарисованными на карте. Представьте, что делая каждый скриншот, вы ставите ТОЧКУ в том месте карты, где стоит ваш персонаж. Эти точки потом будут обведены программой AoMapGenerator (как в детской игре "обведи точки"), и таким образом, будет получена вся карта инстанса. Пожалуйста, делайте это аккуратно, и вообще, подойдите к делу творчески :) Сразу настройтесь, что на это уйдёт НЕ 15 минут, а как минимум полчаса, скорее 40-60 МИНУТ, или даже ещё больше, если инстанс большой. Общее количество скриншотов, наверное, будет измеряться сотнями. И ещё, старайтесь, чтобы ваш персонаж не стоял на всех скриншотах упёршись носом в стенку - по скриншотам должно быть понятно, что находится вокруг вашего персонажа.

Когда весь инстанс будет "обрисован", в файле Mods.txt будут собраны координаты всех точек. Скачайте программу AoMapGenerator (Она находится в аттачменте, в конце этого сообщения, вытащите оттуда AoMapGenerator.exe, и положите куда-нибудь. Из файла Mods.txt скопируйте все записи "Info: addon MinimapSla: Screenshot .....", сделанные в этом инстансе, вставьте в пустой текстовый файл, и сохраните его где-нибудь.

Перетащите этот текстовый файл на иконку программы AoMapGenerator.exe, и она автоматически начертит карту инстанса. Она создаст два файла (в той же папке, в которой лежит текстовый файл с координатами):

НазваниеЗоныИнстанса.png - карта инстанса, в виде PNG-картинки.

НазваниеЗоныИнстанса.lua - текст, для вставки в Resources.lua.

Что с этим делать? Ну, первым делом, посмотреть PNG-картинку, интересно ведь, что у вас получилось! :)

ВАЖНО: В аттачменте, кроме программы AoMapGenerator, есть ещё папка "EXAMPLES", а в ней, кое-какие ПРИМЕРЫ текстовых файлов с собранными координатами инстансов - можете кидать их, по одному, на иконку AoMapGenerator, и смотреть, как выглядит инстанс.

Пример (последняя под-зона стартового инстанса Империи):

16ixhtx.png

Что с этим делать?

Итак, вы собрали координаты инстанса. Теперь, у вас есть два варианта - либо отправить всё это МНЕ, чтобы я сам нарисовал карту этого инстанса, либо нарисовать самостоятельно. Лучше мне, я умею рисовать :)

ВАРИАНТ A:

Если отправляете мне, тогда мне нужны:

1) Все скриншоты, сделанные вами в этом инстансе.

2) Текстовый файл с координатами (которые вы вынули из Mods.txt).

Сожмите всё это в архив, и выложите на какой-нибудь сервис хранения файлов (Zalil.ru, Rapidshare.com, или любой другой), и напишите ссылку на скачивание в этой теме, или мне в личку, как хотите. Я сам сгенерирую PNG-картинку, и ориентируясь по тому, что видно на ваших скриншотах (вы ведь, позаботились, чтобы там не только стенки было видно?), нарисую в Фотошопе красивую карту, которая попадёт в следующее обновление MinimapSla.

ВАРИАНТ Б:

Если вы мне не доверяете :), или вы нашли какой-то ну-очень-секретный-инстанс, и не хотите его разглашать x)), или я ВНЕЗАПНО вознёсся в Валгаллу (такое у всех случается, один раз в жизни), или по любой другой причине, вы решили нарисовать карту САМИ, то тогда, это делается так:

Владеете Фотошопом? Нет? Тогда вернитесь к варианту А :)) По PNG-картинке, нужно нарисовать карту, в таком виде, в каком вы хотите видеть её в игре (только имейте ввиду, на PNG-картинке, карта примерно в ТРИ РАЗА увеличена по ширине и высоте. И ничего из неё не вырезайте, и не двигайте, там всё оптиматьно рассчитано, и соответствует данным из Lua-файла!). В качестве подложки, используйте текстуру MinimapSla\Resources\_Blank.bin, она открывается в "AoTextureViewer". Постарайтесь выдержать тот же стиль, как и в стандартных картах АО. Цвета НЕ должны быть слишком контрастными или яркими, придерживайтесь тех же палитр и контрастности, как на стандартных картах, это неспроста - так задумано для того, чтобы на картах были хорошо видны яркие и контрастные отметки. Нарисовав карту, уменьшите изображение с 3462x2658 до размера 1024x886 (заметьте, это НЕпропорциональное уменьшение, поэтому, карта должна чуть-чуть "сплющиться" в ширину). Опытные дизайнеры знают, что подложку не нужно было подкладывать до этого момента, это нужно сделать именно сейчас, когда карта уменьшена до своего "реального" размера. Дальше, необязательно, но БУДЕТ ЛУЧШЕ, если вы обрежете картинку по краям (в смысле, ваш рисунок наверняка не занимает всё пространство подложки _Blank, так? Для экономии объёма аддона, можно вырезать ЦЕНТРАЛЬНУЮ часть карты, обрезав края, на которых видна нетронутая подложка. MinimapSla сам подложит текстуру _Blank под вашу карту, а ваша карта будет помещена точно в её центре. И даже не думайте изобретать никаких "оптимизаций" размера файла с помощью альфа-канала, так как альфа-канал работать НЕ будет (такое ограничение наложено тем, что в миникатре используется маска, чтобы она была круглой). Кстати, вырезая центр карты, желательно, чтобы ширина и высота были кратны 4 пикселям, так будет чуть лучше для DDS-компрессии. Вырезали? А учебник из "AoTextureViewer" читали? Там сказано, что вам срочно нужен DDS-плагин к Фотошопу, и рассказано, каким образом нужно увеличить ширину и высоту холста картинки, чтобы сохранить её как DDS (ширина и высота должны быть степенями двойки, но в учебнике "AoTextureViewer" об этом написано чуть-чуть подробнее). Используя DDS-плагин, экспортируем текстуру карты как DXT1 без мипмапов, и с помощью "AoTextureViewer" конвертируем этот DDS-файл в BIN-файл. По учебнику "AoTextureViewer", создаём пару XDB-файлов. (Если возникают вопросы по альфа-каналу текстуры, XDB-файлам, и вообще, любые вопросы, то смотрите готовый образец правильно сделанной текстуры - MinimapSla\Resources\DeathRealm*.* - можете даже сконвертировать её в DDS, если вам любопытно). Готова текстура? Положите все её BIN/XDB файлы в MinimapSla\Resources\Maps, пропишите её в файле Resources.(UIRelatedTextures).xdb (там разберётесь, как). А содержимое того Lua-файла, который создал AoMapGenerator, разместите в файле Resources.lua (там же, где прописана DeathRealm, разберётесь).

Чуть не забыл сказать, что можно нарисовать не только карту всего инстанса целиком, но можно нарисовать даже карту какой-то его отдельной под-зоны. В аттачменте, в примерах, есть тому пример - координаты стартового инстанса Империи. В файле "_EXAMPLE_InstEmpire1_WRONG.txt" показано, что получилось, когда я собрал все координаты зоны. Пришлось разбить зону на две части: в "Default" - все под-зоны кроме последней, а в "FinalZone" - последняя зона. "Разбить" - значит, просто сделать два отдельных текстовых файла, это очень просто. MinimapSla устроена так, что она загружает либо карту Зона/Подзона, если такая найдена в ресурсах, ЛИБО карту Зона/Default, если она найдена. Если ничего не найдено, то включается особый режим "неизвестный инстанс".

Кроме того, собрав все координаты, можно ВООБЩЕ не рисовать карту, а лишь скопировать содержимое Lua-файла, сделанного AoMapGenerator, в файл Resources.lua, УБРАВ СТРОКУ Texture = { ... }. Для MinimapSla, это будет означать, что размер инстанса известен, но вместо его карты, будет показана такая же карта, какая показывается в "неизвестных инстансах".

AoMapGenerator 1.0.0

В аттачменте - сама программа "AoMapGenerator", её исходник на PHP (для любопытных). И кое-какие ПРИМЕРЫ текстовых файлов с собранными координатами инстансов - можете кидать их, по одному, на иконку AoMapGenerator, и смотреть, как выглядят инстансы в генерируемых ею PNG-картинках.

.

Ссылка на комментарий
Поделиться на другие сайты

MinimapSla - Как добавлять отметки на картах

Эта статья для тех, кто хочет добавлять какие-нибудь отметки на карты в MinimapSla. Например, Межевые камни, Сокровища, или, теоретически, всё что угодно.

Нашли неотмеченное Сокровище (клад)? Межевой камень? Ещё что-то? Выкладывайте их здесь, В ЭТОЙ ТЕМЕ, чтобы они вошли в следующее обновление аддона.

РУДОКОПЫ и ТРАВНИКИ, пожалуйста, не флудите! :) Для вас, в следующем обнавлении, будет АВТОМАТИЧЕСКИЙ сбор координат трав/руды!

В текущей версии миникарты (в следующих, сделаю удобнее), для того, чтобы собирать координаты ресурсов, придётся сначала включить в её настройках опцию ResourceCollecting. (Естественно, после этого нужно либо пере-зайти в игру, либо с помощью AddonManager, выключить/включить аддон MinimapSla.)

В файле MinimapSla\Config.lua, нужно включить опцию ResourceCollecting:

Code:
ResourceCollecting = true,

Теперь, при каждом сделанном вами скриншоте, в файл Allods Online\Personal\Logs\Mods.txt будут записываться кое-какие координаты, в таком виде, в котором их можно просто скопировать и вставить в файл ресурсов MinimapSla\Resources\Resources.lua.

Как сохранить чьи-то координаты:

А) Если это интерактивный объект (с ним можно поговорить, например, Сокровище):

Откройте диалоговое окно с ним, и сделайте скриншот.

В Mods.txt будут записаны 2 строки (координаты игрока и координаты интерактивного объекта (INTERACTOR)).

Возьмите ЭТУ часть:

Info: addon MinimapSla: You: { Type = "", Pos = { posX = 10931.807, posY = 11823.785 } }, -- 35.35:62.98 ZoneContested2 -- Allods_110210_233234.jpg

Info: addon MinimapSla: INTERACTOR: { Type = "", Pos = { posX = 10932.390, posY = 11818.930 } }, -- 35.37:63.13 "Джунская стела" @ ZoneContested2 -- Allods_110210_233234.jpg

Б) Если это детектируемый юнит (отмечается иконкой на карте):

Возьмите его в цель, и сделайте скриншот.

В Mods.txt будут записаны 2 строки (координаты игрока и координаты цели (TARGET)).

Возьмите ЭТУ часть:

Info: addon MinimapSla: You: { Type = "", Pos = { posX = 13647.124, posY = 6875.158 } }, -- 40.24:41.10 ZoneLeague1_Capital -- Allods_110210_233234.jpg

Info: addon MinimapSla: TARGET: { Type = "", Pos = { posX = 13633.600, posY = 6898.460 } }, -- 38.09:36.71 "Семейка Загадочных" @ ZoneLeague1_Capital -- Allods_110210_233234.jpg

В) Если ни то, ни другое (например, как Межевой камень, и многое другое):

Встаньте персонажем точно НА ЕГО МЕСТО, и сделайте скриншот.

В Mods.txt будет записана только 1 строка (координаты игрока).

Возьмите ЭТУ часть:

Info: addon MinimapSla: You: { Type = "", Pos = { posX = 15018.966, posY = 6025.649 } }, -- 39.16:69.19 ZoneLeague3 -- Allods_110210_233234.jpg

Как правильно вставить строку в БД ресурсов:

Всё просто :) Вы скопировали часть строки, какая указана в примерах выше. В файле Resources.lua, найдите секцию AoMapResources.KnownObjects, и в ней секцию, названную как ЗОНА, в которой вы сделали скриншот (ЗОНА указана в комментарии каждой строки, которую MinimapSla пишет в Mods.txt, например, "ZoneContested2"). Вот, в эту секцию и вставьте скопированную часть строки. Затем, НЕ ЗАБУДЬТЕ, указать в Type = "" тип ресурса. Например:

Type = "Treasure" -- Сокровище (Клад)

Type = "Milestone" -- Межевой камень

И другие. Список доступных типов ресурсов находится в секции AoMapResources.ObjectTypesList. Кстати, этот список тоже можно пополнять новыми типами, при условии, что имеется соответствующая иконка. Если её нет, её можно нарисовать.

ВАЖНО: Пожалуйста, НЕ собирайте координаты таких важных объектов, как Порталы, Почта, и другие детектируемые объекты. Сбор координат таких объектов (самых важных) будет автоматическим, в следующих версиях MinimapSla. Также, НЕ собирайте координаты руды и травы, потому, что это тоже будет полностью АВТОМАТИЗИРОВАНО, и скорее всего, уже в следующем обновлении :)

А что действительно НУЖНО собрать до конца - это Сокровища (Клады).

Что-то не получается?

Вы добавили новые ресурсы, но их НЕ видно на карте? Значит, видимо, вы сделали что-то неправильно, загляните в Mods.txt, там должна быть подсказка. Если вы сделаете где-то какую-то пользовательскую ошибку, заполняя файл ресурсов, то ничего страшного не случится, просто при загрузке, MinimapSla "почистит" ресурсы от таких бракованных ресурсов, и напишет соответствующие предупреждения об этом в файле Mods.txt.

Ссылка на комментарий
Поделиться на другие сайты

Дождались! Огромнейшее спасибо за этот аддон, да еще и с таким функционалом!!!

Ссылка на комментарий
Поделиться на другие сайты

Нет слов. Одни эмоции :)

В топку стандартую карту, даже если ОНИ, [d]как обычно, сп*т идею[/d] сделают что то подобное

Ссылка на комментарий
Поделиться на другие сайты

скрин уже говорит скачай и попробуй! =)) вот что ты скрывал так долго от всех =)) спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Как говорил, не люблю карты в АО, но она прекрасно подходит под общий дизайн, поэтому 5++ :)

Первый баг, решай)) После релога карта не отражается(белый цвет), зона так же, метка не крутится. Mods.txt чистый.

Рестарт в менеджере или рестарт всей игры помогает.

Ошибка лишь при релоге. (всмысле выход в меню и обратно)

-----------

Обнаружил, просто изменение зума так же помогает.:) Но так же, до релога.

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

очень качественный и красивый аддон! :)

только вот понадобится ли он персонажам уровня 40+, (героики, рейды, астрал) если ты не травник или рудокоп? :)

Ссылка на комментарий
Поделиться на другие сайты

Ага, это срабатывает только если тем же самым персонажем пере-зайти. Я так только пару раз в жизни делал :)) Удивительно, но при этом заново создаётся персонаж, но НЕ приходит событие о смене игровой зоны. Никогда бы не подумал. Исправил и перезалил :)

Ссылка на комментарий
Поделиться на другие сайты

You have to hover the minimap with a mouse pointer to see +/- buttons :))

P.S. It's 100% working in EU/US version, it's tested!

Ссылка на комментарий
Поделиться на другие сайты

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

А в астрале, миникарта просто выключается. Поддержка астрала в ней тоже будет когда-нибудь, но не сейчас.

А для Рудокопов и Травников, в следующем релизе добавятся типы ресурсов "Herb" и "Mine", и АВТОМАТИЧЕСКИЙ сбор координат трав/руды. Но сначала, мне нужно его обкатать, найти тот оптимальный радиус, в котором разбрасывается группа "огоньков" руды/травы, чтобы не сохранять координаты слишком часто.

Ссылка на комментарий
Поделиться на другие сайты

И всем спасибо за комментарии! Просто душа радуется, праздник! :)

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

И формой тоже. Но в первую очередь - громоздкостью. Как ни крути, а квадрат в любом случае площадь будет занимать большую, чем круг с диаметром, равным стороне квадрата. На моем стареньком мониторе, поддерживающем максимум 1280х1024 это особенно актуально.

Ссылка на комментарий
Поделиться на другие сайты

ВНИМАНИЕ!
Обязательна информация из \Personal\Logs\mods.txt для диагностики ошибки.
Иначе вам не помочь.
В игре включите в Меню → Интерфейс → Общие настройки → Запись ошибок пользовательских дополнений. Затем запустите аддон в игре.
Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования