Кастомная директория конфигурации.

A S K I T

Активный
Автор темы
200
69
Добрый вечер.
Не могу понять, как с помощью imicfg сохранять конфиг по заданному пути, например "moonloader/dir_1/dir_2/config.ini".
Подскажите пожалуйста.
Так не работает:
function saveData()
    inicfg.save({
        settings = {
        active = data.settings.active
        }
    }, getWorkingDirectory().."moonloader\\config\\dir\\Moon Toolbox.ini")
end
 
Последнее редактирование:

A S K I T

Активный
Автор темы
200
69
2 строка
Lua:
local inicfg = require 'inicfg'
local directIni = ''
local ini = inicfg.load(inicfg.load({
    main = {
        enabled = true
   },
}, directIni))
inicfg.save(ini, directIni)
Работает, но конфиг теперь сохраняется в двух местах, в заданной директории, и в config/script.lua.ini
Как это исправить?
 

A S K I T

Активный
Автор темы
200
69
ты старый код удалил?
Вот так теперь:
Lua:
local inicfg = require 'inicfg'
local direct_cfg = '../dir/config.ini'
local cfg = inicfg.load(inicfg.load({
    settings = {
        script_enabled = false
    },
}, direct_cfg))
inicfg.save(cfg, direct_cfg)

-----------

local script_enabled = imgui.ImBool(cfg.settings.script_enabled)

-----------

function imgui.OnDrawFrame()

    if mainWindowState.v then
        imgui.ShowCursor = true
        imgui.SetNextWindowPos(imgui.ImVec2(resX/2, resY/2), 2, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(script_name..' '..script_version..' by '..script_author, mainWindowState, imgui.WindowFlags.NoResize + imgui.WindowFlags.AlwaysAutoResize + imgui.WindowFlags.NoCollapse)

            if imgui.Checkbox(u8'Активировать скрипт', script_enabled) then
                cfg.settings.script_enabled = script_enabled.v
                inicfg.save(cfg)
            end

        imgui.End()
        imgui.Process = mainWindowState.v
    end

end

-----------

function saveData()
    inicfg.save({
        settings =
        {
            script_enabled = cfg.settings.script_enabled
        }
    })
end
 

chapo

tg/inst: @moujeek
Всефорумный модератор
9,086
12,095
Вот так теперь:
Lua:
local inicfg = require 'inicfg'
local direct_cfg = '../dir/config.ini'
local cfg = inicfg.load(inicfg.load({
    settings = {
        script_enabled = false
    },
}, direct_cfg))
inicfg.save(cfg, direct_cfg)

-----------

local script_enabled = imgui.ImBool(cfg.settings.script_enabled)

-----------

function imgui.OnDrawFrame()

    if mainWindowState.v then
        imgui.ShowCursor = true
        imgui.SetNextWindowPos(imgui.ImVec2(resX/2, resY/2), 2, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(script_name..' '..script_version..' by '..script_author, mainWindowState, imgui.WindowFlags.NoResize + imgui.WindowFlags.AlwaysAutoResize + imgui.WindowFlags.NoCollapse)

            if imgui.Checkbox(u8'Активировать скрипт', script_enabled) then
                cfg.settings.script_enabled = script_enabled.v
                inicfg.save(cfg)
            end

        imgui.End()
        imgui.Process = mainWindowState.v
    end

end

-----------

function saveData()
    inicfg.save({
        settings =
        {
            script_enabled = cfg.settings.script_enabled
        }
    })
end
Lua:
local inicfg = require 'inicfg'
local directIni = 'configfilename.ini' -- файл с таким названием будет сохранятся в папке moonloader\config
local ini = inicfg.load(inicfg.load({
    settings = {
        script_enabled = true
    },
}, directIni))
inicfg.save(ini, directIni)

-----------

local script_enabled = imgui.ImBool(ini.settings.script_enabled)

-----------

function imgui.OnDrawFrame()

    if mainWindowState.v then
        imgui.ShowCursor = true
        imgui.SetNextWindowPos(imgui.ImVec2(resX/2, resY/2), 2, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(script_name..' '..script_version..' by '..script_author, mainWindowState, imgui.WindowFlags.NoResize + imgui.WindowFlags.AlwaysAutoResize + imgui.WindowFlags.NoCollapse)

            if imgui.Checkbox(u8'Активировать скрипт', script_enabled) then
                ini.settings.script_enabled = script_enabled.v
                save()
            end

        imgui.End()
        imgui.Process = mainWindowState.v
    end

end

-----------

function save()
    ini.settings.script_enabled = script_enabled.v
    inicfg.save(ini, directIni)
end

function saveData()
    inicfg.save({
        settings =
        {
            script_enabled = cfg.settings.script_enabled
        }
    })
end