local config =
{
delay = 5000 -- in milliseconds
}
function onTime(time)
function do_save_player(pid)
local start = os.clock()
doPlayerSave(pid)
local guid = getPlayerGUID(pid)
local house = getHouseByPlayerGUID(guid)
if house then
doSaveHouse(house)
end
table.insert(logs, "[" .. os.date("%m/%d/%y %H:%M:%S") .. "] Player #" .. guid .. (house ~= nil and "(house)" or "") .. " has been saved in " .. os.clock() - start .. ".")
end
local logs, i, save_start = {}, 0, os.clock()
table.insert(logs, "[" .. os.date("%m/%d/%y %H:%M:%S") .. "] doSave started.")
for _, pid in pairs(getPlayersOnline()) do
if i % 2 == 0 then
do_save_player(pid)
else
addEvent(valid(do_save_player), config.delay, pid)
end
i = i + 1
end
table.insert(logs, "[" .. os.date("%m/%d/%y %H:%M:%S") .. "] doSave finished in " .. os.clock() - save_start .. ".")
local file = io.open(getLogsDir() .. "save.log", "a")
if file then
file:write(table.concat(logs, "\n"))
file:close()
end
return true
end