Imgui проблема с курсором | Lua

Roman Ushnurcev

Участник
Автор темы
34
2
Вообщем при запуске скрипта прописал imgui.Process = true, т.к мне нужно, что бы эта панель
1600110282456.png
запускалась с начала работы скрипта. Но почему то появляется курсор (курсора быть не должно вообще), курсор должен запускаться только при открытии главного меню.
И да, курсор исчезает если открыть чат, таб, консоль и после чего закрыть.

Lua:
require "lib.moonloader"
local imgui = require "imgui"

local main_windows_state = imgui.ImBool(false)
local panel_windows_state = imgui.ImBool(true)


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    imgui.Process = true

    while true do wait(0)
        if isKeyJustPressed(VK_F2) then
            if main_windows_state.v then
                main_windows_state.v = false
            else
                main_windows_state.v = true
            end
        end
    end
end

function imgui.OnDrawFrame()

    if not main_windows_state.v and not panel_windows_state.v then
        imgui.Process = false
    end

    if not main_windows_state.v then
        imgui.ShowCursor = false
    else
        imgui.ShowCursor = true
    end

    if main_windows_state.v then
        imgui.Begin("Main",nil,imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  
        imgui.Text("Hello main")
  
        imgui.End()
    end

    if panel_windows_state.v then
        imgui.Begin("Panel",nil,imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  
        imgui.Text("Hello panel")
  
        imgui.End()
    end

end
Если кто-то знает как это исправить, будьте добры поделитесь этой информацией.
 

Вложения

  • 1600110252333.png
    1600110252333.png
    160.9 KB · Просмотры: 199
Решение
Вообщем при запуске скрипта прописал imgui.Process = true, т.к мне нужно, что бы эта панель
запускалась с начала работы скрипта. Но почему то появляется курсор (курсора быть не должно вообще), курсор должен запускаться только при открытии главного меню.
И да, курсор исчезает если открыть чат, таб, консоль и после чего закрыть.

Lua:
require "lib.moonloader"
local imgui = require "imgui"

local main_windows_state = imgui.ImBool(false)
local panel_windows_state = imgui.ImBool(true)


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    imgui.Process = true

    while true do wait(0)
        if isKeyJustPressed(VK_F2) then...

Double Tap Inside

Известный
Проверенный
1,916
1,255
Вообщем при запуске скрипта прописал imgui.Process = true, т.к мне нужно, что бы эта панель
запускалась с начала работы скрипта. Но почему то появляется курсор (курсора быть не должно вообще), курсор должен запускаться только при открытии главного меню.
И да, курсор исчезает если открыть чат, таб, консоль и после чего закрыть.

Lua:
require "lib.moonloader"
local imgui = require "imgui"

local main_windows_state = imgui.ImBool(false)
local panel_windows_state = imgui.ImBool(true)


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    imgui.Process = true

    while true do wait(0)
        if isKeyJustPressed(VK_F2) then
            if main_windows_state.v then
                main_windows_state.v = false
            else
                main_windows_state.v = true
            end
        end
    end
end

function imgui.OnDrawFrame()

    if not main_windows_state.v and not panel_windows_state.v then
        imgui.Process = false
    end

    if not main_windows_state.v then
        imgui.ShowCursor = false
    else
        imgui.ShowCursor = true
    end

    if main_windows_state.v then
        imgui.Begin("Main",nil,imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)

        imgui.Text("Hello main")

        imgui.End()
    end

    if panel_windows_state.v then
        imgui.Begin("Panel",nil,imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)

        imgui.Text("Hello panel")

        imgui.End()
    end

end
Если кто-то знает как это исправить, будьте добры поделитесь этой информацией.
Lua:
im_window = imgui.ImBool(true) -- твоя панель.
im_window2 = imgui.ImBool(false) -- другое  окно с курсором. Отключено на старте.
im_window3 = imgui.ImBool(false) -- другое окно с курсором. Отключено на старте.


function main()
    while not isSampAvailable() do
        wait(0)
    end

    imgui.Process = true

    while true do
        wait(0)

        if im_window2.v or im_window3.v then -- окна с курсорам
            imgui.ShowCursor = true
    
        else -- Окна без курсора или нет активных окон
            imgui.ShowCursor = false
        end

    end
end

function imgui.OnDrawFrame()
    if im_window.v then
         -- рисуем панель
    end

    if im_window2.v then
         -- рисуем окно с курсором
    end

    if im_window3.v then
         -- рисуем окно с курсором
    end
end

Также это решает проблему залипания клавишей мышки (окно имгуи перестает тыкаться курсором)
 
Последнее редактирование: