Сохранение данных ид ini в inputText

Sidney31

Известный
Автор темы
1,132
385
Приветствую.
Подскажите, пожалуйста, как сделать постоянное отображение текста из ini-файла в inputText?
Чтобы текст сохранялся там даже после перезагрузки скрипта, как это реализовано в различных хелперах.
Указываешь свой ник один раз и он сохраняется там до удаления ini-файла.
Спасибо за помощь.
Без имени-1.png


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

local inicfg = require ('inicfg')
local directIni = ('moonloader\\config\\piar.ini')
local mainIni = inicfg.load(nil, directIni)

function imgui.OnDrawFrame()
    imgui.Begin(u8'Piar', main_window_state)
    imgui.InputText(u8'Текст рекламы', text_buffer)
    imgui.Text(u8'Ваше сообщение:\n' .. text_buffer.v)
   
    if imgui.Button(u8'Применить') then
        mainIni.config.ad = text_buffer.v
        if inicfg.save(mainIni, directIni) then
            sampAddChatMessage('Изменения применены.',-1)
        end
    end
   
    imgui.End()
end
 
Решение
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local inicfg = require 'inicfg'
local directIni = 'filename.ini'
local ini = inicfg.load(inicfg.load({
    main = {
        name = 'Nick_Name',
    },
}, directIni))
inicfg.save(ini, directIni)

local name = imgui.ImBuffer(ini.main.name, 32)
local window = imgui.ImBool(false)

function save()
    ini.main.name = name.v
    inicfg.save(ini, directIni)
end
        
function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
        
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY =...

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,777
11,226
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local inicfg = require 'inicfg'
local directIni = 'filename.ini'
local ini = inicfg.load(inicfg.load({
    main = {
        name = 'Nick_Name',
    },
}, directIni))
inicfg.save(ini, directIni)

local name = imgui.ImBuffer(ini.main.name, 32)
local window = imgui.ImBool(false)

function save()
    ini.main.name = name.v
    inicfg.save(ini, directIni)
end
        
function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
        
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)

        if imgui.InputText('NAME', name) then save() end

        imgui.End()
    end
end
 
  • Нравится
Реакции: Sidney31