Jump to content

nxFairlywell

Members
  • Posts

    1,849
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by nxFairlywell

  1. طيب سوي تايمر و حط وقت للتايمر بعد ما يخلص الوقت يزود على الكلمة حرف كمثال local chars=""; local myWord="HelloWorld"; local index=0; setTimer( function() if chars:len()~=myWord:len() then index=index+1; chars=chars..myWord:sub(index,index); end end 1000,myWord:len()); طيب والكود اللي حطيته يسوي نفس الشي
  2. ipairsأيضاً يوجد فرق مهم جداً , وهو أن الـ "Strings"لا تقوم بإعطاء مفاتيح الجدول على شكل حروف فمثلاً عندك جدول بهذا الشكل local MyTable = { ["Fool"]=" isn't 3DS",["Thing"]="'s not nothing" }; for key, value in ipairs (MyTable) do print(key); end سوينا طباعة , لكن ما طبع أي شيء ! لكن لو سوينا كذا local MyTable = { [1]=" isn't 3DS",[2]="'s not nothing" }; -- لاحظ غيرنا المفاتيح لأرقام for key, value in ipairs (MyTable) do print(key); -- 1, 2 طُبِعَت end طبع لنا 1 و 2 pairsأما الـ فـ تطبع في كل الحالات سواءًا سترنق او رقم local MyTable = { ["Fool"]=" isn't 3DS",[2]="'s not nothing" }; for key , value in pairs (MyTable) do print(key) -- Fool, 2 end
  3. ممم , انا قد سويته في سكربت لي اخذت ذي الاكواد من السكربت الدالة تجيب الحرف الثاني من نص محدد والتايمر يحط الحرف في الليبل المطلوب , طبعاً تقدر تبدل الليبل لـ متغير خاص بالدي اكس |ملاحظة| مو متأكد شغال أو لا لأني عدلت عليه تعديل سريع بس أتوقع شغال لأن مافيه شي خطا labels={ label1={ text="تجربة تجربة تجربة", _charNumber=0; }, }; function getNextChar( from ) if from._charNumber < string.len(from.text) + 1 then local _charstable = { utf8.byte(from.text, 1, from._charNumber) }; if _charstable then local _pack = utf8.char( unpack(_charstable) ); from._charNumber = from._charNumber + 1; return _pack end else from._charNumber = 0; return from.text end end -->> تسوي التايمر اللي تحت يوم تحتاجه فقط عشان تحرك النص _timer = setTimer( function() if labels.label1.text:len() ~= labels.label1._charNumber then char = getNextChar(labels.label1); guiSetText(YOUR___________LABEL______HERE,char); -- او تقدر تحط متغير elseif labels.label1.text:len() == labels.label1._charNumber then killTimer(_timer); labels.label1._charNumber=0; end end ,50,0);
  4. Special Detections Anti Cheat
  5. إذا تبغى النقطة تنحفظ على السيريال , يعني على كل حسابات اللاعب serverPoints = { } addEventHandler( "onPlayerChat" , root , function( msg ) if( msg == "نقطه" or msg == "نقطة" ) then local serial=getPlayerSerial(source); if( not serverPoints[ serial ] ) then serverPoints[ serial ] = 0 end serverPoints[ serial ] = serverPoints[ serial ] + 1 end end ) أما إذا كنت تبغى تحفظ النقاط على حساب اللاعب serverPoints={}; addEventHandler( "onPlayerChat" , root , function( msg ) if( msg == "نقطه" or msg == "نقطة" ) then if account and not ( isGuestAccount(account) ) then serverPoints[ getAccountName(account) ] = serverPoints[ getAccountName(account) ] or 0 + 1; else outputChatBox("You must have an account",source,255,255,255); end end end )
  6. لا يقدر , هو كاتب كذا setAccountData(account,"data",table[source]); source هنا المتغير يصبح قيمة المفتاح أما إذا يقصد جدول فالمفروض يكتب كذا setAccountData(account,'data',table); بالتأكيد الطريقة خطأ ^ لكن يسويها كذا setAccountData(account,'data',toJSON(table)); local aTable=getAccountData(account,'data'); aTable=fromJSON(aTable);
  7. local positions={ {fX,fY,fWidth,fHeight}, -- positions {fX,fY,fWidth,fHeight}, -- positions {fX,fY,fWidth,fHeight}, -- positions }; local colshape={}; for k, v in ipairs(positions) do local x,y,width,height=v[1],v[2],v[3],v[4] colshape[#colshape+1]=createColRectangle(x,y,width,height); -- colshape[key] = new col rectangle end addEventHandler("onClientColShapeHit",root, function(hitElement) if hitElement==localPlayer then for i=1,#colshape do -- loop for the colshapes table ( i = 1 to count of colshapes ) if colshape[i]==source then -- check the source colshape if it equals any colshape in the table of colshapes -- Your code end end end end );
  8. Use the markers ! or Colshape
  9. serverPoints=0; addEventHandler("onPlayerChat",root, function(msg,msgType) if msgType==0 then if msg=="نقطه" or msg =="نقطة" then serverPoints=serverPoints+1; outputChatBox("عدد النقاط الإجمالي :"..tostring(serverPoints),source,0,255,255); end end end ); معلومة : جميع المتغيرات اللي تكون في السيرفر ما تتوقف لو طلع اللاعب , يعني لو النقاط وصلت 20 و اللاعب طلع من القيم و دخل مره ثانيه و كتب نقطه راح تصير النقاط 21 و يجيه بالشات 21 على عكس المتغيرات في الكلينت فهي تتوقف لو طلع اللاعب , مثلاً لو النقاط 20 و طلع اللاعب , بالتالي اذا دخل راح يشوف النقاط 0 الكود اللي فوق هو مجرد متغير تعطيه قيمته و تزود عليه 1 و هو كود سيرفر لذلك النقاط راح تستمر لكل اللاعبين مو للاعب محدد
  10. أساساً انت ليه مسوي ترايقر ؟ انا اذكر ان دالة السيريال تقدر تحطها بالكلينت , جرب بالكلينت
  11. عطني الفكرة و انا اسويه لك بدون مقابل , تعال خاص
  12. ملاحظات : الكود سيرفر + اذا طفيت السكربت تنحذف الأكواد إذا تبي تحفظ الأكواد إحفظها في قاعدة البيانات , تقدر تحفظها بكل سهولة createRandomCode() هذي تسوي لك كود عشوائي جديد removeCode(code) تحذف لك كود محدد من الجدول إذا ضغطت زر إنشاء كود او اضافة كود جديد سوي ترايقر لسيرفر و حط الوظيفة اللي تضيف الكود و إذا استخدم اي لاعب كود محدد , اول ما يضغط على زر الاستخدام سوي ترايقر لسيرفر مع الكود اللي حاطه اللاعب في الايديت و حط بالسيرفر وظيفة حذف الكود بالتوفيق local codes={}; -- الأكواد local en_chars={"A","B","C","D","E","F"}; -- الحروف اللي تقدر تضيفها في الأكواد function createRandomCode() local numbers=""; local chars=""; local theCode=""; local num=false; local singleChar=false; while numbers:len() < 7 do if not num then num=tostring(math.random(1,9)); end num=num..tostring(math.random(1,9)); numbers=numbers..tostring(num); end while chars:len() < 7 do if not singleChar then singleChar=en_chars[math.random(1,#en_chars)]; end singleChar=singleChar..en_chars[math.random(1,#en_chars)]; chars=chars..singleChar; end theCode=numbers..chars; local newCode=''; while newCode:len() < 19 do local rdm=math.random(1,theCode:len()); newCode=newCode..theCode:sub(rdm,rdm); if newCode:len() == 4 then newCode=newCode.."-"; end if newCode:len() == 9 then newCode=newCode.."-"; end if newCode:len() == 14 then newCode=newCode.."-"; end end for key , code in ipairs (codes) do if newCode==code then return createRandomCode() end end table.insert(codes,newCode); return true; end function removeCode(code) if not code or type(code) ~="string" then return false end for k, ______codes in ipairs (codes) do if code==______codes then return table.remove(codes,k) end end return false end createRandomCode(); for k, cod in ipairs(codes) do print(cod) end كيف سويته ؟ إذا سويته بكلينت ما بيضبط معك لأنو الأكواد اللي بتضيفها واللاعب خارج السيرفر ماراح تنضاف عنده لأن الكلينت يشتغل للاعب اول ما يدخل للسيرفر
  13. Cause 1 == 2 means false if true==true means true if false==true means false if false==false means true when you type ( if true then ) you'll get true cause true means true
  14. مستحيل ههههههههه يعني انا بطلع غصب الا اقعد ؟؟
  15. يعني تبغى الاوبجكت يتحرك ثلاث مرات بعدين يروح صح ؟ طيب استخدم createObject moveObject setElementData 1 setTimer --تايمر عشان تتحقق هل الاوبجكت وصل للنقطه الثانيه او لا getElementData + 1 -- اول ما يوصل الاوبجكت للمكان المحدد في الحركة الاولى زود رقم على الداتا if getElementData == 3 destroyElement(object)
  16. من أفضل السيرفرات العربية وأقدمها بالتوفيق لكم + أعتذر لك ما حصلت فرصة الاسبوع اللي راح لكن عندي ملاحظة بسيطة على نظام السجن يا أخي كل ما ادخل العب شوي يجي يمسكني شرطي و يحطني في السجن لازم أنتظر 5 دقائق عشان أطلع من السجن , شيء يقهر والمشكلة تطلع على طول يمسكك الثاني ياليت لو يعدلوا الوقت أو يسوو شيء يحل المشكلة كالحماية اول ما تطلع من السجن وكذا
  17. hoursplayed تأكد من سكربت الساعات هل الداتا اللي تتغير هي نفسها الداتا هذي أو داتا ثانية ؟ أو اعطيني اسم الداتا اللي في الأمر اللي تكلمت عنه
  18. ممكن نشوف الجُمل الشرطية اللي في الرندر؟
  19. local pos={ -- {x,y,z} {3.44,10.433,12.2}, {6.11,21.29,15.1}, }; for key, values in ipairs(pos) do outputChatBox("X: ("..values[1]..") Y: ("..values[2]..") Z: ("..values[3]..")"); end
  20. يعني عندك اكواد تبي الشخص يشتريها و يقدر يفتح من خلالها شيء معين ؟ نظام مشتريات او شي زي كذا اتوقع ,, تحتاج جدول بـ ملف سيرفر , أو قاعدة بيانات
×
×
  • Create New...