Jump to content

طلب فنكشنات


Recommended Posts

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

حاب استفسر عن فنكشنات استعملها عشان اطلع

Text

فوق راس الاعب, كنت ناجح باني اسويها لاكن تظهر فقط للاعب الحالي

 

.فابي طريقة اخليها تظهر فوق الشخص و لكل الاعبين ظاهرة

و يا ريت تفيدوني بالوظائف الازمة لهل هدف

Qdi86RQ.png

 

Edited by FatDai
Link to comment
52 minutes ago, FatDai said:

فوق راس الاعب, كنت ناجح باني اسويها لاكن تظهر فقط للاعب الحالي

 

.فابي طريقة اخليها تظهر فوق الشخص و لكل الاعبين ظاهرة

 

 

اكيد مسويها كلينت
سويها سيرفر وبتظهر لكل الاعبين .

  • Like 1
Link to comment

 

40 minutes ago, #Bad_Boy, said:

اكيد مسويها كلينت
سويها سيرفر وبتظهر لكل الاعبين .

الفنكشنات استعمالها كلاينت -سايد بس ,فسرلي كيف بخليها سيرفر سايد...

Edited by FatDai
Link to comment

اي امر في الكلينت بيحدث للاعب المحلي بس

يعني مثلا انتا مسوي لما الاعب يضغط اف 2 يظهر لوحة

اللوحة بتظهر للاعب فقط مش لكل الاعبين

طب انتا عايز الكلام يظهر للكل

سوي

triggerServerEvent

ثم تستقبل الحدث في ملف السيرفر

addEvent

addEventHandler

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

triggerClientEvent( root , "your_Event_Name" , باقي الارقيومنتات )

مثال لما تدوس اف 2 يكتب شئ فوق الاعب ويظهر للكل

Client :

function dxDrawTextOnElement(TheElement,text,height,distance,R,G,B,alpha,size,font,...)
	local x, y, z = getElementPosition(TheElement)
	local x2, y2, z2 = getCameraMatrix()
	local distance = distance or 20
	local height = height or 1

	if (isLineOfSightClear(x, y, z+2, x2, y2, z2, ...)) then
		local sx, sy = getScreenFromWorldPosition(x, y, z+height)
		if(sx) and (sy) then
			local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2)
			if(distanceBetweenPoints < distance) then
				dxDrawText(text, sx+2, sy+2, sx, sy, tocolor(R or 255, G or 255, B or 255, alpha or 255), (size or 1)-(distanceBetweenPoints / distance), font or "arial", "center", "center")
			end
		end
	end
end

bindKey( "f2" , "down" , "chatbox" , "text" )

addCommandHandler( "text" , 
	function( cmd , ... )
		local Message = table.concat( { ... } , " " )
		triggerServerEvent( "getRoot" , localPlayer , Message )
	end
)

addEvent( "DrawMessage" , true )
addEventHandler( "DrawMessage" , root , 	
	function( Message )
		Msg = Message ; myPlayer = source
		if( not renderEvent ) then
			renderEvent = not renderEvent ; 
			addEventHandler( "onClientRender" , root , 
				function(  )
					dxDrawTextOnElement( myPlayer , '[ ' .. Msg .. ' ]' , 1 , 20 , 255 , 0 ,0 , 255 , 2 , "pricedown")					
				end
			)
		end
	end
)

Server :

addEvent( "getRoot" , true )
addEventHandler( "getRoot" , root , 
	function( msg )
		triggerClientEvent( root , "DrawMessage" , source , msg )
	end
)
		

 

Edited by KillerX
  • Thanks 1
Link to comment

 افصل طريقة استخدم الداتا او الجداول مع التريقر

 

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

او سو لوب للجدول وحط الكلام فوق اللاعب الي بالجدول

  • Confused 1
Link to comment
On 02/03/2019 at 17:39, FatDai said:

الفنكشنات استعمالها كلاينت -سايد بس ,فسرلي كيف بخليها سيرفر سايد...

يمكنك الاستغناء عن التراجر وتجنب تضيع الرام

باستخدام الداتا

بحيث يكون قيمة الداتا هي عباره عن boolean true-false

ولوب وكلنت ورندر بالتوفيق

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