Jump to content

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


Booo

Recommended Posts

Just now, MoDeR2014 said:

السلام عليكم

quadForm

Useful Function

هذه الوظيفة تقوم بحساب قيمة المقادير الثلاثية بالصيغة

ax + bx – c = 0

مثال:

x2 + 3x – 4 = 0

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

qform01.gif

 

Syntax


table quadForm( float a, float b, float c )

 

Required Arguments

  • a, b, c

 

Code:


function quadForm(a, b, c)
	if tonumber(a) and tonumber(b) and tonumber(c) then
		local l = math.sqrt((b^2)-(4*a*c));
		return { (-b + l)/2*a, (-b - l)/2*a };
	end
	return false;
end

 

Example


--[[
Solve :
	x2 + 3x – 4 = 0
	x2 + 2x – 1 = 0
]]

local result1, result2 = quadForm(1, 3, -4), quadForm(1, 2, -1);
print("result 1: x1 = "..result1[1]..", x2 = "..result1[2]); -- >> result 1: x1 = 1.0 x2 = -4.0
print("result 2: x1 = "..result2[1]..", x2 = "..result2[2]); -- >> result 2: x1 = 0.4142135623731 x2 = -2.4142135623731

 

Author:

وش ه الابداعع  فجرت المنتدى كامل يا مودير بـ ابداعاتك

@MoDeR2014

Link to comment
  • 2 weeks later...

السلام عليكم ورحمة الله وبركاته

* Server Side

removeAccountData

وظيفة مسح الداتا من الحساب

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

Syntax 

bool removeAccountData ( element theElement, string key ) 

Required Arguments

theElement: The element you wish to remove the data from.

key: The key string you wish to remove.

 

 

Code :-

 function removeAccountData ( playerAccount, data )
    if ( playerAccount ~= "" ) and ( data ~= "" ) then
        if getAccount ( playerAccount ) then
			local dataName = getAccountData(playerAccount, data)
			if ( dataName ~= nil ) or ( dataName ~= "" ) then
				setAccountData(playerAccount, data, false)
			end
		end
	end
end 



Example :-

function reCheck( )
    for i,player in ipairs ( getElementsByType('player') ) do
        if ( not isGuestAccount ( getPlayerAccount ( player ) ) ) then
            local acc = getPlayerAccount(player)
            if ( isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)),aclGetGroup('Admin') ) ) then
                setAccountData ( acc , 'Admin' , true )
            else
                removeAccountData(acc, 'Admin')
end
        end
end
addEventHandler('onResourceStart',resourceRoot,reCheck)
addEventHandler('onPlayerLogin',root,reCheck)
addEventHandler('onPlayerLogout',root,reCheck)

 

Thx To @N3xT

 

والسلام خير الختام

 

Edited by [6ArH]#~Ecoo~
Thx To N3xT
  • Like 2
Link to comment

aclGroupClone

Useful Function
 
 

 


This function clone a group to another group with/without ACLs and/or objects . / هذه الوظيفة تقوم بنسخ قروب معين إلى إسم قروب آخر مع\بدون الأسلات و\او الأوبجكتات

Syntax 

bool aclGroupClone ( string groupToClone, string groupName, bool cloneACLs, bool cloneObjects )

Required Arguments

  • groupToClone: The group name to clone / اسم القروب المراد نسخه
  • groupName: The new group name after clone / اسم القروب الجديد المراد النسخ له
  • cloneACLs: true to clone group ACLS, false to dismiss ACLS clone / قيمة صح او خطأ - لنسخ او ايقاف نسخ الأسلات الخاصة بالقروب
  • cloneObjects: true to clone group objects, false to dismiss group objects / قيمة صح او خطأ لنسخ او ايقاف الأوبجكتات الخاصة بالقروب

Returns

Return true if success, false otherwise.

Code / الكود

function aclGroupClone( clonedGroup, groupName, aclsClone, objectsClone )
	if ( type( clonedGroup ) ~= 'string' ) then 
		error( "Bad argument @ 'aclGroupClone' [Expected string at argument 1, got " .. tostring( clonedGroup ) .. "]" ) return false end
			if ( aclsClone == true or aclsClone == false ) then 
				if ( objectsClone == true or objectsClone == false ) then 
					local cloned = aclGetGroup( clonedGroup )
						if ( cloned == false or not cloned ) then
							outputDebugString( "Bad argument @ 'aclGroupClone' [Expected acl-group at argument 1, got string '" .. tostring( clonedGroup ) .. "']", 2 ) return false end
								local newGroup = aclCreateGroup( groupName )
									if ( newGroup == false or not newGroup ) then
										outputDebugString( "Bad argument @ 'aclGroupClone' [Expected acl-group at argument 2, got string '" .. tostring( groupName ) .. "']", 2 ) return false end
											if ( aclsClone == true ) then
												for index, value in ipairs( aclGroupListACL( cloned ) ) do
											aclGroupAddACL( newGroup, value )
										end
									end
								if ( objectsClone == true ) then
							for index, value in ipairs( aclGroupListObjects( cloned ) ) do
						aclGroupAddObject( newGroup, value )
					end
				end
			outputDebugString( "'aclGroupClone' [The group '"..clonedGroup.."' has been cloned successfully to '"..groupName.."' .", 3 ) return true
		else error( "Bad argument @ 'aclGroupClone' [Expected boolean at argument 4, got " .. tostring( objectsClone ) .. "]" ) return false
	end
	else error( "Bad argument @ 'aclGroupClone' [Expected boolean at argument 3, got " .. tostring( aclsClone ) .. "]" ) return false
	end
end

Example / مثال

addEventHandler( 'onResourceStart', resourceRoot,
function(  )
	setTimer( aclGroupClone, 1000, 1, 'Console', 'OwnersGroup', true, true ) -- Clone 'Console' Group to 'OwnersGroup' and clone ACLs and objects
end )

Author: MR.GRAND

Hint: This function can be useful, Shortcut way to clone groups and rights and objects

Wiki page: aclGroupClone

Edited by MR.GRAND
Link to comment
42 minutes ago, Abdul KariM said:

@MR.GRAND  ترا تقدر تختصرها ومايحتاج التعقيد هذا

انا سويتها كذا عشان اضبطها للكل ,

واخليها شيء محكم ومايقبل الغلط ...

أدري انها شغلة سهلة وكلها سالفة 5 سطور إذا مو اقل 

^_^

Link to comment
1 minute ago, Abdul KariM said:

والمتغيرات  assert  اختصرها بـ 

You know i used assert before in that code but i'm trying different thing .
That's not a problem ... i can make it very easy and short, but i've to change it for be much better to use .

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

Link to comment

getWeaponModelFromID

وظيفة جلب موديل السلاح عن طريق الايدي

getWeaponModelFromID( int theid )

Required Arguments

theid : ايدي السلاح

function getWeaponModelFromID( theid ) 
if type( theid ) == 'number' then 
local TableId = { 
[1] = 331, 
[2] = 333, 
[3] = 334, 
[4] = 335, 
[5] = 336, 
[6] = 337, 
[7] = 338, 
[8] = 339, 
[9] = 341, 
[22] = 346, 
[23] = 347, 
[24] = 348, 
[25] = 349, 
[26] = 350, 
[27] = 351, 
[28] = 352, 
[29] = 353, 
[32] = 372, 
[30] = 355, 
[31] = 356, 
[33] = 357, 
[34] = 358, 
[35] = 359, 
[36] = 360, 
[37] = 361, 
[38] = 362, 
[16] = 342, 
[17] = 343, 
[18] = 344, 
[39] = 363, 
[41] = 365, 
[42] = 366, 
[43] = 367, 
[10] = 321, 
[11] = 322, 
[12] = 323, 
[13] = 324, 
[14] = 325, 
[15] = 326, 
[44] = 368, 
[45] = 369, 
[46] = 371, 
[40] = 364 
} 
return TableId[ theid ]  end  
     return false
end 

Example:

addCommandHandler("wp",function ()
outputChatBox('thWeaponModel = '..getWeaponModelFromID( 17 ))
end
)

 

Link to comment
  • 2 weeks later...

guiGetAbsolutePosition(gui gui_element)

تقوم الوظيفة بإرجاع الاحداثيات الصحيحة بالنسبة الى الشاشة وليس الالمنت الموجود فيه

function guiGetAbsolutePosition(gui_element)
    if isElement(gui_element) and getElementType(gui_element):find("gui-") then
        local ax, ay = guiGetPosition(gui_element, false)
        local cpa = getElementParent(gui_element)
        while isElement(cpa) do
            local cpx, cpy = guiGetPosition(cpa, false)
            ax, ay = ax+cpx, ay+cpy
            cpa = getElementParent(gui_element)
        end
        return ax, ay
    end
    return false
end

 

  • Like 2
Link to comment
  • 2 weeks later...
On 1/10/2017 at 15:35, </Mr.Tn6eL> said:

guiGetAbsolutePosition(gui gui_element)

تقوم الوظيفة بإرجاع الاحداثيات الصحيحة بالنسبة الى الشاشة وليس الالمنت الموجود فيه


function guiGetAbsolutePosition(gui_element)
    if isElement(gui_element) and getElementType(gui_element):find("gui-") then
        local ax, ay = guiGetPosition(gui_element, false)
        local cpa = getElementParent(gui_element)
        while isElement(cpa) do
            local cpx, cpy = guiGetPosition(cpa, false)
            ax, ay = ax+cpx, ay+cpy
            cpa = getElementParent(gui_element)
        end
        return ax, ay
    end
    return false
end

 

عيني على الإبداع عيييني

1 hour ago, iPrestege said:

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

السلام عليكم ورحمة الله وبركاتة 

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

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

 

aTimerSecondsToMethod

سورس الكود :


function aTimerSecondsToMethod ( aMethod,aCount ) 
	assert ( type ( aMethod ) == 'string','[1]Argument method is wrong please make sure it is there and its a string with days or wtf.' )
	assert ( type ( aCount ) == 'number','[2]Argument method is wrong please make sure it is there and its a number' )
	if aMethod == 'Days' then 
			aCountHours = 24;
		elseif aMethod == 'Weeks' then
			aCountHours = 168;
		elseif aMethod == 'Months' then
			aCountHours = math.ceil ( 730.484398 );
		elseif aMethod == 'Years' then
			aCountHours = math.ceil ( 8765.8127 );
	end	return aCount*aCountHours*60*60*1000;
end;

 

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

وأتمنى تكون مفيدة واللي مايعرف يستخدمها يطلب بـ رد وأمثل لة عليها

 

 

وبالله التوفيق

يالله انت حيه

وظيفة منتازة 

:P

  • Like 2
Link to comment

وظيفة العضلات

 

function DmAr(thePlayer, commandName)  if setPedStat(thePlayer, 23, 1000) then outputChatBox("لقد نجحت") else outputChatBox("فشل التحويل") end end addCommandHandler("الامر هنا", DmAr) 

بتوفيق لك 

Link to comment
On ١٨‏/١‏/٢٠١٧ at 19:35, iPrestege said:

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

السلام عليكم ورحمة الله وبركاتة 

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

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

 

aTimerSecondsToMethod

سورس الكود :


function aTimerSecondsToMethod ( aMethod,aCount ) 	assert ( type ( aMethod ) == 'string','[1]Argument method is wrong please make sure it is there and its a string with days or wtf.' )	assert ( type ( aCount ) == 'number','[2]Argument method is wrong please make sure it is there and its a number' )	if aMethod == 'Days' then 			aCountHours = 24;		elseif aMethod == 'Weeks' then			aCountHours = 168;		elseif aMethod == 'Months' then			aCountHours = math.ceil ( 730.484398 );		elseif aMethod == 'Years' then			aCountHours = math.ceil ( 8765.8127 );	end	return aCount*aCountHours*60*60*1000;end;

 

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

وأتمنى تكون مفيدة واللي مايعرف يستخدمها يطلب بـ رد وأمثل لة عليها

 

 

وبالله التوفيق

 
 

كذا إن شاء الله ما راح يكون فيه لا تقدم ولا زيادة

function aTimerSecondsToMethod ( aMethod,aCount ) 
	assert ( type ( aMethod ) == 'string','[1]Argument method is wrong please make sure it is there and its a string with days or wtf.' )
	assert ( type ( aCount ) == 'number','[2]Argument method is wrong please make sure it is there and its a number' )
	if aMethod == 'Days' then 
		aCountMS = 86400000;
	elseif aMethod == 'Weeks' then
		aCountMS = 604800016,6;
	elseif aMethod == 'Months' then
		aCountMS = 2629800000;
	elseif aMethod == 'Years' then
		aCountMS = 31557600000;
	end	return aCount*aCountMS;
end;

 

Edited by N3xT
  • Like 1
Link to comment
On ١٠‏/١‏/٢٠١٧ at 15:35, </Mr.Tn6eL> said:

guiGetAbsolutePosition(gui gui_element)

تقوم الوظيفة بإرجاع الاحداثيات الصحيحة بالنسبة الى الشاشة وليس الالمنت الموجود فيه


function guiGetAbsolutePosition(gui_element)
    if isElement(gui_element) and getElementType(gui_element):find("gui-") then
        local ax, ay = guiGetPosition(gui_element, false)
        local cpa = getElementParent(gui_element)
        while isElement(cpa) do
            local cpx, cpy = guiGetPosition(cpa, false)
            ax, ay = ax+cpx, ay+cpy
            cpa = getElementParent(gui_element)
        end
        return ax, ay
    end
    return false
end

 

الكود يخلي اللوحة تجي عند اللاعبين بـ نفس مقاس الشاشات حقتهم ولا ؟

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