- 373
- 311
- Версия MoonLoader
- Другое
Как можно обойтись без тонны референсов одной и той же переменной, но при этом иметь возможность нормально менять значения виджетов и сохранять всё сразу?
Я хочу сделать адекватное автосохранение конфига, но для этого приходится вписывать одну и ту же переменную 540 раз. Мне надо как-то вменяемо сравнивать старые значения с новыми (каждые n секунд), чтобы не вызывать сохранение конфига, убивая ссд, но я всё это дерьмо даже в таблицу не могу сложить, мозгов не хватает. Спасите х)
Используется cjson, jcfg (минифицированная версия из монетлоадера + кроссплатформ @osp_x)
Вот что сейчас насрано:
Я хочу сделать адекватное автосохранение конфига, но для этого приходится вписывать одну и ту же переменную 540 раз. Мне надо как-то вменяемо сравнивать старые значения с новыми (каждые n секунд), чтобы не вызывать сохранение конфига, убивая ссд, но я всё это дерьмо даже в таблицу не могу сложить, мозгов не хватает. Спасите х)
Используется cjson, jcfg (минифицированная версия из монетлоадера + кроссплатформ @osp_x)
Вот что сейчас насрано:
Lua:
local script_cfg = "bizhelper"
local jcfg = jsoncfg()
local cfg = jcfg.load({
settings = {
thres_distance = 10000,
thres_profit = 1000000,
sort_blacklist = "",
list_vis = true,
sortby_radio = 0,
order_radio = 0
},
}, script_cfg)
local thres_distance = imgui.new.int(cfg.settings.thres_distance)
local thres_profit = imgui.new.int(cfg.settings.thres_profit)
local sort_blacklist = imgui.new.char[512](u8:encode(cfg.settings.sort_blacklist))
local sortby_radio = imgui.new.int(cfg.settings.sortby_radio)
local order_radio = imgui.new.int(cfg.settings.order_radio)
function cfgsave()
cfg.settings.thres_distance = thres_distance[0]
cfg.settings.thres_profit = thres_profit[0]
cfg.settings.sort_blacklist = ffi.string(sort_blacklist)
cfg.settings.list_vis = list_vis[0]
cfg.settings.sortby_radio = sortby_radio[0]
cfg.settings.order_radio = order_radio[0]
jcfg.save(cfg, script_cfg)
print("saved config")
end
function autoSaveSettings()
while true do
cfgsave()
wait(5000)
end
end
function main()
lua_thread.create(autoSaveSettings)
end
local _ = imgui.OnFrame(function () return true end, function (self)
imgui.Begin("test")
imgui.SliderInt(u8'Дистанция (м)', thres_distance, 50, 10000)
imgui.End()
end)