Jump to content
Alloder.pro  about Allods with love 😱
Search In
  • More options...
Find results that contain...
Find results in...

Servers monitoring and the Addons Editor

We present you two legends. All dreams come true.

Servers monitoring The Addons Editor

Digest April

We talk about what was done and updated in the past month. We help keep abreast of events.

Read more

Game tooltips

Tooltips provide a way for 3rd party fansites and extensions to display detailed information on mouseover.

Read more

Помогите с CreateWidgetByDesc


GRuSHa
 Share

Recommended Posts

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

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

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

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

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

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

Link to comment
Share on other sites

Тебе необходимо иметь файл, описывающий виджет 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;
  • Upvote 1
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

а чтобы добавить элемент в контейнер через 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;
Edited by GRuSHa
Link to comment
Share on other sites

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

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

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

Код

listPanel[i] = wtContainer:GetElementCount()

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

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

  • Upvote 1
Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use