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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Anfet

Пользователь
  • Постов

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

  • Посещение

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

  1. Попробую ответить по порядку.

    - Вертикальной распределение будет чуть позже.

    - Размер текста контролируется в файле Widgets\ButtonFormatNormal.txt параметр fontsize

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

    - Названия. Если вы пишете полное название, например, Сильное зелье магической силы, то надо писать как есть. Но если написать просто зелье магической силы, то аддон подхватит как Астральное, так и Сильное, так и Обычное.

  2. Что касается клавиатурных реакций... Я могу попробовать, но это нужно самому настраивать бинды. Это создание файла прописывание биндов.

    Оно не в папке аддона, поэтому это все делает сам юзер (

    Поэтому и не добавил.

  3. Открываете settings.lua и вписываете все вещи что душе угодно.

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

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

  4. Вопросики такого плана.

    1. Представим что я хочу добавить какой-то свой произвольный параметр, скажем, в кнопку. Как этого достигнуть? Как получить потом этот параметр?

    2. Если кнопку сделать disabled, ей нужно давать отдельную текстуру или можно как-то оттенить то серого варианта?

  5. Увидел. Спасибо.

    Бомбардирую просто вопросами.

    Вот еще один.

    Если у меня есть майн панель в которую нужно проставить еще панели где будет находится текстура + текст.

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

    План такой.

    Главная панель ---------------------

    Текстура - текст

    Текстура - текст

    ---

    конец панели-------------

    В связи с этим 2 вопроса.

    1) как создавать динамически списки виджетов

    2) как рисовать текстуру из игры?

    Спасибо.

  6. Такого нет.

    Но есть вариант выкидывать серые вещи.

    В теории развитие аддона должно быть примерно таким.

    Зарегистрировать евент EVENT_AVATAR_ITEM_TAKEN.

    В нем пройти по всему инвентарю и проделать следующее

    avatar.GetInventoryItemId( от 0 до размера )

    если не nil то берем тип вещи avatar.GetItemInfo( itemId )

    если оно ITEM_QUALITY_JUNK

    то удаляем avatar.InventoryDestroyItem( index )

    Вообщем всё. У тебя в теории никогда не будет серый вещей в инвентаре.

  7. Вопрос.

    Из-за чего может не ставиться текст кнопки.

    Кнопка взята из сэмплов. В игре видна, драгается, отвечает на клики, но попытка выставить хоть какой-то caption на него результатов не принесли.

    Содержимое xbd

    <?xml version="1.0" encoding="UTF-8" ?>

    <WidgetButton>

    <Name>wtFocus</Name>

    <Priority>9000</Priority>

    <Placement>

    <X>

    <Align>WIDGET_ALIGN_LOW</Align>

    <Size>105</Size>

    </X>

    <Y>

    <Align>WIDGET_ALIGN_LOW</Align>

    <Size>30</Size>

    </Y>

    </Placement>

    <IgnoreDblClick>true</IgnoreDblClick>

    <TextTag>button_label</TextTag>

    <Variants>

    <Item>

    <TextFileRef href="" />

    <LayerHighlight href="ButtonRegularHighlighted.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />

    <PushedOffset x="-2" y="2" />

    <StateNormal>

    <LayerMain href="ButtonRegularNormal.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />

    <FormatFileRef href="ButtonFormatNormal.txt" />

    </StateNormal>

    <StatePushed>

    <LayerMain href="ButtonRegularPressed.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />

    </StatePushed>

    <StateDisabled>

    <LayerMain href="ButtonRegularDisabled.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />

    <FormatFileRef href="ButtonFormatDisabled.txt" />

    </StateDisabled>

    <ReactionOnUp>true</ReactionOnUp>

    <Reaction>FocusReaction</Reaction>

    </Item>

    </Variants>

    <TextStyle>

    <Align>ALIGNY_MIDDLE</Align>

    </TextStyle>

    </WidgetButton>

    ButtonNormalFormat.txt

    <button fontsize="14"><r name="button_label"/></button>

    Вот такой код

    wtFocus:SetVal("button_label", userMods.ToWString("-") )

    ничего не дает. Кнопка так и остается пустой.

    Может есть какая-то функция update которую я пропустил?

  8. Да.

    Info: addon Test: Initialization sample

    Error: addon Test:

    Error: addon Test:

    Error: addon Test: func: ?, ?, line: -1, defined: C, line: -1, [C]

    Error: addon Test: func: Init, global, line: 6, defined: Lua, line: 4, [string "Mods/Addons/Test/Test.lua"]

    Error: addon Test: func: ?, ?, line: 9, defined: main, line: 0, [string "Mods/Addons/Test/Test.lua"]

    Error: addon Test: Attempt to read from undeclared global variable: LogToChat

    Error: addon Test: Error while running the chunk

    Error: addon Test: [string "Mods/Addons/Test/Test.lua"]:6: attempt to call global `LogToChat' (a nil value)

    Error: addon Test: func: LogToChat, global, line: -1, defined: C, line: -1, [C]

    Error: addon Test: func: Init, global, line: 6, defined: Lua, line: 4, [string "Mods/Addons/Test/Test.lua"]

    Error: addon Test: func: ?, ?, line: 9, defined: main, line: 0, [string "Mods/Addons/Test/Test.lua"]

    Error: addon Test: Can't execute script for addon: Mods/Addons/Test/AddonDesc.(UIAddon).xdb

    Если выставить просто функцию - то выходит такие ошибки.

  9. Добрый день.

    Задался вопросом написать хоть какой-то аддончик.

    И конечно же сразу же наткнулся на проблему инициализации объектов.

    Взял исходный код icreator для надписи сообщения в свой чат.

    --------------------------------------------------------------------------------------

    Global( "Chat", {} )

    local wtChat = nil

    local chatRows = 0 --- for clear buffer after show messages

    function Chat:LogToChat(message, color, fontSize)

    if not wtChat and not errMess.Chat then

    ---- если окно еще не искали и ошибки при этом не было. а если уже ошибка была то не искать

    --- найдем окно чата

    --- Chat..Chat

    local w

    w = stateMainForm:GetChildUnchecked("Chat", false)

    if not w then

    --- главня форма не найдена - найден по ребенку

    w = stateMainForm:GetChildUnchecked("Chat", true)

    else

    w = w:GetChildUnchecked("Chat", true)

    end

    wtChat = w

    end

    if not wtChat or not wtChat.PushFrontValuedText then

    if not errMess.Chat then

    errMess.Chat = "can't find Chat window"

    LogError(errMess.Chat)

    end

    return

    end

    local valuedText = common.CreateValuedText()

    --- fontname=\"AllodsWest\"

    local format = "<body alignx='left' fontname='AllodsSystem' fontsize='"..(fontSize or 14)

    format = format.."' shadow='1' ><rs class='color'><r name='text'/></rs></body>"

    valuedText:SetFormat(userMods.ToWString(format))

    if color then

    valuedText:SetClassVal( "color", color )

    else

    valuedText:SetClassVal( "color", "LogColorYellow" )

    end

    if not common.IsWString( message ) then message = userMods.ToWString(message) end

    ---message = ToWS(chatRows.. ":".. FromWS(message))

    valuedText:SetVal( "text", message )

    ---wtChat:PopBack() --- ++

    chatRows = chatRows + 1

    wtChat:PushFrontValuedText( valuedText )

    ---wtChat:PushFrontRawText( message ) --- текст не видно ((

    end

    --- call by "EVENT_SECOND_TIMER" - for clear messages from chat

    function Chat:ClearChat( size )

    for i=1, size or math.ceil( chatRows / 30 ) + 1 do

    if chatRows < 1 then break end

    chatRows = chatRows - 1

    wtChat:PopBack()

    end

    end

    ------------------------------------------------------------------------------------

    Вроде как тут всё понятно.

    Теперь сам test.lua

    --------------------------------------------------------------------------------

    -- INITIALIZATION

    --------------------------------------------------------------------------------

    function Init()

    LogInfo( "Initialization sample" )

    Chat:LogToChat({ text = "Привки ВСЕМ!", color = "LogColorGreen" })

    end

    --------------------------------------------------------------------------------

    Init()

    --------------------------------------------------------------------------------

    Тоже всё ясно.

    В AddonDesc следующие подключения:

    <Item href="Chat.lua" />

    <Item href="Test.lua" />

    Однако в логах выводится ошибка что Chat nil.

    Я честно пытался искать как его заинициализировать, но тщетно. Тот же LibDND тоже используется одну глобу и после легко к ней обращается. Без какой-либо инициализации.

    Если просто подключить функиции, то в логе идёт ошибка декларации LogToChat

    Error: addon Test: Attempt to read from undeclared global variable: LogToChat

    Подскажите что я не догоняю? Как правильно подключать внешние Lua файлы чтобы исходник видел внутренние функции.

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

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

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