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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Создание GUI


Гость Solmir

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

After performing some action we may run some script.

I don't see a way to extend hotkey amount, except for one mde by icreator (swapping binds after pressing certain button).

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

I wasn't talking about making new slots to extend the action panel. I meant new buttons -for- the action panel like circles and such.

A recreation of what we already have. I was limited in modifing the actual slots for ActionsMod. With this I could remake the buttons themselves.

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

Oh rly...

So aren't we able to create ourr own key bindings for some addons? Like using hotkeys instead of /slash commands or UI buttons?

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

mainFormat = "<html alignx='right' fontsize='12'><log_dark_white><r name='value'/></log_dark_white></html>"

localFormat = "<body alignx='right' fontsize='12'><tip_gray><r name='value'/></tip_gray></body>"

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

wtVal:SetFormat(ToWS(localFormat))

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

Т.е. при использовании:

Code:
wtVal:SetFormat(ToWS("<html alignx='right' fontsize='22'><log_dark_white><r name='value'/></log_dark_white></html>")) 

wtVal:SetFormat(ToWS("<body alignx='left'><tip_gray><r name='value'/></tip_gray></body>"))

Размер шрифта будет 22, а alignx - left?

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

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

да а кстати - как преобразовать то?

кто-то вроде делал такое?

а все в ручную перевела:

Code:
local ItemQualityColorsBGRD = {

   [ ITEM_QUALITY_JUNK ]    = { r = 106/256, g = 106/256, b = 106/256, a = 1}, -- "0xFF9C9C9C", -- Gray

   [ ITEM_QUALITY_GOODS ]    = { r = 208/256, g = 208/256, b = 208/256, a = 1}, -- "0xFFDDDDDD", -- White

   [ ITEM_QUALITY_COMMON ]    = { r = 0/256, g = 246/256, b = 41/256, a = 1}, --"0xFF00E629", -- Green

   [ ITEM_QUALITY_UNCOMMON ]    = { r = 40/256, g = 132/256, b = 256/256, a = 1}, --"0xFF2384FF", -- Blue

   [ ITEM_QUALITY_RARE ]    = { r = 194/256, g = 68/256, b = 256/256, a = 1}, --"0xFFC244FF", -- Magenta

   [ ITEM_QUALITY_EPIC ]    = { r = 256/256, g = 132/256, b = 0/256, a = 1}, --"0xFFFF8400", -- Orange

   [ ITEM_QUALITY_LEGENDARY ]    = { r = 0/256, g = 256/256, b = 154/256, a = 1}, --"0xFF00FF9A", -- Mint

   [ ITEM_QUALITY_RELIC ]    = { r = 225/256, g = 256/256, b = 68/256, a = 1}, --"0xFFE1FF44", -- Lemon

}

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

Делаю дизайнер GUI и столкнулся с проблемой отсутствия документации.

Где (кроме этой темы) можно что -нибудь узнать?

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

Эм... Спросить? :)

Тут все постигается методом проб и ошибок, курением скриптов стародавних да доков имеющихся.

У айси спроси - я кажется догадался зачем ей нужен был "Фокус".

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

  • 2 месяца спустя...

Вопрос знатокам.

Есть аддон с MainForm в которой находятся все его элементы.

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

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

Теперь вопрос: как обратиться ко второй, не MainForm форме? Ну или какие возможные варианты решения задачи.

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

Использовать еще одну панель как ребенка мейн формы и в нее запихать все элементы аддона?

Цель таких манипуляций какова?

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

Реализовал GUI для AutoMountFeed.

fefeec277c11.jpg

В окне стойла есть пустое пространство между 1 и 2 кнопками. В это пространство хочу разместить кнопку вызова окна.

Чтоб не ставить таймер для определения состояния окна, как это сделано в RuneCalc, хочу сделать кнопку ребенком окна стойла.

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

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

Я могу посоветовать посмотреть как были реализованы аддоны которые скрывались по Alt+Z с помощью системных аддонов через добавление чего-то (мейн формы? мейн панели?) в дети к системному аддону. Описание механизма можно найти с помощью гугла (в поиске вбить нужные слова плюс site:ui9.ru), аддоны работали нормально.

Можно ли MainForm сделать ребенком стойла? Будут ли работать кнопки дочернии мейн форме?

Если да, то:

При скрытии стойла все дочерние виджеты тоже будут исчезать (в т.ч. твоя мейн форма и ее дочерние виджеты).

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

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

Хочу разобраться, как одному аддону задать несколько форм и работать с ними.

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

Quote:
Пробовал создать панель, дочернюю MainForm. Когда делаю ее ребенком стойла, сообщения о нажатии не поступают .

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

Исходя из каких соображений был сделан такой смешной вывод?
Ссылка на комментарий
Поделиться на другие сайты

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

Теперь вопрос: как обратиться ко второй, не MainForm форме? Ну или какие возможные варианты решения задачи.

Столкнулся с такой же проблемой,

Переношу кнопку на виджет другого аддона, и мне перестают приходить сообщения ее нажатии.

Code:

stateMainForm:GetChildChecked("ContextTalents", false):GetChildChecked("Parent", false):AddChild(show_button)


Там кнопку нажать можно уже, но вот сообщения нажатии нет :(
Ссылка на комментарий
Поделиться на другие сайты

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

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

Еще раз про кнопку в одном из окон системных аддонов.

Понадобилось мне сделать такую кнопочку в панельке талантов, казалось бы что проще? Пихнул ее через AddChild и все, ан нет, тогда сообщения о нажатии не поступают в скрипт. Чтобы сообщения поступали в скрипт, добавлять нужно только mainForm, Но вот незадача, помимо кнопки у меня там и другие панельки, и пихать их туда вместе с кнопой ну не вариант(.

Вобщем решил пойти извращенным путем что написал выше, сделал ОТДЕЛЬНЫЙ аддон на кнопку (уже изврат, но что поделаеш), запихнул форму аддона на нужную панельку и .... и тут облом, ну не хочет мейн форма выравниваться по центру или низу, ну никак (хотя работает). Вобщем подсчитал ее расположение вручную, запихал, и вроде успокоился..

Код для желающих во вложении...

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

  • 2 месяца спустя...

взято из описания функции GetPlacementPlain( self ) в АПИ

Положение в АПИ задается массивом с параметрами, тоесть это - составное значение типа table, имеющее следующие поля:

- alignX, alignY: number (enum) -- формат выравния (по левому краю, по правому краю, по ширине)

- posX, posY: number -- отступ от верхнего края

- highPosX, highPosY: number -- отступ от нижнего края

- sizeX, sizeY: number -- размер

- sizingX, sizingY: number -- задание размера по ребенку или родителю

Для полей alignX и alignY заданы константы:

WIDGET_ALIGN_LOW = 0

WIDGET_ALIGN_HIGH = 1

WIDGET_ALIGN_CENTER = 3

WIDGET_ALIGN_BOTH = 4

WIDGET_ALIGN_LOW_ABS = 5

поэтому выражение:

Code:
alignX = WIDGET_ALIGN_CENTER

равнозначно выражению:

Code:
alignX = 3

Для полей sizingX, sizingY:

WIDGET_SIZING_DEFAULT

WIDGET_SIZING_INTERNAL

WIDGET_SIZING_CHILDREN

-- пример

local placement = wtActionButton:GetPlacementPlain()

placement.posX = 137 + (i - 1)*53

placement.posY = 93

wtActionButton:SetPlacementPlain( placement )

Пример описания положения виджета (окна, кнопки):

p = {alignX=1, alignY=0, posX=30, posY=40, highPosX=0, highPosY=0, sizeX=30, sizeY=40 }

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

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

Если это ответ на мой предыдущий пост, то я в курсе как задавать позицию и выравнивание.

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

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

Выравнивание любого виджета идет относительно его родительского виджета.

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

Code:
Выравнивание любого виджета идет относительно его родительского виджета. 

Прааавда? а то я не знал(( Перечитайте предыдущие сообщения чтоб быть в курсе вопроса.

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

ЗЫ Я не стал долго думать над "правильным" решением, уж больно утомительно пере запускать каждый раз клиент на моем калькуляторе.
Ссылка на комментарий
Поделиться на другие сайты

Не нужно перезапускать каждый раз клиент, при загрузке/выгрузке аддона луа файл перечитывается заново. Достаточно внести изменения в код и перезагрузить аддон.

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

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

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

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

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

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

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

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

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

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

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