Jump to content

#CroSs

Members
  • Posts

    275
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by #CroSs

  1. (إذا كنت على سيرفر عالمي، جرب تشغل السكربت على سيرفر محلي (ولا تنسى أول تحدث اللعبة إذا اشتغل السكربت يعني من إصدار السيرفر العالمي، ما اشتغل، الله اعلم
  2. تسلم حبيبي والخروج منه Marker جربت هالكلام مع أحداث دخول الـ وحدث الخروج يشتغل بعد ما اطلع منه بمسافة ،Marker والنتيجة إن حدث الدخول يشتغل قبل ما المس الـ أكبر Marker نفسها، وهالمشكلة توضح كل ما كان الـ MTA اتضح إنها مشكلة في مربوط بلوحة Marker عادي تطلع لك لوحة فوق لو كان الـ ،Marker ودخلت الـ Jetpack يعني لو كنت فوق تطير بـ ،Marker وهي إنها تهمل الارتفاع لما تدخل الـ MTA وفي مشكلة ثانية في .أخيرًا، اعذرني على سذاجتي
  3. ،السلام عليكم بالنسبة للتصميم، فأقترح لو تقلل شوي من اللون الأبيض وتضيف ألوان ثانية وبعض الأزرار اشوفها عريضة بزيادة، بس لو تقلل العرض شوي Edits والـ تكون أجمل Sidebar وبالنسبة لبعض الروابط اللي تجي فوق، مثل اللي بصفحة إضافة خدمة، تقدر تخليها كـ .وبس هذي اقتراحاتي، غيره كذا اعطي التصميم 10/8 وبالتوفيق
  4. وظيفتك صحيحة، بس تقدر تخليها مختصرة وأكثر دقة Marker مرتبط معها ومنها الـ ColShape إن بعض العناصر عندها Wiki حسب كلام الـ ،getElementColShape بوظيفة بهذي الوظيفة Marker المرتبط مع الـ ColShape وبكذا تقدر تجيب هذا الـ أو لا Marker عشان تتأكد إن العنصر موجود داخله أو لا، وبالتالي تعرف إنه موجود بالـ isElementWithinColShape بعدها تستخدم .(سواء كانت من نوع محدد أم لا) ColShape عشان تجيب كل العناصر الموجودة في الـ getElementsWithinColShape أو تستعمل
  5. Try replacing what you have by this: function table.copy(t) local copiedTable = {} for key, value in pairs(t) do if value ~= _G then copiedTable[key] = value end end return copiedTable end function Wrapper.createEnvironment() local env = table.copy(_G) env._G = env setmetatable(env, { __index = function(_, index) if index == "source" then return _G.source else return rawget(env, index) end end }) return env end The reason this's happening is that MTA is declaring the source variable within the script's original environment. Thus, you need to get the variable's value from the script's original environment which is already defined as _G. Also, environments' meta table have no effect at all as you're giving them the same functionality Lua actually does originally. Besides, you had some issues with table.move I won't say critical but may cause bugs for some maps scripts.
  6. +1 لأن بالنسبة لي ما تفرق
  7. .. السلام عليكم عن نفسي، أشوف أكثر شيء يخوف في الألعاب هو الأشياء اللي تظهر فجأة وتتحرك بسرعة مع الأصوات اللي ما تدري من وين طالعه وجرب تضيف ظل بدون جسم ويهرب أول ما يشوفه اللاعب، اتوقع بكون له إحساس مختلف شكل الشخصية يلعب دور + وبس
  8. ؟GUI ولا DX رسم login الزر https://www.mediafire.com/file/e8q3nyjqb23j236/DXUI-Controller.zip :استخدم هالسكربت :موجود له شرح هنا بساعدك في إنشاء الأزرار ورسمها
  9. خليت تركيزي على كودك وقريت كلامك على السريع، بس كنت أوضح الخبصة خخ
  10. تفسير كلامي: dxCreateRenderTarget: أنت مستخدم رندر تارقت dxCreateShader: وشدر dxSetShaderValue(shader, "textureVar", renderTarget): Texture وحاط الرندر تارقت كـ dxSetShaderTransform: ومستخدم هالوظيفة عشان تحدد للشدر دوران ثري دي dxDrawImage: وتستخدم هالوظيفة عشان ترسم الشدر بس أنت مخربط الأكواد، لأن آخر وظيفتين لازم يكونون بحدث onClientRender أو أي حدث مشابه له. الغريب أنك مستخدم dxSetRenderTarget بدون ما ترسم شيء فيه + واضح أنك مغير ترتيب الأسطر بالكود
  11. لا ما نسينا، أنت مستخدم رندر تارقت وشدر وحاط الرندر تارقت ك Texture ومستخدم dxSetShaderTransform و dxDrawImage(shader) وبس. أنا بس قلت أنت وش مستخدم عشان تسوي الحركة ذي
  12. مثل ما توقعت، الوظائف ينمسحون لما ترسل الكلاس loadstring لكن في طريقة بال
  13. اوكي فهمت عليك مع اني ما توقعت أنك تقدر ترسل جدول فيه methods أو وظائف بدون ما ينمسحون
  14. ما ادري وش فايدة ذا بالضبط ممكن توضح؟
  15. السكربت برمجته على أنه يكون منفصل، عشان لو أكثر من سكربت يستخدمه في وقت واحد في السكربت، ما بيقدروا يستخدموه في سكربت ثاني OOP حتى لو طبقت الـ بشكل عادي OOP يقدر يحط ذا الكود في سكربته ويطبق الـ ،OOP إلي مهتم بالـ local point = createElement("dxui-point") local pointMT = getmetatable(point) local Point = pointMT.__class function Point:getPosition() return exports["DXUI-Controller"]:getPointPosition(self) end function Point:setPosition(x, y) return exports["DXUI-Controller"]:setPointPosition(self, x, y) end function Point:getSize() return exports["DXUI-Controller"]:getPointSize(self) end function Point:setSize(width, height) return exports["DXUI-Controller"]:setPointSize(self, width, height) end function Point:isMouseOver() return exports["DXUI-Controller"]:isMouseOverPoint(self) end function Point:isFocused() return exports["DXUI-Controller"]:isPointFocused(self) end function Point:isEnabled() return exports["DXUI-Controller"]:isPointEnabled(self) end function Point:setEnabled(enabled) return exports["DXUI-Controller"]:setPointEnabled(self, enabled) end function Point:isRenderingEnabled() return exports["DXUI-Controller"]:isPointRenderingEnabled(self) end function Point:setRenderingEnabled(enabled) return exports["DXUI-Controller"]:setPointRenderingEnabled(self, enabled) end function Point:bringToFront(getPropagated) return exports["DXUI-Controller"]:bringPointToFront(self, getPropagated) end function Point:isOtherResourcesAllowedToRender() return exports["DXUI-Controller"]:doesPointCreatorResourceAllowOtherResourcesToRender(self) end function Point:allowOtherResourcesToRender(allow) return exports["DXUI-Controller"]:allowOtherResourcesToRenderPoint(self, allow) end local rootMT = getmetatable(root) function rootMT.__class:validate() return exports["DXUI-Controller"]:validatePoint(self) end local pointGet = pointMT.__get function pointGet:parent() return exports["DXUI-Controller"]:getPointParent(self) end function pointGet:children() return exports["DXUI-Controller"]:getPointChildren(self) end function pointGet:creatorResource() return exports["DXUI-Controller"]:getPointCreatorResource(self) end function pointMT.__set:parent(parent) return exports["DXUI-Controller"]:setPointParent(self, parent) end destroyElement(point) methods تقدر تستخدم ذول الـ Point:getPosition() Point:setPosition(x, y) Point:getSize() Point:setSize(width, height) Point:isMouseOver() Point:isFocused() Point:isEnabled() Point:setEnabled(enabled) Point:isRenderingEnabled() Point:setRenderingEnabled(enabled) Point:bringToFront(getPropagated) Point:isOtherResourcesAllowedToRender() Point:allowOtherResourcesToRender(allow) (العادية تشتغل على كل أنواع البيانات) elements ذي بتشتغل على كل الـ Element:validate() قابلة للقراءة فقط properties ذول Point.children Point.creatorResource أما ذي قابلة للقراءة والكتابة Point.parent (للي ما فهم شيء يستعمل الطريقة العادية (البرمجة الإجرائية ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ تحديث #1 setPointParent تم تعديل بق في الوظيفة النسخة الأصلية - النسخة المصغرة
  16. صح كلامك ما تستحق. حتى لو سويت تشفير للكود، بيمديه يكتشف طريقة فكه ب addDebugHook هذي الوظيفة مفيدة للديبقين، لكن لها سلبيات أكثر
  17. بالنسبة ليه ما استخدم ال [[ ]] لأن اللون يطلع بني بالمحرر، مو حلو اللون المهم، هالمكتبة مسونها من زمان ولكنها صارت غير مستقرة ووقفت تطويرها لكن أقدر أعيد ابرمجها بطريقة احسن وأبي اشوف رايكم هل تستحق ولا لا
  18. همم، لا، يسوي ترايقر من المكتبة للسيرفر ويجيب النتائج ويرجعها على طول المكتبة تسوي أشياء ثانية وفيها مميزات أنك ترسل وظيفة مثلا، في الواقع ما يرسل وظيفة، لكن يرسل مرجع للوظيفة هي الجزء الأساسي coroutines ال
  19. ما مدى غرابة هالكود من 10 لو بغيت تطلع سريِل اللاعب وحسابه؟
  20. الفرق أن النسخة الأصلية هي النسخة إلي برمجت عليها، أكواد السكربت مرتبة وكل جزء محطوط بملف خاص به أما المصغرة، كل شيء في ملف واحد لكل جانب والأكواد كلها في سطر ومصغر بشكل عام بالنسبة لتفوقت على الآخرين، ما حبيت هالجملة صراحة، لأنها مهينة للبعض بس شكرا على مرورك
  21. ،وبعض الناس يحاولون يبرمجون مثل هالواجهات لكن تواجهم مشاكل، DX هالأيام كثرت الواجهات الي مصممة بوظائف الـ عشان كذا قررت انشر سكربت برمجته من زمان، لكن أعدت برمجته بالكامل مؤخرًأ ،السكربت راح يعطيك إمكانية تسوي نقاط (مساحات معينة من شاشة اللاعب) أو زر لأكون أوضح (focus لما اللاعب يسوي شيء معين على نقطة، يشتغل حدث بالشيء إلي سواه. مثلا: لما يدخل الماوس النقطة ،أو يضغط على النقطة، أو يركز على نقطة (الـ .طبعا في مميزات أكثر بنشرح أول كيف تستخدمه أولًا، السكربت مبرمج على أنه يكون خارجي exports أو من الجدول call بالوظيفة createPoint عشان تبدأ تستخدمه، تسوي استدعاء للوظيفة createPoint(x, y, width, height, relativeToWidth, relativeToHeight, parent) x, y: الإحداثيات width, height: حجم النقطة relativeToWidth, relativeToHeight: nil مقاس الشاشة المنسوب لها الإحداثيات والحجم (الشاشة إلي سويت بها النقطة) عشان يعدل المقاس لكل الشاشات. الاثنين لازم يكونون ارقام أو اثنينهم parent: أب النقطة. تستخدمه بالغالب عشان تخلي أولوية الماوس والضغط لأولاده لو كان الماوس عليهم (في كل هذي الأحداث هو النقطة نفسها source بعد ما تسوي النقطة، تقدر تستعمل هذي الأحداث عليها (ملاحظة: الـ onClientMouseEnterDP, onClientMouseLeaveDP: لما الماوس يدخل النقطة أو يطلع منها onClientDPClick: لما اللاعب يضغط على النقطة :يجي معه برامترين، هم button: (إذا انضغطت بالزر إلي بالنص (إلي ترفع وتنزل به middle أو right-click إذا كان right ،left-click إذا كان left يعبر عن الزر إلي انضغطت به النقطة. يكون state: إذا كان شايل يده عنه upإذا كان اللاعب ضاغط على الزر و down يكون onClientDPDoubleClick: onClientDPClick بنفس حالة button لما اللاعب يضغط مرتين على النقطة، يجي ببرامتر واحد وهو onClientDPFocus: لما اللاعب يركز على النقطة onClientDPBlur: لما اللاعب يشيل التركيز عن النقطة :السكربت يجي مع وظائف ثانية، عشان لو بغيت تعدل على خصائص النقطة، وهي ذول وظائف واضحين من اسمهم getPointPosition(point) setPointPosition(point, x, y) getPointSize(point) setPointSize(point, width, height) getPointParent(point) getPointCreatorResource(point) isMouseOverPoint(point) isPointFocused(point) :ذول يحتاجون توضيح getPointChildren(point) يرجع جدول فيه عناصر أطفال النقطة setPointEnabled(point, enabled) يفعل نقطة أو يعطلها. لما تعطلها يكون الوضع كأنها مو موجودة وبالتالي تجي لنا هذي الوظيفة isPointEnabled(point) setPointParent(point, parent) الحالي للنقطة (لو كان موجود) وراح يكون بدون أب parent النقطة. الأرقمنت الثاني اختياري، ولو ما حطيته راح يشيل الـ parent توضع bringPointToFront(point, getPropagated) (تقدم النقطة للأمام (النقاط إلي بالأمام دايمًا تكون أولوية الماوس لهم getPropagated: يعبر عن هل أن الوظيفة راح تقدم آباء النقطة بعد ولا لا boolean عبارة عن :للتوضيح validatePoint(point) boolean تتحقق إذا كانت النقطة صالحة، ترجع في وظائف ثانية، وقبل وما نشرحهم لازم نشرح شيء أول السكربت راح ينظم لك رندر النقاط وش يعني؟ لما ترسم مستطيل مثلًا، وبعدين ترسم مستطيل فوقه، المستطيل الثاني راح يطلع عليه مب وراه DX في وظائف الرسم ولأنك تبي النقاط الأولاد يطلعون فوق النقاط الآباء، السكربت ينظم لك هذا الشيء كيف؟ لو افترضت عندك هالنقاط لو جينا نسوي لهم رندر بالترتيب، لازم يكون الترتيب كذا عشان تطلع لنا هالنتيجة Point1, Point2, Point4, Point3 لو غيرت الترتيب وسويته كذا Point2, Point3, Point4, Point1 راح يكون كذا طيب كيف تسوي رندر للنقطة؟ لما لازم تسوي رندر للنقطة DXUI-Controller راح يتم استدعائه من السكربت exported function هالـ ،onPointRender في سكربتك اسمه exported function تحط بجيك برامتر واحد وقت الاستدعاء وهو النقطة إلي المفروض يصير لها رندر لأن لو سويت حدث راح يسبب لاق وبكذا ما راح يكون عملي exported function ملاحظة: خليت الرندر في تقدر تعطل رندر النقطة وتفعله بهالوظيفة setPointRenderingEnabled(point, enabled) أو تتحقق إذا كان مفعل ولا لا isPointRenderingEnabled(point) ملاحظة: الرندر مفعل افتراضيًا (السكربت الوحيد إلي يستدعى وقت رندر النقطة هو السكربت إلي سواها (افتراضيًا تقدر تعدل هذا الشيء بهالوظيفة allowOtherResourcesToRenderPoint(point, allow) (داخله (لو كانت موجودة onPointRender تسمح للسكربتات الأخرى بعمل رندر للنقطة، باستدعاء الوظيفة وتقدر تتحقق إذا كانت هالخاصية مفعلة ولا لا بهالوظيفة doesPointCreatorResourceAllowOtherResourcesToRender(point) ملاحظة: للأسف، لم أجد اسم اطول روابط التحميل النسخة الأصلية النسخة المصغرة
×
×
  • Create New...