A nice way to save load data is by using json, here is one way to do it.
First, somewhere early in your code load the json library...
pcall(function() require "json" end) |
Then here is a save routine for a sample table:
function save()
if json then
local savedata={}
savedata["highscore"]=hiscore
local file=io.open("|D|data.txt","w+")
if file then
pcall(function() file:write(json.encode(savedata)) end)
file:close()
end
end
end |
Just copy the variables you need saving into the temporary savedata table.
Alternatively you could have the savedata table outside the function and use it throughout your game.
Here is a load routine to load the table:
function load()
if json then
local file=io.open("|D|data.txt","r")
if file then
local originaldata=file:read()
file:close()
if originaldata then
local decoded=json.decode(originaldata)
if decoded then
hiscore=tonumber(decoded["hiscore"])
end
end
end
end
if hiscore==nil then hiscore=0 end
end |
Notice the check at the end to set valid values if for any reason the results are nil.
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
https://deluxepixel.com
Comments
Likes: SinisterSoft, MoKaLux
[-] Liasoft
PS: for ref