Как оптимизировать код Imgui окна от просадки FPS

webb_

Участник
Автор темы
50
4
Версия MoonLoader
.026-beta
LUA:
        if not menu.settings.v and not menu.information.v and menu.admin.v then
            imgui.BeginChild('admin', imgui.ImVec2(800, 460), true)
            if script.admin.info ~= nil then
                imgui.BeginChild('access', imgui.ImVec2(770, 200), true)
                imgui.Columns(3, "Columns", true)
                imgui.Text("Ник:")
                imgui.NextColumn()
                imgui.Text("Админ:")
                imgui.NextColumn()
                imgui.Text("Дата последней авторизации:")
                imgui.NextColumn()
                for k, v in ipairs(script.admin.info.access) do
                    local id = sampGetPlayerIdByNickname(v.nick)
                    imgui.Separator()
                    imgui.SetColumnWidth(-1, 500)
                    if imgui.Selectable(v.nick .. (id ~= nil and "[" .. id .. "]" or "")) then
                        menu.removenick = v.nick
                        menu.remove.v = true
                    end
                    imgui.NextColumn()
                    imgui.SetColumnWidth(-1, 60)
                    imgui.PushID(k)
                    if imgui.Selectable(v.admin and "ADMIN" or "USER") then
                        menu.changenick = v.nick
                        menu.change.v = true
                    end
                    imgui.PopID()
                    imgui.NextColumn()
                    imgui.Text(v.date)
                    imgui.NextColumn()
                end
                imgui.EndChild()
                imgui.BeginChild('log', imgui.ImVec2(770, 440), true)
                imgui.Columns(3, "Columns", true)
                imgui.Text("Дата:")
                imgui.NextColumn()
                imgui.Text("Ник:")
                imgui.NextColumn()
                imgui.Text("Действие:")
                imgui.NextColumn()
                for _, v in ipairs(script.admin.info.log) do
                    local id = sampGetPlayerIdByNickname(v.nick)
                    imgui.Separator()
                    imgui.SetColumnWidth(-1, 85)
                    imgui.Text(v.date)
                    imgui.NextColumn()
                    imgui.SetColumnWidth(-1, 200)
                    imgui.Text(v.nick .. (id ~= nil and "[" .. id .. "]" or ""))
                    imgui.NextColumn()
                    imgui.TextColoredRGB(v.action)
                    imgui.NextColumn()
                end
                imgui.EndChild()
                else
                imgui.Text("Происходит загрузка информации, ожидайте...")
            end
            imgui.EndChild()
            if imgui.Button("Обновить информацию из базы данных", imgui.ImVec2(270.0, 26.0)) then
                lua_thread.create(function()
                    script.updateAdminInformation()
                end)
            end
            if imgui.Button("Добавить пользователя скрипта", imgui.ImVec2(270.0, 26.0)) then
                menu.add.v = true
            end
        end
 

webb_

Участник
Автор темы
50
4
да всё, уже,
Можешь записать видос?
Подозреваю, что проблемка в переборе километровых массивов
проблема не в массивах, хоть они и действительно километровые, а в другом была.
 
  • Нравится
Реакции: leekyrave