Как сохранить InputText в inicfg ?

cort

Активный
Автор темы
275
79
Версия MoonLoader
.026-beta
Я забыл как сохранить InputText в inicfg.
Помогите пж

Lua:
local imgui = require('imgui')
local inicfg = require 'inicfg'

local directIni = 'config.ini'
local ini = inicfg.load({
    main = {
        token_tg = '',
        chatid_tg = '',
    },
}, directIni)
inicfg.save(ini, directIni)

local token_tg = imgui.ImBuffer(256)
local chatid_tg = imgui.ImBuffer(256)

function imgui.OnDrawFrame()
    if imgui.Button('Telegram', imgui.ImVec2(100, 20)) then
                menu = 2
    end
            if menu == 2 then
                if imgui.Checkbox(u8'Использовать TG бот', use_tg) then
                    ini.main.use_tg = use_tg.v
                    inicfg.save(ini, directIni)
                end
                if use_tg.v then
                    if imgui.InputText(u8"Token", token_tg) then
                        ini.main.token_tg = token_tg
                        inicfg.save(ini, directIni)
                    end
                    if imgui.InputText('Chat id', chatid_tg) then
                        ini.main.chatid_tg = chatid_tg
                        inicfg.save(ini, directIni)
                    end
    
                    if imgui.Button(u8'Применить', imgui.ImVec2(205, 20)) then
                        telegram = Telegram:new(ini.main.token_tg, ini.main.chatid_tg)
                    end
                end
            end
end

Я вписываю данные, а они после перезахода не сохраняются. В чём проблемы?
 

why ega

РП игрок
Модератор
2,545
2,236
Я забыл как сохранить InputText в inicfg.
Помогите пж

Lua:
local imgui = require('imgui')
local inicfg = require 'inicfg'

local directIni = 'config.ini'
local ini = inicfg.load({
    main = {
        token_tg = '',
        chatid_tg = '',
    },
}, directIni)
inicfg.save(ini, directIni)

local token_tg = imgui.ImBuffer(256)
local chatid_tg = imgui.ImBuffer(256)

function imgui.OnDrawFrame()
    if imgui.Button('Telegram', imgui.ImVec2(100, 20)) then
                menu = 2
    end
            if menu == 2 then
                if imgui.Checkbox(u8'Использовать TG бот', use_tg) then
                    ini.main.use_tg = use_tg.v
                    inicfg.save(ini, directIni)
                end
                if use_tg.v then
                    if imgui.InputText(u8"Token", token_tg) then
                        ini.main.token_tg = token_tg
                        inicfg.save(ini, directIni)
                    end
                    if imgui.InputText('Chat id', chatid_tg) then
                        ini.main.chatid_tg = chatid_tg
                        inicfg.save(ini, directIni)
                    end
   
                    if imgui.Button(u8'Применить', imgui.ImVec2(205, 20)) then
                        telegram = Telegram:new(ini.main.token_tg, ini.main.chatid_tg)
                    end
                end
            end
end

Я вписываю данные, а они после перезахода не сохраняются. В чём проблемы?
Lua:
local imgui = require('imgui')
local inicfg = require 'inicfg'

local directIni = 'config.ini'
local ini = inicfg.load({
    main = {
        token_tg = '',
        chatid_tg = '',
    },
}, directIni)
inicfg.save(ini, directIni)

local token_tg = imgui.ImBuffer(ini.main.token_tg)
local chatid_tg = imgui.ImBuffer(ini.main.chatid_tg)

function imgui.OnDrawFrame()
    if imgui.Button('Telegram', imgui.ImVec2(100, 20)) then
                menu = 2
    end
            if menu == 2 then
                if imgui.Checkbox(u8'Использовать TG бот', use_tg) then
                    ini.main.use_tg = use_tg.v
                    inicfg.save(ini, directIni)
                end
                if use_tg.v then
                    if imgui.InputText(u8"Token", token_tg) then
                        ini.main.token_tg = token_tg
                        inicfg.save(ini, directIni)
                    end
                    if imgui.InputText('Chat id', chatid_tg) then
                        ini.main.chatid_tg = chatid_tg
                        inicfg.save(ini, directIni)
                    end
    
                    if imgui.Button(u8'Применить', imgui.ImVec2(205, 20)) then
                        telegram = Telegram:new(ini.main.token_tg, ini.main.chatid_tg)
                    end
                end
            end
end
 
  • Нравится
Реакции: cort

cort

Активный
Автор темы
275
79
Lua:
local imgui = require('imgui')
local inicfg = require 'inicfg'

local directIni = 'config.ini'
local ini = inicfg.load({
    main = {
        token_tg = '',
        chatid_tg = '',
    },
}, directIni)
inicfg.save(ini, directIni)

local token_tg = imgui.ImBuffer(ini.main.token_tg)
local chatid_tg = imgui.ImBuffer(ini.main.chatid_tg)

function imgui.OnDrawFrame()
    if imgui.Button('Telegram', imgui.ImVec2(100, 20)) then
                menu = 2
    end
            if menu == 2 then
                if imgui.Checkbox(u8'Использовать TG бот', use_tg) then
                    ini.main.use_tg = use_tg.v
                    inicfg.save(ini, directIni)
                end
                if use_tg.v then
                    if imgui.InputText(u8"Token", token_tg) then
                        ini.main.token_tg = token_tg
                        inicfg.save(ini, directIni)
                    end
                    if imgui.InputText('Chat id', chatid_tg) then
                        ini.main.chatid_tg = chatid_tg
                        inicfg.save(ini, directIni)
                    end
  
                    if imgui.Button(u8'Применить', imgui.ImVec2(205, 20)) then
                        telegram = Telegram:new(ini.main.token_tg, ini.main.chatid_tg)
                    end
                end
            end
end
Есть две проблемы. Первая: не могу полностью вписать токен. Вторая: после перезагрузки скрипта данные меняются на какой-то бред
1706702330611.png
 

why ega

РП игрок
Модератор
2,545
2,236

cord

contact me → cordtech.ru
Проверенный
557
410
Lua:
-- в начале
local ffi = require 'ffi'

local token_tg = imgui.ImBuffer(''..ini.main.token_tg, 256)
local chatid_tg = imgui.ImBuffer(''..ini.main.chatid_tg, 256)

-- в рендере
if imgui.InputText(u8"Token", token_tg) then
    ini.main.token_tg = ffi.string(token_tg)
    inicfg.save(ini, directIni)
end
 
  • Вау
Реакции: why ega

cort

Активный
Автор темы
275
79
Lua:
-- в начале
local ffi = require 'ffi'

local token_tg = imgui.ImBuffer(''..ini.main.token_tg, 256)
local chatid_tg = imgui.ImBuffer(''..ini.main.chatid_tg, 256)

-- в рендере
if imgui.InputText(u8"Token", token_tg) then
    ini.main.token_tg = ffi.string(token_tg)
    inicfg.save(ini, directIni)
end
Посмотреть вложение 230624
После релога не работает.
Lua:
local token_tg = imgui.ImBuffer(tostring(ini.main.token_tg), 256)
local chatid_tg = imgui.ImBuffer(tostring(ini.main.chatid_tg), 256)
230619

Тоже самое.

попробуй
Lua:
local imgui = require('imgui')
local inicfg = require 'inicfg'

local directIni = 'config.ini'
local ini = inicfg.load({
    main = {
        token_tg = '',
        chatid_tg = '',
    },
}, directIni)
inicfg.save(ini, directIni)

local token_tg = imgui.ImBuffer(ini.main.token_tg)
local chatid_tg = imgui.ImBuffer(ini.main.chatid_tg)

function imgui.OnDrawFrame()
    if imgui.Button('Telegram', imgui.ImVec2(100, 20)) then
        menu = 2
    end
    if menu == 2 then
        if imgui.Checkbox(u8'Использовать TG бот', use_tg) then
            ini.main.use_tg = use_tg.v
            inicfg.save(ini, directIni)
        end
        if use_tg.v then
            if imgui.InputText(u8"Token", token_tg) then
                ini.main.token_tg = u8:decode(token_tg)
                inicfg.save(ini, directIni)
            end
            if imgui.InputText('Chat id', chatid_tg) then
                ini.main.chatid_tg = u8:decode(chatid_tg)
                inicfg.save(ini, directIni)
            end
            if imgui.Button(u8'Применить', imgui.ImVec2(205, 20)) then
                telegram = Telegram:new(ini.main.token_tg, ini.main.chatid_tg)
            end
        end
    end
end
1706703750528.png

Не могу ввести символы.
 

Вложения

  • 1706703724813.png
    1706703724813.png
    10.3 KB · Просмотры: 1

wojciech?

Известный
215
130
Lua:
local imgui = require('imgui')
local inicfg = require 'inicfg'

local directIni = 'config.ini'
local ini = inicfg.load({
    main = {
        token_tg = '',
        chatid_tg = '',
    },
}, directIni)
inicfg.save(ini, directIni)

local token_tg = imgui.ImBuffer(ini.main.token_tg)
local chatid_tg = imgui.ImBuffer(ini.main.chatid_tg)

function imgui.OnDrawFrame()
    if imgui.Button('Telegram', imgui.ImVec2(100, 20)) then
                menu = 2
    end
            if menu == 2 then
                if imgui.Checkbox(u8'Использовать TG бот', use_tg) then
                    ini.main.use_tg = use_tg.v
                    inicfg.save(ini, directIni)
                end
                if use_tg.v then
                    if imgui.InputText(u8"Token", token_tg) then
                        ini.main.token_tg = token_tg
                        inicfg.save(ini, directIni)
                    end
                    if imgui.InputText('Chat id', chatid_tg) then
                        ini.main.chatid_tg = chatid_tg
                        inicfg.save(ini, directIni)
                    end
   
                    if imgui.Button(u8'Применить', imgui.ImVec2(205, 20)) then
                        telegram = Telegram:new(ini.main.token_tg, ini.main.chatid_tg)
                    end
                end
            end
end
1706714444818.png
 
  • Нравится
Реакции: why ega