SaveData

• Библиотека для удобного сохранения данных в JSON формат по пути data/ambi/savedata

Пример сохранения убийств игрока

local SD = Ambi.Packages.Out( 'savedata' ) -- Распаковываем библиотеку

local NAME_DB = 'kills'
local STRUCTURE_DB = { -- Какие будут ключи и дефолтные значения
    SteamID = '', 
    Kills = 0 
}

local DB = SD.Create( NAME_DB, STRUCTURE_DB  ) -- Создаёт файл и таблицу
-- возвращает NAME_DB

hook.Add( '[Ambi.Player.Kill]', 'ExampleSaveData', function( ePly, eTarget )
    if not eTarget:IsPlayer() then return end
    
    local sid = ePly:SteamID()
    
    SD.IsValid( DB, { SteamID = sid }, function()
        -- Если есть подтаблица игрока в таблице
        
        local kills = SD.Get( DB, { SteamID = sid } ) -- вернёт таблицу
        kills = kills.Kills -- берём из неё только Kills
         
        SD.Set( DB, 
            { SteamID = sid }, -- по каким ключам ориентируемся, аналог WHERE
            { Kills = kills + 1 } -- что меняем?
        )
    end, function() 
        -- Если её нет, то создадим
        SD.Init( DB, { 
            SteamID = id, 
            Kills = 1 
        } )
    end )
end )

Last updated

Was this helpful?