carbJsonConfig - сохранение значений в две строки кода

Corenale

луашер типа
Автор темы
Проверенный
167
315
Описание: Это библиотека для легкого сохранения таблицы с вашими значениями в json формате. (проще говоря делать конфиги)
Может сохранять cdata (может быть сыровато)

Функционал:
functional:
local cfgTable = {} -- типо наша таблица со значениями
carbjsonconfig.load("config/name.json", cfgTable) -- для подгрузки значений из файла
cfgTable() -- для сохранения в файл
cfgTable("reset") -- для сброса таблицы и файла конфига
Пример применения:
1000026716.png

1000026717.png

И еще немнога:
Если что-то пошло не так, кидайте скрины, буду фиксить..
На телефоне всё таки такое трудно делать, так что.. (код говна по этой же причине)
Внимание! эта библиотека сохраняет значения в своём формате, не забывайте об этом!
Гитхаб либы: https://github.com/Corenale/carbJsonConfigLua
- v240804 - moved from parseback to reflect
- я гений оставил принт забыл убрать, убрал -
- fixed creating new cdata (i'm stupud) (thx https://www.blast.hk/members/481726/ for find this) -
- v240709 - Фикс короткого пути для Windows
 

Вложения

  • carbJsonConfig.lua
    33 KB · Просмотры: 41
Последнее редактирование:

Lance_Sterling

Известный
902
319
это конечно все круто (без рофла), но зависимость добавлять такое себе
лучше юзать какие нибудь функции которые можно просто в код вставить и все
 
  • Вау
Реакции: Corenale

chromiusj

7\
Модератор
5,462
3,786
это конечно все круто (без рофла), но зависимость добавлять такое себе
лучше юзать какие нибудь функции которые можно просто в код вставить и все
никто не запрещает минифицировать🤔
 
  • Влюблен
  • Вау
Реакции: Corenale и Lance_Sterling

Corenale

луашер типа
Автор темы
Проверенный
167
315
Последнее редактирование:

chromiusj

7\
Модератор
5,462
3,786
Для тех, у кого крашит сохранение файла пропишите путь так:
Lua:
cjc.load(getWorkingDirectory().."\\config\\kal.json",settings)
Пример использования:

Lua:
local imgui = require 'mimgui'
local cjc = require 'carbJsonConfig'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local renderWindow = imgui.new.bool(true)
local settings = {
    prikol = imgui.new.int(),
}

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)
function main()
    while not isSampAvailable() do wait(0) end
    cjc.load(getWorkingDirectory().."\\config\\kal.json",settings)
    settings()
    sampRegisterChatCommand('mimgui', function()
        renderWindow[0] = not renderWindow[0]
    end)
    wait(-1)
end
local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2, resY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        if imgui.Begin('Main Window', renderWindow) then
            if imgui.InputInt(u8'увеличить размер пениса',settings.prikol,-1) then
                settings()
            end     
            imgui.End()
        end
    end
)
 
Последнее редактирование:
  • Нравится
Реакции: w99zzl1 и ChаtGPT

chromiusj

7\
Модератор
5,462
3,786
пример для раксампа
Lua:
local cjc = require 'carbJsonConfig'
local settings = {
    prikol = 1,
}
function onLoad()
    cjc.load(getFolder().."\\kal.json",settings)
end
function onRunCommand(cmd)
    if cmd:find("^!num (%d+)$") then
        local num = cmd:match("^!num (%d+)$")
        settings.prikol = settings.prikol + num
        settings()
    end
end
function getFolder()
    local script_path = debug.getinfo(1, 'S').source:sub(2):gsub('\\\\', '\\')
    local script_dir = script_path:match("(.*[\\/])")
    return script_dir
end
 
  • Нравится
Реакции: Notepad++