Фризы mimgui

Nikitosqa

Новичок
Автор темы
1
0
Версия MoonLoader
.026-beta
В чем суть, если скрипт активен и с ним побегать и покрутить камерой около 5 минут - начинает жестко проседать ФПС.
Если удалить скрипт из папки или перезагрузить скрипты, то ФПС возвращается. (проверенно на нескольких компах, везде одна и та же проблема)
Возможно какие то ошибки в коде, буду благодарен за помощь.

MoonLoader v.026.5-beta

Lua:
require "lib.moonloader"

    --==[БИБЛИОТЕКИ]==--
local keys         = require "vkeys"
local hook         = require "lib.samp.events"
local imgui     = require 'mimgui'
local encoding    = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local new = imgui.new

    --==[ЛОКАЛЬНЫЕ ТЕГИ]==--
local tag = '{6cbdab}[Chat Manager] {ffffff}'
local sizeX, sizeY     = getScreenResolution()
local renderWindow = new.bool()

function main()
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage(tag .. 'Script loaded', 0x6cbdab)
    while true do wait(0)
        if wasKeyPressed(88) and not sampIsCursorActive() then
            renderWindow[0] = not renderWindow[0]
        end
        addEventHandler("onWindowMessage", function (msg, wparam, lparam)
            if wparam == keys.VK_ESCAPE or wparam == keys.VK_TAB then
                if renderWindow[0] then renderWindow[0] = false consumeWindowMessage(true, true) end
            end
        end)
    end
end

    --==[OnFrame]==--
imgui.OnFrame(function() return renderWindow[0] end,
    function(player)
        theme()
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(400, 400))
        imgui.Begin("Chat", renderWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.End()
    end
)

function theme()
    imgui.SwitchContext()
    imgui.GetStyle().WindowRounding        = 7.0
    imgui.GetStyle().ChildRounding        = 7.0
    imgui.GetStyle().FrameRounding        = 10.0
    imgui.GetStyle().FramePadding        = imgui.ImVec2(5, 3)
    imgui.GetStyle().WindowPadding        = imgui.ImVec2(8, 8)
    imgui.GetStyle().ButtonTextAlign    = imgui.ImVec2(0.5, 0.5)
    imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    imgui.GetStyle().GrabMinSize        = 7
    imgui.GetStyle().GrabRounding        = 15

    imgui.GetStyle().Colors[imgui.Col.Text]                        = imgui.ImVec4(1.00, 1.00, 1.00, 1.00)
    imgui.GetStyle().Colors[imgui.Col.TextDisabled]               = imgui.ImVec4(1.00, 1.00, 1.00, 0.20)
    imgui.GetStyle().Colors[imgui.Col.WindowBg]                   = imgui.ImVec4(0.07, 0.07, 0.09, 1.00)
    imgui.GetStyle().Colors[imgui.Col.PopupBg]                    = imgui.ImVec4(0.90, 0.90, 0.90, 1.00)
    imgui.GetStyle().Colors[imgui.Col.Border]                     = imgui.ImVec4(0.00, 0.00, 0.00, 0.00)
    imgui.GetStyle().Colors[imgui.Col.SliderGrab]                 = imgui.ImVec4(0.90, 0.90, 0.90, 1.00)
    imgui.GetStyle().Colors[imgui.Col.SliderGrabActive]             = imgui.ImVec4(0.70, 0.70, 0.70, 1.00)
    imgui.GetStyle().Colors[imgui.Col.BorderShadow]              = imgui.ImVec4(0.00, 0.00, 0.00, 0.00)
    imgui.GetStyle().Colors[imgui.Col.TitleBg]                   = imgui.ImVec4(0.20, 0.20, 0.20, 0.81)
    imgui.GetStyle().Colors[imgui.Col.TitleBgActive]               = imgui.ImVec4(0.20, 0.20, 0.20, 1.00)
    imgui.GetStyle().Colors[imgui.Col.TitleBgCollapsed]            = imgui.ImVec4(0.35, 0.63, 0.56, 0.51)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarBg]                 = imgui.ImVec4(0.60, 0.60, 0.60, 0.90)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarGrab]             = imgui.ImVec4(0.90, 0.90, 0.90, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarGrabHovered]         = imgui.ImVec4(0.80, 0.80, 0.80, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarGrabActive]         = imgui.ImVec4(0.70, 0.70, 0.70, 1.00)
    imgui.GetStyle().Colors[imgui.Col.FrameBg]                     = imgui.ImVec4(0.20, 0.20, 0.20, 1.00)
    imgui.GetStyle().Colors[imgui.Col.FrameBgHovered]             = imgui.ImVec4(0.20, 0.20, 0.20, 0.80)
    imgui.GetStyle().Colors[imgui.Col.FrameBgActive]             = imgui.ImVec4(0.20, 0.20, 0.20, 0.60)
    imgui.GetStyle().Colors[imgui.Col.CheckMark]                 = imgui.ImVec4(1.00, 1.00, 1.00, 1.00)
    imgui.GetStyle().Colors[imgui.Col.Button]                     = imgui.ImVec4(0.20, 0.20, 0.20, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ButtonHovered]             = imgui.ImVec4(0.15, 0.15, 0.15, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ButtonActive]                 = imgui.ImVec4(0.10, 0.10, 0.10, 1.00)
    imgui.GetStyle().Colors[imgui.Col.TextSelectedBg]             = imgui.ImVec4(0.80, 0.80, 0.80, 0.80)
end
 

why ega

РП игрок
Модератор
2,550
2,242
В чем суть, если скрипт активен и с ним побегать и покрутить камерой около 5 минут - начинает жестко проседать ФПС.
Если удалить скрипт из папки или перезагрузить скрипты, то ФПС возвращается. (проверенно на нескольких компах, везде одна и та же проблема)
Возможно какие то ошибки в коде, буду благодарен за помощь.

MoonLoader v.026.5-beta

Lua:
require "lib.moonloader"

    --==[БИБЛИОТЕКИ]==--
local keys         = require "vkeys"
local hook         = require "lib.samp.events"
local imgui     = require 'mimgui'
local encoding    = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local new = imgui.new

    --==[ЛОКАЛЬНЫЕ ТЕГИ]==--
local tag = '{6cbdab}[Chat Manager] {ffffff}'
local sizeX, sizeY     = getScreenResolution()
local renderWindow = new.bool()

function main()
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage(tag .. 'Script loaded', 0x6cbdab)
    while true do wait(0)
        if wasKeyPressed(88) and not sampIsCursorActive() then
            renderWindow[0] = not renderWindow[0]
        end
        addEventHandler("onWindowMessage", function (msg, wparam, lparam)
            if wparam == keys.VK_ESCAPE or wparam == keys.VK_TAB then
                if renderWindow[0] then renderWindow[0] = false consumeWindowMessage(true, true) end
            end
        end)
    end
end

    --==[OnFrame]==--
imgui.OnFrame(function() return renderWindow[0] end,
    function(player)
        theme()
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(400, 400))
        imgui.Begin("Chat", renderWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.End()
    end
)

function theme()
    imgui.SwitchContext()
    imgui.GetStyle().WindowRounding        = 7.0
    imgui.GetStyle().ChildRounding        = 7.0
    imgui.GetStyle().FrameRounding        = 10.0
    imgui.GetStyle().FramePadding        = imgui.ImVec2(5, 3)
    imgui.GetStyle().WindowPadding        = imgui.ImVec2(8, 8)
    imgui.GetStyle().ButtonTextAlign    = imgui.ImVec2(0.5, 0.5)
    imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    imgui.GetStyle().GrabMinSize        = 7
    imgui.GetStyle().GrabRounding        = 15

    imgui.GetStyle().Colors[imgui.Col.Text]                        = imgui.ImVec4(1.00, 1.00, 1.00, 1.00)
    imgui.GetStyle().Colors[imgui.Col.TextDisabled]               = imgui.ImVec4(1.00, 1.00, 1.00, 0.20)
    imgui.GetStyle().Colors[imgui.Col.WindowBg]                   = imgui.ImVec4(0.07, 0.07, 0.09, 1.00)
    imgui.GetStyle().Colors[imgui.Col.PopupBg]                    = imgui.ImVec4(0.90, 0.90, 0.90, 1.00)
    imgui.GetStyle().Colors[imgui.Col.Border]                     = imgui.ImVec4(0.00, 0.00, 0.00, 0.00)
    imgui.GetStyle().Colors[imgui.Col.SliderGrab]                 = imgui.ImVec4(0.90, 0.90, 0.90, 1.00)
    imgui.GetStyle().Colors[imgui.Col.SliderGrabActive]             = imgui.ImVec4(0.70, 0.70, 0.70, 1.00)
    imgui.GetStyle().Colors[imgui.Col.BorderShadow]              = imgui.ImVec4(0.00, 0.00, 0.00, 0.00)
    imgui.GetStyle().Colors[imgui.Col.TitleBg]                   = imgui.ImVec4(0.20, 0.20, 0.20, 0.81)
    imgui.GetStyle().Colors[imgui.Col.TitleBgActive]               = imgui.ImVec4(0.20, 0.20, 0.20, 1.00)
    imgui.GetStyle().Colors[imgui.Col.TitleBgCollapsed]            = imgui.ImVec4(0.35, 0.63, 0.56, 0.51)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarBg]                 = imgui.ImVec4(0.60, 0.60, 0.60, 0.90)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarGrab]             = imgui.ImVec4(0.90, 0.90, 0.90, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarGrabHovered]         = imgui.ImVec4(0.80, 0.80, 0.80, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ScrollbarGrabActive]         = imgui.ImVec4(0.70, 0.70, 0.70, 1.00)
    imgui.GetStyle().Colors[imgui.Col.FrameBg]                     = imgui.ImVec4(0.20, 0.20, 0.20, 1.00)
    imgui.GetStyle().Colors[imgui.Col.FrameBgHovered]             = imgui.ImVec4(0.20, 0.20, 0.20, 0.80)
    imgui.GetStyle().Colors[imgui.Col.FrameBgActive]             = imgui.ImVec4(0.20, 0.20, 0.20, 0.60)
    imgui.GetStyle().Colors[imgui.Col.CheckMark]                 = imgui.ImVec4(1.00, 1.00, 1.00, 1.00)
    imgui.GetStyle().Colors[imgui.Col.Button]                     = imgui.ImVec4(0.20, 0.20, 0.20, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ButtonHovered]             = imgui.ImVec4(0.15, 0.15, 0.15, 1.00)
    imgui.GetStyle().Colors[imgui.Col.ButtonActive]                 = imgui.ImVec4(0.10, 0.10, 0.10, 1.00)
    imgui.GetStyle().Colors[imgui.Col.TextSelectedBg]             = imgui.ImVec4(0.80, 0.80, 0.80, 0.80)
end
У тебя функция addEventHandler сидит в бесконечном цикле, хз, есть ли в мунлоадере защита от такой утечки памяти, но в любом случае её желательно перенести в глобальное пространство
 
  • Нравится
Реакции: qdIbp