Jump to content

عندي مشكله


Recommended Posts

السلام عليكم

ي شباب عندي مشكله بالوقت ماينحفظ ولا عرفت اضبطه

اذا سويت رستارت لسيرفر

او اذا سويت رستارت للمود نفسهه ينعاد الوقت من 0

ابي الحل اببي الوقت ينحفظ الى يعرف يفيدني

Link to comment

خلاص بسيطه ض1 الحل عندي خخ

Remake the script using ( SQL ) To Save it . 
  
]] 
exports.scoreboard:addScoreboardColumn('PlayTime') 
  
addEventHandler('onResourceStart',resourceRoot, 
    function (      ) 
            executeSQLQuery ( 'CREATE TABLE IF NOT EXISTS Time_Table ( 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 Time_Table WHERE PlayerSerial=?',serial) 
     if ( type ( Results ) == 'table' and #Results == 0 or not Results ) then 
        executeSQLQuery ( 'INSERT INTO Time_Table ( PlayerSerial,Hours,Minuts,Seconds,PlayAllTime ) VALUES(?,?,?,?,?)',serial,hour,min,sec,sValue ) 
    else 
        executeSQLQuery('UPDATE Time_Table 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 Time_Table WHERE PlayerSerial=?',getPlayerSerial ( v ) ) 
     if ( type ( Results ) == 'table' and #Results == 0 or not Results ) then 
        executeSQLQuery ( 'INSERT INTO Time_Table ( PlayerSerial,Hours,Minuts,Seconds,PlayAllTime ) VALUES(?,?,?,?,?)',serial,hour,min,sec,sValue ) 
    else 
        executeSQLQuery('UPDATE Time_Table 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 Time_Table 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 Time_Table 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) 

هذى المود كامل بس حطه ملف سيرفر , + هالمود يحفظ على قاعده البيانات يعني مايروح ^

Link to comment
اذا سويت ريستارت للمود ( كل الي مسجلين دخولهم تروح ساعاتهم والحل ؟؟؟

انك تتضيف اسم المود في ملف

mtaserver

ولا تسوي ريستارت والناس داخلين حساباتهم ..

خخخخخخخخخ من قال؟ ض1 شوف الكود اله حطيته لو الكل داخل حسابه و رستارت الف مره مايروحون الساعات :lol:

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...