кнопка сохранить

linmsqn

Участник
Автор темы
337
9
Версия MoonLoader
.026-beta
смотрите
Lua:
function imgui.OnDrawFrame()
    if main_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(400, 300), imgui.Cond.FirstUseEver)
        imgui.Begin('Настройки', main_window_state)

        if imgui.InputText('Текст', text_buffer) then
        end

        imgui.Text('Введённый текст: ' .. text_buffer.v)

        if imgui.Button('Сохранить') then
            printStringNow('saved', 1000)
        end
        imgui.End()
    end
end

нужно чтобы кнопка "сохранить" сохраняла текст из inputtext в кфг, как такое сделать?

и дайте пж уроки с работой кфг, хочу выводить в имгуи окне текст из конфика ппжжпжжпжпжпжжпжэпжэпжэжпжэп
 
Последнее редактирование:
Решение
м

можешь с объяснениями пж?
Lua:
require "lib.moonloader"

local imgui = require "imgui"

-- подгружаем библиотеку inicfg
local inicfg = require 'inicfg'

local encoding = require "encoding"
local main_window_state = imgui.ImBool(false)
encoding.default = "CP1251"
u8 = encoding.UTF8

-- сам inicfg
local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    }
}, "aYeTestCFG")

-- создаем переменную для инпута
local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)

-- если файла нету - создаём его
if not doesFileExist('moonloader/config/aYeTestCFG.ini') then inicfg.save(mainini, 'aYeTestCFG.ini') end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not...

barjik

Известный
462
191
Lua:
require "lib.moonloader"

local imgui = require "imgui"
local inicfg = require 'inicfg'
local encoding = require "encoding"
local main_window_state = imgui.ImBool(false)
encoding.default = "CP1251"
u8 = encoding.UTF8

local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    }
}, "aYeTestCFG")

local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)
if not doesFileExist('moonloader/config/aYeTestCFG.ini') then inicfg.save(mainini, 'aYeTestCFG.ini') end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("cmd", cmd)
    while true do wait(0)
    
    if main_window_state.v == false then
    imgui.Process = false   

        end
    end
end

function cmd()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end

function imgui.OnDrawFrame()
    imgui.Begin(u8"Imgui menu", main_window_state)
    imgui.InputText(u8'', zabor)
    if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
    mainini.config.zabor = zabor.v
    inicfg.save(mainini, 'aYeTestCFG.ini')
    printStringNow('save!', 1500)
    end
    imgui.End()
end
 

linmsqn

Участник
Автор темы
337
9
м
Lua:
require "lib.moonloader"

local imgui = require "imgui"
local inicfg = require 'inicfg'
local encoding = require "encoding"
local main_window_state = imgui.ImBool(false)
encoding.default = "CP1251"
u8 = encoding.UTF8

local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    }
}, "aYeTestCFG")

local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)
if not doesFileExist('moonloader/config/aYeTestCFG.ini') then inicfg.save(mainini, 'aYeTestCFG.ini') end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("cmd", cmd)
    while true do wait(0)
   
    if main_window_state.v == false then
    imgui.Process = false  

        end
    end
end

function cmd()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end

function imgui.OnDrawFrame()
    imgui.Begin(u8"Imgui menu", main_window_state)
    imgui.InputText(u8'', zabor)
    if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
    mainini.config.zabor = zabor.v
    inicfg.save(mainini, 'aYeTestCFG.ini')
    printStringNow('save!', 1500)
    end
    imgui.End()
end
можешь с объяснениями пж?
 

barjik

Известный
462
191
м

можешь с объяснениями пж?
Lua:
require "lib.moonloader"

local imgui = require "imgui"

-- подгружаем библиотеку inicfg
local inicfg = require 'inicfg'

local encoding = require "encoding"
local main_window_state = imgui.ImBool(false)
encoding.default = "CP1251"
u8 = encoding.UTF8

-- сам inicfg
local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    }
}, "aYeTestCFG")

-- создаем переменную для инпута
local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)

-- если файла нету - создаём его
if not doesFileExist('moonloader/config/aYeTestCFG.ini') then inicfg.save(mainini, 'aYeTestCFG.ini') end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("cmd", cmd)
    while true do wait(0)
   
    if main_window_state.v == false then
    imgui.Process = false  

        end
    end
end

function cmd()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end

function imgui.OnDrawFrame()
    --начинаем имгуи
    imgui.Begin(u8"Imgui menu", main_window_state)
   
    -- инпут с созданной ранее переменной zabor (21 line)
    imgui.InputText(u8'', zabor)
   
    -- если нажата кнопка - тогда
    if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
    mainini.config.zabor = zabor.v
    -- сохраняем в ини
    inicfg.save(mainini, 'aYeTestCFG.ini')
    --выводим оповещение через printStringNow
    printStringNow('save!', 1500)
    -- завершаем условие эндом
    end
    --заканчиваем имгуи
    imgui.End()
end
хз как еще обьяснить
Почитай гайд который я скинул выше
 
  • Нравится
Реакции: linmsqn

linmsqn

Участник
Автор темы
337
9
Lua:
require "lib.moonloader"

local imgui = require "imgui"

-- подгружаем библиотеку inicfg
local inicfg = require 'inicfg'

local encoding = require "encoding"
local main_window_state = imgui.ImBool(false)
encoding.default = "CP1251"
u8 = encoding.UTF8

-- сам inicfg
local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    }
}, "aYeTestCFG")

-- создаем переменную для инпута
local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)

-- если файла нету - создаём его
if not doesFileExist('moonloader/config/aYeTestCFG.ini') then inicfg.save(mainini, 'aYeTestCFG.ini') end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("cmd", cmd)
    while true do wait(0)
  
    if main_window_state.v == false then
    imgui.Process = false 

        end
    end
end

function cmd()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end

function imgui.OnDrawFrame()
    --начинаем имгуи
    imgui.Begin(u8"Imgui menu", main_window_state)
  
    -- инпут с созданной ранее переменной zabor (21 line)
    imgui.InputText(u8'', zabor)
  
    -- если нажата кнопка - тогда
    if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
    mainini.config.zabor = zabor.v
    -- сохраняем в ини
    inicfg.save(mainini, 'aYeTestCFG.ini')
    --выводим оповещение через printStringNow
    printStringNow('save!', 1500)
    -- завершаем условие эндом
    end
    --заканчиваем имгуи
    imgui.End()
end
хз как еще обьяснить
Почитай гайд который я скинул выше
а что именно тут отвечает за сохранение в ини? мне нужно чтобы слово из инпута сохранялось в [config] -> textr=туттекст
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
а что именно тут отвечает за сохранение в ини? мне нужно чтобы слово из инпута сохранялось в [config] -> textr=туттекст
Здесь текст из инпута записывается в ини.
mainini.config.zabor = zabor.v
А тут сохраняется
inicfg.save(mainini, 'aYeTestCFG.ini')
Только вместо твоего [config] > "text", как ты хочешь, будет [config] > "zabor". Можешь в конфиге это изменить.
 
  • Нравится
Реакции: linmsqn

linmsqn

Участник
Автор темы
337
9
Здесь текст из инпута записывается в ини.
mainini.config.zabor = zabor.v
А тут сохраняется
inicfg.save(mainini, 'aYeTestCFG.ini')
Только вместо твоего [config] > "text", как ты хочешь, будет [config] > "zabor". Можешь в конфиге это изменить.

все-все я разобрался, смотрите теперь что я хочу

sampSendChat('/r а тут надо сделать чтобы отправлялся текст из конфига, типо как-то адаптировать.')
sampSendChat('/r (textr)')
textr - поле из моего ини файла

короче если проще, то как мне отправить в /r сообщение из конфига?
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
все-все я разобрался, смотрите теперь что я хочу

sampSendChat('/r а тут надо сделать чтобы отправлялся текст из конфига, типо как-то адаптировать.')
sampSendChat('/r (textr)')
textr - поле из моего ини файла

короче если проще, то как мне отправить в /r сообщение из конфига?
sampSendChat("/r "..mainini.config.textr).
 
  • Нравится
Реакции: linmsqn

linmsqn

Участник
Автор темы
337
9
Lua:
require "lib.moonloader"

local imgui = require "imgui"

-- подгружаем библиотеку inicfg
local inicfg = require 'inicfg'

local encoding = require "encoding"
local main_window_state = imgui.ImBool(false)
encoding.default = "CP1251"
u8 = encoding.UTF8

-- сам inicfg
local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    }
}, "aYeTestCFG")

-- создаем переменную для инпута
local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)

-- если файла нету - создаём его
if not doesFileExist('moonloader/config/aYeTestCFG.ini') then inicfg.save(mainini, 'aYeTestCFG.ini') end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("cmd", cmd)
    while true do wait(0)
 
    if main_window_state.v == false then
    imgui.Process = false

        end
    end
end

function cmd()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end

function imgui.OnDrawFrame()
    --начинаем имгуи
    imgui.Begin(u8"Imgui menu", main_window_state)
 
    -- инпут с созданной ранее переменной zabor (21 line)
    imgui.InputText(u8'', zabor)
 
    -- если нажата кнопка - тогда
    if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
    mainini.config.zabor = zabor.v
    -- сохраняем в ини
    inicfg.save(mainini, 'aYeTestCFG.ini')
    --выводим оповещение через printStringNow
    printStringNow('save!', 1500)
    -- завершаем условие эндом
    end
    --заканчиваем имгуи
    imgui.End()
end
хз как еще обьяснить
Почитай гайд который я скинул выше
смотри, а как мне теперь адаптировать это чтобы у меня была одна кнопка сохранить, но сразу на несколько инпуттекстов? типо допустим чтобы не каждый вот так сохранять, а чтобы сразу все сохранялись по одной кнопке? и как изменить размер инпуттекста?
 

barjik

Известный
462
191
смотри, а как мне теперь адаптировать это чтобы у меня была одна кнопка сохранить, но сразу на несколько инпуттекстов? типо допустим чтобы не каждый вот так сохранять, а чтобы сразу все сохранялись по одной кнопке? и как изменить размер инпуттекста?
Создаём новую переменную для инпута
Lua:
local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)
Также добавляем его в mainini
Lua:
local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    kalitka = 'ауе',
    }
}, "aYeTestCFG")
Переходим к нашел кнопке, и добавляем запись текста из другого инпута
Lua:
if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
mainini.config.zabor = zabor.v
mainini.config.kalitka = kalitka.v
inicfg.save(mainini, 'aYeTestCFG.ini')
printStringNow('save!', 1500)
end
Ну и сами инпуты
Lua:
    imgui.PushItemWidth(50.00)
    imgui.InputText(u8'#1', zabor)
   
    imgui.PushItemWidth(50.00)
    imgui.InputText(u8'#2', kalitka)
С помощью imgui.PushItemWidth(50.00) можно регулировать размер InputText'a. С скобках указываешь сам размер
 
  • Влюблен
Реакции: linmsqn

linmsqn

Участник
Автор темы
337
9
Создаём новую переменную для инпута
Lua:
local zabor = imgui.ImBuffer(tostring(mainini.config.zabor), 256)
Также добавляем его в mainini
Lua:
local mainini = inicfg.load({
    config =
    {
    zabor = 'я русский',
    kalitka = 'ауе',
    }
}, "aYeTestCFG")
Переходим к нашел кнопке, и добавляем запись текста из другого инпута
Lua:
if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
mainini.config.zabor = zabor.v
mainini.config.kalitka = kalitka.v
inicfg.save(mainini, 'aYeTestCFG.ini')
printStringNow('save!', 1500)
end
Ну и сами инпуты
Lua:
    imgui.PushItemWidth(50.00)
    imgui.InputText(u8'#1', zabor)
  
    imgui.PushItemWidth(50.00)
    imgui.InputText(u8'#2', kalitka)
С помощью imgui.PushItemWidth(50.00) можно регулировать размер InputText'a. С скобках указываешь сам размер
и последний вопрос, можно как-то сделать автоматическое сохранение в конфиг? чтобы не нажимать кнопку