[Mimgui] подсказка при наведении мыши

Dewize

Известный
Автор темы
447
93
Версия MoonLoader
.027.0-preview
Есть у кого красивые функции, чтоб глаза не умирали от кринжа и имело кд появления, что то такого типо
 
Решение
D

а лол я хз, когда 3 в ряд ставишь подсказок. То текст чёрный, а по отдельности работает

аф:
--===== [ 3 кликабельнные иконки ] =====--
             imgui.SetCursorPos(imgui.ImVec2(45, 195)) -- Ставим положение для иконки скрипта
             if imgui.InvisButton(fa('ARROWS_ROTATE'), imgui.ImVec2(30, 30)) then -- Создаём невидемую кнопку в которой будет иконка "ARROWS_ROTATE" и далаем её рзмер 30, 30.
                 lua_thread.create(function() -- Фигня чтоб работала задержка
                    sampAddChatMessage(tag.. 'Начат процесс перезагрузки скрипта!', -1) -- Для красоты
                    window_main[0] = false -- Для красоты
                    wait(2100) -- Красота...
D

deleted-user-139653

Гость
Есть у кого красивые функции, чтоб глаза не умирали от кринжа и имело кд появления, что то такого типо
ты про это?
1688587216533.png

Lua:
function imgui.TextQuestion(text)
    imgui.TextDisabled("(?)")
    if imgui.IsItemHovered() then
        imgui.BeginTooltip()
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.EndTooltip()
    end
end

--где-то в mimgui
imgui.TextQuestion("Hello, World")
 

Dewize

Известный
Автор темы
447
93
ты про это?
Посмотреть вложение 206960
Lua:
function imgui.TextQuestion(text)
    imgui.TextDisabled("(?)")
    if imgui.IsItemHovered() then
        imgui.BeginTooltip()
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.EndTooltip()
    end
end

--где-то в mimgui
imgui.TextQuestion("Hello, World")
Да, ток как сделать, чтоб оно плавно появлялось через определённое время
 
D

deleted-user-139653

Гость
Да, ток как сделать, чтоб оно плавно появлялось через определённое время
Lua:
local tooltipAlpha = 0.0
local tooltipFadeSpeed = 0.02

function imgui.TextQuestion(text)
    imgui.TextDisabled('(?)')
    if imgui.IsItemHovered() then
        if tooltipAlpha < 1.0 then
            tooltipAlpha = math.min(tooltipAlpha + tooltipFadeSpeed, 1.0)
        end
    else
        if tooltipAlpha > 0.0 then
            tooltipAlpha = math.max(tooltipAlpha - tooltipFadeSpeed, 0.0)
        end
    end

    if tooltipAlpha > 0.0 then
        imgui.BeginTooltip()
        imgui.PushStyleColor(imgui.Col.Text, imgui.ImVec4(1.0, 1.0, 1.0, tooltipAlpha))
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.PopStyleColor()
        imgui.EndTooltip()
    end
end
 

Dewize

Известный
Автор темы
447
93
Lua:
local tooltipAlpha = 0.0
local tooltipFadeSpeed = 0.02

function imgui.TextQuestion(text)
    imgui.TextDisabled('(?)')
    if imgui.IsItemHovered() then
        if tooltipAlpha < 1.0 then
            tooltipAlpha = math.min(tooltipAlpha + tooltipFadeSpeed, 1.0)
        end
    else
        if tooltipAlpha > 0.0 then
            tooltipAlpha = math.max(tooltipAlpha - tooltipFadeSpeed, 0.0)
        end
    end

    if tooltipAlpha > 0.0 then
        imgui.BeginTooltip()
        imgui.PushStyleColor(imgui.Col.Text, imgui.ImVec4(1.0, 1.0, 1.0, tooltipAlpha))
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.PopStyleColor()
        imgui.EndTooltip()
    end
end
1) Текст тёмный 2) Пояснительная бригада нужна
 
D

deleted-user-139653

Гость
1) Текст тёмный 2) Пояснительная бригада нужна
tooltipAlpha - проверка текущей прозрачности
tooltipFadeSpeed - скорость появления подсказки
и далее оно меняет плавно прозрачность

у меня все норм:
 

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,992
2,189
 

Dewize

Известный
Автор темы
447
93
01.28.59.750.jpg


это же для имгуи а не мимгуи
 

Dewize

Известный
Автор темы
447
93

а лол я хз, когда 3 в ряд ставишь подсказок. То текст чёрный, а по отдельности работает

аф:
--===== [ 3 кликабельнные иконки ] =====--
             imgui.SetCursorPos(imgui.ImVec2(45, 195)) -- Ставим положение для иконки скрипта
             if imgui.InvisButton(fa('ARROWS_ROTATE'), imgui.ImVec2(30, 30)) then -- Создаём невидемую кнопку в которой будет иконка "ARROWS_ROTATE" и далаем её рзмер 30, 30.
                 lua_thread.create(function() -- Фигня чтоб работала задержка
                    sampAddChatMessage(tag.. 'Начат процесс перезагрузки скрипта!', -1) -- Для красоты
                    window_main[0] = false -- Для красоты
                    wait(2100) -- Красота
                    thisScript():reload() -- Факт
                end)  
            end
            imgui.SameLine() -- Оставляем на линии
            imgui.TextHint(u8'Перезагрузить скрипт.') -- Создаём подсказку

            imgui.SetCursorPosX(85) -- Меняем положение для другой иконки
            if imgui.InvisButton(fa('DOWNLOAD'), imgui.ImVec2(30, 30)) then -- Аналогичнно создаём невидемую кнопку с иконкой ток у же "DOWNLOAD"
                sampAddChatMessage('Проверка наличия обновления...') --СДЕЛАТЬ
            end
            imgui.SameLine() -- Оставляем на лиции
            imgui.TextHint(u8'Установить обновленный скрипт.') -- Снова создаём подсказку

            imgui.SetCursorPosX(130) -- Меняем положение для последней иконки
             if imgui.InvisButton(fa('USER'), imgui.ImVec2(30, 30)) then -- То же самое ток "user"
                    os.execute("start https://vk.com/афыаы")    -- Открывает мою страницу вк
            end
            imgui.TextHint(u8'Связь с автором.') -- Подсказка
              ------------------------------

@chapo , брат где ты когда нужен <3
 
Последнее редактирование:
  • Нравится
Реакции: deleted-user-139653
D

deleted-user-139653

Гость

а лол я хз, когда 3 в ряд ставишь подсказок. То текст чёрный, а по отдельности работает

аф:
--===== [ 3 кликабельнные иконки ] =====--
             imgui.SetCursorPos(imgui.ImVec2(45, 195)) -- Ставим положение для иконки скрипта
             if imgui.InvisButton(fa('ARROWS_ROTATE'), imgui.ImVec2(30, 30)) then -- Создаём невидемую кнопку в которой будет иконка "ARROWS_ROTATE" и далаем её рзмер 30, 30.
                 lua_thread.create(function() -- Фигня чтоб работала задержка
                    sampAddChatMessage(tag.. 'Начат процесс перезагрузки скрипта!', -1) -- Для красоты
                    window_main[0] = false -- Для красоты
                    wait(2100) -- Красота
                    thisScript():reload() -- Факт
                end)
            end
            imgui.SameLine() -- Оставляем на линии
            imgui.TextHint(u8'Перезагрузить скрипт.') -- Создаём подсказку

            imgui.SetCursorPosX(85) -- Меняем положение для другой иконки
            if imgui.InvisButton(fa('DOWNLOAD'), imgui.ImVec2(30, 30)) then -- Аналогичнно создаём невидемую кнопку с иконкой ток у же "DOWNLOAD"
                sampAddChatMessage('Проверка наличия обновления...') --СДЕЛАТЬ
            end
            imgui.SameLine() -- Оставляем на лиции
            imgui.TextHint(u8'Установить обновленный скрипт.') -- Снова создаём подсказку

            imgui.SetCursorPosX(130) -- Меняем положение для последней иконки
             if imgui.InvisButton(fa('USER'), imgui.ImVec2(30, 30)) then -- То же самое ток "user"
                    os.execute("start https://vk.com/афыаы")    -- Открывает мою страницу вк
            end
            imgui.TextHint(u8'Связь с автором.') -- Подсказка
              ------------------------------

@chapo , брат где ты когда нужен <3
Lua:
local tooltipFadeSpeed = 0.02
local tooltipStates = {}

function imgui.TextQuestion(id, text)
    tooltipStates[id] = tooltipStates[id] or { alpha = 0.0 }
    local tooltipState = tooltipStates[id]

    imgui.TextDisabled("(?)")
    if imgui.IsItemHovered() then
        if tooltipState.alpha < 1.0 then
            tooltipState.alpha = math.min(tooltipState.alpha + tooltipFadeSpeed, 1.0)
        end
    else
        if tooltipState.alpha > 0.0 then
            tooltipState.alpha = math.max(tooltipState.alpha - tooltipFadeSpeed, 0.0)
        end
    end

    if tooltipState.alpha > 0.0 then
        imgui.BeginTooltip()
        imgui.PushStyleColor(imgui.Col.Text, imgui.ImVec4(1.0, 1.0, 1.0, tooltipState.alpha))
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.PopStyleColor()
        imgui.EndTooltip()
    end
end

--mimgui
imgui.TextQuestion("#1", "Hello, World")
imgui.TextQuestion("#2", "Hello, Everybody")
imgui.TextQuestion("#3", "Hello, Dewize")

терь снова объясни по поводу переменных
Просто сделал таблицу для хранения состояния подсказок. Затем создается состояние для каждого id подсказки
imgui.TextQuestion("#1", "Любой текст") -- #1, это ключ, т.е наш ид, к которому будет потом обращаться, ключ(id) можешь назвать как тебе удобно.
 
Последнее редактирование модератором:
  • Нравится
Реакции: Dewize