Booo

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

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

Share this post


Link to post
39 minutes ago, !#DesTroyeR_,) said:

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

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

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

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

  • Thanks 1

Share this post


Link to post

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

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

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 1

Share this post


Link to post
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

 

Share this post


Link to post
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( )
  •  

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

Share this post


Link to post
4 minutes ago, #_iMr,[E]coo said:

جرب

شكرا لتفهمك

يرجى الاتصصال في وقت لاحق هههه بالتوفيق

  • Haha 1

Share this post


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

الكود

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

logical design

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

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

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

بالتوفيق

  • Like 1

Share this post


Link to post
Posted (edited)
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

Share this post


Link to post
types={'general', 'function', 'resource ',' command'}

-- 

types={'general', 'function', 'resource','command'}

 

Share this post


Link to post
Posted (edited)
18 hours ago, #_iMr,[E]coo said:

command

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

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

'command'

شيلوها

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

Edited by Master_MTA
  • Like 1

Share this post


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

'resource ',' command'}

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

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

setPedShootOn

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

  • Thanks 1

Share this post


Link to post
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

Share this post


Link to post

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

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

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

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 --> معلش علي اللون الاخضر ما اقدر اقاوم لوول

  • Like 1
  • Haha 1

Share this post


Link to post
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

Share this post


Link to post
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];	

 

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

Share this post


Link to post
Posted (edited)
On 09/04/2019 at 10:08, said:

تعودت

?

وش هيي هذي اللغه

php?

c++

c#

java

 

Edited by Master_MTA

Share this post


Link to post
Posted (edited)

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

Share this post


Link to post
On 07/06/2019 at 09:20, salh said:

عندي

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

بالتوفيق

  • Like 1

Share this post


Link to post
26 minutes ago, Master_MTA said:

عندي

(:

Share this post


Link to post
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 

اتوقع كذا طريقة الريكرشن جرب الارقمنت الاخير

مالك دخل فيه

استخدمه زي ما تستخدمه انت بالاول

جرب وقولي ذذ

Share this post


Link to post

طيب الحين  وش الفرق اذا استحدمت الريكاشون ميثود او التايمر.؟

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.