[mimgui] при асинхронном запросе грузит озу

IT clown

Участник
Автор темы
45
2
Версия MoonLoader
.026-beta
При вызове функции начинает грузить озу пока не крашет гта либо не выключить скрипт

озу.png

Lua:
function start(arg)
   
    renderWindow[0] = not renderWindow[0]

    nickname = sampGetPlayerNickname(arg)
 
    aes = ECBMode.Cipher()

    aes.setKey(Stream.toArray(Stream.fromString("SjnGmzTUO222cyAq")))
    aes.setBlockCipher(AES128Cipher)
    aes.setPadding(ZeroPadding)
    aes.init()
    aes.update(Stream.fromString(u8(nickname)))
    aes.finish()
    nickH = aes.asHex()
    aes.init()
    aes.update(Stream.fromString(u8(servername)))
    aes.finish()
    ServH = aes.asHex()
   
   asyncHttpRequest('POST', 'url#', { data = string.format('method#', nickH, ServH),
      headers = {
                                     ["content-type"] = "application/x-www-form-urlencoded"}},
    function(response)
        pass = decodeJson(response.text)
        if pass.id ~= nil then
            local newFrame = imgui.OnFrame(
                function() return renderWindow[0] end,
                    function(player)
                       
                        imgui.SetNextWindowPos(imgui.ImVec2(sizeX - 180, sizeY - 450), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
                        imgui.SetNextWindowSize(imgui.ImVec2(350, 290), imgui.Cond.FirstUseEver)
                        imgui.Begin(u8"База паспортов", renderWindow)
                       
                        imgui.Text(u8'ФИО: ')
                            imgui.SameLine()
                            imgui.Text(pass.name)
                            imgui.SameLine()
                            skin_pass = tonumber(pass.skin)
                            sampgui_texture_photo = imgui.CreateTextureFromFile(getGameDirectory() .. "\\moonloader\\img\\" .. skin_pass .. ".png")
                            imgui.Image(sampgui_texture_photo, imgui.ImVec2(100, 100), imgui.ImVec2(0,0), imgui.ImVec2(1,1), imgui.ImVec4(1, 1, 1, 0.3))
                       
                        imgui.Text(u8'Возраст: ')
                            imgui.SameLine()
                            imgui.Text(pass.age)
                       
                        imgui.Text(u8'Пол: ')
                            imgui.SameLine()
                            imgui.Text(pass.sex)
                       
                        imgui.Text(u8'Номер телефона: ')
                            imgui.SameLine()
                            imgui.Text(pass.phone)
                       
                        imgui.Text(u8'Дом: ')
                            imgui.SameLine()
                            imgui.Text(pass.house)
                       
                        imgui.Text(u8'Работа: ')
                            imgui.SameLine()
                            imgui.Text(pass.frac)
                       
                        imgui.Text(u8'Должность: ')
                            imgui.SameLine()
                            imgui.Text(pass.job)
                       
                        imgui.Text(u8'Последние обновление в базе: ')
                            imgui.SameLine()
                            imgui.Text(pass.last_update)
                       
                        if imgui.Button(u8'Позвонить') then
                            sampSendChat('/c ' .. pass.phone)
                        end
                       
                        imgui.SameLine()
                       
                        if imgui.Button(u8'Написать смс') then
                            sampSetChatInputEnabled(true)
                            sampSetChatInputText('/sms ' ..pass.phone.. ' ')
                        end
            imgui.End()
            end
)
         
         else sampAddChatMessage('Игрока нету в базе', -1)
         end
            end,
      function(err)
         print(err)

     end)
   
end
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,650
2,535
Категорически не следует создавать как асинхронные, так и луашные потоки внутри мимгуи фреймов

Посмотрел снова скриншот и понял в чём дело конкретно у тебя. Всё нормально, так и должно быть, ты плодишь 100500 фреймов пока гта не улетит в стратосферу. Так делать нельзя, используй один фрейм и обновляй входящие к нему значения.
 

IT clown

Участник
Автор темы
45
2
Категорически не следует создавать как асинхронные, так и луашные потоки внутри мимгуи фреймов

Посмотрел снова скриншот и понял в чём дело конкретно у тебя. Всё нормально, так и должно быть, ты плодишь 100500 фреймов пока гта не улетит в стратосферу. Так делать нельзя, используй один фрейм и обновляй входящие к нему значения.
Вынес фрейм из функции, теперь при вызове запроса, крашит игру без записей в мун.лог

Lua:
local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
        function(player)
            
            imgui.SetNextWindowPos(imgui.ImVec2(sizeX - 180, sizeY - 450), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(350, 290), imgui.Cond.FirstUseEver)
            imgui.Begin(u8"База паспортов", renderWindow)
            
            imgui.Text(u8'ФИО: ')
                imgui.SameLine()
                imgui.Text(names)
                imgui.SameLine()
                skin_pass = tonumber(passskins)
                sampgui_texture_photo = imgui.CreateTextureFromFile(getGameDirectory() .. "\\moonloader\\img\\" .. skin_pass .. ".png")
                imgui.Image(sampgui_texture_photo, imgui.ImVec2(100, 100), imgui.ImVec2(0,0), imgui.ImVec2(1,1), imgui.ImVec4(1, 1, 1, 0.3))
            
            imgui.Text(u8'Возраст: ')
                imgui.SameLine()
                imgui.Text(ages)
            
            imgui.Text(u8'Пол: ')
                imgui.SameLine()
                imgui.Text(sexs)
            
            imgui.Text(u8'Номер телефона: ')
                imgui.SameLine()
                imgui.Text(phones)
            
            imgui.Text(u8'Дом: ')
                imgui.SameLine()
                imgui.Text(houses)
            
            imgui.Text(u8'Работа: ')
                imgui.SameLine()
                imgui.Text(fracs)
            
            imgui.Text(u8'Должность: ')
                imgui.SameLine()
                imgui.Text(jobs)
            
            imgui.Text(u8'Последние обновление в базе: ')
                imgui.SameLine()
                imgui.Text(last_updates)
            
            if imgui.Button(u8'Позвонить') then
                sampSendChat('/c ' .. phones)
            end
            
            imgui.SameLine()
            
            if imgui.Button(u8'Написать смс') then
                sampSetChatInputEnabled(true)
                sampSetChatInputText('/sms ' ..phones.. ' ')
            end
imgui.End()
end
)

function start(arg)
    
    renderWindow[0] = not renderWindow[0]

    nickname = sampGetPlayerNickname(arg)
 
    aes = ECBMode.Cipher()

    aes.setKey(Stream.toArray(Stream.fromString("SjnGmzTUO222cyAq")))
    aes.setBlockCipher(AES128Cipher)
    aes.setPadding(ZeroPadding)
    aes.init()
    aes.update(Stream.fromString(u8(nickname)))
    aes.finish()
    nickH = aes.asHex()
    aes.init()
    aes.update(Stream.fromString(u8(servername)))
    aes.finish()
    ServH = aes.asHex()
    
    asyncHttpRequest('POST', 'url#', { data = string.format('method#', nickH, ServH),
      headers = {
                                     ["content-type"] = "application/x-www-form-urlencoded"}},
    function(response)
        pass = decodeJson(response.text)
        if pass.id ~= nil then
            names = pass.name
            ages = pass.age
            sexs = pass.sex
            houses = pass.house
            fracs = pass.frac
            jobs = pass.job
            phones = pass.phone
            last_updates = pass.last_update
            passskins = pass.skin
        else
            sampAddChatMessage('Игрока нету в базе', -1)
        end
    end,
    function(err)
        print(err)
    end)
    
end
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,650
2,535
Вынес фрейм из функции, теперь при вызове запроса, крашит игру без записей в мун.лог

Lua:
local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
        function(player)
           
            imgui.SetNextWindowPos(imgui.ImVec2(sizeX - 180, sizeY - 450), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(350, 290), imgui.Cond.FirstUseEver)
            imgui.Begin(u8"База паспортов", renderWindow)
           
            imgui.Text(u8'ФИО: ')
                imgui.SameLine()
                imgui.Text(names)
                imgui.SameLine()
                skin_pass = tonumber(passskins)
                sampgui_texture_photo = imgui.CreateTextureFromFile(getGameDirectory() .. "\\moonloader\\img\\" .. skin_pass .. ".png")
                imgui.Image(sampgui_texture_photo, imgui.ImVec2(100, 100), imgui.ImVec2(0,0), imgui.ImVec2(1,1), imgui.ImVec4(1, 1, 1, 0.3))
           
            imgui.Text(u8'Возраст: ')
                imgui.SameLine()
                imgui.Text(ages)
           
            imgui.Text(u8'Пол: ')
                imgui.SameLine()
                imgui.Text(sexs)
           
            imgui.Text(u8'Номер телефона: ')
                imgui.SameLine()
                imgui.Text(phones)
           
            imgui.Text(u8'Дом: ')
                imgui.SameLine()
                imgui.Text(houses)
           
            imgui.Text(u8'Работа: ')
                imgui.SameLine()
                imgui.Text(fracs)
           
            imgui.Text(u8'Должность: ')
                imgui.SameLine()
                imgui.Text(jobs)
           
            imgui.Text(u8'Последние обновление в базе: ')
                imgui.SameLine()
                imgui.Text(last_updates)
           
            if imgui.Button(u8'Позвонить') then
                sampSendChat('/c ' .. phones)
            end
           
            imgui.SameLine()
           
            if imgui.Button(u8'Написать смс') then
                sampSetChatInputEnabled(true)
                sampSetChatInputText('/sms ' ..phones.. ' ')
            end
imgui.End()
end
)

function start(arg)
   
    renderWindow[0] = not renderWindow[0]

    nickname = sampGetPlayerNickname(arg)
 
    aes = ECBMode.Cipher()

    aes.setKey(Stream.toArray(Stream.fromString("SjnGmzTUO222cyAq")))
    aes.setBlockCipher(AES128Cipher)
    aes.setPadding(ZeroPadding)
    aes.init()
    aes.update(Stream.fromString(u8(nickname)))
    aes.finish()
    nickH = aes.asHex()
    aes.init()
    aes.update(Stream.fromString(u8(servername)))
    aes.finish()
    ServH = aes.asHex()
   
    asyncHttpRequest('POST', 'url#', { data = string.format('method#', nickH, ServH),
      headers = {
                                     ["content-type"] = "application/x-www-form-urlencoded"}},
    function(response)
        pass = decodeJson(response.text)
        if pass.id ~= nil then
            names = pass.name
            ages = pass.age
            sexs = pass.sex
            houses = pass.house
            fracs = pass.frac
            jobs = pass.job
            phones = pass.phone
            last_updates = pass.last_update
            passskins = pass.skin
        else
            sampAddChatMessage('Игрока нету в базе', -1)
        end
    end,
    function(err)
        print(err)
    end)
   
end
Lua:
local newFrame = imgui.OnFrame(
    function() return renderWindow[0] and passskins end,
        function(player)
            
            imgui.SetNextWindowPos(imgui.ImVec2(sizeX - 180, sizeY - 450), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(350, 290), imgui.Cond.FirstUseEver)
            imgui.Begin(u8"База паспортов", renderWindow)
            
            imgui.Text(u8'ФИО: ')
                imgui.SameLine()
                imgui.Text(names)
                imgui.SameLine()
                skin_pass = tonumber(passskins)
                sampgui_texture_photo = imgui.CreateTextureFromFile(getGameDirectory() .. "\\moonloader\\img\\" .. skin_pass .. ".png")
                imgui.Image(sampgui_texture_photo, imgui.ImVec2(100, 100), imgui.ImVec2(0,0), imgui.ImVec2(1,1), imgui.ImVec4(1, 1, 1, 0.3))
            
            imgui.Text(u8'Возраст: ')
                imgui.SameLine()
                imgui.Text(ages)
            
            imgui.Text(u8'Пол: ')
                imgui.SameLine()
                imgui.Text(sexs)
            
            imgui.Text(u8'Номер телефона: ')
                imgui.SameLine()
                imgui.Text(phones)
            
            imgui.Text(u8'Дом: ')
                imgui.SameLine()
                imgui.Text(houses)
            
            imgui.Text(u8'Работа: ')
                imgui.SameLine()
                imgui.Text(fracs)
            
            imgui.Text(u8'Должность: ')
                imgui.SameLine()
                imgui.Text(jobs)
            
            imgui.Text(u8'Последние обновление в базе: ')
                imgui.SameLine()
                imgui.Text(last_updates)
            
            if imgui.Button(u8'Позвонить') then
                sampSendChat('/c ' .. phones)
            end
            
            imgui.SameLine()
            
            if imgui.Button(u8'Написать смс') then
                sampSetChatInputEnabled(true)
                sampSetChatInputText('/sms ' ..phones.. ' ')
            end
imgui.End()
end
)
function start(arg)
    
    renderWindow[0] = not renderWindow[0]
    nickname = sampGetPlayerNickname(arg)
 
    aes = ECBMode.Cipher()
    aes.setKey(Stream.toArray(Stream.fromString("SjnGmzTUO222cyAq")))
    aes.setBlockCipher(AES128Cipher)
    aes.setPadding(ZeroPadding)
    aes.init()
    aes.update(Stream.fromString(u8(nickname)))
    aes.finish()
    nickH = aes.asHex()
    aes.init()
    aes.update(Stream.fromString(u8(servername)))
    aes.finish()
    ServH = aes.asHex()
    
    asyncHttpRequest('POST', 'url#', { data = string.format('method#', nickH, ServH),
      headers = {
                                     ["content-type"] = "application/x-www-form-urlencoded"}},
    function(response)
        pass = decodeJson(response.text)
        if pass.id ~= nil then
            names = pass.name
            ages = pass.age
            sexs = pass.sex
            houses = pass.house
            fracs = pass.frac
            jobs = pass.job
            phones = pass.phone
            last_updates = pass.last_update
            passskins = pass.skin
        else
            sampAddChatMessage('Игрока нету в базе', -1)
        end
    end,
    function(err)
        print(err)
    end)
    
end
 

IT clown

Участник
Автор темы
45
2
Lua:
local newFrame = imgui.OnFrame(
    function() return renderWindow[0] and passskins end,
        function(player)
          
            imgui.SetNextWindowPos(imgui.ImVec2(sizeX - 180, sizeY - 450), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(350, 290), imgui.Cond.FirstUseEver)
            imgui.Begin(u8"База паспортов", renderWindow)
          
            imgui.Text(u8'ФИО: ')
                imgui.SameLine()
                imgui.Text(names)
                imgui.SameLine()
                skin_pass = tonumber(passskins)
                sampgui_texture_photo = imgui.CreateTextureFromFile(getGameDirectory() .. "\\moonloader\\img\\" .. skin_pass .. ".png")
                imgui.Image(sampgui_texture_photo, imgui.ImVec2(100, 100), imgui.ImVec2(0,0), imgui.ImVec2(1,1), imgui.ImVec4(1, 1, 1, 0.3))
          
            imgui.Text(u8'Возраст: ')
                imgui.SameLine()
                imgui.Text(ages)
          
            imgui.Text(u8'Пол: ')
                imgui.SameLine()
                imgui.Text(sexs)
          
            imgui.Text(u8'Номер телефона: ')
                imgui.SameLine()
                imgui.Text(phones)
          
            imgui.Text(u8'Дом: ')
                imgui.SameLine()
                imgui.Text(houses)
          
            imgui.Text(u8'Работа: ')
                imgui.SameLine()
                imgui.Text(fracs)
          
            imgui.Text(u8'Должность: ')
                imgui.SameLine()
                imgui.Text(jobs)
          
            imgui.Text(u8'Последние обновление в базе: ')
                imgui.SameLine()
                imgui.Text(last_updates)
          
            if imgui.Button(u8'Позвонить') then
                sampSendChat('/c ' .. phones)
            end
          
            imgui.SameLine()
          
            if imgui.Button(u8'Написать смс') then
                sampSetChatInputEnabled(true)
                sampSetChatInputText('/sms ' ..phones.. ' ')
            end
imgui.End()
end
)
function start(arg)
  
    renderWindow[0] = not renderWindow[0]
    nickname = sampGetPlayerNickname(arg)
 
    aes = ECBMode.Cipher()
    aes.setKey(Stream.toArray(Stream.fromString("SjnGmzTUO222cyAq")))
    aes.setBlockCipher(AES128Cipher)
    aes.setPadding(ZeroPadding)
    aes.init()
    aes.update(Stream.fromString(u8(nickname)))
    aes.finish()
    nickH = aes.asHex()
    aes.init()
    aes.update(Stream.fromString(u8(servername)))
    aes.finish()
    ServH = aes.asHex()
  
    asyncHttpRequest('POST', 'url#', { data = string.format('method#', nickH, ServH),
      headers = {
                                     ["content-type"] = "application/x-www-form-urlencoded"}},
    function(response)
        pass = decodeJson(response.text)
        if pass.id ~= nil then
            names = pass.name
            ages = pass.age
            sexs = pass.sex
            houses = pass.house
            fracs = pass.frac
            jobs = pass.job
            phones = pass.phone
            last_updates = pass.last_update
            passskins = pass.skin
        else
            sampAddChatMessage('Игрока нету в базе', -1)
        end
    end,
    function(err)
        print(err)
    end)
  
end
Все та же ошибка, при вызове функции озу взлетает вверх

выключенный скрипт
1652026639258.png

Запустил скрипт
1652026707886.png


закомментировал строчку renderWindow[0] = not renderWindow[0], озу перестало грузиться, в чем может быть дело?