Jump to content

Colored names


ATS#Nexus

Recommended Posts

Show the code... it should work. Use [lua] tag.

--Draw our text 
        local r,g,b = 150,150,150 
        local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 
        dxDrawText ( info.name, sx, sy - offset, sx, sy - offset, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE, "default", "center", "bottom", false, false, false ) 
         
        --We draw three parts to make the healthbar.  First the outline/background 
        local drawX = sx - NAMETAG_WIDTH*scale/2 
        drawY = sy + offset 
        --[[local width,height =  NAMETAG_WIDTH*scale, NAMETAG_HEIGHT*scale 
        dxDrawRectangle ( drawX, drawY, width, height, tocolor(0,0,0,alpha) ) 
        --Next the inner background  
        local health = getElementHealth(vehicle) 
        health = math.max(health - 250, 0)/750 
        local p = -510*(health^2) 
        local r,g = math.max(math.min(p + 255*health + 255, 255), 0), math.max(math.min(p + 765*health, 255), 0) 
        dxDrawRectangle (   drawX + outlineThickness,  
                                        drawY + outlineThickness,  
                                        width - outlineThickness*2,  
                                        height - outlineThickness*2,  
                                        tocolor(r,g,0,0.4*alpha)  
                                    ) 
                    --Finally, the actual health 
                    dxDrawRectangle (   drawX + outlineThickness,  
                                        drawY + outlineThickness,  
                                        health*(width - outlineThickness*2),  
                                        height - outlineThickness*2,  
                                        tocolor(r,g,0,alpha)  
                                    )--]] 
        dxDrawText ( info.time, sx, drawY, sx, drawY, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE*0.8, "default", "center", "top", false, false, false ) 
    end 

Link to comment

Try:

Put this outside the onClientRender event:

function dxDrawColorText(str, ax, ay, bx, by, color, scale, font, alignX, alignY) 
  bx, by, color, scale, font = bx or ax, by or ay, color or tocolor(255,255,255,255), scale or 1, font or "default" 
  if alignX then 
    if alignX == "center" then 
      ax = ax + (bx - ax - dxGetTextWidth(str:gsub("#%x%x%x%x%x%x",""), scale, font))/2 
    elseif alignX == "right" then 
      ax = bx - dxGetTextWidth(str:gsub("#%x%x%x%x%x%x",""), scale, font) 
    end 
  end 
  if alignY then 
    if alignY == "center" then 
      ay = ay + (by - ay - dxGetFontHeight(scale, font))/2 
    elseif alignY == "bottom" then 
      ay = by - dxGetFontHeight(scale, font) 
    end 
  end 
  local alpha = string.format("%08X", color):sub(1,2) 
  local pat = "(.-)#(%x%x%x%x%x%x)" 
  local s, e, cap, col = str:find(pat, 1) 
  local last = 1 
  while s do 
    if cap == "" and col then color = tocolor(getColorFromString("#"..col..alpha)) end 
    if s ~= 1 or cap ~= "" then 
      local w = dxGetTextWidth(cap, scale, font) 
      dxDrawText(cap, ax, ay, ax + w, by, color, scale, font) 
      ax = ax + w 
      color = tocolor(getColorFromString("#"..col..alpha)) 
    end 
    last = e + 1 
    s, e, cap, col = str:find(pat, last) 
  end 
  if last <= #str then 
    cap = str:sub(last) 
    dxDrawText(cap, ax, ay, ax + dxGetTextWidth(cap, scale, font), by, color, scale, font) 
  end 
end 

And put this into that event

  
  
--Draw our text 
        local r,g,b = 150,150,150 
        local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 
        dxDrawColorText ( info.name, sx, sy - offset, sx, sy - offset, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE, "default", "center", "bottom", false, false, false ) 
        
        --We draw three parts to make the healthbar.  First the outline/background 
        local drawX = sx - NAMETAG_WIDTH*scale/2 
        drawY = sy + offset 
        --[[local width,height =  NAMETAG_WIDTH*scale, NAMETAG_HEIGHT*scale 
        dxDrawRectangle ( drawX, drawY, width, height, tocolor(0,0,0,alpha) ) 
        --Next the inner background 
        local health = getElementHealth(vehicle) 
        health = math.max(health - 250, 0)/750 
        local p = -510*(health^2) 
        local r,g = math.max(math.min(p + 255*health + 255, 255), 0), math.max(math.min(p + 765*health, 255), 0) 
        dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        width - outlineThickness*2, 
                                        height - outlineThickness*2, 
                                        tocolor(r,g,0,0.4*alpha) 
                                    ) 
                    --Finally, the actual health 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        health*(width - outlineThickness*2), 
                                        height - outlineThickness*2, 
                                        tocolor(r,g,0,alpha) 
                                    )--]] 
        dxDrawText ( info.time, sx, drawY, sx, drawY, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE*0.8, "default", "center", "top", false, false, false ) 
    end 

Link to comment
Try:

Put this outside the onClientRender event:

function dxDrawColorText(str, ax, ay, bx, by, color, scale, font, alignX, alignY) 
  bx, by, color, scale, font = bx or ax, by or ay, color or tocolor(255,255,255,255), scale or 1, font or "default" 
  if alignX then 
    if alignX == "center" then 
      ax = ax + (bx - ax - dxGetTextWidth(str:gsub("#%x%x%x%x%x%x",""), scale, font))/2 
    elseif alignX == "right" then 
      ax = bx - dxGetTextWidth(str:gsub("#%x%x%x%x%x%x",""), scale, font) 
    end 
  end 
  if alignY then 
    if alignY == "center" then 
      ay = ay + (by - ay - dxGetFontHeight(scale, font))/2 
    elseif alignY == "bottom" then 
      ay = by - dxGetFontHeight(scale, font) 
    end 
  end 
  local alpha = string.format("%08X", color):sub(1,2) 
  local pat = "(.-)#(%x%x%x%x%x%x)" 
  local s, e, cap, col = str:find(pat, 1) 
  local last = 1 
  while s do 
    if cap == "" and col then color = tocolor(getColorFromString("#"..col..alpha)) end 
    if s ~= 1 or cap ~= "" then 
      local w = dxGetTextWidth(cap, scale, font) 
      dxDrawText(cap, ax, ay, ax + w, by, color, scale, font) 
      ax = ax + w 
      color = tocolor(getColorFromString("#"..col..alpha)) 
    end 
    last = e + 1 
    s, e, cap, col = str:find(pat, last) 
  end 
  if last <= #str then 
    cap = str:sub(last) 
    dxDrawText(cap, ax, ay, ax + dxGetTextWidth(cap, scale, font), by, color, scale, font) 
  end 
end 

And put this into that event

  
  
--Draw our text 
        local r,g,b = 150,150,150 
        local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 
        dxDrawColorText ( info.name, sx, sy - offset, sx, sy - offset, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE, "default", "center", "bottom", false, false, false ) 
        
        --We draw three parts to make the healthbar.  First the outline/background 
        local drawX = sx - NAMETAG_WIDTH*scale/2 
        drawY = sy + offset 
        --[[local width,height =  NAMETAG_WIDTH*scale, NAMETAG_HEIGHT*scale 
        dxDrawRectangle ( drawX, drawY, width, height, tocolor(0,0,0,alpha) ) 
        --Next the inner background 
        local health = getElementHealth(vehicle) 
        health = math.max(health - 250, 0)/750 
        local p = -510*(health^2) 
        local r,g = math.max(math.min(p + 255*health + 255, 255), 0), math.max(math.min(p + 765*health, 255), 0) 
        dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        width - outlineThickness*2, 
                                        height - outlineThickness*2, 
                                        tocolor(r,g,0,0.4*alpha) 
                                    ) 
                    --Finally, the actual health 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        health*(width - outlineThickness*2), 
                                        height - outlineThickness*2, 
                                        tocolor(r,g,0,alpha) 
                                    )--]] 
        dxDrawText ( info.time, sx, drawY, sx, drawY, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE*0.8, "default", "center", "top", false, false, false ) 
    end 

thank_you_image_500_clr.png

For ghost is done but how to make for other players whyle spectating?

.

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