Для чего такие манипуляции? Всё же делается гораздо проще.
--Псевдокод
local players = {vasya = {timestamp = false, rep = 0}} --таблица игроков с репутацией
--Допустим, игрок изменил как-то "репутацию" на 1 единицу вверх.
local function getTimestamp()
local f = io.open("/tmp/time", "w")
f:write("time")
f:close()
return fs.lastModified("/tmp/time") / 1000
end
players.vasya.timestamp = getTimestamp() + 86400 -- записываем точное время + добавляем сутки
--Допустим, игрок захотел изменить репутацию
if players.vasya.timestamp <= getTimestamp() or not players.vasya.timestamp--Если таймштаймп "Васи" меньше или равен точному времени или таймштаймп вообще false - значит прошли сутки или игрок еще не голосовал. Изменяем репутацию...
rep()
else
--иначе делаем что-то другое, например пишем что голосовать можно только через сутки
end