-
Posts
1,849 -
Joined
-
Last visited
-
Days Won
6
Everything posted by nxFairlywell
-
طيب سوي تايمر و حط وقت للتايمر بعد ما يخلص الوقت يزود على الكلمة حرف كمثال 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()); طيب والكود اللي حطيته يسوي نفس الشي
-
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
-
ممم , انا قد سويته في سكربت لي اخذت ذي الاكواد من السكربت الدالة تجيب الحرف الثاني من نص محدد والتايمر يحط الحرف في الليبل المطلوب , طبعاً تقدر تبدل الليبل لـ متغير خاص بالدي اكس |ملاحظة| مو متأكد شغال أو لا لأني عدلت عليه تعديل سريع بس أتوقع شغال لأن مافيه شي خطا 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);
-
إذا تبغى النقطة تنحفظ على السيريال , يعني على كل حسابات اللاعب 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 )
-
لا يقدر , هو كاتب كذا setAccountData(account,"data",table[source]); source هنا المتغير يصبح قيمة المفتاح أما إذا يقصد جدول فالمفروض يكتب كذا setAccountData(account,'data',table); بالتأكيد الطريقة خطأ ^ لكن يسويها كذا setAccountData(account,'data',toJSON(table)); local aTable=getAccountData(account,'data'); aTable=fromJSON(aTable);
-
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 );
-
Use the markers ! or Colshape
-
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 و هو كود سيرفر لذلك النقاط راح تستمر لكل اللاعبين مو للاعب محدد
-
أساساً انت ليه مسوي ترايقر ؟ انا اذكر ان دالة السيريال تقدر تحطها بالكلينت , جرب بالكلينت
-
عطني الفكرة و انا اسويه لك بدون مقابل , تعال خاص
-
ملاحظات : الكود سيرفر + اذا طفيت السكربت تنحذف الأكواد إذا تبي تحفظ الأكواد إحفظها في قاعدة البيانات , تقدر تحفظها بكل سهولة 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 كيف سويته ؟ إذا سويته بكلينت ما بيضبط معك لأنو الأكواد اللي بتضيفها واللاعب خارج السيرفر ماراح تنضاف عنده لأن الكلينت يشتغل للاعب اول ما يدخل للسيرفر
-
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
-
مستحيل ههههههههه يعني انا بطلع غصب الا اقعد ؟؟
-
يعني تبغى الاوبجكت يتحرك ثلاث مرات بعدين يروح صح ؟ طيب استخدم createObject moveObject setElementData 1 setTimer --تايمر عشان تتحقق هل الاوبجكت وصل للنقطه الثانيه او لا getElementData + 1 -- اول ما يوصل الاوبجكت للمكان المحدد في الحركة الاولى زود رقم على الداتا if getElementData == 3 destroyElement(object)
-
[Gta-Ar]# Gang Wars - حرب العصابات #[Gta-Ar]
nxFairlywell replied to ^iiEcoo'x_)'s topic in Arabic / العربية
من أفضل السيرفرات العربية وأقدمها بالتوفيق لكم + أعتذر لك ما حصلت فرصة الاسبوع اللي راح لكن عندي ملاحظة بسيطة على نظام السجن يا أخي كل ما ادخل العب شوي يجي يمسكني شرطي و يحطني في السجن لازم أنتظر 5 دقائق عشان أطلع من السجن , شيء يقهر والمشكلة تطلع على طول يمسكك الثاني ياليت لو يعدلوا الوقت أو يسوو شيء يحل المشكلة كالحماية اول ما تطلع من السجن وكذا -
hoursplayed تأكد من سكربت الساعات هل الداتا اللي تتغير هي نفسها الداتا هذي أو داتا ثانية ؟ أو اعطيني اسم الداتا اللي في الأمر اللي تكلمت عنه
-
ممكن نشوف الجُمل الشرطية اللي في الرندر؟
-
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
-
يعني عندك اكواد تبي الشخص يشتريها و يقدر يفتح من خلالها شيء معين ؟ نظام مشتريات او شي زي كذا اتوقع ,, تحتاج جدول بـ ملف سيرفر , أو قاعدة بيانات