Срочная помощь LUA

thebestsupreme

Участник
Автор темы
170
12
Версия MoonLoader
.026-beta
Всем привет!
Я хочу сделать свой autologin c imgui
но не знаю как сделать сохранение текста которого мы ввели в строчку imgui
Подскажите пожалуйста
пока что это весь код который я написал

Код:
        local ex, ey = getScreenResolution()
        if imgui.CollapsingHeader(u8"Настройки") then
            if imgui.InputText(u8'Введите пароль', test_text_buffer) then
            end
        end
И да подскажите пожалуйста
почему если я добавляю кнопку то скрин отказывается работать?


[ML] (error) AdminTools[ATools+].lua: C:\GTA by Conor\moonloader\AdminTools[ATools+].lua:1086: 'end' expected (to close 'function' at line 630) near '<eof>'
[ML] (error) AdminTools[ATools+].lua: Script died due to an error. (16A33B0C)
Ошибку исправил
но всё я не получил ответ как сделать что бы текст который введён в строку при нажатии на кнопку сохранить сохранялся в ini



Код:
        local ex, ey = getScreenResolution()
        if imgui.CollapsingHeader(u8"Настройки") then
            if imgui.InputText(u8'Введите пароль', test_text_buffer) then
            end
            if imgui.Button(u8'Cохранить') then
                end
            end
[config]
password =
apassword =

сам ини
local directini = "config\\ATools+.ini"
 
Последнее редактирование:

ufdhbi

Известный
Проверенный
1,455
861
Всем привет!
Я хочу сделать свой autologin c imgui
но не знаю как сделать сохранение текста которого мы ввели в строчку imgui
Подскажите пожалуйста
пока что это весь код который я написал

Код:
        local ex, ey = getScreenResolution()
        if imgui.CollapsingHeader(u8"Настройки") then
            if imgui.InputText(u8'Введите пароль', test_text_buffer) then
            end
        end
И да подскажите пожалуйста
почему если я добавляю кнопку то скрин отказывается работать?


[ML] (error) AdminTools[ATools+].lua: C:\GTA by Conor\moonloader\AdminTools[ATools+].lua:1086: 'end' expected (to close 'function' at line 630) near '<eof>'
[ML] (error) AdminTools[ATools+].lua: Script died due to an error. (16A33B0C)
Ошибку исправил
но всё я не получил ответ как сделать что бы текст который введён в строку при нажатии на кнопку сохранить сохранялся в ini



Код:
        local ex, ey = getScreenResolution()
        if imgui.CollapsingHeader(u8"Настройки") then
            if imgui.InputText(u8'Введите пароль', test_text_buffer) then
            end
            if imgui.Button(u8'Cохранить') then
                end
            end
[config]
password =
apassword =

сам ини
local directini = "config\\ATools+.ini"
Lua:
local inicfg = require 'inicfg'

local settings = {
    main = {
        password = ""
    }
}

local passwordInput = imgui.ImBuffer(32)

imgui.InputText(u8'Введите пароль', passwordInput)
if imgui.Button(u8'Cохранить') then
    settings.main.password = passwordInput.v
    inicfg.save(settings)
end
 

ufdhbi

Известный
Проверенный
1,455
861
Или вот так
Lua:
if imgui.InputText(u8'Введите пароль', passwordInput) then
    settings.main.password = passwordInput.v
    inicfg.save(settings)
end
Lua:
-- onDrawFrame
imgui.InputText(u8'Введите пароль', passwordInput)


-- в конце скрипта
function onScriptTerminate(script)
    if script == thisScript() then
        settings.main.password = passwordInput.v
        inicfg.save(settings)
    end
end
 

thebestsupreme

Участник
Автор темы
170
12
А как мне написать где находится этот конфиг
Lua:
-- onDrawFrame
imgui.InputText(u8'Введите пароль', passwordInput)


-- в конце скрипта
function onScriptTerminate(script)
    if script == thisScript() then
        settings.main.password = passwordInput.v
        inicfg.save(settings)
    end
end
Выше
Сам конфиг

[Setting]
password =
apassword =

config/ATools+.ini
 

MaksQ

Известный
967
816
А как мне написать где находится этот конфиг

Выше
Сам конфиг

[Setting]
password =
apassword =

config/ATools+.ini
Lua:
local inicfg = require 'inicfg'

local settings = inicfg.load({
    main =
    {
    password = ""
    }
    }, "config")

local status = inicfg.load(settings, 'config.ini')
if not doesFileExist('moonloader/config/config.ini') then inicfg.save(settings, 'config.ini') end
    
    
passwordInput = imgui.ImBuffer(''.. settings.main.password, 32)

if imgui.InputText(u8'Введите пароль', passwordInput) then
    settings.main.password = passwordInput.v
    inicfg.save(settings, 'config.ini')
end
 

MaksQ

Известный
967
816
А как теперь сделать типа что бы при входе пароль автоматически вводился :)
Lua:
local sampev = require 'lib.samp.events'

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if id == --[[ИД ДИАЛОГА]] then
        sampSendDialogResponse(id, 1, _,settings.main.password)
        return false
    end
end
 

Itachi Uchiha

Участник
124
21
Тема открыта!
Решил воспользоваться этим кодом и после того как вставил данный код в lua файл игра начала крашиться
Ошибок в логах нету
Тема закрыта!
Можешь использовать этот код:

Lua:
script_name('Auto')
script_author('Hund')
script_description('')
require 'moonloader' -- 
imgui = require 'imgui' -- 
encoding = require 'encoding' --
inicfg = require 'inicfg' -- 
local sampev = require 'lib.samp.events'
local vkeys = require 'vkeys'
local yellow = 0xFFFF00
local directIni = 'moonloader\\AL.ini' -- AL.ini меняешь на свое название файла ини
local mainIni = inicfg.load(nil, directIni)
encoding.default = 'CP1251'
u8 = encoding.UTF8
MENU = imgui.ImBool(false)
local password = imgui.ImBuffer(''..mainIni.autologin.password, 256) -- autologin - секция, меняешь на свое название. password - ключ, меняешь на свое название (В .ini файле тоже)
local autologinC = imgui.ImBool(mainIni.autologin.autologinC) -- анологично тому, что выше

if mainIni.autologin == nil then -- если секция пуста, тогда создаются ключи с переменными.
    mainIni.autologin = {
        password = ''..password.v,
        autologinC = autologinC.v
    }

end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    mynick = sampGetPlayerNickname(id)
    sampAddChatMessage('Успешная загрузка, мистер '..mynick, -1) -- можно удалить, делал для себя
    while true do
        imgui.Process = MENU.v
        if isKeyDown(0x62) then
            MENU.v = true
        end
        wait(0)
    end
end

function imgui.OnDrawFrame()
    local sw, sh = getScreenResolution() --
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(275, 300), imgui.Cond.FirstUseEver)
    imgui.Begin(u8'   Autogin | Lucas Hund | Version: 1', MENU, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove) -- Название и флаги меняешь на свои
    if imgui.CollapsingHeader(u8"Настройки") then
        imgui.Text(u8'Введите пароль:')
        imgui.SameLine()
        imgui.InputText(u8'##1', password)
        imgui.Text(u8'Включить:')
        imgui.SameLine()
        imgui.Checkbox(u8'##2', autologinC)
        if imgui.Button(u8'Сохранить', imgui.ImVec2(260, 25)) then
            mainIni.autologin.password = password.v
            mainIni.autologin.autologinC = autologinC.v
            if inicfg.save(mainIni, directIni) then
                sampAddChatMessage('[НАСТРОЙКИ]: {00FF00} Успешно сохранены!', yellow)
            end
        end
    end
    imgui.End()
end
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if autologinC.v == true then
    sampSendDialogResponse(2, 1, nil, password.v) -- цифру 2 меняешь на айди диалога.
    end
end
Содержимое ini файла:
1602687254060.png