Search the Community
Showing results for tags 'datos'.
-
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 )