Jump to content

TheEarl

Members
  • Posts

    7
  • Joined

  • Last visited

Everything posted by TheEarl

  1. فايدة التحقق بشكل عام هو تفادي الاخطاء عشان ممكن انك تسوي مود كامل وتنسى تعرف متغير او تحط قيمة افتراضية لداتا... الخ و هذا الي سألت عنه هو تحقق if getElementData(Player,"LEVEL") and tonumber(getElementData(Player,"LEVEL")) then -- تحققت انه في داتا , مفروض انك معرف الداتا من الاول او مسوي لها قيمة افتراضية if getElementData(Player,"LEVEL") في الجزء الأول -- تحققت ان القيمة رقم عشان العمليات الي هنسويها لازم تكون القيمة حق الداتا رقم tonumber(getElementData(Player,"LEVEL")) في الجزء الثاني وهذا مثال لزيادة اللفل هنا هيزيد لفل اللاعب كل مايوصل الاكس بي لعدد معين , استخدمنا فيه 2 داتا الاولى حقت الاكس بي والثانية حقت اللفل شرحه : جبنا ايفينت لما يموت لاعب ما , تحققنا ان في قاتل بعدين تحققنا ان القاتل لاعب , بعدين تحققنا ان الداتا حقت الاكس بي موجودة وجبناها بمتغير, بعدين حطينا شرط انه لو كان الاكس بي 5 هنزيد اللفل ونعيد تعين داتا الاكس بي لصفر ولو الاكس بي مانه 5 هنزيده بمقدار 1 -- هنا في بداية المود هنحط قيمة افتراضية للداتا -- اللي سويناه انه جبنا كل اللاعبين وحطيناهم بجدول بعدين سوينا لوب هيعطي كل لاعب داتا لفل قيمتها 1 وداتا اكس بي قيمتها 0 Players = getElementsByType("player") for i,v in ipairs(Players) do setElementData(v,"LEVEL",1) setElementData(v,"LvlExp",0) end function LVLp(_,killer)-- أنشأنا الفنكشن وحطينا المعطيات الي نحتاجها حقت الايفنت , وهنا مانحتاج غير القاتل والمقتول هيكون السورس if (Killer) and ( getElementType ( killer ) == "player" ) then -- الجزأ الأول تتأكد ان في قاتل يعني مامات من سلاب او شي زي كذا -- الجزء الثاني بتحقق ان القاتل لاعب مو مركبةاو شي تاني if getElementData(Killer,"LvlExp") and tonumber(getElementData(Killer,"LvlExp")) then --تحققات EXPDAT = getElementData(Killer,"LvlExp")-- هنا جبنا داتا الاكس بي وحطيناها بمتغير if EXPDAT == 5 then -- هنا معنا ان لو وصل الاكس بي ل5 هنزيد لفله زي ماسوينا تحت if getElementData(Killer,"LEVEL") and tonumber(getElementData(Killer,"LEVEL")) then -- تحققات مشروحة LEVELDAT = getElementData(Killer,"LEVEL") -- هنا جبنا الداتا حقت اللفل وحطيناها بمتغير setElementData(Killer,"LEVEL", LEVELDAT +1) -- هنا هنزيد اللفل بمقدار +1 setElementData(Killer,"LvlExp",0)-- هنا هنعيد تعيين داتا الاكس بي نعينه لصفر end else -- هنا لو ماكان الاكس بي = 5 هنزيده بمقدار 1 او حسب ماتبي if EXPDAT > 0 and EXPDAT < 5 then -- هنا نتأكد ان الاكس بي اكبر من 0 واصغر من 5 setElementData(Killer,"LvlExp", EXPDAT +1) -- هنا زدنا الاكس بي elseif EXPDAT < 0 then -- هنا لو كان الاكس بي اصغر من 0 هنرجعه 0 setElementData(Killer,"LvlExp", 0) elseif EXPDAT > 5 then -- هنا لو كان الاكس بي اكبر من 5 هنحطه 5 setElementData(Killer,"LvlExp", 5) end end end end end addEventHandler("onPlayerWasted",getRootElement(),LVLp) أتمنى أكون أفدتك بقدر الامكان ويكون الشرح مفهوم
  2. يب بس هو مفروض يكون عارف ويكون حاطط الداتا , والتحقق عاي حال تم التعديل مشكور عالملاحظة
  3. أخوي الداتا جيبها بمتغير بعدين لما تيجي تحط الداتا حط المتغير مكان القيمة وزود الرقم الي تبيه وبكذا كل مرة يتنفذ الفنكشن هتزيد الداتا بالقيمة الي انت حطيتها. مثال DAT = getElementData(Player,"LEVEL")-- هنا جبنا قيمة الداتا وحطيناها بمتغير setElementData(Player,"LEVEL", DAT +1) -- هنا معناه انه كل مرة يتنفذ الفنكشن هذا هتزيد قيمة الداتا بالمقدار الي حاطه الي هو ( +1 ) , انت حط الي تبيه + 1 , +2, ... الخ ملاحظة : لو تبي تتاكد ان كودك سليم اتحقق من الداتا وانها رقم يعني هيكون الشكل النهائي if getElementData(Player,"LEVEL") and tonumber(getElementData(Player,"LEVEL")) then DAT = getElementData(Player,"LEVEL") setElementData(Player,"LEVEL", DAT +1) end
  4. أها ,مشكوووور ظبطت , طلع الموضوع بسيط , ما تتخيل كم مرة جربت اسويها قبل لا أسأل وكل مرة بزيد الكود تعقيد هههههه , عالعموم شكرا الكود النهائي للي يشوف التوبك ويبي يستفيد Mtt = "" function onCham() GMLT = guiGetText(MaxLun) if tonumber(GMLT) or GMLT == "" then Mtt = GMLT elseif not tonumber(GMLT) then guiSetText(MaxLun,Mtt) end end addEventHandler("onClientGUIChanged",MaxLun,onCham)
  5. . . . السلام عليكم ورحمة الله وبركاته الموضوع اني مسوي مود آلة حاسبة موجود هنا للي يبي يشوفه https://community.multitheftauto.com/in ... s&id=12704 المهم في تاب السيتنقس مسوي فيه خانة للي يبي يعدل عالعدد الاقصى للارقام الي تقدر تدخلها او تحسبها ( السعة القصوة ) ,اللي أبيه هو ان اللاعب مايقدر يكتب غير رقم في الخانة , وماتنكتب حروف فيها انا فعلا مسوي كود لها بس ما يحقق الي ابيه الكود فكرته لما ينكتب في الخانه ياخذ الي فيها ويشوف لو انه رقم او لا في حالة مو انه رقم يمسح الي موجود , المشكلة هنا ان لو كتبت رقم بعدين كتبت بعده حرف مثلا هينمسح الرقم والحرف .. هي مب مشكلة كبيرة بس حبيت اعرف شلون اظبطها , عشان لو اسويها في المودات مستقبلا. وشكرا ... الكود function onCham() local MTl = guiGetText(MaxLun) if not tonumber(MTl) then guiSetText(MaxLun,"") else return end end addEventHandler("onClientGUIChanged",MaxLun,onCham)
  6. أها مشكور أخوي , بس التحقق دايما أشوفه ومافهم الغرض منه الحين عرفت مشكور يالغالي + مافي مشاكل ثانية؟
  7. السلام عليكم شباب باختصار أبي أتحقق من كم كود إذا صح ولا لا الهدف منهم هو لما يقتل لاعب ينضافله سكور وبعدين لما أبي أجيب التوب سكور للاعبين وبس. يعني مثلا في مسابقة او مهمة كم لاعب لما واحد يقتل الثاني ياخذ سكور + 1 واخر المسابقة بحط التوب سكور للاعبين الأكواد للسيرفر بس لسا ماشتغلت للكلاينت الأكواد function PScore() players = getElementsByType ( "player" ) --New for _,thePlayer in ipairs(players) do setElementData(thePlayer,"DMP", 0) setElementData(thePlayer,"SCOR",0) score = getElementData(thePlayer,"SCOR") end end function onDeth(_,killer) if ( killer ) then if ( getElementData( killer, "DMP" ) == 1 ) or ( getElementData( killer, "DMP" ) == 2 ) then sscore = score + 1 --scoreM = scoreM + 1 setElementData(killer,"SCOR",sscore) end end end addEventHandler("onPlayerWasted",getRootElement(),onDeth) function onEnd() players = getElementsByType("player") for _,v in ipairs (players) do names = getPlayerName(v) end for _,v in ipairs (names) do namep = getPlayerFromName(v) scores = getElementData(namep,"SCOR") end for i,v in ipairs(scores) do T1 = table.maxn (scores) T2 = math.floor (T1) T3 = math.floor (T2) T4 = math.floor (T3) T5 = math.floor (T4) end triggerClientEvent(source,"updateS",source,T1,T2,T3,T4,T5) end أتمنى ماكون طولت عليكم -تعديل- راجعت الكود وأعتقد كذا صح؟ function PScore() local players = getElementsByType ( "player" ) --New for _,thePlayer in ipairs(players) do setElementData(thePlayer,"DMP", 0) setElementData(thePlayer,"SCOR",0) score = getElementData(thePlayer,"SCOR") end end function onDeth(_,killer) if killer and killer ~= source and getElementType(killer) == "player" then if ( getElementData( killer, "DMP" ) == 1 ) or ( getElementData( killer, "DMP" ) == 2 ) then sscore = score + 1 --scoreM = scoreM + 1 setElementData(killer,"SCOR",sscore) end end end addEventHandler("onPlayerWasted",getRootElement(),onDeth) function onEnd() players = getElementsByType("player") --[[ for _,v in ipairs (players) do names = getPlayerName(v) end for _,v in ipairs (names) do namep = getPlayerFromName(v) scores = getElementData(namep,"SCOR") end--]] for _,v in ipairs(players) do Tscores ={ [names = getPlayerName(v)]=[scores = getElementData(getPlayerFromName(names),"SCOR")] } end for i,v in ipairs(Tscores) do TSCOR = {i} end for _,v in ipairs(TSCOR) do -- T1 = table.maxn (TSCOR) T1 = math.floor (v) T2 = math.floor (T1) T3 = math.floor (T2) T4 = math.floor (T3) T5 = math.floor (T4) end triggerClientEvent(source,"updateS",source,T1,T2,T3,T4,T5) end
×
×
  • Create New...