Jump to content

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


Booo

Recommended Posts

On 9/30/2017 at 11:19, iMr.WiFi..! said:

 math.ceilPlus
< مدري لو الوظيفة موجودة من قبل ولكن على حسب بحثي مالقيتها >
بسم الله الرحمن الرحيم, 
سلام عليكم ورحمة الله وبركاتة 
جبت لكم وظيفة مفيدة جداً لعمل بطولات وتيمات او اشياء من هالقبيل ..
وظيفة للغة LUA 
يعني صالح في استعمال اي شيء يخص بلوا وليس فقط MTA
علعموم نبدأ

بالسورس كود | Source Code :
 


function math.ceilPlus ( n )
	if type ( n ) ~= 'number' or not tonumber ( n ) then
		error ( " ERROR : function ( math.ceilPlus ) bad argument 1# expected number, got "..type ( n ) );
		return false;	
	end
	local r;
	if ( n % 1 < 1 ) then
		r = math.floor ( n ) + 1;
	end
	return r or n;
end

السينتاكس | Syntax :
 


int math.ceilPlus ( int n )

 

n : الرقم الذي تريد تطبيق عليه العملية الحسابية

فائدة الوظيفية | Functional benefit :


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


مثال | Example :
 


local n = math.ceilPlus ( 5.5 );
print ( n );
-- Result : 6;
local n = math.ceilPlus ( 1.5 );
print ( n );
-- Result : 2;
local n = math.ceilPlus ( 5 / 2 ); -- 5 / 2 == 2.5
print ( n );
-- Result : 3;

أتمنى ان الوظيفة عجبتكم وأذا عجبتكم سوو ثانكس او لايك للتعليق هذا

+ وبتوفيق للكل
وسلام خير الختام

أضافة مثال بسيط :
معرفة عدد القرون الهجرية او الميلادية .

 

addCommandHandler ( 'DateCeil', function ( )
	local hijiri = 1439
	local miylady = 2017
	outputChatBox ( 'On Hijiri Is :'.. math.ceilPlus ( hijiri / 100 ) )
    outputChatBox ( 'On Miylady Is :'.. math.ceilPlus ( miylady / 100 ) )
end )

النتيجة :
'On Hijiri Is :15'
'On Miylady Is :21'

 

  • Haha 1
Link to comment
On ٢٩‏/٨‏/٢٠١٧ at 13:52, Master_MTA said:

 

اللاعب يضغط

ctrl+v

الفنكشن كلن سايد فقطط

((وش بيفيدك هذا الفنكشن مخصص لي(رعاة الدي اكس (المحترفين

المهم السورس كود

م نفع معي ..

  • Like 1
Link to comment
  • 3 weeks later...

removeEventHandler

بسم الله الرحمن الرحيم ,
سلام عليكم ورحمة الله وبركاته : اما بعد .
اقدم لكم تعديل مفيد لوظيفة ( " RemoveEventHandler " )
بحيث انك تحذف الحدث بدون وضع الارقمنت الثالث ( الوظيفة ) او بشكل آخر ان يكون آختيارياً
Source Code :

 


function removeEventHandler ( eventName, attachedTo, functionVar )
	if functionVar then
		return removeEventHandler ( eventName, attachedTo, functionVar )
			else
		if #getEventHandlers ( eventName, attachedTo ) == 1 then
			return removeEventHandler ( eventName, attachedTo, getEventHandlers ( eventName, attachedTo )[1] )
				else
			for index = 1, #getEventHandlers ( eventName, attachedTo ) do
				if index == #getEventHandlers ( eventName, attachedTo ) then
						return removeEventHandler ( eventName, attachedTo, getEventHandlers ( eventName, attachedTo )[index] )
					else
						if removeEventHandler ( eventName, attachedTo, getEventHandlers ( eventName, attachedTo )[index] ) then
							removeEventHandler ( eventName, attachedTo, getEventHandlers ( eventName, attachedTo )[index] )
								else
							return false
						end
				end
			end
		end
	end
end

Syntax :
 

bool removeEventHandler ( string eventName, element attachedTo[, function functionVar] ) 

Example :
 

addEventHandler ( "onClientGUIClick", button,
	function ( )
		removeEventHandler ( "onClientGUIClick", button )
	end
)

وفي الختام بالتوفيق للكل <3

  • Like 1
  • Thanks 2
Link to comment
  • 1 month later...
14 hours ago, #x1AhMeD,-09 said:

بسم الله الرحمن الرحيم

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

الوظيفه هي : 

 

                                                                                                                                                                                     convertNumberToString                                                                                                         Sharedfunction

 
الحين يجي وش فايده الوظيفه ؟؟
فايده الوظيفه كالتالي
انك تقدر تحول الأرقام الطويله لاختصارات
مثلا
مليون = 1000000
الحين مثلا تبي تحطها في جريد لست او التاب او اي شي هيك الخ ...
هتاخد مكان طويل او مليار و بليون و تلريون
مثلا التلريون : 1000000000000
هتاخد مكان كبير لهيك سويت الوظيفه لتسهيل الأمر عليكم
الوظيفه ببساطه هتسوي الرقم من : 1000000000000
1T : الي
1M : او مليون الي
طيب الحين مثلا فلوسي 1 مليون و كسور مثلا 1 مليون و 500 الف كيف هتصير؟ 
1.5M هتصير هيك 
1K = 1 الف 
الخ يعني 
مثلا فلوسي هيك : 1555 الف كيف هتصير ؟؟
1.55K : هتصير هيك
طبعا اظن صارت واضحه فايده الوظيفه
 

sourceCode


function convertNumberToString(num)
	if not num then
		error("ERROR : function convertNumberToString bad argument #1 expected number/string, got bool")
		return false
	end
	num = tostring(num)
	if string.len(num) >= 4 and string.len(num) < 7 then
		num = string.format("%.1f", tonumber(num)/1000).."K"	
	elseif string.len(num) >= 7 and string.len(num) < 10 then
		num = string.format("%.1f", tonumber(num)/10000000).."M"
	elseif string.len(num) >= 10 and string.len(num) < 13 then
		num = string.format("%.1f", tonumber(num)/1000000000).."B"
	elseif string.len(num) >= 13 then
		num = string.format("%.1f", tonumber(num)/1000000000000).."T"
	elseif string.len(num) < 4 then
		num = num
	else
		num = num
	end
	return num
end

 

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

Example :

 

convertNumberToString(100) -- Result : 100
convertNumberToString(1) -- Result : 1
convertNumberToString(1000) -- Result : 1K
convertNumberToString(99999) -- Result : 99.99K
convertNumberToString(1000000000) -- Result : 1B

 

 
 

صراحة اهنيك علي هي الوظيفة كنت ادور مثلها من زمان :) ض1

Link to comment

السلام عليكم 

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

هي انطرحت من قبل بس اشوف ان الي طرحوها عندهم شويه اشياء ناقصه

مثلا اول كود

ملاحظ انو مسوي هيك

if string == "true" then

return true

else

return false

end

false راح ترجع "hello" هيك مثلا لو كان السترنج هيك

-----

و الكود التاني حق دابل مثلا لو السترنج

FALSE OR TRUE

هيرجع nil

لهيك حبيت اختصرها شوي و اظبطها للي يحتاجونها 

-----------------------------------------

function name : tobool

args. : string

ex : tobool("FaLsE")

source Code : 

function tobool(str)
	if not str and type(str) ~= "string" then
		error("ERROR : function tobool bad argument #1 expected string ( got "..type(str).." )")
		return
	end
	str = str:lower()
	if str == "true" then
		return true
	elseif str == "false" then
		return false
	else
		return nil
	end
end

 

  • Like 1
  • Thanks 1
Link to comment
  • 2 months later...
function getTimeFixed(sec)
local hou=sec/3600
local min=(sec%3600)/60
local thesec=(sec%3600)%60
return tostring(split(tostring(hou),'.')[1]..":"..split(tostring(min),'.')[1]..":"..split(tostring(thesec),'.')[1])

end

الوظيفه تاتي لك بالوقت بالساعات وبالدقائق والثواني

عبر الثواني

  • Like 2
Link to comment
  • 3 weeks later...
18 hours ago, #Himoo said:

السلام عليكم

اليوم اول يوزفل اسويه لكم ولاكن مدري هذا يوزفل او لا ض1 9_9
لاكن سويته للأفادة

وهو عبار عن انك تضيف لاعبين ب كومبو بوكس
اعرف انه سهل ولاكن سويته للي ما يعرف مع انو الكل يعرف :lol:
بس بداية لي 

يلا نشوف الكود
Source Code :


function guiComboBoxAddPlayers( combo )
	if( getElementType( combo ) == "gui-combobox" ) then	
				for _, players in ipairs(getElementsByType('player')) do
				guiComboBoxClear ( combo )
				guiComboBoxAddItem(combo, getPlayerName(players))
		  end 
      end
end

مثال :
 


GUIEditor = {
    combobox = {}
}
local screenW, screenH = guiGetScreenSize()
GUIEditor.combobox[1] = guiCreateComboBox((screenW - 346) / 2, (screenH - 173) / 2, 346, 173, "", false)
guiSetVisible(GUIEditor.combobox[1], false)

bindKey("F3","down",
function()
if ( guiGetVisible(GUIEditor.combobox[1]) == false ) then
guiSetVisible(GUIEditor.combobox[1], true)
showCursor(true)
guiComboBoxAddPlayers( GUIEditor.combobox[1] )
else
guiSetVisible(GUIEditor.combobox[1], false)
showCursor(false)
end
end
)

النتيجة :
p_80575scu1.png

عندك خطأ بالكود :"|
كودك ناتجه بيخلي بس اللاعب الي بيظهر هو اخر لاعب بالسيرفر

التصحيح :
 

function guiComboBoxAddPlayers( combo )
	if( getElementType( combo ) == "gui-combobox" ) then	
    	  guiComboBoxClear ( combo )
		  for _, players in ipairs(getElementsByType('player')) do
				guiComboBoxAddItem(combo, getPlayerName(players))
		  end 
      end
end

 

  • Like 2
Link to comment
function convertToAllScreens(x, y, w, h, resolutionX, resolutionY)
	if tonumber(x) and tonumber(y) and tonumber(w) and tonumber(h) and tonumber(resolutionX) and tonumber(resolutionY) then
		local screenW, screenH = guiGetScreenSize()
		local newX, newY, newW, newH = (x/resolutionX)*screenW, (y/resolutionY)*screenH, (w/resolutionX)*screenW, (h/resolutionY)*screenH
		return newX, newY, newW, newH
	end
	return false
end

x, y, w, h  = الاحداثيات و الحجم

resolutionX, resolutionY = مقاس شاشتك الي صممت به اللوحه

-----------

returns x, y, w, h = الاحداثيات و الحجم الجديد الي يناسب كل الشاشات

Example : 

addEventHandler("onClientRender", root,
	function()
		local x, y, w, h = convertToAllScreens(383, 186, 515, 31, 1280, 800)
		dxDrawRectangle(x, y, w, h, tocolor(255, 255, 255, 125), false)
	end
)

الفانكشن تنفع لي الـ

GUI + DX

 

  • Like 2
Link to comment
On 3/22/2018 at 17:18, #x1AhMeD,-09 said:

الفانكشن تنفع لي الـ

 

حلو لكن ما افضل انك تقترحها للجيو بحيث الجيو بيكون افضل تسوي كذا

function fixGUISizeAndPosition(gui,screenx,screeny,relative )
  local relative =relative  or false
  local x,y=guiGetPosition(gui,relative)
  local w,h=guiGetSize(gui,relative)
  local scx,scy=guiGetScreenSize()
  local sx,sy=(scx/screenx),(scy/screeny)
  if guiSetPosition(gui,sx*x,sy*y,relative) and guiSetSize(gui,sx*w,sy*h,relative) then return true end
  return false
end

example

local gui=guiCreateWindow(0,0,0,0,'tttt',false)
fixGUISizeAndPosition(gui,1366,768,false)
-------
fixGUISizeAndPosition(gui,1366,768)

 

Link to comment

مدري موجوده من قبل ولا لا لكن 2 حبيت اشاركم بيها



function getWeaponSlot(id)
local wp={
[0]={0,1},
[1]={2,3,4,5,6,7,8,9},
[2]={22,23,24},
[3]={25,26,27},
[4]={28,29,32},
[5]={30,31},
[6]={33,34},
[7]={35,36,37,38},
[8]={16,17,18,39},
[9]={41,42,43},
[10]={10,11,12,13,14,15},
[11]={44,45,46},
[12]={40}
}
for k,v in pairs(wp)do
	for s,l in ipairs(wp[k])do
		if tonumber(l)==tonumber(id) then
			return k
		end
	end
end
return false
end

function getPedWeapons(ped)
	local playerWeapons = {}
	if ped and isElement(ped) and getElementType(ped) == "ped" or getElementType(ped) == "player" then
		for i=0,12 do
			local wep = getPedWeapon(ped,i)
			local ammo = getPedTotalAmmo ( ped, i ) 
			if wep and wep ~= 0 then
				table.insert(playerWeapons,{wep,ammo})
			end
		end
	else
		return false
	end
	return playerWeapons
end

بالتوفيق

Link to comment

هههه

1 hour ago, Master_MTA said:

مدري موجوده من قبل ولا لا لكن 2 حبيت اشاركم بيها



function getWeaponSlot(id)
local wp={
[0]={0,1},
[1]={2,3,4,5,6,7,8,9},
[2]={22,23,24},
[3]={25,26,27},
[4]={28,29,32},
[5]={30,31},
[6]={33,34},
[7]={35,36,37,38},
[8]={16,17,18,39},
[9]={41,42,43},
[10]={10,11,12,13,14,15},
[11]={44,45,46},
[12]={40}
}
for k,v in pairs(wp)do
	for s,l in ipairs(wp[k])do
		if tonumber(l)==tonumber(id) then
			return k
		end
	end
end
return false
end

function getPedWeapons(ped)
	local playerWeapons = {}
	if ped and isElement(ped) and getElementType(ped) == "ped" or getElementType(ped) == "player" then
		for i=0,12 do
			local wep = getPedWeapon(ped,i)
			local ammo = getPedTotalAmmo ( ped, i ) 
			if wep and wep ~= 0 then
				table.insert(playerWeapons,{wep,ammo})
			end
		end
	else
		return false
	end
	return playerWeapons
end

بالتوفيق

 

Link to comment
21 hours ago, Master_MTA said:

مدري موجوده من قبل ولا لا لكن 2 حبيت اشاركم بيها


function getWeaponSlot(id)local wp={[0]={0,1},[1]={2,3,4,5,6,7,8,9},[2]={22,23,24},[3]={25,26,27},[4]={28,29,32},[5]={30,31},[6]={33,34},[7]={35,36,37,38},[8]={16,17,18,39},[9]={41,42,43},[10]={10,11,12,13,14,15},[11]={44,45,46},[12]={40}}for k,v in pairs(wp)do	for s,l in ipairs(wp[k])do		if tonumber(l)==tonumber(id) then			return k		end	endendreturn falseendfunction getPedWeapons(ped)	local playerWeapons = {}	if ped and isElement(ped) and getElementType(ped) == "ped" or getElementType(ped) == "player" then		for i=0,12 do			local wep = getPedWeapon(ped,i)			local ammo = getPedTotalAmmo ( ped, i ) 			if wep and wep ~= 0 then				table.insert(playerWeapons,{wep,ammo})			end		end	else		return false	end	return playerWeaponsend

بالتوفيق

موجودة .

Link to comment
  • 1 month later...

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...