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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Интерфейсные аддоны (Инструкция)


Гость mehael

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

Y'all do realize that I created a way for add-ons to react to Alt-Z called LibTiogan, right? I mean obviously I understand you are trying to find a method of doing it yourselves in a simpler form.

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

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

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

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

Setras, скажи мне 1 простую вещь: зачем тебе знать имя своей главной формы? Из твоего аддона к своим виджетам ты обращаешься как и раньше (тебе нужно было знать имя формы?) Надеюсь, к другим пользовательским аддонам ты обращаться не собираешься из своего? Хотя и тут проблем не вижу особых

Кто сказал, что невозможно иметь хоть 10 форм с одинаковым именем на 1 родителе?

Ваши виджеты - это 1 набор объектов. Вы как к нему обращались до переноса (через mainForm), так и будете обращаться после

Недостаток этого метода только в том, что приоритет донорской формы нельзя(и не по технической причине) менять, но доноров хоть отбавляй - выбирай с тем приоритетом, который тебе нравится

Преимущество тоже 1: "Положил и забыл" + простота реализации

Никого ни в чем убеждать не собираюсь, но способ кажется очень удобным

En

Who has told, what it is impossible to have though 10 forms with an identical name on 1 parent?

Yours widgets is 1 set of objects. You as to him addressed before carrying over (through mainForm), and will address after

Lack of this method only that the priority of the donor form is impossible (and not for the technical reason) to change, but donors though take away - choose with that priority which is pleasant to you

Advantage too 1: "Has put and has forgotten" + simplicity of realization

Anybody of what I am not going to convince, but the way seems very convenient

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

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

Насколько я поняла при этом просто теряется связь с системными обработчиками реакции на данный виджет - то есть надо свои обработчики объявить.

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

  • 1 месяц спустя...
Quote:
Кто сказал, что невозможно иметь хоть 10 форм с одинаковым именем на 1 родителе?
Ваши виджеты - это 1 набор объектов. Вы как к нему обращались до переноса (через mainForm), так и будете обращаться после
Недостаток этого метода только в том, что приоритет донорской формы нельзя(и не по технической причине) менять, но доноров хоть отбавляй - выбирай с тем приоритетом, который тебе нравится
Преимущество тоже 1: "Положил и забыл" + простота реализации
Никого ни в чем убеждать не собираюсь, но способ кажется очень удобным


гениально! я сначала не поняла о чем речь... то есть сделав главную форму своего аддона ребенком системной формы - автоматом ALT-Z будет работать на аддоне
приоритет можно доноров менять обычным образом - пример тому мойPopUpChat
и наверно еще можно отрицательный приоритет своей форме делать - так чтобы подогнать под нужное значение

вот какие виджеты есть в новой и старой версиях АО
AO 2.0:
Code:
:ContextPinMenu2:MainPanel:PinPanelLeft:PinButtonItemMall
:ContextItemMall
:WidgetsManagerForm
:ContextItemMall:ItemMall:Stand:Plate03:Favorites
old
:ItemMall:Stand:Plate03:Favorites
:MainPanel:PinPanelLeft:PinButtonItemMall


PinButtonItemMall есть в обоих. делаем так:
Code:

function alt_Z()
local w = stateMainForm:GetChildUnchecked("PinButtonItemMall", true)
if w then 
w = w:GetParent():GetParent():GetParent()
w:AddChild(mainForm)
end
end

будет работать одинаково везде
а блин DnD теперь не работает как надо ((
Ссылка на комментарий
Поделиться на другие сайты

"ContextItemMall" спасло

Code:
n = "ContextItemMall"

w = stateMainForm:GetChildUnchecked(n, false)

if w then

w:AddChild(mainForm)

else

LogToChat("not found:"..n )

end

работает изумительно! спасибки!

только вот отрицательный приоритет не пашет - моя форма над AddonManager даже...

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

"ContextOverlayMap" - мне больше понравился

а может чтобы сделать нужный приоритет просто у каждого вложенного виджета формы аддона поменять его?

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

Quote:
сначала не поняла о чем речь...

Никто наверное, так и не понял, о чем речь
Quote:
приоритет можно доноров менять обычным образом

Приоритет доноров НЕЛЬЗЯ менять никаким образом.
Я уже об этом писал. Этим донором может пользоваться не только твой аддон, и создатель другого аддона, наверное, хотел бы оставить такой приоритет, какой изначально был. Да и у самого донора, наверно, не зря выставляется определенный приоритет
Правильнее найти донора с другим, нужным тебе приоритетом

Quote:
а блин DnD теперь не работает как надо ((

Хм, с ДнД никаких проблем не наблюдается
Ссылка на комментарий
Поделиться на другие сайты

ContextOverlayMap - нет в бурговской версии клиента :(

--

Немного перебрав стандартные аддоны выбрал для себя донорами несколько

MainAddonMainForm

Приоритет -500. Самый низкий. Есть везде - и в русской, и в нерусских верисях клиента

ContextBag

Приоритет 4200 в русской версии. Средний. Так же есть в о всех версиях клиента. Скрывается по Alt+Z, ESC, вызове окон Гильдии, Лавки, Общения, Календаря

ContextTooltip

Приоритет 10000 в русской версии. Высокий. Есть только в русской версии клиента, в бурговских приходится искать по ребенку Tooltip

Возможно, если покопаться еще, можно найти аналоги ContextBag с другими приоритетами

---

Пример использования - аддон UnitDetector

Там главная форма находится на ContextBag, тултипы на ContextTooltip, метки на MainAddonMainForm

Или LightDPS - у него донор тоже ContextBag

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

  • 2 недели спустя...

Люди.. Сделайте красивый интерфейсный аддон! у кого руки примые) и зайлейте!!))))) будем пробовать)

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

У кого руки примые ? Сделайте красивый интерфей/аддон и залейте. думаю многие будут благадарны)

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

чИго??? аддон чего?? красоту чего??

ты мысли научись излагать и русский подучи

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

Знаешь есть аддоны,каторые меняют вид панелей со скилами,миняет вид всего интерфеса!

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

  • 7 месяцев спустя...

Есть кто живой сдесь ? Что то гайд какой то не гайд, для помоему его поймут только те кто уже умеет работать с аддонами и прочим.

ну да ладно, не в этом суть. Как мне отключить стандартный UI группы ?

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

Согласен, этому проекту с самого начала не хватало инструкций для тех, кто хочет начать с нуля. Где найдется герой? Думаю можно писать для тех кто уже умеет программировать.

Quote:
Как мне отключить стандартный UI группы ?

Code:
local wtMainForm = stateMainForm:GetChildChecked("Plates", false )

local wtMainPanel = wtMainForm:GetChildChecked("Paty", false )

wtMainPanel:Show(false)

этот код в первых двух строках получает нужную панельку, а в 3ей скрывает ее.

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

Code:
local wtMainForm = stateMainForm:GetChildChecked("Plates", false )

local wtMainPanel = wtMainForm:GetChildChecked("Party", false )

function OnEventGroupChanged( params )

   wtMainPanel:Show(false)

end

common.RegisterEventHandler( OnEventGroupChanged, "EVENT_GROUP_CHANGED" )

Код скрывает панельки сопартийцев, а вот баффы остаются. Чтобы их тоже скрыть надо работать со стандартным аддоном Buffs( насколько помню название)

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

Code:
local wtMainForm = stateMainForm:GetChildChecked("Plates", false )
local wtMainPanel = wtMainForm:GetChildChecked("Paty", false )
wtMainPanel:Show(false)

Как пример, код выше можно заменить следующим кодом (без создания переменных и присвоения им значений):
Code:
stateMainForm:GetChildChecked("Plates",false):GetChildChecked("Paty",false):Show(false)

Опять же, если мне не изменяет память, мы не можем быть на 100% уверенными что наш код получит событие EVENT_GROUP_CHANGED гарантированно позже, чем системный аддон отображающий баффы или интерфейс группы(или можем?).
Но мы можем запустить некоторую функцию которая создаст событие гарантированно в следующем кадре, и по нему уже скрыть нужные панели.
А можно скрыть их сразу, и для верности потом еще раз.
Ссылка на комментарий
Поделиться на другие сайты

ОК, это все круто, но где этот код вообще находиться ? в каком файле ? Я абсолютно не знаком с архитектурой аллодов, полазил по папкам, никаких конфиг файлов игры не нашел...

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

Он находится. А не находиться.

Этот код находится тут. На форуме. В сообщениях.

Если он будет выполняться в игре - будут происходить соответствующие действия.

Все нужное находится в файле:

\Allods Online\data\Mods\Docs\ModdingDocuments.zip

И на этом форуме.

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

Гость
Ответить в этой теме...

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

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

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

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

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


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

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

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