Добавлен , опубликован
Интерфейс
Тип:
Прочее
Выпуск Warcraft:
classic
раскрыть
toastyTable = {
    [1] = { "toasty", "toasty" },
    [2] = { "hatehorse", "hatehorse" },
    [3] = { "spypeon", "Units\\Orc\\Peon\\PeonWarcry1" },
    [4] = { "mush", "nya" }
}
function CreateToasty()
    local r = GetRandomInt(1, #toastyTable)
    local texture, sound = GetDataFromTable(toastyTable, r)
    CreateAndMoveToastyFrame(texture, sound)
end
function CreateAndMoveToastyFrame(texture, sound)
    local x, y = 1, 0.1
    local toasty = BlzCreateFrameByType('BACKDROP', 'FaceButtonIcon', BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), '', 0)
    BlzFrameSetParent(toasty, BlzGetFrameByName("ConsoleUIBackdrop", 0))
    BlzFrameSetTexture(toasty, texture, 0, true)
    BlzFrameSetSize(toasty, 0.1, 0.1)
    BlzFrameSetAbsPoint(toasty, FRAMEPOINT_TOP, x, y)
    PlaySound(sound)
    --print("запушен референс")

    TimerStart(CreateTimer(), 1 / 32, true, function()
        x = x - 0.02
        if x <= 0.88 then
            --print("остановка")
            DestroyTimer(GetExpiredTimer())
            local showDuration = 0.5
            TimerStart(CreateTimer(), showDuration, false, function()
                Left2Right(toasty, x, y)
                --print("реверс")
            end)
        else
            BlzFrameSetAbsPoint(toasty, FRAMEPOINT_TOP, x, y)
        end
    end)
end

function Left2Right(frame, x, y)
    TimerStart(CreateTimer(), 1 / 32, true, function()
        x = x + 0.02
        if x >= 1 then
            --print("остановка")
            DestroyTimer(GetExpiredTimer())
            --print("Уничтожить фрейм")
        else
            BlzFrameSetAbsPoint(frame, FRAMEPOINT_TOP, x, y)
        end
    end)
end

function GetDataFromTable(table, index)
    if not table[index] then
        print("элемент в таблице не существует")
    else
        return table[index][1],table[index][2] 
        --table.unpack(table[index])
    end
end
Вызывать по Esc, открывается случайный
Установка зависит от типа элементов интерфейса:
  • иконки - статья Жутко неправильный импорт;
  • стандартные пути иконок:
    • тип иконки BTN = war3mapImported\BTNAdvancedMoonGlaive.blp → ReplaceableTextures\CommandButtons\BTNAdvancedMoonGlaive.blp
    • тип иконки DISBTN = war3mapImported\DISBTNAdvancedMoonGlaive.blp → ReplaceableTextures\CommandButtonsDisabled\DISBTNAdvancedMoonGlaive.blp
    • тип иконки PASBTN = war3mapImported\PASBTNAdvancedMoonGlaive.blp → ReplaceableTextures\PassiveButtons\PASBTNAdvancedMoonGlaive.blp
    • тип иконки DISPASBTN = war3mapImported\DISPASBTNAdvancedMoonGlaive.blp → ReplaceableTextures\CommandButtonsDisabled\DISPASBTNAdvancedMoonGlaive.blp
В общем случае можно прочитать статью Импорт файлов.
`
ОЖИДАНИЕ РЕКЛАМЫ...
9 комментариев удалено
24
Мне где-то попадалась на глаза инфа, что фреймы, якобы, могут существовать только в поле экрана 4:3. Но эта штука появляется в самом углу моего фулл хд. В чём подвох?
33
В чём подвох?
в смене родителя
BlzFrameSetParent(FrameHandle, BlzGetFrameByName("ConsoleUIBackdrop", 0))
24
Как с поддержкой актуальных 4:3 мониторов обстоит вопрос?
33
Как с поддержкой актуальных 4:3 мониторов обстоит вопрос?
тут недавно выяснилось, что игроки 1.26 имеют 4к мониторы, и разблокируют фпс для повышения плавности, так что придётся добавлять поддержку широкоформатных мониторов
Чтобы оставить комментарий, пожалуйста, войдите на сайт.