</Mr.Tn6eL>

Members
  • Content Count

    2,799
  • Joined

  • Last visited

  • Days Won

    11

</Mr.Tn6eL> last won the day on April 24

</Mr.Tn6eL> had the most liked content!

Community Reputation

371 Superstar

About </Mr.Tn6eL>

  • Rank
    Foot Soldier

Details

  • Gang
    [ SH!5-AR ], [M.O]
  • Location
    Home

Recent Profile Visitors

2,801 profile views
  1. </Mr.Tn6eL>

    - [ MTASA : ذكريات قديمه لك عن العبة ] ;

    متى كنت صديقك؟🤔
  2. </Mr.Tn6eL>

    Is it possible?

    You should put lines 15-25 outside the render to increase performance
  3. </Mr.Tn6eL>

    >>>>> الموضوع العام <<<<<

    كل ماتذكر اني مسوي مرقص بمجانين الشطف وفيه ويسكي بعد ماتشربه تجيك رقصة سكران وانا غاسل يدي وش ذا الماضي الاسود دشرت حقين السيرفر 🌚 جوالي مو جلكسي ياخي مو كل اندرويد جلكسي😂🤣
  4. </Mr.Tn6eL>

    >>>>> الموضوع العام <<<<<

    الايفون كذبة اخترعها الاغنياء فصدقها الفقراء
  5. </Mr.Tn6eL>

    >>>>> الموضوع العام <<<<<

    ما شاء الله تابليتو ماشي شغلها
  6. معاك حق لكن هذا في البرامترات اللي تعوض قيمة علامة ? لكن انت حاط مباشرة داخل كود السكل انصحك تتحقق من وجود ارقام وحروف انكليزية فقط للسيريال
  7. كودك يسبب ثغرة SQL Injection
  8. </Mr.Tn6eL>

    مساعدة بعملية حسابيه

    تحتاج عنصرين اول شي شريط التمرير والزر حق السحب كما في الصورة شريط التمرير راح يكون له اربع متغيرات اللي هي الاحداثيات والطول والعرض x, y, w, h راح يكون له متغيرين thumb وزر شريط التمرير اللي اسمه thumb_y اول شي احداثياته y بما اننا راح نسوي شريط تمرير عمودي راح نستخدم الاحداثي والعكس مع الافقي THUMB_S اما المتغير الثاني اللي هو حجمه بما اننا نستخدم ثوابت فالأفضل نستخدم اسم متغير بحجم كبير progress راح يكون عندنا متغير ثاني وهو نسبة المثوية للشريط تكون اسمها يكون كل شي بالجدول التالي SCROLLBAR = { x = 0, y = 0, -- احداثيات الشريط w = 13, h = 480 -- الطول والعرض thumb_y = 0, -- الاحداثيات للزر progress = 0, -- نسبة التقدم THUMB_SIZE = 27, -- حجم الزر hold = true, -- راح اشرحها بعدين } وبسطت المفهوم بصورة اما بالنسبة للعملية الحسابية عشان تحريك الزر الازرق بسيطة اول شي نحتاج نعرف مكان الماوس راح نستخدم مكان الماوس في عمليتين 1- التحقق من ان الماوس داخل المنطقة الرمادية عند الضغط 2- بما اننا نستخدم شريط تمرير عمودي y ننقل الزر الازرق لاحدثيات الماوس راح نستخدم وظيفتين getCursorPosition getKeyState - mouse1(زر الماوس الايسر) وتكون حسابات الطريقة كالآتي hold عند الضغط على المنطقة الرمادية بالزر الايسر بالماوس نسوي متغير لكن عند افلات زر الماوس نلغي المتغير طبعا نحن نريد يفلت زر الماوس باي منطقة شرط يكون ضغط في البداية على المنطقة الرمادي كالآتي hold يكون عملية تحويل المتغير function render() local cx, cy = getCursorPosition() -- نجلب احداثيات الماوس -- نتحقق ان احداثيات الماوس داخل المربع المادي local hovered = cx >= SCROLLBAR.x and cx <= SCROLLBAR.h and cy >= SCROLLBAR.y and cy <= SCROLLBAR.h if hovered and getKeyState "mouse1" then -- نتحقق كمان ان الماوس مضغوط SCROLLBAR.hold = true -- hold نفعل قيمة end if hold and not getKeyState "mouse1" then -- hold اذا الاعب افلت زر الماوس وكان متفعل متغير SCROLLBAR.hold = false -- نلغي المتغير end -- hold if SCROLLBAR.hold then -- اذا تحقق الشرط هذا كما شرحنا سابقا بامكاننا نجري حساباتنا SCROLLBAR.thumb = ... SCROLLBAR.progress = ... end end onClientClick طبعا في طرق كثيرة مثلا باستخدام حدث لكن اخترت هذي عشان يكون كل الحسابات في مكان واحد ننتقل الى المرحلة المعقدة وهي عن الضغط او السحب نريد نقل الزر الازرق الى الاحداثيات المطلوبة لكن في مشاكل الأولى قد يتعدى الزر الازرق المنطقة الرمادية يكون فوق المنطقة او تحتها y نحتاج نعمل الحد الأدنى للإحداثيات وراح يكون اقل حد هو احداثيات المنطقة الرمادية وننقصه من طول الزر الازرق y اما للحد الأقصى هو طول المنطقة الرمادية مجموعة مع احداثيات يكون y : الحد الأدنى y+h-THUMB_SIZE : الحد الأقصى صار كذا عندنا نطاق لمكان الشريط الازرق يوضع فيه راح نستخدم math.max, math.min كذا حلينا المشكلة الأولى اما المشكلة الثانية هي التوسيط لما ننقل الزر الازرق لاحداثيات الماوس تصير مشكلة كما في الصورة الحل بسيط ناخذ احداثيات الماوس وننقصها من نص حجم الزر الازرق كما في المعادلة التالية cy-(THUMB_SIZE/2) يصير كذا حلينا كل المشاكل اللي تتعلق بالنقل تصير المعادلة الحاسبية لاحداثيات الزر الازرق كالتالي --[[ نتأكد ان قيمة احداثيات الماوس الازرق اصغر من الحد الأقصى واكبر من الحد الأدنى لنضعها في نطاق محدد لاتخرح عنه math.min( math.max( احداثيات الزر الازرق, الحد الأدنى ), الحد الأقصى ) ]] SCROLLBAR.thumb_y = math.min(math.max(cy-(t/2), SCROLLBAR.y), SCROLLBAR.y+SCROLLBAR.h-SCROLLBAR.THUMB_SIZE) اما بالنسبة لحساب النسبة المئوية نحتاج نخليه احداثيات الزر الازرق بالنسبة لاحداثيات المنطقة الرمادية يعني لو كانت احداثيات المنطقة الرمادية هي 100 واحداثيات الزر الازرق هي 150 فتصير الاحداثيات 50 بالنسبة الى المنطقة الرمادية y بالمتغير thumb_y يعني نحتاج نطرح المتغير كذا اعطانا قيمة اولى لحساب النسبة المثوية لكن نحتاج الى قيمة قصوى ثابتة وهي طول المنطقة الرمادية منقوصة من حجم الزر الازرق تصير الحسبة كالتالي SCROLLBAR.progress = math.floor((SCROLLBAR.thumb_y-SCROLLBAR.y)/(SCROLLBAR.h-SCROLLBAR.THUMB_SIZE)*100) يكون الكود النهائي كالتالي -- اتجاه شريط التمرير راح يكون عمودي -- y ومتغيرات لاحداثي x يعني راح نستخدم ثوابث لاحداثي SCROLLBAR = { x = 0, y = 0, -- احداثيات الشريط w = 13, h = 480 -- الطول والعرض thumb_y = 0, -- الاحداثيات للزر الازرق progress = 0, -- النسبة المئوية THUMB_SIZE = 32, -- حجم الزر hold = false, -- راح اشرحها بعدين } function render() -- onClientRender local cx, cy = getCursorPosition() -- نجلب احداثيات الماوس -- نتحقق ان احداثيات الماوس داخل المربع المادي local hovered = cx >= SCROLLBAR.x and cx <= SCROLLBAR.h and cy >= SCROLLBAR.y and cy <= SCROLLBAR.h if hovered and getKeyState "mouse1" then -- نتحقق كمان ان الماوس مضغوط SCROLLBAR.hold = true -- hold نفعل قيمة end if hold and not getKeyState "mouse1" then -- hold اذا الاعب افلت زر الماوس وكان متفعل متغير SCROLLBAR.hold = false -- نلغي المتغير end -- hold if SCROLLBAR.hold then -- اذا تحقق الشرط هذا كما شرحنا سابقا بامكاننا نجري حساباتنا --[[ نتأكد ان قيمة احداثيات الماوس الازرق اصغر من الحد الأقصى واكبر من الحد الأدنى لنضعها في نطاق محدد لاتخرح عنه math.min( math.max( احداثيات الزر الازرق, الحد الأدنى ) الحد الأقصى ) ]] SCROLLBAR.thumb_y = math.min(math.max(cy-(t/2), SCROLLBAR.y), SCROLLBAR.y+SCROLLBAR.h-SCROLLBAR.THUMB_SIZE) -- current/max -- المعادلة ذي تعطينة نسبة لشيء بالنسبة لشيء -- current : هي قيمة احداثيات الزر الازرق منقوصة من احداثيات المنطقة الرمادي عشان تعطينا الاحداثيات بالنسبة للمنطقة الرمادية -- max : هي القيمة الثابتة اللي بنينا عليها النسبة المئوية -- يكون الناتج نضربه ب100 يعطينا النسبة المئوية -- math.floor يعطينا رقم بدون كسور SCROLLBAR.progress = math.floor((SCROLLBAR.thumb_y-SCROLLBAR.y)/(SCROLLBAR.h-SCROLLBAR.THUMB_SIZE)*100) end -- الزر الازرق dxDrawRectangle(SCROLLBAR.x, SCROLLBAR.thumb_y, SCROLLBAR.w, SCROLLBARTHUMB_SIZE, 0x03a9f4ff) -- شريط التمرير اللي هي المنطقة الرمادية dxDrawRectangle(SCROLLBAR.x, SCROLLBAR.y, SCROLLBAR.w, SCROLLBAR.h, 0xb3b3b3ff) -- النسبة المئوية dxDrawText(SCROLLBAR.progress, SCROLLBAR.x, SCROLLBAR.y, SCROLLBAR.x+w, SCROLLBAR.y+SCROLLBAR.h, 0xffffffff, 1, font, "center", "center") end
  9. بشكل عام جهازك ضعيف مايشغل العاب أولا لأنه معالج بنواتين و32 بت والرامات بطيئة اظن من نوع DDR2 سرعتها قليلة وحجمها قليل بالنسبة لكرت الشاشة المدمج مع المعالج ابدا مايشغل الحل اشتري جهاز جديد
  10. </Mr.Tn6eL>

    سؤال في فورتنايت

    طور البي سي حقك مرة قديم فورت نايت لعبة جديدة الحين تقدر تسوي لك تجميعة تشغل العاب ب600$ دولار بدون الاشياء الجانبية
  11. </Mr.Tn6eL>

    آستفسآر عن قريد ليست ( Dx )

    راح يكون عندك أعمدة وصفوف لكل عمود صف فيه عناصر محددة عشان تسوي هذه الطريقة بالخوارزمية التالية -- ثوابث نحتاجها COL_WIDTH_BY_SINGLE_CHAR = 10 -- هذا ثابت نضربه في حجم نص العمود عشان يعطينا طول يوازي نص العمود COL_MARGIN_RIGHT = 15 -- نعطي مسافة فاصلة بين كل نص عمود ROW_HEIGHT = 24 -- طول الصف local cols = {"#", "name", "score"} local rows = { -- {VALUE_FOR_COLUMN_1, VALUE_FOR_COLUMN_2, VALUE_FOR_COLUMN_3} {"1", "Tn6el", "300000"}, {"2", "Player", "0"}, -- {...} وتضيف المزيد من الصفوف } -- ولاضافة على الشاشة نستخدم local x, y = 0, 0 -- احداثيات القائمة local pcol_x = COL_MARGIN_RIGHT -- متغير يعطينا اخر احداثيات العمود for i=1, #cols do local ctext = cols[i] -- نص العمود -- #text تعطينا طول النص -- ملاحظة اذا كان عربي يعطيك طول النص مرتين فاستخدم وظائف utf8 text(ctext, x+pcol_x, ROW_HEIGHT/2) -- مثال لعرض النص للعمود -- نعرض الصفوف لكل عمود for j=1, #rows do -- local rtext = rows[i] -- نص الصفوف للعمود رقم i local row_y = (j+1)*ROW_HEIGHT -- نعرض الصفوف تحت بعض -- حيث نضرب رقم ترتيب الصف في الطول للصف ويعطينا نتيحة ان جميع الصفوف تحت بعض text(rtext, pcol_x, row_y) -- مثال لعرض النص للصف -- draw rows end -- نحدث احداثيات اخر عمود عشان نستخدمه للمرة القادمة pcol_x += (#ctext*COL_WIDTH_BY_SINGLE_CHAR)+COL_MARGIN_RIGHT (طول النص * ثابت يمثل عرض كل حرف) + المسافة الفاصلة end سأشرح لك الطريقة بالخطوات أولا نعمل لوب للعواميد عشان نعرض بيانات الصفوف لها يعني لكل عمود صفوف خاصة فيها واحداثيات في الللوب الأول نعرض اسم العمود على الشاشة ونحسب مكانه على الشاشة كما وضحنا بالكود اما باللوب الثاني اننا نسوي لوب داخل اللوب الأول عشان تتكرر العملية لكل عمود نبدأ نحسب مكان الصف افقياً اي نجعلها تحت العمود الخاص به ونعرضها كما وضحنا بالكود طبعا الطرق كثيرة لكن هذه ابسطها والله أعلم واعذرني اذ كان هناك خطأ
  12. </Mr.Tn6eL>

    x [ | Zombies | New Hud ] x

    تهدي واحد ميت
  13. </Mr.Tn6eL>

    >>>>> الموضوع العام <<<<<

    @UAEpro لاحقني بكل مكان اشوفه بمقترحات اليوتيوب وبعدين اشوفه يعيد تغريدة لي
  14. API اكثر استخداماً في نقل البيانات عبر الانترنت خصوصاً JSON لأنها أسرع في الوصول للبيانات وأسهل في القراءة والكتابة وتقدر كمان تستخدمها كاوبجكت في الجافاسكربت لانها أصلا اوبجكت جافاسكربت وكتابة البيانات أقصر من الاكس ام ال وتوفر المساحة XML اما تدعم أنواع بيانات كثيرة أكثر من الجسون البيانات اكثر تنظيماً من الجسون تقدر تستخدم أكثر من اسم للقيمة عكس الجسون في رأي جسون أفضل للويب في ارسال البيانات واستقبالها وكمان لتطبيقات الجوال
  15. جيد لكن في ملاحظات * مايدعم العربية بالتحديد * مايمديك تغير مكان المؤشر * مايدعم Home + End + Tab + ... * placeholder مايدعم * جرب تكتب كلام طويل حيطلع برا التحدي الثاني سوي srcollbar