Нужна помощь с Имгуй

Fabric

Новичок
Автор темы
10
2
Нужна помощь что не так написал, не могу понять почему не робит. при заходе крашит.
Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local rkeys = require 'rkeys'
local imadd = require 'imgui_addons'

local togglebutton = imgui.ImBool(false) 

local main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()
  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
    imgui.Begin('My window', main_window_state)
    imgui.Text('Hello world')
    if imadd.ToggleButton("Включение/выключение", togglebutton) then 
    end
    imgui.End()
  end
end

function main()
  while true do
    wait(0)
    if wasKeyPressed(key.VK_X) then
        main_window_state.v = not main_window_state.v
    end
    imgui.Process = main_window_state.v
  end
end

Я либо слишком тупой
либо просто тупой
 
Решение

Fabric

Новичок
Автор темы
10
2
Думаю, что проблема в 15й строке, у тебя эта кнопка выполняет действие чекбокса?
Да.

Если ставить обычную кнопку все нормально работает.

Хочу чтоб было тип по красоте) но не робит в чем может быть проблема?)
 
  • Нравится
Реакции: cord

YarikVL

Известный
Проверенный
4,751
1,814
Да.

Если ставить обычную кнопку все нормально работает.

Хочу чтоб было тип по красоте) но не робит в чем может быть проблема?)
А ты в правильный путь закинул библиотеку: Файл imgui_addons.lua поместить в папку moonloader/lib ?
Ошибок в мунлоге нету об краше скрипта например?
 
  • Нравится
Реакции: Fabric

sosnov

Известный
329
115
Да.

Если ставить обычную кнопку все нормально работает.

Хочу чтоб было тип по красоте) но не робит в чем может быть проблема?)
Так кнопка у тебя никакой функции не выполняет,попробуй что то туда вставить,джетпак к примеру...
 
  • Нравится
Реакции: Fabric

Fabric

Новичок
Автор темы
10
2
А ты в правильный путь закинул библиотеку: Файл imgui_addons.lua поместить в папку moonloader/lib ?
Ошибок в мунлоге нету об краше скрипта например?
Библиотеки установлены верно, в мунлоаде ошибок нет, когда происходит загрузка скрипта игра крашит.

Так кнопка у тебя никакой функции не выполняет,попробуй что то туда вставить,джетпак к примеру...
Это вроде не имеет значение, но я задал алгоритм, и он все-равно не работает.

Ещё прикол фаил тестовый imgui addons работает в полном порядке, а мой франкиштейн нет)
 
Последнее редактирование:

sosnov

Известный
329
115
Lua:
local imgui = require 'mimgui'
local ffi = require 'ffi'
local vkeys = require 'vkeys'
local encoding = require 'encoding' --[[Подключаем библиотеку для чтения/записи данных с кодировкой,
                                        отличающейся от кодировки нашего скрипта.]]

encoding.default = 'CP1251'         --[[Указываем кодировку по умолчанию. Обратите внимание,
                                        что она должна совпадать с кодировкой вашего скрипта.]]
local u8 = encoding.UTF8            -- И создаём короткий псевдоним для кодировщика UTF-8

local wm = require 'windows.message'
local new, str, sizeof = imgui.new, ffi.string, ffi.sizeof

local renderWindow, freezePlayer, removeCursor = new.bool(), new.bool(), new.bool()
local inputField = new.char[256](--[[Здесь также следует кодировать информацию!]])
local sizeX, sizeY = getScreenResolution()

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)

local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(220, 200), imgui.Cond.FirstUseEver)
        imgui.Begin("Main Window", renderWindow)
        imgui.Text("Hello")
        imgui.Text(string.format("Current render mode: %s", renderWindow[0]))
        if imgui.InputText(u8"Привет", inputField, sizeof(inputField)) then
            -- Кодируем название инпута
            print(u8:decode(str(inputField))) -- Декодируем в Windows-1251
        end
        if imgui.Button(u8"Очистить поле") then -- Кодируем название кнопки
            imgui.StrCopy(inputField, '')
        end
        if imgui.Checkbox(u8'Заморозить игрока', freezePlayer) then -- Кодируем название кнопки
            player.LockPlayer = freezePlayer[0]
        end
        if imgui.Checkbox(u8'Скрыть курсор', removeCursor) then -- Кодируем название кнопки
            player.HideCursor = removeCursor[0]
        end
        if player.HideCursor then
            imgui.Text(u8'Курсор скрыт') -- Кодируем выводимый текст
        end
        imgui.End()
    end
)

function main()
    addEventHandler('onWindowMessage', function(msg, wparam, lparam)
        if msg == wm.WM_KEYDOWN or msg == wm.WM_SYSKEYDOWN then
            if wparam == vkeys.VK_X then
                renderWindow[0] = not renderWindow[0]
            end
        end
    end)
    wait(-1)
end

Попробуй работать с этим,вырежи ненужные функции, если не поможет, хз
 
  • Эм
Реакции: YarikVL

accord-

Потрачен
437
79
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.