Booo

تحت التطوير :كود - Useful Arab functions

Recommended Posts

On 6/15/2018 at 22:30, #,+( _xiRoc[K]; > said:

مافهمت وش تقصد

اقصد كـ رأي

15 hours ago, #َxLysandeR said:

عندي استفسار ليه ما تستخدم الجدول بدل الداتا ؟

As element data is synced to all clients, it can generate a lot of network traffic and consume server CPU. Events are much more efficient for sending data from a client to the server only, or from the server to a specific client.

ما اتوقع انها بتسوي مشاكل لأن جميع العمليات رح تكون على الحاسب الشخصي فقط

وما استعملت الجداول لأن الكود رح يكون اكبر

ولو لاحظت ( موجود جدول بالفعل بس نسيت ازيله ) لكن انا افضل استعمال الداتها لسهولتها

  • Like 1

Share this post


Link to post
2 hours ago, killerProject said:

اقصد كـ رأي

هو فعليا ماله اي فايدة بس كشكل

Share this post


Link to post
On 6/15/2018 at 00:11, #[K]iLLeR<3 said:

بالله بأيش تستعمل ذي مثلاً O.o 

باللوحات التحكم بالاعبين والتوزيع والخ 

On 6/14/2018 at 21:43, #DesTroeyR said:

guiGridListAddWeapons

كود حلوو 

موفق اخي ^_^ 

On 6/15/2018 at 16:28, killerProject said:

guiFadeElement

والله الكود كفو ,

بسألك سؤال :

Graphical user interface(GUI) ليش انت كل اكوادك عن لوحات ال

ضض

Share this post


Link to post
function guiGridListRemoveRowByText(gridlist, column, text)
	if gridlist and type(gridlist) == "gui-gridlist" then
		if text and column then
			if guiGridListGetRowCount(gridlist) > 0 then
				local rowIndex = nil
				local gridlistRowsCount = guiGridListGetRowCount(gridlist) - 1
				for i = 0, gridlistRowsCount do
					if guiGridListGetItemText(gridlist, i, column) == text then
						rowIndex = i
					end
				end
				if rowIndex and rowIndex ~= nil then
					guiGridListRemoveRow(gridlist, rowIndex)
				end
			end
		end
	end
	return false
end

الكود يشيل رو من الجريد ليست عن طريق التكست بتاعت الرو

Edited by #َxLysandeR
  • Like 1

Share this post


Link to post
3 hours ago, #َxLysandeR said:

function guiGridListRemoveRowByText(gridlist, column, text)
	if gridlist and type(gridlist) == "gui-gridlist" then
		if text and column then
			if guiGridListGetRowCount(gridlist) > 0 then
				local rowIndex = nil
				local gridlistRowsCount = guiGridListGetRowCount(gridlist) - 1
				for i = 0, gridlistRowsCount do
					if guiGridListGetItemText(gridlist, i, column) == text then
						rowIndex = i
					end
				end
				if rowIndex and rowIndex ~= nil then
					guiGridListRemoveRow(gridlist, rowIndex)
				end
			end
		end
	end
	return false
end

الكود يشيل رو من الجريد ليست عن طريق التكست بتاعت الرو

كودك راح يرجع القيمة فولس دائماً, وايضاً يمديك تختصر كودك بانك تحذف الرو على طول بدون استعمال المتغير

rowIndex

Share this post


Link to post
46 minutes ago, N3xT said:

كودك راح يرجع القيمة فولس دائماً, وايضاً يمديك تختصر كودك بانك تحذف الرو على طول بدون استعمال المتغير

rowIndex

شكرا علي التنبيه 

fixed - improved

function guiGridListRemoveRowByText(gridlist, text)
	if gridlist and type(gridlist) == "gui-gridlist" then
		if text and type(text) == "string" then
			if guiGridListGetRowCount(gridlist) > 0 and guiGridListGetColumnCount(gridlist) > 0 then
				for ir = 0, guiGridListGetRowCount(gridlist)-1 do
					for ic = 1, guiGridListGetColumnCount(gridlist) do
						if guiGridListGetItemText(gridlist, ir, ic) == text then
							return guiGridListRemoveRow(gridlist, ir)
						end
					end
				end
			end
		end
	end
	return false
end

 

Edited by #َxLysandeR
  • Like 1

Share this post


Link to post
15 hours ago, #َxLysandeR said:

شكرا علي التنبيه 

fixed - improved


function guiGridListRemoveRowByText(gridlist, text)
	if gridlist and type(gridlist) == "gui-gridlist" then
		if text and type(text) == "string" then
			if guiGridListGetRowCount(gridlist) > 0 and guiGridListGetColumnCount(gridlist) > 0 then
				for ir = 0, guiGridListGetRowCount(gridlist)-1 do
					for ic = 1, guiGridListGetColumnCount(gridlist) do
						if guiGridListGetItemText(gridlist, ir, ic) == text then
							return guiGridListRemoveRow(gridlist, ir)
						end
					end
				end
			end
		end
	end
	return false
end

 

عندك مشكله بـ type(gridlist)

استبدله بـ getElementType

  • Like 1

Share this post


Link to post
4 hours ago, Rakan# said:

عندك مشكله بـ type(gridlist)

استبدله بـ getElementType

مشكور علي التنبيه

function guiGridListRemoveRowByText(gridlist, text)
	if gridlist and getElementType(gridlist) == "gui-gridlist" then
		if text and type(text) == "string" then
			if guiGridListGetRowCount(gridlist) > 0 and guiGridListGetColumnCount(gridlist) > 0 then
				for ir = 0, guiGridListGetRowCount(gridlist)-1 do
					for ic = 1, guiGridListGetColumnCount(gridlist) do
						if guiGridListGetItemText(gridlist, ir, ic) == text then
							return guiGridListRemoveRow(gridlist, ir)
						end
					end
				end
			end
		end
	end
	return false
end

 

  • Like 1

Share this post


Link to post

zWDoHTl.png

DownloadFile

وظيفة تحميل ملف مرفوع على الانترنت

Syntax :

bool DownloadFile ( string Link , string FileName )

Required Arguments

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

FileName : اسم الملف عندما يتحمل وتقدر تحط  مسار واسم الملف ولازم تحط صيغة الملف

استخدام الفنكشن يكون بجهة سيرفر سايد والا مابيشتغل

source Code : 

	function DownloadFile ( Link , FileName )
	
	assert ( type ( Link ) == "string" , "Bad Argument At Argument #1 Link Moust String" )	
	
	assert ( type ( FileName ) == "string" , "Bad Argument At Argument #1 FileName Moust String" )	

	fetchRemote( Link ,
	
	function ( Result )

	if Result == "ERROR" then
	
	error ( "Can't Calling The Link" )
		return false
	end

	if fileExists ( FileName ) then 
	
	error ( "the file is already exists" )
		return false
	end
	
	local theFile = fileCreate ( FileName )
	
	if ( not theFile ) then
	
		return false
	end
	
	fileWrite ( theFile , Result ) 
	
	fileClose ( theFile )
	
	return true
	
		end
		)   	
	end

ex 1

DownloadFile ( "https://i.imgur.com/gdclMbe.png" , "mtaLogo.png" )	
DownloadFile ( "https://i.imgur.com/gdclMbe.png" , ":resourceName/mtaLogo.png" )	

ملاحظة : اذا ماحمل معك الملف حاول ترفع الملف الي تبيه على موقع ثاني ويكون مباشر

Author : Abdul KariM

اتمنى ان الفنكشن اعجبكم , والسلام عليكم

  • Like 9

Share this post


Link to post
On 21.06.2018 at 14:42, Abdul KariM said:

zWDoHTl.png

DownloadFile

وظيفة تحميل ملف مرفوع على الانترنت

Syntax :


bool DownloadFile ( string Link , string FileName )

Required Arguments

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

FileName : اسم الملف عندما يتحمل وتقدر تحط  مسار واسم الملف ولازم تحط صيغة الملف

استخدام الفنكشن يكون بجهة سيرفر سايد والا مابيشتغل

source Code : 


	function DownloadFile ( Link , FileName )
	
	assert ( type ( Link ) == "string" , "Bad Argument At Argument #1 Link Moust String" )	
	
	assert ( type ( FileName ) == "string" , "Bad Argument At Argument #1 FileName Moust String" )	

	fetchRemote( Link ,
	
	function ( Result )

	if Result == "ERROR" then
	
	error ( "Can't Calling The Link" )
		return false
	end

	if fileExists ( FileName ) then 
	
	error ( "the file is already exists" )
		return false
	end
	
	local theFile = fileCreate ( FileName )
	
	if ( not theFile ) then
	
		return false
	end
	
	fileWrite ( theFile , Result ) 
	
	fileClose ( theFile )
	
	return true
	
		end
		)   	
	end

ex 1


DownloadFile ( "https://i.imgur.com/gdclMbe.png" , "mtaLogo.png" )	
DownloadFile ( "https://i.imgur.com/gdclMbe.png" , ":resourceName/mtaLogo.png" )	

ملاحظة : اذا ماحمل معك الملف حاول ترفع الملف الي تبيه على موقع ثاني ويكون مباشر

Author : Abdul KariM

اتمنى ان الفنكشن اعجبكم , والسلام عليكم

ءحم فكرة مين هاذي ؟؟ على الأقل رد على الموضوع شفتك دخلت اخذت الفكرة وخرجت او كنت اعطني رابط التعليق هاد عشان استفيد

Share this post


Link to post
On ٢١‏/٦‏/٢٠١٨ at 14:42, Abdul KariM said:

 

افااااا ما توقعتها منك 

يا سراق الافكار 

  • Haha 1

Share this post


Link to post
On 21/06/2018 at 14:42, Abdul KariM said:

zWDoHTl.png

DownloadFile

وظيفة تحميل ملف مرفوع على الانترنت

Syntax :


bool DownloadFile ( string Link , string FileName )

Required Arguments

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

FileName : اسم الملف عندما يتحمل وتقدر تحط  مسار واسم الملف ولازم تحط صيغة الملف

استخدام الفنكشن يكون بجهة سيرفر سايد والا مابيشتغل

source Code : 


	function DownloadFile ( Link , FileName )
	
	assert ( type ( Link ) == "string" , "Bad Argument At Argument #1 Link Moust String" )	
	
	assert ( type ( FileName ) == "string" , "Bad Argument At Argument #1 FileName Moust String" )	

	fetchRemote( Link ,
	
	function ( Result )

	if Result == "ERROR" then
	
	error ( "Can't Calling The Link" )
		return false
	end

	if fileExists ( FileName ) then 
	
	error ( "the file is already exists" )
		return false
	end
	
	local theFile = fileCreate ( FileName )
	
	if ( not theFile ) then
	
		return false
	end
	
	fileWrite ( theFile , Result ) 
	
	fileClose ( theFile )
	
	return true
	
		end
		)   	
	end

ex 1


DownloadFile ( "https://i.imgur.com/gdclMbe.png" , "mtaLogo.png" )	
DownloadFile ( "https://i.imgur.com/gdclMbe.png" , ":resourceName/mtaLogo.png" )	

ملاحظة : اذا ماحمل معك الملف حاول ترفع الملف الي تبيه على موقع ثاني ويكون مباشر

Author : Abdul KariM

اتمنى ان الفنكشن اعجبكم , والسلام عليكم

شغل جبار بالتوفيق

بس عندي فكره لك با عبد الكريم وش رايك تخليه يضيف الملف بعد تحميله لملف ميتا 

 

Share this post


Link to post
On ١٤‏/٧‏/٢٠١٨ at 21:37, MR_Mahmoud said:

ءحم فكرة مين هاذي ؟؟ على الأقل رد على الموضوع شفتك دخلت اخذت الفكرة وخرجت او كنت اعطني رابط التعليق هاد عشان استفيد

هو م شاف الفكره وقلدها هو شاف الفكره وسواها عشان يفيد الاشخاص اللي يبونها واللي راح يحتاجها.

Edited by EH10
  • Like 2

Share this post


Link to post

@MR_Mahmoud الكود موجود عندي من ايام ماتعلمت على الوظيفة , لو ابي اقلد قلدت وماطقيت لك خبر

حبيت اطرحه عشان الي يبي يتعرف على الوظيفة اكثر ويفهمها بشكل اوضح مادام اني مقلد ليش اطرحه اساسا

وعطني رابط موضوعك عشان اشوف انت جاي كذا ولا ماتدري وش السالفة

@#َxLysandeR نورت حبيبي , والله هذي سهلة وماحبيت اضيفها فكرة الوظيفة تحميل فقط

@EH10 يعطيك العافية على التوضيح

  • Like 3

Share this post


Link to post
Just now, Abdul KariM said:

@MR_Mahmoud الكود موجود عندي من ايام ماتعلمت على الوظيفة , لو ابي اقلد قلدت وماطقيت لك خبر

حبيت اطرحه عشان الي يبي يتعرف على الوظيفة اكثر ويفهمها بشكل اوضح مادام اني مقلد ليش اطرحه اساسا

وعطني رابط موضوعك عشان اشوف انت جاي كذا ولا ماتدري وش السالفة

 

Share this post


Link to post

@MR_Mahmoud تستهبل انا راد عليك وقايلك مافهمت شي واكثر من واحد قالك موب فاهم شي

والى الان ماني فاهم موضوعك عشان تجي وتقول مقلد

افهم الموضوع بعدين تعال تكلم

  • Like 1

Share this post


Link to post
12 hours ago, Abdul KariM said:

@MR_Mahmoud تستهبل انا راد عليك وقايلك مافهمت شي واكثر من واحد قالك موب فاهم شي

والى الان ماني فاهم موضوعك عشان تجي وتقول مقلد

افهم الموضوع بعدين تعال تكلم

انا اسف O.o

Share this post


Link to post

multiLineForText

multiLineForText(string YourText,int TheMaximumNumberPerLine)

فايدة الوظيفة تقسيم نص طويل الى اكثر من نص مثلا

عندي نص فيه 30 حرف وابي كل 5 حروف من هالنص يكونو لحالهم

الوظيفة راح ترجع لك جدول مقسمه فيه النصوص

function multiLineForText(txt,maxForEachLine)
	if not( type(txt) == 'string' and type(maxForEachLine) == 'number' ) then
		return false
	end
	array = {}
	_txt = ''
	_count = 1
	if ( #txt >= maxForEachLine ) then
		for i=1,#txt do
			_txt = _txt..''..string.sub(txt,i,i)
			if ( i == maxForEachLine ) then
				array[#array+1] = _txt
				_txt = ''
				_count = _count+1
			elseif ( i == maxForEachLine*_count ) then
				array[#array+1] = _txt
				_txt = ''
				_count = _count+1
			else
				if ( i == #txt and _txt ~= '' ) then
				array[#array+1] = _txt
				end
			end
		end
	else
		array[#array+1] = txt
	end
	return array
end

مثال

x = 'hihihihihihihihihihihiheyheyheyheyheyheyheyheyheyheyheyheyheyheyhey'
for i,v in ipairs(multiLineForText(x,4)) do
  outputChatBox(v) -- راح يطلع فكل رساله 4 حروف
  -- مثلا اول رساله بتكون hihi
end

 

  • Like 1

Share this post


Link to post

@TheOtherSide انت طولتها مره وعقدتها

سويتها بأخف وابسط الطرق

	function StrMultiLine ( theStr , theNum )
	
	local FunCheck = ( assert ( type ( theStr ) == "string" , "error StrMultiLine arg 1 got " .. type ( theStr ) ) and assert ( type ( theNum ) == "number" , "error StrMultiLine arg 2 got " .. type ( theStr ) ) and theNum > #theStr and error ( "error StrMultiLine arg 2 num larger than string" ) ) 
	
		return split ( theStr : gsub ( ( "." ) : rep ( theNum ) , "%1ㅀ" ) : sub ( 1 , -1 ) , "ㅀ" )
	end

مثال

print ( table.concat ( StrMultiLine ( "HiHeIsOr" , 2 ) ) )

 

  • Like 4

Share this post


Link to post
2 hours ago, #_iMr,[E]coo said:

@Abdul KariM

ㅀ إيش هذي ؟ ما عمري شفتها ؟ 

هذا رمز انا استخدمته عشان يفصل السترنق ع حسب الرقم وخليته غريب عشان مايصير فيه تعارض يوم يجي يفصل السترنق تقدر تحط اي حرف او ارقم او رمز بداله عشان يفصل

لكن انا فضلت ذا

  • Haha 1

Share this post


Link to post
On 7/27/2018 at 18:33, Abdul KariM said:

لكن انا فضلت ذا

مخ صديك هههه ماشاء الله تبارك الله فنانه

Share this post


Link to post
On ٢٩‏/٧‏/٢٠١٨ at 00:20, Master_MTA said:

مخ صديك هههه ماشاء الله تبارك الله فنانه

حبيبي والله مشكور

  • Like 1

Share this post


Link to post

e2zd4f1.png

getElementsOnPlayerScreen

الوظيفة تجيب لك الكائنات او الألمنتات الي ظاهرين على شاشتك

Syntax:

table getElementsOnPlayerScreen(string/table elementType = "all")

Source code:

function getElementsOnPlayerScreen(element)
	local elementTypes = {['player']=true, ['ped']=true, ['vehicle']=true, ['object']=true, ['pickup']=true};
	local element = ((type(element) == 'table' and element) or (element == 'all' and element))
	if element then
		if type(element) == 'string' then
			element = {}
			for value in pairs(elementTypes) do
				element[#element+1] = value;
			end
		else
			local elementsTable = {};
			for index = 1, #element do
				if elementTypes[element[index]] then
					elementsTable[#elementsTable+1] = element[index]
				end
			end
			element = elementsTable;
		end
		local elementsTable = {};
		local elements = {};
		for index = 1, #element do
			local element = getElementsByType(element[index])
			for key = 1, #element do
				elements[#elements+1] = element[key];
			end
		end
		for element = 1, #elements do
			if isElementOnScreen(elements[element]) and elements[element] ~= localPlayer then
				elementsTable[#elementsTable+1] = elements[element]
			end
		end
		return elementsTable
	end
end

شرح الأرقمنتات للفنكشن:

Optional Arguments:

elementType: نوع الألمنتات الي تبي تحقق اذا كانت موجودة في شاشة اللاعب

القيمة ممكن تكون جدول او سترنق

اذا كانت القيمة سترنق ف لازم تكون 'all'

او اذا كانت القيمة جدول تقدر تحط فيه هذي القيم

player

ped

vehicle

object

pickup

Example:

--#Client Side
function getElementsOnPlayerScreen(element)
	local elementTypes = {['player']=true, ['ped']=true, ['vehicle']=true, ['object']=true, ['pickup']=true};
	local element = ((type(element) == 'table' and element) or (element == 'all' and element))
	if element then
		if type(element) == 'string' then
			element = {}
			for value in pairs(elementTypes) do
				element[#element+1] = value;
			end
		else
			local elementsTable = {};
			for index = 1, #element do
				if elementTypes[element[index]] then
					elementsTable[#elementsTable+1] = element[index]
				end
			end
			element = elementsTable;
		end
		local elementsTable = {};
		local elements = {};
		for index = 1, #element do
			local element = getElementsByType(element[index])
			for key = 1, #element do
				elements[#elements+1] = element[key];
			end
		end
		for element = 1, #elements do
			if isElementOnScreen(elements[element]) and elements[element] ~= localPlayer then
				elementsTable[#elementsTable+1] = elements[element]
			end
		end
		return elementsTable
	end
end

function getNearestElementOnPlayerScreen(player, elementType)
	local player = (isElement(player) and getElementType(player) == 'player') and player
	local elementType = type(elementType) == 'string' and (elementType == 'all' and elementType or {elementType})
	if player and elementType then
		local element = getElementsOnPlayerScreen(elementType);
		local nearest
		local playerX, playerY, playerZ = getElementPosition(player)
		for index = 1, #element do
			if isElement(nearest) then
				local oldDistance = getDistanceBetweenPoints3D(playerX, playerY, playerZ, getElementPosition(nearest))
				local newDistance = getDistanceBetweenPoints3D(playerX, playerY, playerZ, getElementPosition(element[index]));
				if newDistance < oldDistance then
					nearest = element[index];
				end
			else
				nearest = element[index];
			end
		end
		return nearest
	end
end

addCommandHandler('warpVehicle', function()
	local vehicle = getNearestElementOnPlayerScreen(localPlayer, 'vehicle');
	if vehicle then
		triggerServerEvent('givePlayerVehicle.', localPlayer, vehicle)
	else
		outputChatBox('There\'s no vehicle on you screen', 255, 0, 0, true)
	end
end)

--#Server Side
addEvent('givePlayerVehicle.', true)
addEventHandler('givePlayerVehicle.', root, function(vehicle)
	if not isPedInVehicle(client) then
		warpPedIntoVehicle(client, vehicle)
	end
end)

المثال هذا اذا كتبت /warpVehicle

ينقلك الى اقرب مركبة

  • Like 3
  • Thanks 1

Share this post


Link to post

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.