Jump to content

x[ مشكلة ]x في مود توزي السعات


Recommended Posts

لو سمحتم ابي حل

انا كنت انوي حماية مود توزيع السعات من تكرار السعات

وكررت ان كلمة playTime الي موجود بالتاب ما تظهر للاعب الا لما يسجل

وذا سوا لوج اوت تختفي من التاب

ولاكن ظهرت مشكلة وانه لو سوي لوج اوت ما تنحفظ السعات

فنسخت كود حفظ البينات عند خروج الاعب

وعدلته عليه بحيث يمسح playTime لما يسوي لوج اوت

وغيرت الحدث من onPlayerQuit الي onPlayerLogout

وبرضوا صار ما يحفظ

الكووووود

  
addEventHandler("onPlayerLogin", root, ---- هنا حتي تظهر كلمة التواجد في السكور بورد 
  function() 
    exports.scoreboard:addScoreboardColumn('التواجد') 
  end 
) 
function SaveDataOnLogout () ----- وهنا حتي تختفي التواجد من الأسكور بورد 
  local acc = getPlayerAccount (source) 
  exports.scoreboard:removeScoreboardColumn('التواجد')  
  if not isGuestAccount (source) then 
    local sValue = getElementData( source,'التواجد' ) 
    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 accountName = getAccountName (acc) 
    local Results = executeSQLQuery("SELECT * FROM Prestege2_Save_Time WHERE PlayerAccount=?", accountName) 
    if ( type ( Results ) == "table" and #Results == 0 or not Results ) then 
      executeSQLQuery ( "INSERT INTO Prestege2_Save_Time ( PlayerAccount,Hours,Minuts,Seconds,PlayAllTime ) VALUES(?,?,?,?,?)", accountName,hour,min,sec,sValue ) 
    else 
      executeSQLQuery('UPDATE Prestege2_Save_Time SET Hours =?, Minuts =?, Seconds =?, PlayAllTime =? WHERE PlayerAccount =?', hour, min, sec, sValue, accountName) 
    end 
    t[ source ] = nil 
  end 
end 
addEventHandler ("onPlayerLogout", root, SaveDataOnLogout) 
  

Link to comment

اللاعب إذا سجل خروجه ما تقدر تجيب حسابه لأنه أصلا سجل خروجه ف كيف تبي تجيب حسابه ؟

أيضاً عندك بسطر 10 تحقق أن حساب اللاعب ليس زائر , أكيد بيكون زائر لأنه سجل خروجه :|

لذلك جرب كذا :

addEventHandler("onPlayerLogin", root, ---- هنا حتي تظهر كلمة التواجد في السكور بورد 
  function() 
    exports.scoreboard:addScoreboardColumn('التواجد') 
  end 
) 
function SaveDataOnLogout (previousAccount) ----- وهنا حتي تختفي التواجد من الأسكور بورد 
    exports.scoreboard:removeScoreboardColumn('التواجد') 
    local acc = previousAccount 
    local sValue = getElementData( source,'التواجد' ) 
    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 accountName = getAccountName (acc) 
    local Results = executeSQLQuery("SELECT * FROM Prestege2_Save_Time WHERE PlayerAccount=?", accountName) 
    if ( type ( Results ) == "table" and #Results == 0 or not Results ) then 
        executeSQLQuery ( "INSERT INTO Prestege2_Save_Time ( PlayerAccount,Hours,Minuts,Seconds,PlayAllTime ) VALUES(?,?,?,?,?)", accountName,hour,min,sec,sValue ) 
    else 
        executeSQLQuery('UPDATE Prestege2_Save_Time SET Hours =?, Minuts =?, Seconds =?, PlayAllTime =? WHERE PlayerAccount =?', hour, min, sec, sValue, accountName) 
    end 
    t[ source ] = nil 
end 
addEventHandler ("onPlayerLogout", root, SaveDataOnLogout) 

Link to comment

حبيبي اطرح الكود كامل؟ ناقص كودك الجدول وينه ؟

اللاعب إذا سجل خروجه ما تقدر تجيب حسابه لأنه أصلا سجل خروجه ف كيف تبي تجيب حسابه ؟

أيضاً عندك بسطر 10 تحقق أن حساب اللاعب ليس زائر , أكيد بيكون زائر لأنه سجل خروجه :|

لذلك جرب كذا :

addEventHandler("onPlayerLogin", root, ---- هنا حتي تظهر كلمة التواجد في السكور بورد 
  function() 
    exports.scoreboard:addScoreboardColumn('التواجد') 
  end 
) 
function SaveDataOnLogout (previousAccount) ----- وهنا حتي تختفي التواجد من الأسكور بورد 
    exports.scoreboard:removeScoreboardColumn('التواجد') 
    local acc = previousAccount 
    local sValue = getElementData( source,'التواجد' ) 
    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 accountName = getAccountName (acc) 
    local Results = executeSQLQuery("SELECT * FROM Prestege2_Save_Time WHERE PlayerAccount=?", accountName) 
    if ( type ( Results ) == "table" and #Results == 0 or not Results ) then 
        executeSQLQuery ( "INSERT INTO Prestege2_Save_Time ( PlayerAccount,Hours,Minuts,Seconds,PlayAllTime ) VALUES(?,?,?,?,?)", accountName,hour,min,sec,sValue ) 
    else 
        executeSQLQuery('UPDATE Prestege2_Save_Time SET Hours =?, Minuts =?, Seconds =?, PlayAllTime =? WHERE PlayerAccount =?', hour, min, sec, sValue, accountName) 
    end 
    t[ source ] = nil 
end 
addEventHandler ("onPlayerLogout", root, SaveDataOnLogout) 

افرض ان المود اشتغل وانا مسجل الدخول ما بيظهر لي الكولمن بالسكور ...

+ تراك تضيف الكولمن وتحذفه للكل لازم تحدد اللاعب ف الارقومنت الثاني .

Link to comment

t ذا الكود كامل ؟ اذا كامل فإنه ناقص وين الجدول حق التواجد اللي هو

بالنسبه للحفظ هو اذا سجل الخروج يحفظ تمام بس تحتاج اذا سجل الدخول تجيب المعلومات اللي انحفظت وتحطها بالسكور الفكره سهله بس هل الكود اللي طرجته كامل او لا؟ اذا لا اطرحه كامل مع الجدول ...

Link to comment

بس ظهرت مشكلة تنية

  
addEventHandler("onResourceStart",resourceRoot, 
    function () 
        if isGuestAccount (source) then 
            exports.scoreboard:removeScoreboardColumn('التواجد') 
        else 
            exports.scoreboard:addScoreboardColumn('التواجد') 
        end 
            executeSQLQuery ( "CREATE TABLE IF NOT EXISTS Prestege2_Save_Time ( PlayerAccount,Hours,Minuts,Seconds,PlayAllTime )" ) 
            outputDebugString ("Execute SQL Loadded !") 
    end 
) 

دلوقتي بالكود دا معناه اني لو المود رستر والاعب مسجل تجيله الكلمة بالتاب ولو مش مسجل متجيلوش هوا شغال وفعال بس يجي يقلي في اف 8

WARNING: M11\Values.lua:27: Bad argument @ 'isGuestAccount' [Expected account at argument 1, got resource]

Link to comment

اذا استخدمت الكود اللي فوق مستحيل يشتغل ولازم تحدد اللاعب اللي تبي ينحذف له الكولمن وتنقصك اشياء مثل اول ما يشتغل المود تتحقق ان اللي مسجل دخوله يظهر له التواجد واذا طفى المود تحذف التواجد ...

+ لازم تسوي لوب السورس هو المود اللي اشتغل, اطرح الكود كامل وانا اعدله لك ..

Link to comment

انت قصدك علي انهي الكود الي انا لسا طرحه دلوقتي ولا الي فوق بتاعك بتاعك اشتغل خلاصانا حطيته تخت الأتنين دول

local t = { }

local w = {}

واشتغل لاكن

الكود الي انا طرحه حاليآ واالله بيشتغل وزي الفل بس بيديني رسالة الأيرور في اف 8 ليييه طالما هوا شغال دا الي انا عايز اعرفه لو سمحت

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