Isto resolve o problema:
function getStart ()
if (getElementData (localPlayer, "tempo:Logou")) then return end -- Evita de resetar o tempo online quando este resource for reiniciado, impedindo que os players resetem suas datas.
setElementData (localPlayer, "tempo:Logou", getTickCount())
end
addEventHandler ("onClientResourceStart", resourceRoot, getStart)
function renderTest ()
if getElementData (localPlayer, "tempo:Logou") then
local tempoJogando = getTickCount() - getElementData (localPlayer, "tempo:Logou")
local hours = tempoJogando/3600000
local minutes = (tempoJogando/60000) % 60
local seconds = (tempoJogando/1000) % 60
local tempoOnline = string.format("%02d:%02d:%02d", hours, minutes, seconds)
dxDrawText ("Tempo Online: "..tempoOnline.."", 653, 413, 874, 441, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end
end
addEventHandler ("onClientRender", root, renderTest)
Obs: No cálculo do servidor, estará errado agora. Pois a data do jogador foi obtida no cliente e não no servidor. Mas seu DX estará sempre certo.
Remova a parte de setar a data no jogador ao fazer login no servidor.