Jump to content

إسـتفـسار :~$


MuhannaDx

Recommended Posts

السلام عليكم ورحمة الله وبركاتهه ..

كيفككم عسسآكم بخخير ! .. دؤوم إن شاء الله

عندي كم سؤال والي م يعرف لا يـفـتـي لول ..

الأسئله :

setAccountData ( account theAccount, string key, string value ) 

طيب زي مانشوف string key = المفتاح

و string value = القيمة

كل شيء تمام

السؤال كتـالي

لو سويت أكثر من قيمة لمفتاح واحد

وش يصير تنمسح القيمة الاولى ؟

او يكون للمفتاح اكثر من قيمة ؟

والسؤال الثاني :

وش هو الـ

return 

ابي شرح لاشافوه الناس قالو كيف شرحه ؟ ادري انه شرحه صعب

والصراحه م فهمت

يوم يقولون يرجع القيمة

طيب يرجع القيمة شلون ؟ ولإيش ؟

مرهه مخبص فيه

السؤال الثالث :

طريقة حساب [ Drawing ]

نفس الـ [ GUI ]

ولو لا وش الفرق ؟؟

والختام صلو على نبينا (عليه افضل الصلاة والسلام) , ء

والسلام عليكم ورحمة الله وبركاته

Link to comment

1- ما بيكون اكثر من قيمة بتتغير القيمة لكن تقدر تستعمل الجدول مشان تخزن اكثر من شيء لو تبي

3- الDrawing

مختلف تماماً عن الGUI

2- الريترن مو صعب ولا شيء لكن ناقص طريفة مشان نفهم الناس كيف تشتغل

بحاول افهمك اكبر قدر ممكن و ان شاء الله تستوعب

الـ

return 

هذي اول شيء توقف الفنكشن تماماً

يعني مثلاً توقفه كله من لوب و اشتراطات و كل شيء داخله توقفه

وبعدين ترجع لك قيمة كيف ترجع لك قيمة؟

فنلفترض انك تبي تسوي فنكشن يجمع لك رقمين و يجيب لك الناتج

تستعمل في هذي الحالة الreturn

مشان تخلي الفنكشن يساوي هذي القيمة

مثال !

function get9() 
    number = 8 + 1 
    return number 
end 

الحين لو انت سويت كذا

print(get9()) 

بيطلع رقم 9 لانك سويت return

لرقم 9

ان شاء الله فهمت

Link to comment

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

اما الدي اكس فـ تحتاج تسوي لكل شغلة مسويها سواء تكست .. ولا ريكتنقل الخ ..

بس بالحسابات نفس الشي .

وهذا شرح للريتيرن :

طبعا الشرح اللي مسوي له اقتباس يختلف عن الرابط اللي بالرد .. ف شوف الاثنين انت .
return :

https://forum.multitheftauto.com/viewtopic.php?f ... 9&p=801919

تستخدم بـ الكاستوم فنكشن return الـ

كيف يعني ؟ .. مثلأ تبي تسوي فنكشن يجيب لك قيمة متغير ما

local Number = 25 
  
function getValue (   ) 
  if ( Number ) then 
      return Number 
  end 
end 

تقولي وش فائدة الـ ريترن هنا ؟ لو ما حطيت ريترن م راح يرجع لك الرقم

او مثلأ

local Count = 0  
  
addEventHandler ( "onClientGUIClick", resourceRoot, function (  ) 
    if ( Count == 4 ) then 
        return 
    end 
    Count = Count + 1  
end ) 

هنا كل ما تضغط ع الزر راح يزود متغير كاونت .. وبكل ضغطة يتحقق لو المتغير صار 4 فـ راح يسوي ريترن اند

تقولي هنا وش فائدة الريترن ؟ ولو شلتها وش راح يصير ؟

الريترن هنا راح توقف الكود وما راح يصير شي

تقولي لو شلتها

local Count = 0  
  
addEventHandler ( "onClientGUIClick", resourceRoot, function (  ) 
    if ( Count == 4 ) then 
        
    end 
    Count = Count + 1  
end ) 

راح يصير مجرد تحقق لا اكثر مثلأ لو كان 4 يسوي مخرج شات مثلأ

local Count = 0  
  
addEventHandler ( "onClientGUIClick", resourceRoot, function (  ) 
    if ( Count == 4 ) then 
       outputChatBox ( "Count is 4" ) 
    end  
    Count = Count + 1  
end ) 

يعني راح يصير تحقق لو المتغير صار 4 يسوي كودكـ ونقفل التحقق ويكمل باقي الاكواد .

Link to comment
من قلك مختلف ؟ .. يختلف ف حالة وحدة فقط اذا بالـ جيو سويت لوحة وسويت عليها الازرار والخ .. تحتاج تسوي الحسابات للوحة فقط

اما الدي اكس فـ تحتاج تسوي لكل شغلة مسويها سواء تكست .. ولا ريكتنقل الخ ..

بس بالحسابات نفس الشي .

وضح شوي؟

Link to comment

شكرا لكم فهمت ال [ return ]

من المثالين كلهم أحسن من بعض ~

ويا DABL

انا قصدي ف الحسابات مب فالشكل او الطريقة او الحدث

قصدي بحسابات المقاسات وكذا .

+

شوفو ذا المثال كم بتصير قيمة الداتا ؟

  
addEventHandler("onPlayerJoin", root, 
function () 
theAccount = getPlayerAccount ( source ) 
theData = getAccountData ( theAccount , "Level" ) 
    if theData then 
        if theData == "1" then 
        setAccountData ( theAccount , "Level", "2" ) 
        end 
    end 
end 
) 
  

الحين لو كان جاب قيمة الاكاونت داتا وكانت فعلاً تساوي 1

يحط ف نفس المفتاح قيمة = 2

طيب الحين لو ازيد اجيبها كم تكون القيمة ؟

Link to comment
في مثالك لو الشرط تحقق الداتا بتصير 2

ما تقدر تحفظ اكثر من قيمة علي مفتاح واحد >.<

تقدر تسويها بجدول لو تبي

الاكونت داتا ماتقبل الجداول

لو يبي يستخدمها بجدول

يستخدم مع الاكونت داتا

toJSON 
fromJSON 
Link to comment
في مثالك لو الشرط تحقق الداتا بتصير 2

ما تقدر تحفظ اكثر من قيمة علي مفتاح واحد >.<

تقدر تسويها بجدول لو تبي

الاكونت داتا ماتقبل الجداول

لو يبي يستخدمها بجدول

يستخدم مع الاكونت داتا

toJSON 
fromJSON 

=_="

ادري انه ما يقبل جداول لكن لو هو راجع الويكي بيعرف انه لازم يستعمل ذول

Link to comment

أزبد لكم .. لول

ابي اسوي مود الليفل بـالاكاونت داتا مابحط .. ادري انها سهله

الاكواد ~

كلينت ~

  
local x, y = guiGetScreenSize() 
local x = x - x 
start = 0 
ValLevel = "1" 
  
function SystemLevel() 
dxDrawRectangle ( x, y - 35, 163, 35, tocolor(0, 0, 0, 175), false ) 
dxDrawRectangle ( x, y - 35, start, 35, tocolor(255, 0, 0, 255), false) 
dxDrawText ( ValLevel, x + 95, y - 35, 163, y, tocolor(255, 255, 255, 255), 1.00, "beckett", "left", "bottom", false, false, false, false, false ) 
dxDrawText ( "Level :", x, y - 35, 95, y, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "center", false, false, false, false, false )    
    if start >= 163 then -- هنا سويت تحقق ان ستارت صارت اكبر من 163 الي هي 100 اكس بي زي كذا ,, لو مافهمت جربها 
    IF() 
    end 
end 
addEventHandler ( "onClientRender", root, SystemLevel ) 
  
addEvent ( "Plus", true ) 
function Plus() 
start = start + 5 
end 
addEventHandler ( "Plus", root, Plus ) 
  
function IF() 
    if start >= 100 then 
    start = 0 
    triggerServerEvent ( "get:Acc", localPlayer ) 
    end 
end 
  
addEvent ( "lbl2", true ) 
function lbl2() 
ValLevel = "2" 
end 
addEventHandler ( "lbl2", root, lbl2 ) 
  
addEvent ( "lbl3", true ) 
function lbl3() 
ValLevel = "3" 
end 
addEventHandler ( "lbl3", root, lbl3 ) 
  
addEvent ( "lbl4", true ) 
function lbl4() 
ValLevel = "4" 
end 
addEventHandler ( "lbl4", root, lbl4 ) 
  
addEvent ( "lbl5", true ) 
function lbl5() 
ValLevel = "5" 
end 
addEventHandler ( "lbl5", root, lbl5 ) 
  
addEvent ( "lbl6", true ) 
function lbl6() 
ValLevel = "6" 
end 
addEventHandler ( "lbl6", root, lbl6 ) 
  
addEvent ( "lbl7", true ) 
function lbl7() 
ValLevel = "7" 
end 
addEventHandler ( "lbl7", root, lbl7 ) 
  
addEvent ( "lbl8", true ) 
function lbl8() 
ValLevel = "8" 
end 
addEventHandler ( "lbl8", root, lbl8 ) 
  
addEvent ( "lbl9", true ) 
function lbl9() 
ValLevel = "9" 
end 
addEventHandler ( "lbl9", root, lbl9 ) 
  
addEvent ( "lbl10", true ) 
function lbl10() 
ValLevel = "10" 
start = 163 
end 
addEventHandler ( "lbl10", root, lbl10 ) 
  

سيرفر ~

  
function Plus( Message ) 
theAcc = getPlayerAccount ( source ) 
    if Message == "Plus" then 
        if getAccountData ( TheAcc, "Level" ) == "1"or"2"or"3"or"4"or"5"or"6"or"7"or"8"or"9"or"10" then 
        triggerClientEvent ( source,"Plus", source ) 
        end 
    end 
end 
addEventHandler ( "onPlayerChat", root, Plus ) 
  
addEvent ( "get:Acc", true ) 
function Acc() 
theAcc = getPlayerAccount ( source ) 
theData = getAccountData ( theAcc, "Level" ) 
    if theData == "1" then 
    outputChatBox ("بالفعل تساوي 1") 
    triggerClientEvent ( source, "lbl2", source ) 
    setAccountData ( theAcc, "Level", "2" ) 
        elseif theData == "2" then 
        outputChatBox ("بالفعل تساوي 2") 
        triggerClientEvent ( source, "lbl3", source ) 
        setAccountData ( theAcc, "Level", "3" ) 
            elseif theData == "3" then 
            outputChatBox ("بالفعل تساوي 3") 
            triggerClientEvent ( source, "lbl4", source ) 
            setAccountData ( theAcc, "Level", "4" ) 
                elseif theData == "4" then 
                outputChatBox ("بالفعل تساوي 4") 
                triggerClientEvent ( source, "lbl5", source ) 
                setAccountData ( theAcc, "Level", "5" ) 
                    elseif theData == "5" then 
                    outputChatBox ("بالفعل تساوي 5") 
                    triggerClientEvent ( source, "lbl6", source ) 
                    setAccountData ( theAcc, "Level", "6" ) 
                        elseif theData == "6" then 
                        outputChatBox ("بالفعل تساوي 6") 
                        triggerClientEvent ( source, "lbl7", source ) 
                        setAccountData ( theAcc, "Level", "7" ) 
                            elseif theData == "7" then 
                            outputChatBox ("بالفعل تساوي 7") 
                            triggerClientEvent ( source, "lbl8", source ) 
                            setAccountData ( theAcc, "Level", "8" ) 
                                elseif theData == "8" then 
                                outputChatBox ("بالفعل تساوي 8") 
                                triggerClientEvent ( source, "lbl9", source ) 
                                setAccountData ( theAcc, "Level", "9" ) 
                                    elseif theData == "9" then 
                                    outputChatBox ("بالفعل تساوي 9") 
                                    triggerClientEvent ( source, "lbl10", source ) 
                                    setAccountData ( theAcc, "Level", "10" ) 
                                        elseif theData == "10" then 
                                        outputChatBox ("بالفعل تساوي 10") 
                                        triggerClientEvent ( source, "lbl10", source ) 
    end 
end 
addEventHandler ( "get:Acc", root, Acc ) 
  
  
  

طبعا الي يسـألني ليش محطي لمن يكتب بلس يزيد اكسبي اللفل

عشان اانا بسيرفر محلي لو حطيت حدث إاذا قتل شخص

مافي حد اجرب المود عليه عشان كذا حدث اذا كتب لول ..

المود شغال كويس لاكن مادري ليه احسها مب بسهوله ذي .. وش الاخطاء عندي ؟ وش احسن طريقة ؟

Link to comment

function Plus( Message ) 
local theAcc = getPlayerAccount ( source ) 
    if Message == "Plus" then 
     local Data = getAccountData ( TheAcc, "Level" ) 
        if Data == "1" or Data == "2" or Data == "3" or Data == "4" or Data == "5" or Data == "6" or Data == "7" or Data == "8" or Data == "9" or Data == "10"  then 
        triggerClientEvent ( source,"Plus", source ) 
        end 
    end 
end 
addEventHandler ( "onPlayerChat", root, Plus ) 
Link to comment
function Plus( Message ) 
local theAcc = getPlayerAccount ( source ) 
    if Message == "Plus" then 
     local Data = getAccountData ( TheAcc, "Level" ) 
        if Data == "1" or Data == "2" or Data == "3" or Data == "4" or Data == "5" or Data == "6" or Data == "7" or Data == "8" or Data == "9" or Data == "10"  then 
        triggerClientEvent ( source,"Plus", source ) 
        end 
    end 
end 
addEventHandler ( "onPlayerChat", root, Plus ) 

شوف الكلينت و السيرفر وافهم طريقتي ~~ وش هاذ التخبص بـاكوادك لول

Link to comment

اخي نصيحة فقط

بدل ما تحط القيمة كذا

"1"

حطها كذا

1

مثلا

function Plus( Message ) 
theAcc = getPlayerAccount ( source ) 
    if Message == "Plus" then 
        if getAccountData ( TheAcc, "Level" ) >= 1 and getAccountData ( TheAcc, "Level" ) <= 10 then 
        triggerClientEvent ( source,"Plus", source ) 
        end 
    end 
end 
addEventHandler ( "onPlayerChat", root, Plus ) 
  
addEvent ( "get:Acc", true ) 
function Acc() 
theAcc = getPlayerAccount ( source ) 
theData = getAccountData ( theAcc, "Level" ) 
    if theData == 1 then 
    outputChatBox ("بالفعل تساوي 1") 
    triggerClientEvent ( source, "lbl2", source ) 
    setAccountData ( theAcc, "Level", 2 ) 
        elseif theData == 2 then 
        outputChatBox ("بالفعل تساوي 2") 
        triggerClientEvent ( source, "lbl3", source ) 
        setAccountData ( theAcc, "Level", 3 ) 
            elseif theData == 3 then 
            outputChatBox ("بالفعل تساوي 3") 
            triggerClientEvent ( source, "lbl4", source ) 
            setAccountData ( theAcc, "Level", 4 ) 
                elseif theData == 4 then 
                outputChatBox ("بالفعل تساوي 4") 
                triggerClientEvent ( source, "lbl5", source ) 
                setAccountData ( theAcc, "Level", 5 ) 
                    elseif theData == 5 then 
                    outputChatBox ("بالفعل تساوي 5") 
                    triggerClientEvent ( source, "lbl6", source ) 
                    setAccountData ( theAcc, "Level", 6 ) 
                        elseif theData == 6 then 
                        outputChatBox ("بالفعل تساوي 6") 
                        triggerClientEvent ( source, "lbl7", source ) 
                        setAccountData ( theAcc, "Level", 7 ) 
                            elseif theData == 7 then 
                            outputChatBox ("بالفعل تساوي 7") 
                            triggerClientEvent ( source, "lbl8", source ) 
                            setAccountData ( theAcc, "Level", 8 ) 
                                elseif theData == 8 then 
                                outputChatBox ("بالفعل تساوي 8") 
                                triggerClientEvent ( source, "lbl9", source ) 
                                setAccountData ( theAcc, "Level", 9 ) 
                                    elseif theData == 9 then 
                                    outputChatBox ("بالفعل تساوي 9") 
                                    triggerClientEvent ( source, "lbl10", source ) 
                                    setAccountData ( theAcc, "Level", 10 ) 
                                        elseif theData == 10 then 
                                        outputChatBox ("بالفعل تساوي 10") 
                                        triggerClientEvent ( source, "lbl10", source ) 
    end 
end 
addEventHandler ( "get:Acc", root, Acc )  

بالارقام ما تحتاج تحط علامة تنصيص (" ")

Link to comment
^ ماعليش

طيب اخي فيه مشكلة لو حط سترنق او لا ؟

بسم الله موضوعي يكوتش امزح امزح عادي خذ الاكواد واعتبرها حقوق لك مسامحك لول ..

طيب ي سفن اما مسوي

setAccountData (theAcc,"Level", "1")

لو تلاحظ مسوي الرقم بين قوسين

لازم اتحقق ان الداتا برضو بين قوسين او ماتفرق ؟

Link to comment
عندك طرق كثيره

  
table or setElementData - getElementData or executeSQLQuery or dbFunctions 

setElementData - getElementData 

الالمنت داتا وهمية بس يقدر يستخدمها مع

setAccountData - getAccountData 
Link to comment
بنظركم طريقتي كويسة او مافيها أخطاء لنظام اللفل ؟

رأيي الشخصي

ما اتوقع وصل مودك لدرجة انه يكون (نظام)ـ

يحتاج كثير من الاكواد التكميلية

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