xBeSoOo_ Posted April 1, 2020 Share Posted April 1, 2020 شباب عايز شرح لعمل وظيفة داخل جدول و ايه فائدتها وطريقة التحكم فيها Link to comment
Master_MTA Posted April 2, 2020 Share Posted April 2, 2020 local dxelements={} local ta={ ["window"]=function() dxDrawText...etc end, ["button"]=function() dxDrawRectangle ... etc end } addEventHandler("onClientRender",root,function() for k,v in ipairs(dxelements)do ta[getElementType(v)]() end end) Link to comment
xBeSoOo_ Posted April 2, 2020 Author Share Posted April 2, 2020 1 hour ago, Master_MTA said: local dxelements={} local ta={ ["window"]=function() dxDrawText...etc end, ["button"]=function() dxDrawRectangle ... etc end } addEventHandler("onClientRender",root,function() for k,v in ipairs(dxelements)do ta[getElementType(v)]() end end) تمام طيب فيه كدا بردو دا ايه استخدامه أو كيف بيستخدم اساسا local tb = {} function tb.give() -- دي وش وظيفتها وكيف يتم . . end Link to comment
Master_MTA Posted April 2, 2020 Share Posted April 2, 2020 (edited) 11 hours ago, xBeSoOo_ said: تمام طيب فيه كدا بردو دا ايه استخدامه أو كيف بيستخدم اساسا local tb = {} function tb.give() -- دي وش وظيفتها وكيف يتم . . end --it's look like table.remove but custom one --يعني انته بتعمل وظيفه جديده في كلاس التيبل اللي موجود من الاول في اللغه الاصليه --بس خاص بيك --for tb table --example inserOnTop can work on all table function table.insertOnTop(ta,value) local t={} table.insert(t,value) for k,v in ipairs(ta)do t[k]=v end return t end ---فنكشن جديد تقدر تستخدمه مع اي تيبل غالبا وهو يحطلك القيمه باول الجدول مب باخره بدال table.insert اللي يحط القيمه بنهاية الجدول بالتوفيق Edited April 2, 2020 by Master_MTA غيرت اسم الجدول فقط Link to comment
Rockyz Posted April 3, 2020 Share Posted April 3, 2020 10 hours ago, Master_MTA said: --it's look like table.remove but custom one --يعني انته بتعمل وظيفه جديده في كلاس التيبل اللي موجود من الاول في اللغه الاصليه --بس خاص بيك --for tb table --example inserOnTop can work on all table function table.insertOnTop(ta,value) local t={} table.insert(t,value) for k,v in ipairs(ta)do t[k]=v end return t end ---فنكشن جديد تقدر تستخدمه مع اي تيبل غالبا وهو يحطلك القيمه باول الجدول مب باخره بدال table.insert اللي يحط القيمه بنهاية الجدول بالتوفيق تقدر تختصر كل هذا table.insert(table, 1, value) Link to comment
فاّرس Posted April 3, 2020 Share Posted April 3, 2020 على حسب ايش تبغى تسوي, بعطيك امثله عن الفوائد اللي ممكن تحصلها اذا حطيت وظائف بداخل الجدول : 1 : لنفرض انك بتسوي سكربت وبتحتاج وظائف كثير وماتبغى تتعب كل شوي تكتب اسم الوظيفه, ايش الحل؟ الحل بكل بساطة انك تجمع الوظائف بداخل جدول وتقدر تستدعيها بكل سهوله بدون ماتكتب اسم الوظيفه في كل مره : fTable = { { func = outputChatBox }, { func = getPlayerName }, { func = getPlayerPing }, } fTable[1].func ( 'Hi' ); طيب ممكن تشوف الطريقة تافهه وتقول ايش الفايده فعلاً؟ الفايده انك تقدر تختصر وظائف كثير بمتغيرات بسيطه تسهل عليك البرمجه خصوصاً في الأكواد الطويلة جداً. 2 : طريقة أخرى ألا وهي انك تضيف الوظيفة كامله بداخل الجدول وتستخدمها طبيعي, الغرض منه انك تقدر تتحكم بالوظائف بكل حريٌه, كمثال : Nothing = { } -- جدول فارغ Nothing.doit = function () -- وظيفة نضعها بداخل الجدول end Nothing.doit2 = function () -- وضيفة أخرى نضعها بداخل الجدول end Nothing.doit3 = function () -- + وضيفة أخرى نضعها بداخل الجدول end طيب يمكن تقول نفس الكلام فوق ان الطريقه تافهه ومالها أي داعي وانك تقدر تسوي الوظائف ذي بدون جدول ! طيب لنفرض انك لسبب من الأسباب احتجت تستخدم وظائف كثير بنفس الوقت ايش بتسوي؟ كمثال وظيفه تخلي اللاعب يمشي ووظيفه تطلع له نص ووظيفه تعطيه سلاح ووظيفه تسوي له سياره ولنفرض انك احتجت تكرر الطريقه , يعني احتجت تفعل الوظائف في نفس الوقت ! الحل انك تسوي جدول وتضيف له الوظائف زي اللي فوق : Nothing = { } -- جدول فارغ Nothing.doit = function () -- وظيفة نضعها بداخل الجدول print( 'a' ); end Nothing.doit2 = function () -- وضيفة أخرى نضعها بداخل الجدول print ( 'b' ); end Nothing.doit3 = function () -- + وضيفة أخرى نضعها بداخل الجدول print ( 'c' ); end for k,v in pairs ( Nothing ) do -- لوب عشان نجيب محتويات الجدول v(); -- يستدعي جميع الوظائف اللي في الجدول end طبعاً تقدر تسويها بطرق أخرى بس ذي اشوفها اسهل بكثير. 3 : لنفرض انك لسبب ما احتجت تحذف الوظائف بالكامل, كمثال لو عندك سكربت تكتب اسم الوظيفه وتتفعل وسويت شرط انه اذا اللاعب كتب وظيفه محدده تنحذف كل الوظائف, كيف تسويها ؟ : nil تقدر بكل بساطة تخلي قيمة الجدول Nothing = { } -- جدول فارغ Nothing.doit = function () -- وظيفة نضعها بداخل الجدول end Nothing.doit2 = function () -- وضيفة أخرى نضعها بداخل الجدول end Nothing.doit3 = function () -- + وضيفة أخرى نضعها بداخل الجدول end Nothing = nil; -- بما معناه نحذف الجدول -- اي وظيفة بداخل الجدول مابتقدر تستخدمها لأنه انحذف الجدول. 4 : لنفرض انك بتسوي جدول جديد وتبغى الوظائف اللي فوق تكون موجوده؟ الحل من الأساس انه لازم تكون الوظائف بداخل الجدول القديم ثم تنسخها للجدول الجديد بكل بساطه. طبعاً هناك طرق أخرى ولكل أحد طريقته الخاصه في البرمجة, وطبعاً هناك استخدامات أخرى للوظائف بداخل الجدول ولكن حبيت اعطيك امثله بسيطه. أتمنى الفكره وصلت وبالتوفيق Link to comment
xBeSoOo_ Posted April 3, 2020 Author Share Posted April 3, 2020 5 hours ago, Sha67 said: على حسب ايش تبغى تسوي, بعطيك امثله عن الفوائد اللي ممكن تحصلها اذا حطيت وظائف بداخل الجدول : 1 : لنفرض انك بتسوي سكربت وبتحتاج وظائف كثير وماتبغى تتعب كل شوي تكتب اسم الوظيفه, ايش الحل؟ الحل بكل بساطة انك تجمع الوظائف بداخل جدول وتقدر تستدعيها بكل سهوله بدون ماتكتب اسم الوظيفه في كل مره : fTable = { { func = outputChatBox }, { func = getPlayerName }, { func = getPlayerPing }, } fTable[1].func ( 'Hi' ); طيب ممكن تشوف الطريقة تافهه وتقول ايش الفايده فعلاً؟ الفايده انك تقدر تختصر وظائف كثير بمتغيرات بسيطه تسهل عليك البرمجه خصوصاً في الأكواد الطويلة جداً. 2 : طريقة أخرى ألا وهي انك تضيف الوظيفة كامله بداخل الجدول وتستخدمها طبيعي, الغرض منه انك تقدر تتحكم بالوظائف بكل حريٌه, كمثال : Nothing = { } -- جدول فارغ Nothing.doit = function () -- وظيفة نضعها بداخل الجدول end Nothing.doit2 = function () -- وضيفة أخرى نضعها بداخل الجدول end Nothing.doit3 = function () -- + وضيفة أخرى نضعها بداخل الجدول end طيب يمكن تقول نفس الكلام فوق ان الطريقه تافهه ومالها أي داعي وانك تقدر تسوي الوظائف ذي بدون جدول ! طيب لنفرض انك لسبب من الأسباب احتجت تستخدم وظائف كثير بنفس الوقت ايش بتسوي؟ كمثال وظيفه تخلي اللاعب يمشي ووظيفه تطلع له نص ووظيفه تعطيه سلاح ووظيفه تسوي له سياره ولنفرض انك احتجت تكرر الطريقه , يعني احتجت تفعل الوظائف في نفس الوقت ! الحل انك تسوي جدول وتضيف له الوظائف زي اللي فوق : Nothing = { } -- جدول فارغ Nothing.doit = function () -- وظيفة نضعها بداخل الجدول print( 'a' ); end Nothing.doit2 = function () -- وضيفة أخرى نضعها بداخل الجدول print ( 'b' ); end Nothing.doit3 = function () -- + وضيفة أخرى نضعها بداخل الجدول print ( 'c' ); end for k,v in pairs ( Nothing ) do -- لوب عشان نجيب محتويات الجدول v(); -- يستدعي جميع الوظائف اللي في الجدول end طبعاً تقدر تسويها بطرق أخرى بس ذي اشوفها اسهل بكثير. 3 : لنفرض انك لسبب ما احتجت تحذف الوظائف بالكامل, كمثال لو عندك سكربت تكتب اسم الوظيفه وتتفعل وسويت شرط انه اذا اللاعب كتب وظيفه محدده تنحذف كل الوظائف, كيف تسويها ؟ : nil تقدر بكل بساطة تخلي قيمة الجدول Nothing = { } -- جدول فارغ Nothing.doit = function () -- وظيفة نضعها بداخل الجدول end Nothing.doit2 = function () -- وضيفة أخرى نضعها بداخل الجدول end Nothing.doit3 = function () -- + وضيفة أخرى نضعها بداخل الجدول end Nothing = nil; -- بما معناه نحذف الجدول -- اي وظيفة بداخل الجدول مابتقدر تستخدمها لأنه انحذف الجدول. 4 : لنفرض انك بتسوي جدول جديد وتبغى الوظائف اللي فوق تكون موجوده؟ الحل من الأساس انه لازم تكون الوظائف بداخل الجدول القديم ثم تنسخها للجدول الجديد بكل بساطه. طبعاً هناك طرق أخرى ولكل أحد طريقته الخاصه في البرمجة, وطبعاً هناك استخدامات أخرى للوظائف بداخل الجدول ولكن حبيت اعطيك امثله بسيطه. أتمنى الفكره وصلت وبالتوفيق شكرا شاطح وشكرا للشباب الي ردوا فهمت الحمدلله Link to comment
N3xT Posted April 3, 2020 Share Posted April 3, 2020 (edited) local functions = { outputText = function ( ... ) outputChatBox ( ... ) end, } functions.outputText ( "Hello", root, 255, 255, 255, true ) Edited April 3, 2020 by N3xT 2 Link to comment
iwalidza Posted April 3, 2020 Share Posted April 3, 2020 10 minutes ago, N3xT said: local functions = { outputText = function ( ... ) outputChatBox ( ... ) end, } functions.outputText ( "Hello", root, 255, 255, 255, true ) يعني اقدر اسوي اكثر من شيء داخل الفنكشن و اطلعه وقت ما ابي صحيح؟ local functions = { outputText = function ( ... ) outputChatBox ( ... ) end, outputTextAdmin = function( ... ) outputChatBox ("From Admin :" ... ) end, } functions.outputTextAdmin ( "We need learn :)", root, 255, 255, 255, true ) Link to comment
N3xT Posted April 4, 2020 Share Posted April 4, 2020 2 minutes ago, iwalidza said: يعني اقدر اسوي اكثر من شيء داخل الفنكشن و اطلعه وقت ما ابي صحيح؟ local functions = { outputText = function ( ... ) outputChatBox ( ... ) end, outputTextAdmin = function( ... ) outputChatBox ("From Admin :" ... ) end, } functions.outputTextAdmin ( "We need learn :)", root, 255, 255, 255, true ) outputChatBox ( "From Admin :" .. ... ) 1 Link to comment
iwalidza Posted April 4, 2020 Share Posted April 4, 2020 Just now, N3xT said: outputChatBox ( "From Admin :" .. ... ) ماقصرت 1 Link to comment
Master_MTA Posted April 4, 2020 Share Posted April 4, 2020 On 03/04/2020 at 06:04, RocKyz said: table.insert(table, 1, value) +_+ انا اعطي مثال الله يصلحك مب المقصد الوظيفه Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now