Jump to content

وظيفة داخل جدول


Recommended Posts

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
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 by Master_MTA
غيرت اسم الجدول فقط
Link to comment
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

على حسب ايش تبغى تسوي, بعطيك امثله عن الفوائد اللي ممكن تحصلها اذا حطيت وظائف بداخل الجدول :

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 :

لنفرض انك بتسوي جدول جديد وتبغى الوظائف اللي فوق تكون موجوده؟ الحل من الأساس انه لازم تكون الوظائف بداخل الجدول القديم ثم تنسخها للجدول الجديد بكل بساطه.

طبعاً هناك طرق أخرى ولكل أحد طريقته الخاصه في البرمجة, وطبعاً هناك استخدامات أخرى للوظائف بداخل الجدول ولكن حبيت اعطيك امثله بسيطه.

 

أتمنى الفكره وصلت وبالتوفيق :D

 

Link to comment
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 :

لنفرض انك بتسوي جدول جديد وتبغى الوظائف اللي فوق تكون موجوده؟ الحل من الأساس انه لازم تكون الوظائف بداخل الجدول القديم ثم تنسخها للجدول الجديد بكل بساطه.

طبعاً هناك طرق أخرى ولكل أحد طريقته الخاصه في البرمجة, وطبعاً هناك استخدامات أخرى للوظائف بداخل الجدول ولكن حبيت اعطيك امثله بسيطه.

 

أتمنى الفكره وصلت وبالتوفيق :D

شكرا شاطح وشكرا للشباب الي ردوا فهمت الحمدلله

Link to comment
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
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 :" .. ... )

 

  • Like 1
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...