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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Помогите с CreateWidgetByDesc


GRuSHa

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

Доброго времени суток.

Растолкуйте плиз как работать с CreateWidgetByDesc( self, widgetDesc )

Как получить widgetDesc?

Нужно добавлять мобов в Container, создал файл Container.xdb, моб это Panel. Эту панель делать дочерней какому элементу? И как получить её в переменную  widgetDesc, как потом управлять ею?

Вообщем если можно простенький пример выложите.

P.S. извините что так много вопросов от меня.

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

Тебе необходимо иметь файл, описывающий виджет wtPanel - для мобов

Тебе необходимо иметь файл, описывающий виджет wtContainer - для списка мобов.

 

А дальше примерно такой код:

local wtPanel = nil;
local wtContainer = nil;
local descPanel = nil;
local listPanel = {};

function Init()
    wtContainer = mainForm:GetChildChecked("pContainer", true);
    wtPanel = mainForm:GetChildChecked("pMob", true);
    descPanel = wtPanel:GetWidgetDesc();

    for i = 1, 24 do
        local newPanel = mainForm:CreateWidgetByDesc(descPanel);
        local pl = newPanel:GetPlacementPlain();

        pl.sizeX = 50;
        pl.sizeY = 20;
        pl.posX = 0;
        pl.posY = (i - 1) * 20;

        newPanel:SetPlacementPlain(pl);
        wtContainer:AddChild(newPanel);
        listPanel[i] = newPanel;
    end;
end;
Ссылка на комментарий
Поделиться на другие сайты

Тут есть несколько различных способов, встречал и без AddChild (wtContainer:PushFront( wtPanel )) и с DestroyWidget, когда wtPanel удаляют, оставляя только newPanel

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

Ну если это действительно контейнер, то там да, через Push и Pop всё делать надо. А если просто в панельку засунуть, то AddChild

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

да именно контейнер, после смерти моба виджет панели этого моба удаляется, я сделаю помощник в рейдах и мне нужен интерфейс примерно как в баф анонсе или Healer, как отслеживать бафы я уже знаю, как добавлять виджеты в контейнер додумал уже сам, а как реализуется чтобы ХП моба были фоном виджета пока не совсем помял, думал поставить ещё панель в панель и установить красный или жёлтый фон на неё уменьшать размер панельки по количеству хп, подскажите как лучше сделать

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

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

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

а чтобы добавить элемент в контейнер через PushBack( self, widget ) нужно писать 

for i = 1, 24 do
local newPanel = mainForm:CreateWidgetByDesc(descPanel);
  
wtContainer:PushBack(newPanel);
listPanel[i] = newPanel;
end;

или нужно так?

for i = 1, 24 do

wtContainer:PushBack(descPanel);
listPanel[i] = wtContainer:GetElementCount()
end;
Изменено пользователем GRuSHa
Ссылка на комментарий
Поделиться на другие сайты

descPanel это описание виджета или сам виджет?

Если виджет, то чтобы создать виджет по описанию видлжета надо сперва из виджета получить описание.

local newPanel = mainForm:CreateWidgetByDesc(descPanel:GetWidgetDesc())

Код

listPanel[i] = wtContainer:GetElementCount()

Присвоит listPanel числовое значение количества элементов в wtContainer, так что это определенно неправильный код.

Первый вариант (с правкой) должен работать нормально.

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

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

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

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

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

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

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

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

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

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