iMr.WiFi..!

Members
  • Content Count

    2,394
  • Joined

  • Last visited

  • Days Won

    57

Everything posted by iMr.WiFi..!

  1. احنا نتكلم عن ميزانية ماتتعدى 200 دولار.
  2. الشخص واضح ان ميزانيته قليلة وتعطيه كرت غالي؟ GEFORCE 1650 رخيص واداء ممتاز. فيه مراجعة جيدة لكرت GTX 750:
  3. تواصل معي وبأذن الله نتفق على خير, طرق التواصل تجدها في التوقيع.
  4. local renderTarget = dxCreateRenderTarget( 1000, 1000, true ) local posX, posY, posZ = 14, 0, 2.8 local scroll = 0 local players = { } table.insert( players, { "Лицо" } ) table.insert( players, { "Волосы" } ) table.insert( players, { "Кожа" } ) table.insert( players, { "Одежда" } ) table.insert( players, { "Руки" } ) table.insert( players, { "Ноги" } ) table.insert( players, { "Голова" } ) table.insert( players, { "Лоб" } ) table.insert( players, { "лицо" } ) table.insert( players, { "голова" } ) table.insert( players, { "руки" } ) table.insert( players, { "одежда" } ) table.insert( players, { "пальцы" } ) table.insert( players, { "Лицо" } ) table.insert( players, { "Лицо" } ) function isMouseInPosition ( x, y, width, height ) if ( not isCursorShowing( ) ) then return false end local sx, sy = guiGetScreenSize ( ) local cx, cy = getCursorPosition ( ) local cx, cy = ( cx * sx ), ( cy * sy ) if ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) then return true else return false end end function rendermenu() dxSetRenderTarget( renderTarget, true ) local offsetY = 100 for i = 1, #players do local posX, posY, width, height = 0, offsetY - scroll, 970, 80 dxDrawRectangle( posX, posY, width, height, tocolor( 0, 0, 0, 200 ) ) dxDrawText( players[ i ][ 1 ], posX + 30, posY, posX + 30 + width, posY + height, tocolor( 255, 255, 255, 255 ), 3, "default-bold", "left", "center" ) --dxDrawText( players[ i ][ 2 ], posX + ( width - 30 ), posY, posX + ( width - 30 ), posY + height, tocolor( 255, 255, 255, 255 ), 3, "default-bold", "right", "center" ) if( isMouseInPosition( posX, posY, width, height ) )then if( getKeyState("mouse1") )then -- Your function here. end end offsetY = offsetY + 80 end local contentH = #players * 80 local viewableRatio = 900 / contentH local scrollH = 900 * viewableRatio dxDrawRectangle( 970, 100, 30, 900, tocolor( 0, 0, 0, 230 ) ) dxDrawRectangle( 970, 100 + ( scroll * viewableRatio ), 30, scrollH, tocolor( 255, 255, 255, 230 ) ) dxDrawRectangle( 0, 0, 1000, 100, tocolor( 0, 0, 0, 255 ) ) dxDrawText( " Создание персонажа ", 0, 0, 1000, 100, tocolor( 255, 255, 255, 255 ), 5, "default-bold", "center", "center" ) if ( getKeyState( "f4" ) ) then dxSetRenderTarget( myRenderTarget ) end if ( getKeyState( "f2" ) ) then scroll = math.min( scroll + 15, contentH - 900 ) elseif ( getKeyState( "f3" ) ) then scroll = math.max( scroll - 15, 0 ) end dxSetRenderTarget( ) dxDrawMaterialLine3D( posX, posY, posZ + 5, posX, posY, posZ, renderTarget, 5, tocolor( 255, 255, 255, 255 ), 0, 0, 0 ) end addEventHandler( "onClientRender", root,rendermenu)
  5. شرح منسق وممتاز استمر على مجهودك الطيب, والمفترض انك تحط معلومات اكثر عن الويكي حيث يستفيد من موضوعك بشكل كامل, غير كذا الترجمة الحرفية يعني تترجم كل شيء بالحرف فكلمة كلاينت + سيرفر تترجم الى معناها, طبقات بدلها بـ فئات أو أصناف أفضل غير كذا انت ابدعت بتنسيق الموضوع وبالتوفيق.
  6. تأكد من تطابق السورس مع تعريف المتغير الذي تم انشائه لتشغيل الصوت.
  7. بس خسرت وقت سوكنق, والوقت من الذهب - كان عنده فرصة انه يذهب ويبرمج لغيرك بمقابل ويكسب اكثر من الي سويته الحين لازم ماتهدر الثقة الي وضعها فيك والي منها عطاك سكربتاته مبدئياً: - نسق موضوعك, حتى لو ماتعرف استشير اي أحد يساعدك - لا تخلي سيرفرك ناقص, كمله ولو بأي سكربتات وبعدين اصنع بدالها سكربتات من طرفكم - تميز بأفكار جديدة - أتعب وكد بالسيرفر مستحيل الواحد ينجح بدون تعب, انشاء سيرفر وجعله احد افضل السيرفرات مستحيل يكون بالسهولة الي تتوقعها
  8. أتمنى لو ما كان عندك كود واثق منه, ماتطرحه عشان مايطول الموضوع وتضيع وقت الأخ بدون فائدة.
  9. tbl = { 1, 2, 3 } print ( math.max( unpack(tbl) ) )
  10. القسم مخصص للمساعدة في الأمور البرمجية وليس لتنفيذ طلباتك البرمجية, واذا حاب واحد يساعدك دور على مبرمجين أو اطلب مبرمج يساعدك وأعتقد اغلبهم بيطلبون منك مقابل.
  11. addDebugHook ابداً لا تستخدمه في شيء غير الديبق, تستخدمه فقط لمعرفة أماكن حدوث وإيقافها يدوياً.. استخدم حدث عند موت اللاعب وسوي رسباون للاعب في نفس المكان الي مات فيه وسوي تايمر 5 دقائق واقتل اللاعب.. وحط جدول تعرف أن اللاعب ميت وعلى وضع القوست وقلل من الشفافية حقته حتى يفرقون عنه اللاعبين ghostTable = {} "onPlayerWasted" spawnPlayer table.insert -- to ghostTable setElementAlpha -- To make it ghost setTimer killPed table.remove -- from ghostTable setElementAlpha -- To back normally
  12. يستخدم للديبق فقط.. ولا يستخدم بشكل أساسي, أي انك بتستخدم كود الأخ مع اضافة دالة الطباعة لمعرفة مكان تنفيذ دالة طباعة في الشات ومنها توقف عمل المود هناك.
  13. أتوقع تتكلم عن دورتي, انت لو تعلمت لغة Lua بتصير تعرف تبرمج اللعبة لأن اللغة البرمجية المستخدمة لبرمجتها هي نفس اللغة الي اشرح عنها في دورتي.. LUAوعموماً في المستقبل القريب بتكون فيه دورة مخصصه لـ ام تي ايه وتابعة لـ
  14. أقترح بدل مايكون اللاعب محصور في لوحة يكون عالم مفتوح وكل مهمة في نقطة معينة يروح لها ويدخل في المهمة وكذلك يقدر يتقاتل مع اي واحد يلقاه في العالم ويربح اكس بي وفلوس ويكون فيه تحديات بالعالم المفتوح للباتل باس بس أهم الشغل يكون في تصميم الدبابات وبالتوفيق
  15. تعريف DGS? + تأكد من تسمية السكربت بـ dgs
  16. زي ماقال احمد, وبعد الكشف تخلص من المود لأنه بيأثر على اداء السيرفر بشكل عام
  17. أظن الكود مابيعطي جمالية وبالعكس راح يزيده علطول او راح يوصل للنقطة المحددة بدون اي انميشن
  18. Visual Code - فيه بلوقن تقدر تجرب الاكواد ويتحقق من صحتها حق اللعبة
  19. رغم ردي المتأخر بس حبيت افيدكم ان اللعبة تقدر تبرمج في Lua وتقدر تبدع فيها لأن العرب فيها بس عندهم رول بلاي ماعندهم غير الرول بلاي او الهجولة وغير كذا المكتبة حق البرمجة كبيرة جداً بس تأخذ وقت بس عشان تبرمج كم مود فايحتاج تتعود لها أكبر عيوبها انها ماتستوعب اكثر من 100 لاعب في سيرفر واحد اكثر شيء 32 واذا بتخليه 64 بتصير مشاكل فهم يطورون على تقنيات تستوعب اعداد اكبر فيحتاج لها صبر اما بالنسبة للعبة احس تقدر تسوي كل الي في راسك لأن الجرافيكس يخليك تقدر تسوي العاب ثانية بنفس اللعبة فنعم فكرة جيدة انك تفتح سيرفر فيها --- عموماً لمتابعة الموضوع, العرب بالنسبة لهم اللعبه ميتة اما الاجانب في فتح مستمر للسيرفرات وانا اساعد اغلب سيرفرات الاجنبية لأن عندهم افكار واموال يعرفون يصرفونها صح مو يحطون كلها في الخادم ويحاول يجيب مبرمجين بدون مقابل واما بخصوص اللعبة فعلاً ممكن بتموت ولكنها قد ترجع أن حازت تطويرات قوية من المطورين حق اللعبة أو نهضة قوية من السيرفرات بتطوير قوي وترك التقليد
  20. فيه اشخاص يقولون ان الموضوع صعب ومعقد ولكن انا اعتقد العكس تماماً لو كان في شخص يدير الموضوع من كل ناحية.. تعاملت مع فرق أجنبية كثيرة وتعلمت من طرق تنظيمهم للمبرمجين وتوزيع اعمالهم رغم عددهم الكبير الا ان الصورة تطلع بأفضل شكل, الفرق الوحيد ان الفرق الاجنبية تعطي مبالغ مادية تخلي المبرمج يستمر مقابل اعماله وعلى نهج معين وانا بعطيكم بعض الامثلة.. أحد الفرق *الي ماراح اذكر اسمها* كانو مجهزين قائمة كاملة من اسماء الريسورس في ملف وكل ملف باسم ريسورس يشرح كل شيء حرفياً "من" و"الى" حتى التصميم وطريقته يعتمدون على مصمم فوتوشوب او تصميم عادي والمبرمج لازم يجيب نفس الصورة أو أفضل منها وبعض الفرق الي تعتمد على مكتبة تصميم واحدة حتى مايختلف التنسيق.. في النهاية الموضوع يحتاج له اداري مجهز الموضوع مسبقاً وعنده خطة شاملة ومبلغ كافي لمشروعه لأن اغلب العرب يبدؤون بدون ميزانية او يحطونها كلها في الخادم ويقولون لو جو لاعبين نعطيك منهم هذا شيء انساه مستحيل يصير, انت مو ضامن اساسا نجاح السيرفر فلذلك ماينلام المبرمج لما يطلب مبلغ مادي لمجموعة سكربت او لكل سكربت وفي الختام العرب مو حقودين او حسودين مافيه شخص يحترم المبرمج واعماله ويوفي حقها الا من رحم ربي!
  21. تسلم على الاهداء يالغالي, وياليت لو تصغر الصورة اكثر او تخلي لها خاصية في الاعدادات لحالها عموماً الفكرة حلوه وبالتوفيق
  22. كثرة الترايقرات بتسبب لاق فمابالك لو حطيتها في رندر.. في الاستخدام العادي -يعني سكربت لحاله وسيرفر فاضي- ماراح يسبب شيء بس لو كان فيه اكثر من سكربت راح يسبب لاق
  23. الأفضل يحط داتا على اللاعب بأسم الرتبة احسن من هذي الطريقة لأنها بتسبب مشاكل
  24. شكراً على الإهداء اللطيف هذا, ونتوقع منك المزيد واحدث التطويرات
  25. اول شيء تسوي جدول فيه البكجات بحيث يحتوي على اسم البكج وفنكشن التنفيذ للجائزة فكمثال Packages = { { "Package One", func = function ( player ) setElementHealth( player, 200 ) end } } من ثم يكون عندك طريقتين تتحقق من عدد الكلات الطريقة الاولى عن طريق حدث onElementDataChanged والطريقة الثانية عن طريق حدث onPlayerWasted وأفضل الثاني شخصياً, عالعموم تتحقق من عدد الكلات + وتتحقق انه قد استلم الجائزة أو لا = عن طريق وضع اكوانت داتا او ماشابه من ثم تسوي رقم عشوائي ومنه تحدد قيمه في الجدول وتنفذ الفنكشن func Packages[ math.random(1,#Packages) ].func( player ); وبالتوفيق لك