Jump to content

Help! Sqllite


gokalpfirat

Recommended Posts

exports.scoreboard:addScoreboardColumn('PlayTime') 
  
local t = { } 
  
 addEventHandler( 'onResourceStart', resourceRoot, 
    function( ) 
        executeSQLQuery( 'CREATE TABLE IF NOT EXISTS SerialData ( serialPlayer TEXT, key STRING, value TEXT )' ) 
    end 
) 
  
aType = 
{ 
    [ 'number' ] = true ; 
    [ 'string' ] = true ; 
} 
  
function setPlayerSerialData( player, key, value ) 
    if not isElement( player ) then 
        return 
    end 
    if type( key ) == 'string' and aType[ type( value ) ] then 
        if getPlayerSerialData( player, key ) then 
            executeSQLQuery( 'UPDATE SerialData SET serialPlayer = ?, key = ?, value = ?', getPlayerSerial( player ), key, value ) 
            return true 
        else 
            executeSQLQuery( 'INSERT INTO SerialData( serialPlayer, key, value ) VALUES( ?, ?, ? )', getPlayerSerial( player ), key, value ) 
            return true 
        end 
    end 
end 
  
function getPlayerSerialData( player, key ) 
    if not isElement( player ) then 
        return 
    end 
    if type( key ) == 'string' then 
        result = executeSQLQuery( 'SELECT value FROM SerialData WHERE key = ? AND serialPlayer = ?', key, getPlayerSerial( player ) ) 
    end 
    if result and type( result ) == 'table' and #result > 0 then 
        if result[ 1 ][ 'value' ] then 
            return result[ 1 ][ 'value' ] 
        else 
            return false 
        end 
    end 
    return false 
end 
  
function removePlayerSerialData( player, key ) 
    if not isElement( player ) then 
        return 
    end 
    if type( key ) == 'string' then 
        if getPlayerSerialData( player, key ) then 
            executeSQLQuery( 'DELETE FROM SerialData WHERE key = ? AND serialPlayer = ?', key, getPlayerSerial( player ) ) 
            return true 
        end 
    end 
end 
  
function getAllPlayerSerialData( player ) 
    if not isElement( player ) then 
        return 
    end 
    if type( key ) == 'string' then 
        aResult = executeSQLQuery( 'SELECT * FROM SerialData WHERE serialPlayer = ?', getPlayerSerial( player ) ) 
    end 
    if aResult and type( aResult ) == 'table' and #aResult > 0 then 
        return aResult[ 1 ] 
    else 
        return false 
    end 
    return false 
end 
  
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 onPlayerQuit ( ) 
        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 ) 
        setPlayerSerialData (source, "PlayTime-hour", tostring(hour) ) 
        setPlayerSerialData (source, "PlayTime-min", tostring(min) ) 
        setPlayerSerialData (source, "PlayTime-sec", tostring(sec) ) 
        setPlayerSerialData (source, "PlayTime", tostring(sValue) ) 
    t[ source ] = nil 
end 
  
function onPlayerJoin ( ) 
    if ( playeraccount ) then 
        local time = getPlayerSerialData(source,"PlayTime") 
    local hou = getPlayerSerialData(source,"PlayTime-hour") 
    local min = getPlayerSerialData(source,"PlayTime-min") 
    local sec = getPlayerSerialData(source,"PlayTime-sec") 
        if ( time ) then 
            setElementData ( source, "PlayTime", time ) 
  
                             t[ source ]["hour"] = tonumber(hou) 
                             t[ source ]["min"] = tonumber(min) 
                             t[ source ]["sec"] = tonumber(sec) 
                else 
            setElementData ( source, "PlayTime",0 ) 
            setPlayerSerialData (source, "PlayTime", 0 ) 
        end 
    end 
end 
addEventHandler ( "onPlayerQuit", root, onPlayerQuit ) 
addEventHandler ( "onPlayerJoin", root, onPlayerJoin ) 

When i quit and join again it wont saves.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...