диалоговое окно в imgui

sat0ry

Известный
Автор темы
1,087
298
Версия MoonLoader
.026-beta
Здарова, уважаемый пользователи BlastHack! Как возможно реализовать серверный диалог в imgui?
Заранее очень сильно благодарю!!!
 

RedHolms

Известный
Проверенный
622
369
Lua:
sampev = require 'samp.events'
imgui = require 'mimgui' -- Либо imgui, зависит от твоих DARK FANTASIES

require 'sampfuncs' -- Для стилей диалогов

LastDialogInfo = {
    id = 0,
    style = 0,
    title = '',
    button1 = '',
    button2 = '',
    text = '',
}

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    LastDialogInfo.id = dialogId
    LastDialogInfo.style = style
    LastDialogInfo.title = title
    LastDialogInfo.button1 = button1
    LastDialogInfo.button2 = button2
    LastDialogInfo.text = text
    f_MainFrame.enabled[0] = true
    return false -- Что бы не появился оригинальный диалог
end

f_MainFrame = {}
f_MainFrame.enabled = imgui.new.bool()
f_MainFrame.frame = imgui.OnDraw(
    function() return f_MainFrame.enabled[0] end,
    function(player)
        imgui.Begin(LastDialogInfo.title, f_MainFrame.enabled)
            -- рисуешь диалог в произвольном стиле, в зависимости от стиля исходного диалога
            if LastDialogInfo.style == DIALOG_STYLE_MSGBOX then
                imgui.Text(LastDialogInfo.text)
            elseif LastDialogInfo.style == --[[ Другой стиль ]] then
                -- другая отрисовка
            end
        imgui.End()
    end
)
 
  • Влюблен
Реакции: SomaGnoma