على العموم الي يبي يعمل فينا معروف الله يجزاه خير يساعدنا ياخذ اكواد حفظ من كود برستج
-- # Server Side :
--[[
-------------------------------------------------
original script
credits to Yakuza.Real and solidsnake and kenix
viewtopic.php?f=91&t=40132
-------------------------------------------------
booo just fix it
Mr.Pres[T]ege :
Remake the script using ( SQL ) To Save it .
]]
exports.scoreboard:addScoreboardColumn('PlayTime')
addEventHandler("onResourceStart",resourceRoot,
function ( )
executeSQLQuery ( "CREATE TABLE IF NOT EXISTS Prestege_Save_Time ( PlayerSerial,Hours,Minuts,Seconds,PlayAllTime )" )
outputDebugString ("Execute SQL Loadded !")
end
)
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,
"PlayTime",
tostring( hour )..':'..tostring( min )..':'..tostring( sec )
)
end
end,
1000, 0
)
function SaveDataOnQuit ( )
local sValue = getElementData( source,'PlayTime' )
local hour = tonumber( t[ source ][ 'hour' ] or 0 )
local min = tonumber( t[ source ][ 'min' ] or 0 )
local sec = tonumber( t[ source ][ 'sec' ] or 0 )
local serial = getPlayerSerial ( source )
local Results = executeSQLQuery("SELECT * FROM Prestege_Save_Time WHERE PlayerSerial=?",serial)
if ( type ( Results ) == "table" and #Results == 0 or not Results ) then
executeSQLQuery ( "INSERT INTO Prestege_Save_Time ( PlayerSerial,Hours,Minuts,Seconds,PlayAllTime ) VALUES(?,?,?,?,?)",serial,hour,min,sec,sValue )
else
executeSQLQuery('UPDATE Prestege_Save_Time SET Hours =?, Minuts =?, Seconds =?, PlayAllTime =? WHERE PlayerSerial =?', hour, min, sec, sValue, serial)
end
t[ source ] = nil
end
addEventHandler("onPlayerQuit",root,SaveDataOnQuit)
function SaveDataOnStop ( )
for k,v in ipairs ( getElementsByType("player") ) do
local playeraccount = getPlayerAccount ( v )
local sValue = getElementData( v,'PlayTime' )
if not ( t [ v ] ) then
t [ v ] = { }
end
local hour = tonumber( t[ v ][ 'hour' ] or 0 )
local min = tonumber( t[ v ][ 'min' ] or 0 )
local sec = tonumber( t[ v ][ 'sec' ] or 0 )
local serial = getPlayerSerial ( v )
local Results = executeSQLQuery("SELECT * FROM Prestege_Save_Time WHERE PlayerSerial=?",getPlayerSerial ( v ) )
if ( type ( Results ) == "table" and #Results == 0 or not Results ) then
executeSQLQuery ( "INSERT INTO Prestege_Save_Time ( PlayerSerial,Hours,Minuts,Seconds,PlayAllTime ) VALUES(?,?,?,?,?)",serial,hour,min,sec,sValue )
else
executeSQLQuery('UPDATE Prestege_Save_Time SET Hours =?, Minuts =?, Seconds =?, PlayAllTime =? WHERE PlayerSerial =?', hour, min, sec, sValue, serial)
end
end
end
addEventHandler("onResourceStop",resourceRoot,SaveDataOnStop)
function GetDataOnStart ( )
for _,v in ipairs ( getElementsByType ( "player" ) ) do
local Results = executeSQLQuery("SELECT * FROM Prestege_Save_Time WHERE PlayerSerial=?",getPlayerSerial ( v ) )
if ( type ( Results ) == "table" and #Results == 0 or not Results ) then return end
if not t[ v ] then
t[ v ] = {}
end
t[ v ]["hour"] = tonumber(Results[1]["Hours"])
t[ v ]["min"] = tonumber(Results[1]["Minuts"])
t[ v ]["sec"] = tonumber(Results[1]["Seconds"])
end
end
addEventHandler("onResourceStart",resourceRoot,GetDataOnStart)
function GetDataOnJoin ( )
local Results = executeSQLQuery("SELECT * FROM Prestege_Save_Time WHERE PlayerSerial=?",getPlayerSerial ( source ) )
if ( type ( Results ) == "table" and #Results == 0 or not Results ) then return end
setElementData ( source, "PlayTime", Results[1]["PlayAllTime"] )
if not t[ source ] then
t[ source ] = {}
end
t[ source ]["hour"] = tonumber(Results[1]["Hours"])
t[ source ]["min"] = tonumber(Results[1]["Minuts"])
t[ source ]["sec"] = tonumber(Results[1]["Seconds"])
end
addEventHandler("onPlayerJoin",root,GetDataOnJoin)
)