Имгуи, как это сохранить?

Bene //

Участник
Автор темы
127
6
Версия MoonLoader
.026-beta
Доброго времени суток!
Нужно в imgui.InputTextMultiline ввести/удалить текст и сохранить его в json. Помогите пожалуйста...(

код:
1671388192339.png


скриншот имгуи:

sa-mp-108.png
 
  • Грустно
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,387
1,146
Попробуй так
Lua:
local vk = require('vkeys')
local imgui = require('imgui')

local encoding = require('encoding')
encoding.default = 'CP1251'
u8 = encoding.UTF8

local path = getGameDirectory()..'\\moonloader\\config\\savedata.json'

local config = {
    input = ' ',
}
if not doesFileExist(path) then
    local f = io.open(path, 'w+')
    f:write(encodeJson(config)):close()
else
    local f = io.open(path, "r")
    a = f:read("*a")
    config = decodeJson(a)
    f:close()
end
local window = imgui.ImBool(false)
local multiInput = imgui.ImBuffer(''..config.input,1024)

function imgui.OnDrawFrame()
    if window.v then
        imgui.Begin(u8'Горит очаг',window)
            if imgui.InputTextMultiline('##xz',multiInput)then
                config.input = multiInput.v
                JSONSave()
            end
        imgui.End()
    end
end
function main()

    while true do wait(0)
        imgui.Process = window.v
        if wasKeyPressed(vk.VK_X) then
            window.v = not window.v
        end
    end
end

function JSONSave()
    if doesFileExist(path) then
        local f = io.open(path, 'w+')
        if f then
            f:write(encodeJson(config)):close()
        end
    end
end