HELP INI WORK

triazov

Активный
Автор темы
250
57
Версия MoonLoader
.027.0-preview
HELP INI WORK
Надо помочь чтобы в имгуи меню в поле ввода запоминало данные который вводишь и сохраняла в ини
Данные должны сохраняться в переменную
 
Решение
Lua:
-- В начало.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        buf = "",
    }
}, "test.ini")

local text_buffer = imgui.ImBuffer(mainIni.config.buf, 256) -- Тут сразу берём данные с конфига, чтобы в инпуте сохранялось то, что в последний раз было введено.
-- Там ещё, если текст на русском, то надо декодировать вроде. Пробуй следующие варианты, я просто не помню уже, давно не занимаюсь Луа:
-- 1. imgui.ImBuffer(u8:decode(mainIni.config.buf), 256)
-- 2. imgui.ImBuffer(u8(mainIni.config.buf), 256)
-- Но, скорее всего, первый вариант. И не забудь encoding библиотеку подключить.


-- OnDrawFrame
if imgui.InputText("Enter text", text_buffer) then
    mainIni.config.buf = text_buffer.v -- Записывает текст...

YarikVL

Известный
Проверенный
4,796
1,813
HELP INI WORK
Надо помочь чтобы в имгуи меню в поле ввода запоминало данные который вводишь и сохраняла в ини
Данные должны сохраняться в переменную
В чем проблема загуглить или посмотреть гайд ?
Ты даже не попытался ничего сделать, были бы проблемы с кодом то в этом разделе помощи - помогут, а не сделают всё за тебя.
Тебе лень/не хочешь учиться и тд - тогда пиши сюда: https://www.blast.hk/forums/16/
 

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
Lua:
-- В начало.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        buf = "",
    }
}, "test.ini")

local text_buffer = imgui.ImBuffer(mainIni.config.buf, 256) -- Тут сразу берём данные с конфига, чтобы в инпуте сохранялось то, что в последний раз было введено.
-- Там ещё, если текст на русском, то надо декодировать вроде. Пробуй следующие варианты, я просто не помню уже, давно не занимаюсь Луа:
-- 1. imgui.ImBuffer(u8:decode(mainIni.config.buf), 256)
-- 2. imgui.ImBuffer(u8(mainIni.config.buf), 256)
-- Но, скорее всего, первый вариант. И не забудь encoding библиотеку подключить.


-- OnDrawFrame
if imgui.InputText("Enter text", text_buffer) then
    mainIni.config.buf = text_buffer.v -- Записывает текст из инпута в конфиг.
    inicfg.save(mainIni, 'test.ini') -- Сохраняем конфиг.
end
 
Последнее редактирование:
  • Нравится
Реакции: YarikVL и qdIbp

triazov

Активный
Автор темы
250
57
Lua:
-- В начало.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        buf = "",
    }
}, "test.ini")

local text_buffer = imgui.ImBuffer(mainIni.config.buf, 256) -- Тут сразу берём данные с конфига, чтобы в инпуте сохранялось то, что в последний раз было введено.
-- Там ещё, если текст на русском, то надо декодировать вроде. Пробуй следующие варианты, я просто не помню уже, давно не занимаюсь Луа:
-- 1. imgui.ImBuffer(u8:decode(mainIni.config.buf), 256)
-- 2. imgui.ImBuffer(u8(mainIni.config.buf), 256)
-- Но, скорее всего, первый вариант. И не забудь encoding библиотеку подключить.


-- OnDrawFrame
if imgui.Input("Enter text", text_buffer) then
    mainIni.config.buf = text_buffer.v -- Записывает текст из инпута в конфиг.
    inicfg.save(mainIni, 'test.ini') -- Сохраняем конфиг.
end
Благодарю в переменную как задать я не понял до конца ну буду по ходу дела
 
  • Эм
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,387
1,143
Благодарю в переменную как задать я не понял до конца ну буду по ходу дела
1 есть вот такая завитушечка, запятая называется, если не знал
2
Lua:
imgui.ImBuffer(mainIni.config.buf, 256) -- первый арг, текст который ты хочешь засунуть в поле для ввода, второй арг, кол-во символов
 

triazov

Активный
Автор темы
250
57
Lua:
-- В начало.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        buf = "",
    }
}, "test.ini")

local text_buffer = imgui.ImBuffer(mainIni.config.buf, 256) -- Тут сразу берём данные с конфига, чтобы в инпуте сохранялось то, что в последний раз было введено.
-- Там ещё, если текст на русском, то надо декодировать вроде. Пробуй следующие варианты, я просто не помню уже, давно не занимаюсь Луа:
-- 1. imgui.ImBuffer(u8:decode(mainIni.config.buf), 256)
-- 2. imgui.ImBuffer(u8(mainIni.config.buf), 256)
-- Но, скорее всего, первый вариант. И не забудь encoding библиотеку подключить.


-- OnDrawFrame
if imgui.Input("Enter text", text_buffer) then
    mainIni.config.buf = text_buffer.v -- Записывает текст из инпута в конфиг.
    inicfg.save(mainIni, 'test.ini') -- Сохраняем конфиг.
end
[ML] (error) Skiper: E:\Games\SAMPIK SBORKA\samp dev\moonloader\Skiper.lua:98: attempt to call field 'Input' (a nil value)
stack traceback:
E:\Games\SAMPIK SBORKA\samp dev\moonloader\Skiper.lua:98: in function 'OnDrawFrame'
E:\Games\SAMPIK SBORKA\samp dev\moonloader\lib\imgui.lua:1379: in function <E:\Games\SAMPIK SBORKA\samp dev\moonloader\lib\imgui.lua:1368>
[ML] (error) Skiper: Script died due to an error. (078280DC)

Выбивает это после попытки запустить imgui menu
 

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
[ML] (error) Skiper: E:\Games\SAMPIK SBORKA\samp dev\moonloader\Skiper.lua:98: attempt to call field 'Input' (a nil value)
stack traceback:
E:\Games\SAMPIK SBORKA\samp dev\moonloader\Skiper.lua:98: in function 'OnDrawFrame'
E:\Games\SAMPIK SBORKA\samp dev\moonloader\lib\imgui.lua:1379: in function <E:\Games\SAMPIK SBORKA\samp dev\moonloader\lib\imgui.lua:1368>
[ML] (error) Skiper: Script died due to an error. (078280DC)

Выбивает это после попытки запустить imgui menu
InputText.*