EinsDreiDreiSieben/mods/atl_server_statistics/script/storage.lua

37 lines
No EOL
1.6 KiB
Lua

function atl_server_statistics.get_value(player_name, key)
return player_name and atl_server_statistics.mod_storage:get_int(player_name .. "_" .. key) or 0
end
function atl_server_statistics.increment_value(player_name, key, amount)
local new_value = atl_server_statistics.get_value(player_name, key) + (amount or 0)
atl_server_statistics.mod_storage:set_int(player_name .. "_" .. key, new_value)
return new_value
end
function atl_server_statistics.player_has_stats(player_name)
for _, stat in ipairs(atl_server_statistics.statistics) do
if atl_server_statistics.mod_storage:contains(player_name .. "_" .. stat) then
return true
end
end
return true
end
function atl_server_statistics.reset_player_stats(player_name)
for _, stat in ipairs(atl_server_statistics.statistics) do
atl_server_statistics.mod_storage:set_int(player_name .. "_" .. stat, 0)
end
atl_server_statistics.mod_storage:set_int(player_name .. "_connect_time", os.time())
end
function atl_server_statistics.format_playtime(seconds)
return string.format("%02d:%02d:%02d", math.floor(seconds / 3600), math.floor((seconds % 3600) / 60), seconds % 60)
end
function atl_server_statistics.update_playtime_on_stats(player_name)
local connect_time = atl_server_statistics.mod_storage:get_int(player_name .. "_connect_time")
if connect_time > 0 then
atl_server_statistics.increment_value(player_name, "PlayTime", os.time() - connect_time)
atl_server_statistics.mod_storage:set_int(player_name .. "_connect_time", os.time())
end
end