Не могу понять inicfg

Sanurial

Участник
Автор темы
80
12
Версия MoonLoader
.026-beta
Загрузка конфига:
if imgui.Button(u8'Загрузить настройки') then
                ini = inicfg.load(ini, 'Radmir Helper.ini')
                mreconnect[0] = ini.main.ReconnectInt
                mautologin[0] = ini.main.AutoLoginBool
                mpassword[0] = u8(ini.AutoLogin.password)
                sampAddChatMessage(tag .. 'настройки сохранены.', -1)
            end

Сохранение конфига:
if imgui.Button(u8'Сохранить настройки') then
                ini.main.ReconnectInt = mreconnect[0]
                ini.main.AutoLoginBool = mautologin[0]
                ini.AutoLogin.password = u8:decode(ffi.string(mpassword[0]))
                inicfg.save(ini, 'Radmir Helper.ini')
                sampAddChatMessage(tag .. 'настройки сохранены.', -1)
            end

inicfg и переменные:
local directIni = 'Radmir Helper'
local ini = inicfg.load(inicfg.load({
    main = {
        ReconnectInt = 15,
        AutoLoginBool = false
    },
    AutoLogin = {
        password = 'Пароль не установлен'
    }
}, directIni))
inicfg.save(ini, directIni)

local mreconnect = new.int(ini.main.ReconnectInt)
local mautowalk = new.bool(false)
local mautologin = new.bool(ini.main.AutoLoginBool)
local mpassword = new.char[256](u8(ini.AutoLogin.password))
Так вот, и не сохраняет и не загружает, тупо вылетает игра, это раз. В конфиге после нажатия кнопки 'Сохранить' вместо пароля цифры :/
 
Решение
Попробуй без u8:decode
С сохранением разобрался. Теперь загрузка мозга делает cannot convert 'string' to 'char'
Lua:
mpassword[0] = u8(ffi.string(ini.AutoLogin.password))
mpassword[0] = u8(ffi.string(tostring(ini.AutoLogin.password))
mpassword[0] = u8(tostring(ini.AutoLogin.password))
mpassword[0] = u8(ini.AutoLogin.password)
mpassword[0] = ini.AutoLogin.password
-- никак вообще не работает...

Решение:

Lua:
if imgui.Button(u8'Сохранить настройки') then
                ini.main.ReconnectInt = mreconnect[0]
                ini.main.AutoLoginBool = mautologin[0]
                ini.AutoLogin.password = (u8:decode(tostring(mpassword[0])))
                inicfg.save(ini, directIni)...

Sanurial

Участник
Автор темы
80
12
Ну так добавь в названии .ini
А сохраняй кфг функцией выше

И зачем загружать один и тот же конфиг 🤔
Тем что я не хочу чтобы кфг загружался при запуске скрипта, а только лишь по нажатию кнопки. Сохраняет он збс, вся суть заключается в пароле, он тоо числа выдаёт, то. Знаки вопросов :/

- То какой текст хочу сохранить
- То как он сохраняет
 
Последнее редактирование:

AugustTN

Известный
1,369
470
Тем что я не хочу чтобы кфг загружался при запуске скрипта, а только лишь по нажатию кнопки. Сохраняет он збс, вся суть заключается в пароле, он тоо числа выдаёт, то. Знаки вопросов :/

- То какой текст хочу сохранить
- То как он сохраняет
Попробуй без u8:decode
 

Sanurial

Участник
Автор темы
80
12
Попробуй без u8:decode
С сохранением разобрался. Теперь загрузка мозга делает cannot convert 'string' to 'char'
Lua:
mpassword[0] = u8(ffi.string(ini.AutoLogin.password))
mpassword[0] = u8(ffi.string(tostring(ini.AutoLogin.password))
mpassword[0] = u8(tostring(ini.AutoLogin.password))
mpassword[0] = u8(ini.AutoLogin.password)
mpassword[0] = ini.AutoLogin.password
-- никак вообще не работает...

Решение:

Lua:
if imgui.Button(u8'Сохранить настройки') then
                ini.main.ReconnectInt = mreconnect[0]
                ini.main.AutoLoginBool = mautologin[0]
                ini.AutoLogin.password = (u8:decode(tostring(mpassword[0])))
                inicfg.save(ini, directIni)
                sampAddChatMessage(tag .. 'настройки сохранены.', -1)
            end
            imgui.SameLine()
            if imgui.Button(u8'Загрузить настройки') then
                inicfg.load(ini, directIni)
                mreconnect[0] = ini.main.ReconnectInt
                mautologin[0] = ini.main.AutoLoginBool
                mpassword[0] = ini.AutoLogin.password
                sampAddChatMessage(tag .. 'настройки загружены.', -1)
            end