помощь скрыть мышь Mimgui

saradaken

Участник
Автор темы
41
6
Версия MoonLoader
Другое
Привет
Я пытался скрыть курсор мыши mimgui, чтобы он не отображался, но это не сработало. Он все время отображается в игре. Что мне делать?
Hi
I tried to hide the mouse cursor mimgui so it doesn't show up, but it didn't work. It shows up all the time in the game. What should I do?
Lua:
local MAINEMENU = imgui.OnFrame(function() return MAINE_MENU[0] end, function(player)

    imgui.ShowCursor = false

        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(800, 200), imgui.Cond.FirstUseEver)
       
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0.1))
        imgui.Begin("MAINE_MENU", nil,
                    imgui.WindowFlags.NoResize +
                    imgui.WindowFlags.NoTitleBar +
                    imgui.WindowFlags.NoCollapse +
                --    imgui.WindowFlags.AlwaysAutoResize +
                    imgui.WindowFlags.NoInputs
                )
                       
        --imgui.SetWindowFocus()
    for _, msg in ipairs(messages) do
        imgui.textfont(string.format('%s', msg),textingame_font)
    end
   
   

   --     imgui.SetMouseCursor(imgui.MouseCursor.None)



imgui.End()

return true
end)

I'm trying to make it so that when MAIN_MENU[0] is displayed, the mouse cursor is not displayed.
Я пытаюсь сделать так, чтобы при отображении MAIN_MENU[0] курсор мыши не отображался.

UPD: Вместо этого я перешел на использование imgui.
 
Последнее редактирование:

Vintik

Через тернии к звёздам
Проверенный
1,526
1,009
Hi.
You should use this.HideCursor = true.
I tidied up your code, check it out:
Lua:
local MAIN_MENU = imgui.OnFrame(
    function() return MAIN_MENU[0] end,
    function(this)
        this.HideCursor = true
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(800, 200), imgui.Cond.FirstUseEver)
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0.1))

        imgui.Begin('MAIN_MENU', nil,
        imgui.WindowFlags.NoResize +
        imgui.WindowFlags.NoTitleBar +
        imgui.WindowFlags.NoCollapse +
        -- imgui.WindowFlags.AlwaysAutoResize +
        imgui.WindowFlags.NoInputs)

        --imgui.SetWindowFocus()
        for _, msg in ipairs(messages) do
            imgui.textfont(msg, textingame_font)
        end
        -- imgui.SetMouseCursor(imgui.MouseCursor.None)
        imgui.End()

        return true
    end
)
 
  • Влюблен
Реакции: saradaken

kyrtion

Известный
896
318
Hi.
You should use this.HideCursor = true.
I tidied up your code, check it out:
Обращаем внимание, это вызывает как бесконечно, а нужно использовать один раз.
local frame = imgui.OnFrame(...)
frame.HideCursor = true

Иначе друг друга скрипты сражаются, открыть ли курсор или скрыть постоянно
 

saradaken

Участник
Автор темы
41
6
Обращаем внимание, это вызывает как бесконечно, а нужно использовать один раз.
local frame = imgui.OnFrame(...)
frame.HideCursor = true

Иначе друг друга скрипты сражаются, открыть ли курсор или скрыть постоянно

Now I have the problem as you mentioned.
Теперь у меня проблема, о которой вы упомянули.
I tried as you told me but it didn't work.
Я попробовал, как вы мне сказали, но ничего не вышло.
Есть ли у вас еще примеры?
 
Последнее редактирование:

kyrtion

Известный
896
318
Now I have the problem as you mentioned.
Теперь у меня проблема, о которой вы упомянули.
I tried as you told me but it didn't work.
Я попробовал, как вы мне сказали, но ничего не вышло.
Есть ли у вас еще примеры?
Скиньте что у тебя не получилось. Подскажу
 
  • Нравится
Реакции: saradaken

chapo

чопа сребдс // @moujeek
Модератор
8,861
11,547
Обращаем внимание, это вызывает как бесконечно, а нужно использовать один раз.
local frame = imgui.OnFrame(...)
frame.HideCursor = true

Иначе друг друга скрипты сражаются, открыть ли курсор или скрыть постоянно
ну тогда по логике курсор будет скрыт только если его скрывает последний загруженный скрипт, типо например если у меня есть скрипт A_menu.lua и там HideCursor = true, а в файле Z_menu.lua HideCursor = false, то курсор будет скрыт, разве не так? Или это «глобальное» значение обновляется при каждом открытии меню?
 
  • Нравится
Реакции: saradaken

Дядя Энрик.

Активный
336
81
Lua:
local MAINEMENU = imgui.OnFrame(function() return MAINE_MENU[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(800, 200), imgui.Cond.FirstUseEver)
        
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0.1))
        imgui.Begin("MAINE_MENU", nil,
                    imgui.WindowFlags.NoResize +
                    imgui.WindowFlags.NoTitleBar +
                    imgui.WindowFlags.NoCollapse +
                --    imgui.WindowFlags.AlwaysAutoResize +
                    imgui.WindowFlags.NoInputs
                )
                        
        --imgui.SetWindowFocus()
    for _, msg in ipairs(messages) do
        imgui.textfont(string.format('%s', msg),textingame_font)
    end
    
    

   --     imgui.SetMouseCursor(imgui.MouseCursor.None)



imgui.End()
end).HideCursor = true
хз, так попробуй
 
  • Нравится
Реакции: saradaken

kyrtion

Известный
896
318
Lua:
local MAINEMENU = imgui.OnFrame(function() return MAINE_MENU[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(800, 200), imgui.Cond.FirstUseEver)
       
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0.1))
        imgui.Begin("MAINE_MENU", nil,
                    imgui.WindowFlags.NoResize +
                    imgui.WindowFlags.NoTitleBar +
                    imgui.WindowFlags.NoCollapse +
                --    imgui.WindowFlags.AlwaysAutoResize +
                    imgui.WindowFlags.NoInputs
                )
                       
        --imgui.SetWindowFocus()
    for _, msg in ipairs(messages) do
        imgui.textfont(string.format('%s', msg),textingame_font)
    end
   
   

   --     imgui.SetMouseCursor(imgui.MouseCursor.None)



imgui.End()
end).HideCursor = true
хз, так попробуй
надо отдельно, ты указал 2 оператора:
local a = b = c
 
  • Нравится
Реакции: saradaken

saradaken

Участник
Автор темы
41
6
จำเป็นต้องแยกกัน คุณระบุตัวดำเนินการ 2 ตัว:
ท้องถิ่น a=b=c
Here's how. Yes, it can hide the mouse cursor, but it doesn't hide just that one window. It hides all windows, including other scripts.
Вот как. Да, он может скрыть курсор мыши, но он не скрывает только это одно окно. Он скрывает все окна, включая другие скрипты.

Lua:
(1)
local MAINEMENU = imgui.OnFrame(
    function()return MAINE_MENU[0] end,
    function(player)
        
        player.HideCursor = true
        
        local current_time = os.time()

        imgui.SetNextWindowPos(imgui.ImVec2(ini.main.winposx,ini.main.winposy),imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(800, 200), imgui.Cond.FirstUseEver)
        
        imgui.PushStyleColor(imgui.Col.Border, imgui.ImVec4(0, 0, 0, 1))
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0))
        imgui.Begin("MAINE_MENU", nil,
                    imgui.WindowFlags.NoResize +
                    imgui.WindowFlags.NoTitleBar +
                    imgui.WindowFlags.NoCollapse +
                    imgui.WindowFlags.AlwaysAutoResize
                )
                        
        statsX = imgui.GetWindowPos().x
        statsY = imgui.GetWindowPos().y

        for i = 1, #messages do
            local elapsed_time = current_time - message_time[i]

            if elapsed_time > 10 then
                table.remove(messages, i)
                table.remove(message_time, i)
            else
                imgui.textfont(string.format('%s', messages[i]), textingame_font)
            end
        end
    

        imgui.End()
        imgui.PopStyleColor(2)

    return true
end)

(2)
local MAINEMENU = imgui.OnFrame(
    function()return MAINE_MENU[0] end,
    function(player)
        
        local current_time = os.time()

        imgui.SetNextWindowPos(imgui.ImVec2(ini.main.winposx,ini.main.winposy),imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(800, 200), imgui.Cond.FirstUseEver)
        
        imgui.PushStyleColor(imgui.Col.Border, imgui.ImVec4(0, 0, 0, 1))
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0))
        imgui.Begin("MAINE_MENU", nil,
                    imgui.WindowFlags.NoResize +
                    imgui.WindowFlags.NoTitleBar +
                    imgui.WindowFlags.NoCollapse +
                    imgui.WindowFlags.AlwaysAutoResize
                )
                        
        statsX = imgui.GetWindowPos().x
        statsY = imgui.GetWindowPos().y

        for i = 1, #messages do
            local elapsed_time = current_time - message_time[i]

            if elapsed_time > 10 then
                table.remove(messages, i)
                table.remove(message_time, i)
            else
                imgui.textfont(string.format('%s', messages[i]), textingame_font)
            end
        end
    

        imgui.End()
        imgui.PopStyleColor(2)

    return true
end)

MAINEMENU.HideCursor = true

(3)
imgui.OnFrame(
    function()return MAINE_MENU[0] end,
    function(player)
        
        local current_time = os.time()

        imgui.SetNextWindowPos(imgui.ImVec2(ini.main.winposx,ini.main.winposy),imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(800, 200), imgui.Cond.FirstUseEver)
        
        imgui.PushStyleColor(imgui.Col.Border, imgui.ImVec4(0, 0, 0, 1))
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0))
        imgui.Begin("MAINE_MENU", nil,
                    imgui.WindowFlags.NoResize +
                    imgui.WindowFlags.NoTitleBar +
                    imgui.WindowFlags.NoCollapse +
                    imgui.WindowFlags.AlwaysAutoResize
                )
                        
        statsX = imgui.GetWindowPos().x
        statsY = imgui.GetWindowPos().y

        for i = 1, #messages do
            local elapsed_time = current_time - message_time[i]

            if elapsed_time > 10 then
                table.remove(messages, i)
                table.remove(message_time, i)
            else
                imgui.textfont(string.format('%s', messages[i]), textingame_font)
            end
        end
    

        imgui.End()
        imgui.PopStyleColor(2)

    return true
end).HideCursor = true

(4)
local MAINEMENU
MAINEMENU = imgui.OnFrame(
    function()return MAINE_MENU[0] end,
    function(player)
        
        MAINEMENU.HideCursor = true
        
        local current_time = os.time()

        imgui.SetNextWindowPos(imgui.ImVec2(ini.main.winposx,ini.main.winposy),imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(800, 200), imgui.Cond.FirstUseEver)
        
        imgui.PushStyleColor(imgui.Col.Border, imgui.ImVec4(0, 0, 0, 1))
        imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0.050, 0.050, 0.050, 0))
        imgui.Begin("MAINE_MENU", nil,
                    imgui.WindowFlags.NoResize +
                    imgui.WindowFlags.NoTitleBar +
                    imgui.WindowFlags.NoCollapse +
                    imgui.WindowFlags.AlwaysAutoResize
                )
                        
        statsX = imgui.GetWindowPos().x
        statsY = imgui.GetWindowPos().y

        for i = 1, #messages do
            local elapsed_time = current_time - message_time[i]

            if elapsed_time > 10 then
                table.remove(messages, i)
                table.remove(message_time, i)
            else
                imgui.textfont(string.format('%s', messages[i]), textingame_font)
            end
        end
    

        imgui.End()
        imgui.PopStyleColor(2)

    return true
end)
 

kyrtion

Известный
896
318
Use deepl translate.

Ну смотри, я предлагаю использовать второй пункт который ты вложил код. И посмотри, что изменится? В цикле main добавь нажатие чтобы раскрыть курсор в фрейм MAINEMENU. Или в коде фрейма
 
  • Нравится
Реакции: saradaken

saradaken

Участник
Автор темы
41
6
@saradaken,
I lost the thread.
So, your first problem was that cursor displaying all time, and you wanted to hide it.
What problem do you have now?
Now I want it to hide only that window. But what I did was hide the mouse cursor of all windows of other scripts.
I tried switching to imgui instead and using imgui.ShowCursor instead, which worked. Other mouse cursors or other scripts are not hidden, only that window is hidden.