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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

hal.dll

Разработчик аддонов
  • Постов

    439
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные hal.dll

  1. I cant fint a "Objekt Klick:" string in my mods.txt to find the bug with automove wont work

    Hmm, if you could not find "object click:" string (note, you should search exactly the string with 'c' characters instead of 'k') that means that add-on is not receiving double click event.

    Are you sure that you're clicking on the object twice? Also make sure to click on highlighted object.

    Also are you using HerbMap add-on or any other add-ons showing something on the map?

     

    German Localisation

     

    Good! Thank you!

  2. Можно уменьшить количество меток на карте таким путем.

    С обозначением Скитальцев соглашусь. Выглядит хорошо.

    Но по поводу камней мне не ясно. Вы предлагаете оставить пользователям только возможность автобега до конкретной зоны, а уже в ней бегать вдоль и поперек вручную, даже если известно, что в том месте, где он бегает, камней просто быть не может? Ну, это выглядит весьма издевательской модернизацией. Может быть я когда-нибудь сделаю такое опциональным, но не скоро. Есть сейчас более приоритетные и полезные задачи, на которые стóит потратить время.

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

     

    Вы сейчас навели меня на мысль, что можно попробовать масштабировать или скрывать некоторые точки в зависимости от масштаба карты. Поработаю в этом направлении.

    Еще попробую поработать с размером текстурки или даже ее заменить.

     

    А как вы себе представляете "зону миграции"?

     

    Это я абстрактно. Постановка задачи, грубо говоря. Если моб не стоит на месте, то лучше рисовать зону его миграции. Как это реализовать - это уже второй вопрос.

  4. need a little bit help :D automove wont work Allods v 4.0.03.59 German version or EU version

     

    Damn it! I was feeling that I forgot to do something before issuing 1.3 version. That is it. I forgot to disable debug information. Luckly it is not in verbose mode.

     

    Unfortunately, the log seems cut and it does not contain all necessary information. Could you please find "object click:" string in your mods.txt and provide all messages around it?

    Is automove not working at all, or only in one place/from one zone?

    Any details are welcome :)

     

    Thanks in advance.

     

    Btw, would not you like to provide German localisation?

  5. Обыкновенная обводка цветом по периметру островов вызывает у вас затруднения?

    Вас это удивляет? Я не вижу в этом ничего простого.

     

    Эмм, а что мешает сделать линию состоящую из множества точек?

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

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

  6. Great! Thank you.

    So, the corresponding settings should have the following text, am I correct?

        [ "MarkCrystal01" ] = "Afficher les Azurite Astrale",
        [ "MarkCrystal02" ] = "Afficher les Chrysolite Astrale",
        [ "MarkCrystal03" ] = "Afficher les Topaze Astrale",
    

    Also I'm adding teleporters for MANANAZEM research institute headquarters.

    I hope you're aware with Empire zones :) This is the one with Teph's Pyramid.

    Could you please provide French translation for the following English string:

        [ "MarkTeleporter" ] = "Show MANANAZEM teleporters",

     

    Thanks in advance.

  7.  

    Hi,

     

    For the French localisation:

    fra = { -- French, Win-1252
        -- Buttons text:
        [ "Cancel changed" ] = "Annuler",
        [ "Reset to default" ] = "Restaurer par défaut",
        [ "Save" ] = "Enregistrer",
        [ "Close" ] = "Fermer",
        -- Settings text:
    	[ "AddonEnabled" ] = "Addon activé",
    	[ "MarkCrystal01" ] = "Afficher les cristaux verts",
    	[ "MarkCrystal02" ] = "Afficher les cristaux bleus",
    	[ "MarkCrystal03" ] = "Afficher les cristaux violets",
    	[ "MarkTreasure" ] = "Afficher les trésors",
    	[ "MarkMilestone" ] = "Afficher les bornes",
    	[ "MarkBoss" ] = "Afficher les boss (élite rouge)",
    	[ "MarkTime01" ] = "Afficher premier voyageur du temps",
    	[ "MarkTime02" ] = "Afficher second voyageur du temps",
    	[ "MarkTime03" ] = "Afficher le pnj Perdu dans le temps",
    	[ "MarkPortal" ] = "Afficher les embarcadères",
    	[ "MarkTkaRika" ] = "Afficher l'entrée de Tka-Rik",
    	[ "ShowOnMap" ] = "Afficher sur la Carte du Monde",
    	[ "ShowOnMinimapCircle" ] = "Afficher sur la Mini-carte circulaire",
    	[ "ShowOnMinimapSquare" ] = "Afficher sur la Mini-carte rectangulaire",
    

     

    Hi,

    Thanks a lot!

    But I would like to ask you whether all astral stones (crystals) are called exactly like you have stated here?

    I mean that they could be called differently in different localisations.

    For example, in Ru localisation they are called "lazurite", "chrysolite" and "topaz".

    And I was supposing to use "green/blue/purple crystal" names as temporary stubs until I get their actual names.

    So, whether they have own names in your localisation?

    The similar question is for other items.

     

    Thanks in advance!

  8. На карте НИИ Мананзэм на острове Омут нет обозначений астральных камней (зелененьких).

    База данных не полная ибо все координаты собираются вручную. Просто никто ранее не собирал на этом острове камни. Побегаю там, дополню, чем смогу.

     

    Было бы неплохо на карте НИИ обозначит телепортационные точки.

    Хорошая идея. Придумать бы картинку, как их обозначать...

     

    На карте Диких островов имеется недостаток - камни островов Яростных и Кровожадных, а так же Боевых и Праведных работают блоком, а не отдельно друг от друга, просьба это как-то обозначить например выделение этих островов рамками разного цвета.

    Я сейчас думаю над решением этой проблемы с объединением камней в группы.

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

    С рисованием же у меня совсем плохо, поэтому рамочки обещать не буду.

     

    На карте Кираха после добавления точек миграции скитальцев стало ну очень тесновато. Нельзя ли по этим точкам просто провести "маршрут миграции" - одну полосу, вместо кучи точек с песочными часами?

    Я собирался почистить немного их, удалив тесно стоящие точки. Вас это устроит? Проблема в том, что с полосой скорей всего будет недоступно автоматическое перемещение.

  9. Скрины обрезал для экономии места (и только).

    На перекрёстке "до этого" бывал не раз, пробовал персом у которого имеется квест "Путь ..."

    и персом - "Хаюшкой" пробовал посещать посёлок и перекрёсток.

     

    Спасибо за информацию. Проблему нашел и уже частично исправил. Обновление уже на подходе. Скитальцы там тоже будут.

  10. Надо бы поправить координаты...

    Портнулся с Новика в Посёлок:

    также попробовал портнуться на Перекрёсток:

    Результат один.

    А скрины зачем обрезали?

    И позвольте поинтересоваться, вы на перекрестке до этого были?

  11. можно сделать кнопку вкл. и выкл. отображения камней :66:

     

    Окошко настроек в процессе. Срок: середина след. недели. Сейчас возможно это сделать только через config.txt, постоянно перезагружая аддон.

  12. поменял фотохостинг. 

     

    Спасибо. Понял в чем дело: в игре 2 карты с одним названием (Осколок Язеса). Придется добавить проверку названия группы карт (то, что в левом выпадающем списке). Залью исправленную версию ночью.

     

     

    еще такой вопрос - а может он локализовать место показа самоцвета? то есть по принципу SearchCrown засекать самоцвет и убирать на карте лишние

     

    п.с. понял. как раз что-то подобное и планируется

     

    Лишних точек нет. Расположение камня не постоянно. Сегодня тут, завтра в 50 метрах сбоку. И так - в одном из 5-10 фиксированных мест.

  13. показывает самоцветы на арене смерти.Allods_131104_201303.jpg

     

    Скриншот не отображается. Можно залить на другой хостинг?

    С какой локации попали на Арену?

    PS: Постараюсь исправить как можно быстрее. Уже есть подозрения, что это может быть. Ночью возможно будет баг-фикс (без добавления нового функционала).

     

     

    Давненько дополнял

     

    Благодарю, добавлю в следующем релизе.

     

     

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

     

    Т.е. то же самое, что делал SearchCrown? Планируется перманентное слежение (в т.ч. в рамках сбора новых координат) за появлением камня в ближайшей округе. В планах также добавить какую-нибудь стрелку, указывающую направление (если это вообще возможно).

  14. Вопрос по теме: имеется ли возможность добавления и редактирования координат камней? Вполне вероятно что система сохранения и дополнения координат могла бы сделать карту более детальной и точной, а это в свою очередь стало бы более комфортным и пригодилось бы всем игрокам.

     

    P.S. Автобег был бы очень уместен так как сократил бы время выполнение этого длительного квеста. 

     

    Автобег сейчас стоит наиболее приоритетной задачей.

    По поводу редактирования координат - не задумывался.

    По поводу добавления координат:

    Если я правильно понимаю, то API Аллодов дают возможность записывать какие-либо данные только в пользовательские настройки.

    Писать в отдельный файл или синхронизировать данные по сети API вроде не позволяет. (Впрочем, этот вопрос еще не изучался, если известны наработки - просьба ткнуть меня носом).

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

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

    Как минимум есть планы перенести функционал клавиши PrintScreen из MinimapSla, который дополнительно писал координаты объекта в лог.

    Со временем также будет добавлено сохранение новых координат в пользовательских настройках.

  15. Cartographer

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

    Ru:

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

    Камни и игровые объекты отображаются на карте мира и на обоих миникартах.

    Начиная с версии 1.0 совместно со встроенной в игру миникартой полностью заменяет дополненный аддон MinimapSla, размещенный в профильной теме официального форума.

    Начиная с версии 1.6 дублирует функционал аддона SearchCrown.

    Начиная с версии 2.3 дублирует функционал аддона HerbMap.

    Автоперемещение:

    Автоперемещение не работает в связи с хотфиксом 5.0.00.66 [25.03.14].

    Установка:

    1. Скачиваем архив с аддоном Cartographer_2.5.pak для любой версии игрового клиента.
    2. Удаляем предыдущие версии аддона (в том числе Crystals.pak, Cartographer.pak) из директории игры Allods Online\data\Mods\Addons\.
    3. Копируем (распаковывать не требуется) скачанный архив в директорию игры Allods Online\data\Mods\Addons

    Настройка:

    В аддоне присутствует окно настроек, позволяющее указывать, объекты какого типа вы хотите видеть на карте.

    Настройки являются независимыми для каждого персонажа.

    Окно настроек вызывается чат-командой /cart

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

    По умолчанию аддон показывает все известные ему объекты:

    • Астральный лазурит
    • Астральный хризолит
    • Астральный топаз
    • Сундуки с сокровищами
    • Вход в пещеру Тка-Рика (доступно автоперемещение)
    • Вход в Город Демонов
    • Входы на Арены
    • Межевые камни
    • Корабельные причалы
    • Торговцы миррой
    • Места добычи трав и руды
    • Телепорты на карте НИИ МАНАНАЗЭМ
    • Силайа на Кольце Дракона
    • Служители Времени на Кирахе
    • Первый Скиталец во времени (синие песочные часы)
    • Вторая Скитальца во времени (красные песочные часы)
    • Заблудившийся во времени Саранг Ма (фиолетовые песочные часы)
    • Боссы (красные короны)

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

    Настройки применяются сразу после их изменения.

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

    Нажатие на кнопку "Отменить измененное" сбрасывает все не сохраненные настройки.

    Объекты пользователя:

    Аддон позволяет добавлять на карту свои объекты. База объектов пользователя сохраняется в глобальных настройках, таким образом они будут доступны на всех перерождениях и альтернативных персонажах.

    Оконный интерфейс базы пользовательских объектов вызывается чат-командой /cdb

    Любое из 3 окон интерфейса можно перемещать или растягивать. Кроме того все 3 окна могут перемещаться одновременно за заголовок.

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

    Для добавления меток на карту Астрала необходимо воспользоваться дополнительной панелью, отображаемой поверх карты Астрала. Для этого просто перетащите мышью (Drag'n'Drop) иконку объекта в то место на карте, куда хотите добавить свою метку. Для выбора иконки просто щелкните по ней левой кнопкой мыши. Сама панель также передвигается за рамку.

    Для объектов можно задавать иконку метки на карте, название для отображения в списке объектов и описание, которое будет использоваться во всплывающей подсказке. Все изменения применяются сразу. Это относится и к панелям текстового ввода. Нажатие на Enter и Esc при активной панели текстового ввода трактуется одинаково и приводит только к потере фокуса ввода.

    Нажатие на кнопку "Сохранить" сохраняет все изменения.

    Нажатие на кнопку "Отменить измененное" сбрасывает все не сохраненные изменения; в том числе будут удалены добавленные, но еще не сохраненные объекты, а также восстановлены случайно удаленные объекты (если еще не успели нажать на "Сохранить").

    Кроме этого базу данных можно выгрузить в файл mods.txt, создав резервную копию всех объектов.

    Обмен координатами:

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

    Отправка и получение координат осуществляется только для чата гильдии, офицеров, группы, рейда и через шёпот.

    Порядок действий:

    1. В окне со списком объектов выделить объект, координаты которого хотите кому-либо отправить.
    2. Открыть окно ввода сообщения чата и выбрать нужный чат.
    3. Нажать на кнопку "Отправить объект в чат". Если кнопка не активна, значит не все условия были выполнены.
    4. В окне ввода сообщения появится запрос на ввод клавиши Enter. Нажмите её.
    5. В чате появится специальным образом составленное сообщение, которое будет распознано аддоном, установленным у других пользователей.

    Внимание: Приём объектов осуществляется постоянно вне зависимости от того, включен ли аддон в настройках или нет. Каждый принятый объект сохраняется в базе объектов автоматически (открывать интерфейс и нажимать на кнопку "Сохранить" не требуется). Это позволит не потерять объекты, полученные во время отсутствия за компьютером, если клиент игры завершится с ошибкой.

    Дополнение общедоступных координат:

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

    Для этого необходимо включить соответствующую опции в окне настроек (команда /cart в окне чата), встать прямо в то место, где находится камень, и сделать скриншот.

    По клавише PrintScreen аддон запишет координаты аватара в файл Allods Online\Personal\Logs\mods.txt.

    Их надо извлечь и прислать (желательно вместе со скриншотом) либо на форум поддержки, либо в личные сообщения автору.

    ==================================================================================================

    En:

    Addon shows some known game objects on the World Map and both square and circle Minimaps:

    • Respawn places of astral stones needed for a Ruby
    • Treasures
    • Milestones
    • Tka-Rik cave entrance
    • Gorluxor's Tower entrance
    • Arena entrances
    • Myrrh vendors
    • Ship portals
    • Herb
    • Ore
    • Elite bosses
    • Soliskar at Dragon Ring
    • Time travelers at Kirah
    • Time servants at Kirah
    • Teleporters at ZIT Headquarters

    Installation:

    1. Download archive with add-on Cartographer_2.5.pak
    2. Remove older versions of add-on (Crystals.pak as well) from the game add-ons directory Allods Online\data\Mods\Addons\
    3. Move downloaded archive to the game add-ons directory Allods Online\data\Mods\Addons\

    Automove:

    Automove is not working due to 5.0.00.66 game hotfix.

    User objects:

    Add-on allows to show user defined marks on maps.

    To see user objects database interface issue the following chat command: /cdb

    Sharing coordinates:

    You can share your mark with your buddies using game chat.

    1. Open user objects interface, select any mark in the list.
    2. Open chat text input window.
    3. Set its mode to desired (whisper, guild, officers, party or raid).
    4. You should see "Send object to chat" button active now.
    5. Push it.
    6. You will see "Object is ready. Press <Enter> now." message in chat input window.
    7. Press <Enter>.
    8. You will see special message is sent to recipient(s).
    9. The recipient(s) should, of course, have this addon installed to receive your mark.

    Setup:

    Setup objects that you would like to see using add-on settings window.

    To see it just issue the following chat command: /cart

    All settings are applied immediately.

    ==================================================================================================


     

    • Нравится 1
    • Плюсую 4
  16. Нельзя ли вернуть кнопкам функцию скрытия окна аддона?

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

    И когда вы уже исправите, что если окно всплывающей подсказки к островам НА перекрывает название острова в главном окне, то при наведении на это название подсказка не высвечивается?

  17. LibDnD

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

    Официальная версия LibDnD для аддонов. Рекомендуется разработчикам аддонов использовать данную версию LibDnD в своих аддонах.

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

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

    HOW-TO: LibDnD.lua - Библиотека Drag&Drop

    Простейший пример использования LibDnD

    Файл LibDnD.lua нужно включить в AddonDesc.(UIAddon).xdb, в секции <ScriptFileRefs>:

        <ScriptFileRefs>
            <Item href="LibDnD.lua" />
    ...
        </ScriptFileRefs>

    DnD.Init() - Инициализирует виджет для Drag&Drop. Это нужно только один раз, во время инициализации аддона, или позже, когда угодно. Повторные вызовы для того же самого виджета на данный момент нежелательны.

    Пример:

    DnD.Init( wtMainPanel )

    Всё, Drag&Drop УЖЕ работает 🙂

    Функция DnD.Init()

    Синтаксис:

    DnD.Init( wtMovable, wtReacting, fUseCfg, fLockedToScreenArea, Padding, KbFlag, Cursor )

    Обязательные параметры:

    1. wtMovable - ссылка на Widget.
      Виджет, КОТОРЫЙ нужно перемещать.

    Необязательные параметры (могут быть nil, или их можно вообще не писать):

    1. wtReacting - ссылка на Widget (nil = wtMovable).
      Виджет, на который привязывается реакция, т.е. виджет, ЗА КОТОРЫЙ будет перетаскиваться wtMovable. Это может быть сам wtMovable, то есть сама перетаскиваемая панель, но НЕ обязательно (!), это может быть что угодно, например, ЗАГОЛОВОК ОКНА, "дочерний" по отношению к ОКНУ wtMovable. Если не указан - виджет wtMovable перемещается сам за себя.
       
    2. fUseCfg - true/false (nil = false).
      Сохранять ли позицию виджета в конфиг-файл User.cfg. Если да, то сохранит в таблице с именем "DnD:<путь к виджету wtMovable в иерархии>", в секции, названной по имени аддона. Рекомендуется, чтобы все родительские виджеты wtMovable имели осмысленные, не динамические, уникальные имена.
       
    3. fLockedToParentArea - true/false (nil = true).
      Если true, то передвигаемый виджет нельзя даже частично утащить за края родительского окна (чаще всего ими являются края экрана). Таким образом он всегда будет находиться целиком на экране (если не переопределено в параметре Padding, см. ниже). А если false, то его можно утащить полностью, точно так же, как можно утаскивать окна в ОС Microsuxx Windows.
       
    4. Padding - число или таблица из 4 чисел {Верхний,Правый,Нижний,Левый} (nil = {0,0,0,0}).
      Если fLockedToParentArea=true, то действует Padding. Если хотите, чтобы за край окна всё-таки можно было частично утащить wtMovable на какую-то глубину, то можете заполнить таблицу. Например, это сделано в аддонах "PhanTime" и "HonorInfo", где по краям панели имеется "тень" толщиной 8 пикселей. Там эта таблица заполнена отрицательными числами, вот так: {-8,-8,-8,-8}. В случае передачи числа в качестве параметра, оно будет использовано в качестве глубины по всем направлениям.
       
    5. KbFlag - флаги управляющих клавиш KBF_*.
      Если надо, чтобы wtMovable двигался только при нажатии клавиш Shift, Ctrl или Alt, передаем здесь соответствующие флаги KBF_*:
      • nil - нажатие любой из перечисленных клавиш не имеет никакого эффекта.
      • KBF_NONE - Перетаскивание только при не нажатых клавишах
      • KBF_SHIFT - Перетаскивание только при нажатой "Shift"
      • KBF_ALT - Перетаскивание только при нажатой "Alt"
      • KBF_CTRL - Перетаскивание только при нажатой "Ctrl"
      • KBF_ANY - Перетаскивание только при любой нажатой клавиши из перечисленных
         
    6. Cursor - строка/false (nil = "drag").
      Стиль курсора, который будет устанавливаться при перетаскивании.
      • nil/true - используется курсор по умолчанию: "drag".
      • false - курсор не меняется при перетаскивании.

    Примеры использования DnD.Init()

    Виджет Окно (wtWindow), которое можно таскать за виджет Заголовок-окна (wtTitle), являющийся дочерним виджетом Окна:

    DnD.Init( wtWindow, wtTitle )

    Виджет таскается сам по себе, И его позиция сохраняется между игровыми сессиями (создаёт секцию по названию аддона в файле User.cfg):

    DnD.Init( wtPanel, wtPanel, true )

    или:

    DnD.Init( wtPanel, nil, true )

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

    DnD.Init( wtPanel, nil, false, true )

    Позицию в конфиг не сохраняет, но за то, "тень" по краям текстуры фона окна аддона, имеющая

    толщину 8 пикселей со всех сторон, будет красиво задвигаться за край экрана (так сделано в аддонах "PhanTime" и "HonorInfo"):

    DnD.Init( wtMainPanel, nil, nil, nil, {-8,-8,-8,-8} )

    или:

    DnD.Init( wtMainPanel, nil, nil, nil, -8 )

    Делаем сразу три разных виджета передвигаемыми в одном аддоне:

    DnD.Init( wtTrayButton )
    DnD.Init( wtMainWindow )
    DnD.Init( wtConfigWindow )

    Делаем передвигаемую wtMainPanel и все её дочерние виджеты в пределах родителя с учетом рамки в 4 пикселя при нажатой клавише Ctrl, с сохранением всех позиций в User.cfg:

    DnD.Init( wtMainPanel, nil, true )
    for _,wtChild in pairs( wtMainPanel:GetNamedChildren() ) do
       DnD.Init( wtChild, nil, true, nil, 4, KBF_CTRL )
    end

    Функция DnD.Enable()

    Синтаксис:

    DnD.Enable( wtWidget, fEnable )
    1. wtWidget - ссылка на Widget.
      Это может быть wtReacting или wtMovable, не важно, т.к. оба варианта работают.
       
    2. fEnable - true/false.
      Если true, то виджет будет реагировать на Drag&Drop, а если false, то Drag&Drop виджета будет запрещён (то есть, виджет будет "пристёгнут", и будет игнорировать все попытки перетаскивания).

    Этой функцией пользоваться НЕ обязательно, т.к. все виджеты, зарегистрированные в системе функцией DnD.Init(), по умолчанию, АКТИВНЫ. Но если возникнет необходимость "пристегнуть" такой виджет, то функция DnD.Enable() существует именно для этого. Она меняет статус виждета, перманентно разрешающий или запрещающий его Drag&Drop. "Пристегнуть" виджет можно командой DnD.Enable( ВашВиждет, false ), и он будет игнорировать все попытки перетаскивания. Если позже вам потребуется снова разблокировать его (снова сделать перетаскиваемым), то сделайте это командой DnD.Enable( ВашВиждет, true ).

    Функция DnD.Enable() может потребоваться вам, например, если вы захотите сделать в своём аддоне полноценную поддержку событий аддона AddonManager.

    Подробнее об этом написано здесь: Поддержка событий AddonManager в других аддонах

    Функция DnD.IsDragging()

    Синтаксис:

    DnD.IsDragging()

    Если в вашем аддоне есть перетаскиваемые кнопки (такие есть, например, в аддонах "DarkDPSMeter" и "GuildGui1b"), то вам пригодится функция DnD.IsDragging(). Чтобы при перетаскивании такой кнопки, ИЗБЕЖАТЬ нажатие на неё, вставьте такую строку в начало кода реакции на нажатие кнопки:

    if DnD.IsDragging() then return end

    Функция DnD.Remove()

    Синтаксис:

    DnD.Remove( wtWidget )
    1. wtWidget - ссылка на Widget.
      Виджет, который нужно разрегистрировать в системе DnD, чтобы его можно было безопасно уничтожить с помощью DestroyWidget. Передавать надо именно тот виджет, который собираетесь уничтожать.
      На данный момент не проверяет, зарегистрированы ли в системе дочерние по отношению к wtWidget виджеты, поэтому, если вы их регистрировали, то необходимо вызывать DnD.Remove и для них.
      Пример:
    for _,wtChild in pairs( wtMainPanel:GetNamedChildren() ) do
       DnD.Remove( wtChild )
    end
    DnD.Remove( wtMainPanel )
    wtMainPanel:DestroyWidget()

    Бонус: функции GetConfig() и SetConfig()

    Примеры:

    Получить весь конфиг аддона в виде ТАБЛИЦЫ (если он есть в User.cfg), или nil (если его там нет):

    Config = GetConfig()

    Получить из конфига значение переменной Name (если она есть) или nil (если её там нет).

    Имя переменной может быть строкой или числом, а значение - чем угодно, хоть таблицей.

    MyOption = GetConfig( Name )

    Сохранить в конфиг-файл переменную Name со значением Value.

    Те же условия для имени и значения, что описаны в предыдущем примере.

    SetConfig( Name, Value )

    Если передать только ОДИН параметр, но ТАБЛИЦУ, то все её переменные будут аккуратно добавлены (merged) в конфиг аддона. Именно добавлены. То есть, тупой перезаписи одной таблицы поверх другой эта функция НЕ делает.

    SetConfig( {  ["A"] =5,  [100] ={1,10,100},  ["Yes"] =true } )

    Этим двум функциям НЕ нужно указывать название секции, т.к. они всегда пользуются секцией, названной именем аддона.


     

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

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

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