mimgui // добавление своих кнопок.

biscuitt

Известный
Автор темы
185
14
Версия MoonLoader
.027.0-preview
Есть у меня менюшка на мимгуи и я хочу сделать так, чтобы юзверь сам добавлял туда кнопки и вписывал текст, который будет отправляться в чат (при нажатии на эту кнопку).
У меня примерно были примерные идеи и наработки, но не получилось сделать. Хотелось бы так же увидеть пример в виде кода.
 

RedHolms

Известный
Проверенный
618
360
Lua:
ACTION_PRINT = 1

TableWithButtons = {
    -- Для примера будем считать, что:
    --    ключ - надпись на кнопке
    --    значение - особый тип с нужной нам инфой
    ["Super Text"] = {
        action = ACTION_PRINT,
        text = "Hello, World!"
    }
    -- Добавление как в обычную таблицу
}

----------------------------------------
-- В отрисовке

for k, v in pairs(TableWithButtons) do
    if
    imgui.Button(k, imgui.ImVec2(20,20--[[ Размер кнопки, для примера 20x20 ]]))
    then
        -- Делаем что-то в зависимости от нашего супер-пупер значения
        if not v or not v.action then goto continue end -- Если вообще какой-то другой тип
        if v.action == ACTION_PRINT then
            print(v.text)
        end
    end
::continue:: end
 
  • Нравится
Реакции: biscuitt

SomaGnoma

Известный
442
152
Lua:
ACTION_PRINT = 1

TableWithButtons = {
    -- Для примера будем считать, что:
    --    ключ - надпись на кнопке
    --    значение - особый тип с нужной нам инфой
    ["Super Text"] = {
        action = ACTION_PRINT,
        text = "Hello, World!"
    }
    -- Добавление как в обычную таблицу
}

----------------------------------------
-- В отрисовке

for k, v in pairs(TableWithButtons) do
    if
    imgui.Button(k, imgui.ImVec2(20,20--[[ Размер кнопки, для примера 20x20 ]]))
    then
        -- Делаем что-то в зависимости от нашего супер-пупер значения
        if not v or not v.action then goto continue end -- Если вообще какой-то другой тип
        if v.action == ACTION_PRINT then
            print(v.text)
        end
    end
::continue:: end
Lua:
local sperma = imgui.ImBuffer(256) -- перменная отвеч. за навзание кнопки
local sperma_text = imgui.ImBuffer(256) -- переменная отвеч. за текст при нажатии

local sosi_penis = {} -- Массив где у тя будут все кнопки

-- в имуги

imgui.InputText(u8"Введи название своей супер мега кнопки автор гений его идеи будут актуальны всегда", sperma)
imgui.InputText(u8"Че писать при нажатии на кнопку", sperma_text)
if imgui.Button(u8"Добавить") then
    if sperma.v ~= nil and sperma_text.v ~= nil then -- проверка вписал ли ты ченибудь
    sosi_penis[#sosi_penis + 1] = {sperma.v, sperma_text.v} -- Добавляешь название и текст
    end
end
for i = 1, #sosi_penis do -- цикл шобы перебирать эелементы
    if imgui.Button(sosi_penis[i][1]) then -- если нажата кнопка с нахванием из масива
        sampAddChatMessage(sosi_penis[i][2]) -- выводишь текст
    end
end
можно еще так
 
  • Нравится
Реакции: biscuitt