Ahmed_Negm Posted June 28, 2016 Share Posted June 28, 2016 لو سمحتم ابي حل انا كنت انوي حماية مود توزيع السعات من تكرار السعات وكررت ان كلمة 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
N3xT Posted June 28, 2016 Share Posted June 28, 2016 اللاعب إذا سجل خروجه ما تقدر تجيب حسابه لأنه أصلا سجل خروجه ف كيف تبي تجيب حسابه ؟ أيضاً عندك بسطر 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
Ahmed_Negm Posted June 28, 2016 Author Share Posted June 28, 2016 تمام نجحت الشكر لك بس في مشكلة كمان لو سمحت اني لما اعمل توزيع اذا رسترت المود التوزيع بيروح التوزيع Link to comment
Ahmed_Negm Posted June 29, 2016 Author Share Posted June 29, 2016 ERROR:M11/Values.lua25:attept to index global 't' (a nil value) مفيش سطر في الدي بق غير دا الي بيتكلم عن المشكلة ياريت لو انت فاهم المشكلة تفهمالي معاك Link to comment
فاّرس Posted June 29, 2016 Share Posted June 29, 2016 حبيبي اطرح الكود كامل؟ ناقص كودك الجدول وينه ؟ اللاعب إذا سجل خروجه ما تقدر تجيب حسابه لأنه أصلا سجل خروجه ف كيف تبي تجيب حسابه ؟ أيضاً عندك بسطر 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
فاّرس Posted June 29, 2016 Share Posted June 29, 2016 t ذا الكود كامل ؟ اذا كامل فإنه ناقص وين الجدول حق التواجد اللي هو بالنسبه للحفظ هو اذا سجل الخروج يحفظ تمام بس تحتاج اذا سجل الدخول تجيب المعلومات اللي انحفظت وتحطها بالسكور الفكره سهله بس هل الكود اللي طرجته كامل او لا؟ اذا لا اطرحه كامل مع الجدول ... Link to comment
Ahmed_Negm Posted June 29, 2016 Author Share Posted June 29, 2016 ال t موجود بس خلاص هوا اشتغل صراحة وشكرآ Link to comment
Ahmed_Negm Posted June 29, 2016 Author Share Posted June 29, 2016 بس ظهرت مشكلة تنية 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
فاّرس Posted June 29, 2016 Share Posted June 29, 2016 اذا استخدمت الكود اللي فوق مستحيل يشتغل ولازم تحدد اللاعب اللي تبي ينحذف له الكولمن وتنقصك اشياء مثل اول ما يشتغل المود تتحقق ان اللي مسجل دخوله يظهر له التواجد واذا طفى المود تحذف التواجد ... + لازم تسوي لوب السورس هو المود اللي اشتغل, اطرح الكود كامل وانا اعدله لك .. Link to comment
Ahmed_Negm Posted June 29, 2016 Author Share Posted June 29, 2016 انت قصدك علي انهي الكود الي انا لسا طرحه دلوقتي ولا الي فوق بتاعك بتاعك اشتغل خلاصانا حطيته تخت الأتنين دول local t = { } local w = {} واشتغل لاكن الكود الي انا طرحه حاليآ واالله بيشتغل وزي الفل بس بيديني رسالة الأيرور في اف 8 ليييه طالما هوا شغال دا الي انا عايز اعرفه لو سمحت Link to comment
فاّرس Posted June 29, 2016 Share Posted June 29, 2016 سطر 4 غير معرف السورس لازم تسوي لوب وتتحقق من الحسابات, راح تحتاج: getElementsByType -- players ( loop for ... ) getPlayerAccount Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now