Неактуально Почему не работает mimgui?

D

deleted-user-532248

Гость
Автор темы
Версия MoonLoader
.027.0-preview

Приветствую помощников, помогите человеку с синдромом дауна разобраться в мимгуи​

говнокод:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local WinState = imgui.new.bool()

local tab = 1 -- в этой переменной будет хранится номер открытой вкладки

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(400, 120), imgui.Cond.Always)
    imgui.Begin(u8'тест', WinState, imgui.WindowFlags.NoResize)
    for numberTab,nameTab in pairs({'Кнопки','Настройки'}) do -- создаём и парсим таблицу с названиями будущих вкладок
        if imgui.Button(u8(nameTab), imgui.ImVec2(80,24)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
    imgui.SetCursorPos(imgui.ImVec2(95, 28)) -- [Для декора] Устанавливаем позицию для чайлда ниже
    if imgui.BeginChild('Name##'..tab, imgui.ImVec2(300, 80), true) then -- [Для декора] Создаём чайлд в который поместим содержимое

        if tab == 1 then -- если значение tab == 1
            -- == Содержимое вкладки №1
            imgui.Text(u8'Кнопки телепортации:')
            if imgui.Button(u8'Гараж полиции ЛС') then
                setCharCoordinates(playerPed, 1567.779296875, -1703.9808349609, 5.890625)
                imgui.SetCursorPos(imgui.ImVec2(30, 30))
            if imgui.Button(u8'Гараж полиции СФ') then
                setCharCoordinates(playerPed, -1580.9488525391, 715.87176513672, -5.2421875)
            end

         wait(-1)
        en     elseif tab == 2 then -- если значение tab == 2
           
            -- == Содержимое вкладки №2
            imgui.Text(u8'Открыта первая вкладка "Настройки"')
            if imgui.Button(u8'Кнопка') then
                sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
            end
        elseif tab == 3 then -- если я цельно выризаю этот кал, скрипт не запускается, так что пусть око твое стерпит
 
        -- == [Основное] Содержимое вкладок закончилось == --
        imgui.EndChild()
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end

Чо тут собственно не работает:​

1) Не работают две кнопки на одном окне. Причем если я уберу одну, скрипт запустится​

2) Если я убираю 3 страницу целиком (делал по гайдам @MLycoris )), то получается так, что скрипт крашится. По этому я придумал гениальную еврейскую затычку на wait(-1)​

Спасибо всем тем, кто мне поможет!​

 
  • Эм
Реакции: recxvery
Решение
я щас агрессивно начну дрочить
1706801472131.png


Исправленная версия, надеюсь будешь учиться самостоятельно ошибки находить
Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local WinState = imgui.new.bool()

local tab = 1 -- в этой переменной будет хранится номер открытой вкладки

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(400, 120), imgui.Cond.Always)
    imgui.Begin(u8'тест', WinState, imgui.WindowFlags.NoResize)
    for numberTab,nameTab in pairs({'Кнопки','Настройки'}) do -- создаём и парсим...

MLycoris

Режим чтения
Проверенный
1,808
1,853
я щас агрессивно начну дрочить
1706801472131.png


Исправленная версия, надеюсь будешь учиться самостоятельно ошибки находить
Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local WinState = imgui.new.bool()

local tab = 1 -- в этой переменной будет хранится номер открытой вкладки

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(400, 120), imgui.Cond.Always)
    imgui.Begin(u8'тест', WinState, imgui.WindowFlags.NoResize)
    for numberTab,nameTab in pairs({'Кнопки','Настройки'}) do -- создаём и парсим таблицу с названиями будущих вкладок
        if imgui.Button(u8(nameTab), imgui.ImVec2(80,24)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
    imgui.SetCursorPos(imgui.ImVec2(95, 28)) -- [Для декора] Устанавливаем позицию для чайлда ниже
    if imgui.BeginChild('Name##'..tab, imgui.ImVec2(300, 80), true) then -- [Для декора] Создаём чайлд в который поместим содержимое
        if tab == 1 then -- если значение tab == 1
            -- == Содержимое вкладки №1
            imgui.Text(u8'Кнопки телепортации:')
            if imgui.Button(u8'Гараж полиции ЛС') then
                setCharCoordinates(playerPed, 1567.779296875, -1703.9808349609, 5.890625)
            end
            if imgui.Button(u8'Гараж полиции СФ') then
                setCharCoordinates(playerPed, -1580.9488525391, 715.87176513672, -5.2421875)
            end
        elseif tab == 2 then -- если значение tab == 2
            -- == Содержимое вкладки №2
            imgui.Text(u8'Открыта первая вкладка "Настройки"')
            if imgui.Button(u8'Кнопка') then
                sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
            end
        elseif tab == 3 then -- если я цельно выризаю этот кал, скрипт не запускается, так что пусть око твое стерпит

        end
        -- == [Основное] Содержимое вкладок закончилось == --
        imgui.EndChild()
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end
 
  • Влюблен
Реакции: deleted-user-532248
D

deleted-user-532248

Гость
Автор темы
я щас агрессивно начну дрочить
Посмотреть вложение 230781

Исправленная версия, надеюсь будешь учиться самостоятельно ошибки находить
Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local WinState = imgui.new.bool()

local tab = 1 -- в этой переменной будет хранится номер открытой вкладки

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(400, 120), imgui.Cond.Always)
    imgui.Begin(u8'тест', WinState, imgui.WindowFlags.NoResize)
    for numberTab,nameTab in pairs({'Кнопки','Настройки'}) do -- создаём и парсим таблицу с названиями будущих вкладок
        if imgui.Button(u8(nameTab), imgui.ImVec2(80,24)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
    imgui.SetCursorPos(imgui.ImVec2(95, 28)) -- [Для декора] Устанавливаем позицию для чайлда ниже
    if imgui.BeginChild('Name##'..tab, imgui.ImVec2(300, 80), true) then -- [Для декора] Создаём чайлд в который поместим содержимое
        if tab == 1 then -- если значение tab == 1
            -- == Содержимое вкладки №1
            imgui.Text(u8'Кнопки телепортации:')
            if imgui.Button(u8'Гараж полиции ЛС') then
                setCharCoordinates(playerPed, 1567.779296875, -1703.9808349609, 5.890625)
            end
            if imgui.Button(u8'Гараж полиции СФ') then
                setCharCoordinates(playerPed, -1580.9488525391, 715.87176513672, -5.2421875)
            end
        elseif tab == 2 then -- если значение tab == 2
            -- == Содержимое вкладки №2
            imgui.Text(u8'Открыта первая вкладка "Настройки"')
            if imgui.Button(u8'Кнопка') then
                sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
            end
        elseif tab == 3 then -- если я цельно выризаю этот кал, скрипт не запускается, так что пусть око твое стерпит

        end
        -- == [Основное] Содержимое вкладок закончилось == --
        imgui.EndChild()
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end
я конченый долбаеб....
я до этого даже додуматься блядь не захотел...........
ed скорее всего случайно высрал когда копировал
 
  • Грустно
Реакции: MLycoris