Jump to content

Nick over the player 's head.


Hugos

Recommended Posts

Posted (edited)

Hello to everyone. I want to make sure that the player 's name is displayed above his head, but I don 't know how to do it correctly. Found the function "dxDrawTextOnElement" - I can 't understand how to apply it correctly?

P.S: Also I want to add a team with which players can choose whether they will see the names of other players or not. Is it possible to implement this?

Edited by Hugos
Posted
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
addEventHandler("onClientRender", getRootElement(), 
function ()
for k,v in ipairs(getElementsByType("player")) do
if v == localPlayer then return end
dxDrawTextOnElement(v,getPlayerName(localPlayer),1,20,0,0,255,255,1,"default")
	end
end)

This should work.

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