Сохранение

Immortal-

Участник
Автор темы
67
1
Версия MoonLoader
.026-beta
Здравствуйте. Нужна опять помошь.
Дело в том, что у меня есть мини биндер так сказать, код ниже.
Lua:
local mainIni = inicfg.load({ -- создаем конфиг
config =
{
arm_ot = false, -- Сохраняем Армор (это у меня идёт в конфиг как переменная булевного типа)
text_arm = " " -- Сохраняем текст Армора (это у меня идёт в конфиг как текстовое поле)
}
}, "binder")

local mask_ot = imgui.ImBool(mainIni.config.mask_ot) -- Делаем переменную для Армора
local text_arm = imgui.ImBuffer(''..mainIni.config.text_arm, 500) -- Делаем переменную для текста Армора

local status = inicfg.load(mainIni, 'binder.ini')  -- подгружаем конфиг
if not doesFileExist('moonloader/config/binder.ini') then -- Проверка, если конфиг существует
    inicfg.save(mainIni, 'binder.ini') -- Сохраняем конфиг
end

-- Функция для отыгровки
function armour_rp()
    if arm_ot.v then
        lua_thread.create(function()
            local delay_rp2 = tonumber(delay_rp2.v)
            for str in string.gmatch(text_arm.v, "[^\r\n]+") do
                sampSendChat(u8:decode(str))
                wait(delay_rp2)
            end
        end)
    end
end

sampRegisterChatCommand('arm', function() armour_rp() end) -- Регистрация команды

        -- Кнопка
        if imgui.Button('Сохранить', imgui.ImVec2(309,29)) then -- Создаем кнопку
            mainIni.config.arm_ot = arm_ot.v -- Получаем чекбокс Армора
            mainIni.config.text_arm = text_arm.v -- Получаем поле с текстом Армора
            inicfg.save(mainIni, 'binder.ini') -- Сохраняем в файл
        end
        -- Кнопка
Я ввожу текст, жму сохранить, оно всё классно сохраняет, в ини файл записывается мой текст, и переменная меняет значение false на true, но стоит мне перезайти в игру, как тут же в ини файле переменная становится false, а мой текст пропадает, и следованно, бинд не работает.
 

wulfandr

Известный
636
260
Lua:
local mask_ot = imgui.ImBool(mainIni.config.mask_ot) -- Делаем переменную для Армора
local text_arm = imgui.ImBuffer(''..mainIni.config.text_arm, 500) -- Делаем переменную для текста Армора
возможно из-за перезахода она меняется так как записывается заново. пришли полный скрипт. или возможно ты создаёшь .ini еще раз, в начале от 1 до 7 строки. перемести от 0 до 8 строки на строки после 12-15.
 

Double Tap Inside

Известный
Проверенный
1,916
1,256
Здравствуйте. Нужна опять помошь.
Дело в том, что у меня есть мини биндер так сказать, код ниже.
Lua:
local mainIni = inicfg.load({ -- создаем конфиг
config =
{
arm_ot = false, -- Сохраняем Армор (это у меня идёт в конфиг как переменная булевного типа)
text_arm = " " -- Сохраняем текст Армора (это у меня идёт в конфиг как текстовое поле)
}
}, "binder")

local mask_ot = imgui.ImBool(mainIni.config.mask_ot) -- Делаем переменную для Армора
local text_arm = imgui.ImBuffer(''..mainIni.config.text_arm, 500) -- Делаем переменную для текста Армора

local status = inicfg.load(mainIni, 'binder.ini')  -- подгружаем конфиг
if not doesFileExist('moonloader/config/binder.ini') then -- Проверка, если конфиг существует
    inicfg.save(mainIni, 'binder.ini') -- Сохраняем конфиг
end

-- Функция для отыгровки
function armour_rp()
    if arm_ot.v then
        lua_thread.create(function()
            local delay_rp2 = tonumber(delay_rp2.v)
            for str in string.gmatch(text_arm.v, "[^\r\n]+") do
                sampSendChat(u8:decode(str))
                wait(delay_rp2)
            end
        end)
    end
end

sampRegisterChatCommand('arm', function() armour_rp() end) -- Регистрация команды

        -- Кнопка
        if imgui.Button('Сохранить', imgui.ImVec2(309,29)) then -- Создаем кнопку
            mainIni.config.arm_ot = arm_ot.v -- Получаем чекбокс Армора
            mainIni.config.text_arm = text_arm.v -- Получаем поле с текстом Армора
            inicfg.save(mainIni, 'binder.ini') -- Сохраняем в файл
        end
        -- Кнопка
Я ввожу текст, жму сохранить, оно всё классно сохраняет, в ини файл записывается мой текст, и переменная меняет значение false на true, но стоит мне перезайти в игру, как тут же в ини файле переменная становится false, а мой текст пропадает, и следованно, бинд не работает.
А чё, путь к файлу через слеш "/" на винде пишут? Я думаю через обратный слеш "\\" надо. Вот оно и не находит файл и перезаписывает настройки
 

Immortal-

Участник
Автор темы
67
1
А чё, путь к файлу через слеш "/" на винде пишут? Я думаю через обратный слеш "\\" надо. Вот оно и не находит файл и перезаписывает настройки
В другом скрипте так же сохранение идёт, и там всё сохраняет.
 

Double Tap Inside

Известный
Проверенный
1,916
1,256
В другом скрипте так же сохранение идёт, и там всё сохраняет.
Ну, мне впало проверять. doesFileExist() какое значение возвращает проверь.
Да, а чего два раза пишешь load? И в первом load просто "binder" а везде "binder.ini"?
 
Последнее редактирование: