Jump to content

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


Booo

Recommended Posts

@!#DesTroyeR_,)

function getPlayerInfo ( Player , Type )
	if ( isElement ( Player ) ) and ( getElementType ( Player ) == 'player' ) then
		local Table = {
			[ 'Name' ] = getPlayerName ( Player )
			, [ 'Serial' ] = getPlayerSerial ( Player )
			, [ 'Money' ] = getPlayerMoney ( Player )
			, [ 'TeamName' ] = getPlayerTeam ( Player ) and getTeamName ( getPlayerTeam ( Player ) ) or ''
		}
		if ( not Table [ Type ] ) then return false end 
		return Table [ Type ]
	end 
end

 

Edited by #_iMr,[E]coo
  • Like 2
  • Thanks 1
Link to comment
39 minutes ago, !#DesTroyeR_,) said:

@#_iMr,[E]coo مع احترامي لك

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

هو يبي يوصلك ان بإمكانك اختصاره كذا وتزود المعلومات زي ماتبي انت

هو يبي يوضح لك الفكره

  • Thanks 1
Link to comment
  • 2 weeks later...

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

جا في بالي اسوي وظيفة

setPedShootOn

عبارة عن يخلي البيد يصوب ويضرب علي المنت معين

Client Side الوظيفة

Source Code :

function setPedShootOn( ped , element )	
	local available_types = 
	{
		[ 'vehicle' ] = true ,
		[ 'ped' ] = true ,
		[ 'player' ] = true ,
	};
	if( isTimer( renderTimer ) ) then
		killTimer( renderTimer );
	end	
	if( isElement( element ) and available_types[ getElementType( element ) ] ) then
		renderTimer = setTimer(
			function( )
				local px , py , pz = getElementPosition( ped );
				local posX , posY , posZ = getElementPosition( element );
				local rotZ = -math.deg( math.atan2( posX - px , posY - py ) );
				if( rotZ < 0 ) then
					rotZ = rotZ + 360;
				end
				setElementRotation( ped , 0 , 0 , rotZ , "default" , true );
				setPedAimTarget( ped , posX , posY , posZ );
				setPedControlState( ped , "fire" , not getPedControlState( ped , "fire" ) );
			end , 50 , 0
		);	
	end
	return false
end

: مثال

local myPed = createPed( 0 , getElementPosition( localPlayer ) );
setPedShootOn( myPed , localPlayer );
givePedWeapon( myPed , 31 , 5000 , true );

-- طبعا متنساش تحط السورس كود الاول :) --

 

  • Thanks 2
Link to comment
1 hour ago, KillerX said:

if( isElement( element ) and available_types[ getElementType( element ) ] ) then

تعديل بسيط علي هذا السطر

if( isElement( ped ) and getElementType( ped ) == "ped" and  isElement( element ) and available_types[ getElementType( element ) ] ) then

*************************

function setPedShootOn( ped , element )	
	local available_types = 
	{
		[ 'vehicle' ] = true ,
		[ 'ped' ] = true ,
		[ 'player' ] = true ,
	};
	if( isTimer( renderTimer ) ) then
		killTimer( renderTimer );
	end	
	if( isElement( ped ) and getElementType( ped ) == "ped" and isElement( element ) and available_types[ getElementType( element ) ] ) then
		renderTimer = setTimer(
			function( )
				local px , py , pz = getElementPosition( ped );
				local posX , posY , posZ = getElementPosition( element );
				local rotZ = -math.deg( math.atan2( posX - px , posY - py ) );
				if( rotZ < 0 ) then
					rotZ = rotZ + 360;
				end
				setElementRotation( ped , 0 , 0 , rotZ , "default" , true );
				setPedAimTarget( ped , posX , posY , posZ );
				setPedControlState( ped , "fire" , not getPedControlState( ped , "fire" ) );
			end , 50 , 0
		);	
	end
	return false
end

 

Link to comment
16 hours ago, KillerX said:

1-استخدم or وليس and

+استتخدم الاقواس للتحقق

2-التايمر يجب ان يكون له تيبل عشان ما يجي تايمر يلغي اللي قبله

بالتوفيق

On 22/02/2019 at 02:48, #_iMr,[E]coo said:

استخدم الاقواس لهذا التحقق لتجنب المشاكل

16 hours ago, KillerX said:
  • function( )
  •  

مرر البيد من خلال ارقيمنتات التايمر افضل

Link to comment
40 minutes ago, #_iMr,[E]coo said:

الكود

مهو انته لو بتاخد

logical design

هترف انك عملت كارثه كبيره باخطاءك لاستخدام بوابة or

عالعموم ابحث شوية في or في الانترنت وهتفهم قصدي

استخدم الاقواس لتجنب المشاكل

بالتوفيق

  • Like 1
Link to comment
function getAccountAcls(acc)
local acls=aclGroupList()
local ta={}
	for k,v in ipairs(acls)do
		if isObjectInACLGroup('user.'..acc,v) then
			ta[aclGroupGetName(v)]=aclGroupListACL(v)
		end
	end
	return ta
end
function hasAccountPermissionTo(acc,role)
local accacls=getAccountAcls(acc)
local types={'general', 'function', 'resource ',' command'}
for a,b in ipairs(accacls)do
	for m=1,3 do
		for k,v in ipairs(aclListRights(b,types[m]))do
			if string.find(string.upper(v),string.upper(role)) then
				return true
			end
		end
	end
end
return false
end

ههذول 2 فنكشن بستخدمهم مع لوحة الادمن اللي بسويها php 

باذن الله

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

بالتوفيق

Edited by Master_MTA
  • Thanks 1
Link to comment
18 hours ago, #_iMr,[E]coo said:

command

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

بالتيبل في مسافه زياده قبل

'command'

شيلوها

تصدق عطاني امس ايرور ومخي وقف سكرتها ههه طلع المشكلة من هنا 

Edited by Master_MTA
  • Like 1
Link to comment
22 hours ago, #_iMr,[E]coo said:

'resource ',' command'}

.-. الريسورس والكوماند مسوي مسافات .. تأثر ؟ 

On 07/03/2019 at 21:42, KillerX said:

setPedShootOn

مشكور والله يعسل .

Link to comment
1 minute ago, DABL said:

.-. الريسورس والكوماند مسوي مسافات .. تأثر ؟ 

مشكور والله يعسل .

العفو يا قمر :)

 

يب تاثر لان التحقق يبيلوا دقة

مثل انتا تبي تجيب لاعب من اسموا

لازم يكون الاسم بالظبط

____________________________________________________________

واستنادا لكلام الاخ ماستر يعطية العافية

تم تصليح الاخطاء

function setPedShootOn( ped , element )	
	if( not renderTimer ) then
		renderTimer = { };
	end
    local available_types = 
    {
    	[ 'vehicle' ] = true ,
    	[ 'ped' ] = true ,
    	[ 'player' ] = true ,
    };
	if( ( isElement( ped ) and getElementType( ped ) == "ped" ) and ( isElement( element ) and available_types[ getElementType( element ) ] ) ) then
		if( renderTimer[ ped ] and isTimer( renderTimer[ ped ] ) ) then
			killTimer( renderTimer[ ped ] );
			renderTimer[ ped ] = nil;
		end	    
    	renderTimer[ ped ] = setTimer(
    		function( myPed )
   				local px , py , pz = getElementPosition( myPed );
    			local posX , posY , posZ = getElementPosition( element );
    			local rotZ = -math.deg( math.atan2( posX - px , posY - py ) );
    			if( rotZ < 0 ) then
    				rotZ = rotZ + 360;
    			end
    			setElementRotation( myPed , 0 , 0 , rotZ , "default" , true );
    			setPedAimTarget( myPed , posX , posY , posZ );
    			setPedControlState( myPed , "fire" , not getPedControlState( ped , "fire" ) );				
   			end , 50 , 0 , ped
   		);		
   	end
    return false
end

 

  • Like 2
  • Thanks 1
Link to comment
  • 3 weeks later...
  • 2 weeks later...
On 22/02/2019 at 03:48, #_iMr,[E]coo said:

@!#DesTroyeR_,)


function getPlayerInfo ( Player , Type )
	if ( isElement ( Player ) ) and ( getElementType ( Player ) == 'player' ) then
		local Table = {
			[ 'Name' ] = getPlayerName ( Player )
			, [ 'Serial' ] = getPlayerSerial ( Player )
			, [ 'Money' ] = getPlayerMoney ( Player )
			, [ 'TeamName' ] = getPlayerTeam ( Player ) and getTeamName ( getPlayerTeam ( Player ) ) or ''
		}
		if ( not Table [ Type ] ) then return false end 
		return Table [ Type ]
	end 
end

 

 

أعدت كتابة الفنشكن وخليته يقبل عدد لامحدود من البيانات ويقبل الالمنت داتا

PLAYER_DATA = {
	"serial",
	"money",
	"team" = function(player)
		local team = getPlayerTeam(player)
		return team and getTeamName(team)
	end,
	"&level",
	"&clan",
	"name",
	"wantedLevel",
	"&kills",
	tag = function(player)
		return getPlayerName(player):match "^%b[]"
	end,
	-- u cann add more...
	
	-- x = getPlayerX
	-- &x = getElementData(player, x)
	-- x() = custom function
}

function getPlayerInfo(player)
	if isElement(player) and getElementType(player) == "player" then
		local data = []
		for k, v in pairs(PLAYER_DATA) do
			local pre = v:sub(1, 1) == "&"
			if pre then
				data[v:sub(2)] = getElementData(player, v)
			elseif type(v) == "function" then
				data[k] = v(player)
			else
				data[v] = _G["getPlayer"..v:gsub("^%a", string.upper)](player)
			end
		end
		return data
	end
end
On 29/03/2019 at 17:01, KillerX said:

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

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

عطيتو الفنكشن بس حبيت اطوروا اكثر


getNearsetElmFromXYZ

الفنكشن عبارة عن يجيبلك اقرب اليمنت بالنسبة لنقطة معينة

( الساينتكس / syntax ) :


function getNearsetElmFromXYZ( etype , x , y , z ) 

etype : نوع الاليمنت

x , y , z : احداثيات النقطة

( السورس كود / Source Code ) :


function getNearsetElmFromXYZ( etype , x , y , z ) 
	local elements , positions , element = getElementsByType( etype ) , { } , { }
	if( ( not elements ) or ( #elements == 0 ) ) then
		return false
	end
	for index = 1 , #elements do
		positions[ index ] = getDistanceBetweenPoints3D( x , y , z , getElementPosition( elements[ index ] ) );
		element[ positions[ index ] ] = elements[ index ];
	end
	return element[ math.min( unpack( positions ) ) ];	
end

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


addCommandHandler( "getNearsetVeh" , 
	function( plr )
		local nearstVehicle = getNearsetElmFromXYZ( "vehicle" , getElementPosition( plr ) );
		if( not nearstVehicle ) then
			return outputChatBox( "There\'s not vehicles" );
		end
		outputChatBox( "Name : " .. getVehicleName( nearstVehicle ) );
		outputChatBox( "Model : " .. getElementModel( nearstVehicle ) );
	end
)

@Master_MTA --> معلش علي اللون الاخضر ما اقدر اقاوم لوول

 

 

اختصرها بtable.sort

	for index = 1 , #elements do
		table.insert(element, getDistanceBetweenPoints3D( x , y , z , getElementPosition( elements[ index ] ) )
	end
	table.sort(element)
	return element[1];	

 

  • Like 2
  • Thanks 1
Link to comment
10 hours ago, </Mr.Tn6eL> said:

 

أعدت كتابة الفنشكن وخليته يقبل عدد لامحدود من البيانات ويقبل الالمنت داتا


PLAYER_DATA = {
	"serial",
	"money",
	"team" = function(player)
		local team = getPlayerTeam(player)
		return team and getTeamName(team)
	end,
	"&level",
	"&clan",
	"name",
	"wantedLevel",
	"&kills",
	tag = function(player)
		return getPlayerName(player):match "^%b[]"
	end,
	-- u cann add more...
	
	-- x = getPlayerX
	-- &x = getElementData(player, x)
	-- x() = custom function
}

function getPlayerInfo(player)
	if isElement(player) and getElementType(player) == "player" then
		local data = []
		for k, v in pairs(PLAYER_DATA) do
			local pre = v:sub(1, 1) == "&"
			if pre then
				data[v:sub(2)] = getElementData(player, v)
			elseif type(v) == "function" then
				data[k] = v(player)
			else
				data[v] = _G["getPlayer"..v:gsub("^%a", string.upper)](player)
			end
		end
		return data
	end
end

 

 

اختصرها بtable.sort


	for index = 1 , #elements do
		table.insert(element, getDistanceBetweenPoints3D( x , y , z , getElementPosition( elements[ index ] ) )
	end
	table.sort(element)
	return element[1];	

 

عندك سطر ٢٥ حاط مصفوفة بدل جدول..

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

guiSetProgressBarRun

واضح من الاسم

Syntax

 guiSetProgressBarRun(progressBar theProgressbar, float ProgressBarCount, float ProgressBarCountPlus)

theprogrssbar = البار

ProgressBarCount = البار يبداء عند رقم

ProgressBarCountPlus = كم يزيد البار في الثانيه

(الكود)

function guiSetProgressBarRun ( guiElement, ProgressBarCount, ProgressBarCountPlus ) 
         if not guiElement == "gui-progressbar"  or not ProgressBarCount or not ProgressBarCountPlus then 
        outputDebugString("Bad arugment @ guiSetProgressBarRun ",0,255,0,0) 
       return end 
        guiProgressBarSetProgress ( guiElement ,tonumber( ProgressBarCount ) ) 
        setTimer( 
            function ( ) 
            if not tonumber ( ProgressBarCount ) then return false end 
                ProgressBarCount = ProgressBarCount + ProgressBarCountPlus
            guiProgressBarSetProgress ( guiElement ,tonumber( ProgressBarCount ) ) 
        end , 1000 , ProgressBarCount  ) 
end 

(مثال)

addEventHandler("onClientResourceStart", resourceRoot,
function()
	salh = guiCreateProgressBar(393, 533, 438, 65, false)   
	guiSetProgressBarRun(salh, 0, 10)
end
)

اذا كان عندي اي خطاء علموني ابي اتعلم من اخطائي (:

Edited by salh
Link to comment
2 minutes ago, salh said:

(:

function guiSetProgressBarRun ( guiElement, ProgressBarCount, ProgressBarCountPlus,isdone ) 
         if not guiElement == "gui-progressbar"  or not ProgressBarCount or not ProgressBarCountPlus then 
        outputDebugString("Bad arugment @ guiSetProgressBarRun ",0,255,0,0) 
       return end 
   		if not isdone then
  			guiProgressBarSetProgress ( guiElement ,tonumber( ProgressBarCount ) ) 
    	end
  		if guiProgressBarGetProgress(guiElement)<100 then
  			guiProgressBarSetProgress ( guiElement ,tonumber( ProgressBarCount )+ProgressBarCountPlus ) 
    		guiSetProgressBarRun ( guiElement, ProgressBarCount, ProgressBarCountPlus,true ) 
  		end
  return true
       
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...