Buenas, yo tengo el resource de tiempo en el servidor, el cual guarda el tiempo total que el jugador tiene en el servidor (se haya desconectado o no)
el problema es cuando se trata de darle stop o restart al resource, ya que el mismo una vez parado el resource o reiniciado borra todos los datos y se pierden
Obviamente el stop lo he hecho porque he tenido problemas con el scoreboard ya que se ha bugeado y el tiempo en el servidor no aparecía y tenia que reiniciar el resource ocasionando que las horas de los jugadores se perdieran
Si alguien me puede ayudar le agredeceria muchísimo!
Dejo el codigo lua debajo
exports.scoreboard:addScoreboardColumn('Online')
local t = { }
function checkValues( source,arg1,arg2)
if (arg2 >= 60) then
t[ source ][ 'min' ] = tonumber( t[ source ][ 'min' ] or 0 ) + 1
t[ source ][ 'sec' ] = 0
end
if (arg1 >= 60) then
t[ source ][ 'min' ] = 0
t[ source ][ 'hour' ] = tonumber( t[ source ][ 'hour' ] or 0 ) + 1
end
return arg1, arg2
end
setTimer(
function( )
for _, v in pairs( getElementsByType( "player" ) ) do
if (not t[ v ]) then
t[ v ] = {
["hour"] = 0,
["min"] = 0,
["sec"] = 0
}
end
t[ v ][ 'sec' ] = tonumber( t[ v ][ 'sec' ] or 0 ) + 1
local min,sec = checkValues (
v,
t[ v ][ 'min' ] or 0,
t[ v ][ 'sec' ] or 0
)
local hour = tonumber( t[ v ][ 'hour' ] or 0 )
setElementData(
v,
"Online",
tostring( hour )..':'..tostring( min )..':'..tostring( sec )
)
end
end,
1000, 0
)
function onPlayerQuit ( )
local playeraccount = getPlayerAccount ( source )
if ( playeraccount ) and not isGuestAccount ( playeraccount ) then
local sValue = getElementData( source,'Online' )
local hour = tonumber( t[ source ][ 'hour' ] or 0 )
local min = tonumber( t[ source ][ 'min' ] or 0 )
local sec = tonumber( t[ source ][ 'sec' ] or 0 )
setAccountData ( playeraccount, "Online-hour", tostring(hour) )
setAccountData ( playeraccount, "Online-min", tostring(min) )
setAccountData ( playeraccount, "Online-sec", tostring(sec) )
setAccountData ( playeraccount, "Online", tostring(sValue) )
end
t[ source ] = nil
end
function onPlayerLogin (_, playeraccount )
if ( playeraccount ) then
local time = getAccountData ( playeraccount, "Online" )
local hou = getAccountData ( playeraccount, "Online-hour")
local min = getAccountData ( playeraccount, "Online-min")
local sec = getAccountData ( playeraccount, "Online-sec")
if ( time ) then
setElementData ( source, "Online", time )
t[ source ]["hour"] = tonumber(hou)
t[ source ]["min"] = tonumber(min)
t[ source ]["sec"] = tonumber(sec)
else
setElementData ( source, "Online",0 )
setAccountData ( playeraccount, "Online",0 )
end
end
end
addEventHandler ( "onPlayerQuit", root, onPlayerQuit )
addEventHandler ( "onPlayerLogin", root, onPlayerLogin )