-- Settings variables
local textFont = "default-bold" -- The font of the tag text
local textScale = 1 -- The scale of the tag text
local heightPadding = 1 -- The amount of pixels the tag should be extended on either side of the vertical axis
local widthPadding = 1 -- The amount of pixels the tag should be extended on either side of the horizontal axis
local xOffset = 8 -- Distance between the player blip and the tag
local textAlpha = 255
-- Other variables
local floor = math.floor
local w, h = guiGetScreenSize ( )
function drawMapStuff ( )
if isPlayerMapVisible ( ) then
local team = getPlayerTeam ( localPlayer )
if ( team ) then
local sx, sy, ex, ey = getPlayerMapBoundingBox ( ) -- Map positions
local mw,mh = ( ex - sx ), ( sy - ey ) -- Map width/height
local cx,cy = ( sx + ex ) / 2, ( sy + ey ) / 2 -- Center position of the map
local ppuX, ppuY = ( mw / 6000 ), ( mh / 6000 ) -- Pixels per unit
local fontHeight = dxGetFontHeight ( textScale, textFont ) -- Height of the specified font
local yOffset = ( fontHeight / 2 ) -- How much pixels the tag should be offsetted at
for _, player in ipairs ( getPlayersInTeam ( team ) ) do
local px, py = getElementPosition ( player ) -- Player's position
local x = floor ( cx + px * ppuX + xOffset ) -- X for the nametag
local y = floor ( cy + py * ppuY - yOffset ) -- Y for the nametag
local pname = getPlayerName ( player ) -- Player name
local nameLength = dxGetTextWidth ( pname, textScale, textFont ) -- Width of the playername
local r, g, b = getPlayerNametagColor ( player ) -- Player's nametag color
dxDrawText ( pname, x, y, x + nameLength, y + fontHeight, tocolor ( r, g, b, textAlpha ), textScale, textFont, "left", "top", false, false, true, true )
end
end
end
end
addEventHandler ( "onClientRender", getRootElement(), drawMapStuff )