Jump to content

Nametag script


Reacer

Recommended Posts

Hi,

I've just downloaded a script for colored names above your car.

But you have the standard nametags.lua to, so when i come ingame you see your name 2 times(the original and the scripted one)..

I've tried to change the nametags.lua for the new one but the nametag.lua reacreats itself every time.

Can't find any1 else who has this problem..

Please tell me which part of the original script i have to change/remove.

Link to comment
srfont = dxCreateFont("bhz.ttf",13) 
  
g_Root = getRootElement() 
g_ResRoot = getResourceRootElement(getThisResource()) 
g_Players = getElementsByType('player') 
g_Me = getLocalPlayer() 
  
nametag = {} 
local nametags = {} 
local g_screenX,g_screenY = guiGetScreenSize() 
local bHideNametags = false 
  
local NAMETAG_SCALE = 0.3 --Overall adjustment of the nametag, use this to resize but constrain proportions 
local NAMETAG_ALPHA_DISTANCE = 50 --Distance to start fading out 
local NAMETAG_DISTANCE = 100 --Distance until we're gone 
local NAMETAG_ALPHA = 255 --The overall alpha level of the nametag 
--The following arent actual pixel measurements, they're just proportional constraints 
local NAMETAG_TEXT_BAR_SPACE = 2 
local NAMETAG_WIDTH = 50 
local NAMETAG_HEIGHT = 5 
local NAMETAG_TEXTSIZE = 0.3 
local NAMETAG_OUTLINE_THICKNESS = 1.2 
  
  
-- 
local NAMETAG_ALPHA_DIFF = NAMETAG_DISTANCE - NAMETAG_ALPHA_DISTANCE 
NAMETAG_SCALE = 1/NAMETAG_SCALE * 800 / g_screenY 
  
-- Ensure the name tag doesn't get too big 
local maxScaleCurve = { {0, 0}, {3, 3}, {13, 5} } 
-- Ensure the text doesn't get too small/unreadable 
local textScaleCurve = { {0, 0.8}, {0.8, 1.2}, {99, 99} } 
-- Make the text a bit brighter and fade more gradually 
local textAlphaCurve = { {0, 0}, {25, 100}, {120, 190}, {255, 190} } 
  
function nametag.create ( player ) 
    nametags[player] = true 
end 
  
function nametag.destroy ( player ) 
    nametags[player] = nil 
end 
  
addEventHandler ( "onClientRender", g_Root, 
    function() 
        -- Hideous quick fix -- 
        for i,player in ipairs(g_Players) do 
            if isElement(player) then 
                if player ~= g_Me then 
                    setPlayerNametagShowing ( player, false ) 
                    if not nametags[player] then 
                        nametag.create ( player ) 
                    end 
                end 
            end 
        end 
        if bHideNametags then 
            return 
        end 
        local x,y,z = getCameraMatrix() 
    
        for player in pairs(nametags) do 
            while true do 
                if not isElement(player) then break end 
                if getElementDimension(player) ~= getElementDimension(g_Me) then break end 
                local px,py,pz = getElementPosition ( player ) 
                if processLineOfSight(x, y, z, px, py, pz, true, false, false, true, false, true) then break end 
                local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) 
                if pdistance <= NAMETAG_DISTANCE then 
                    --Get screenposition 
                    local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) 
                    if not sx or not sy then break end 
                    --Calculate our components 
                    local scale = 1/(NAMETAG_SCALE * (pdistance / NAMETAG_DISTANCE)) 
                    local alpha = ((pdistance - NAMETAG_ALPHA_DISTANCE) / NAMETAG_ALPHA_DIFF) 
                    alpha = (alpha < 0) and NAMETAG_ALPHA or NAMETAG_ALPHA-(alpha*NAMETAG_ALPHA) 
                    scale = math.evalCurve(maxScaleCurve,scale) 
                    local textscale = math.evalCurve(textScaleCurve,scale) 
                    local textalpha = math.evalCurve(textAlphaCurve,alpha) 
                    local outlineThickness = NAMETAG_OUTLINE_THICKNESS*(scale) 
                    --Draw our text 
  
                    local r,g,b = getPlayerNametagColor(player) 
                    local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 
            local w = dxGetTextWidth(getPlayerNameR(player), textscale * NAMETAG_TEXTSIZE, srfont) / 2 
                    dxDrawText ( getPlayerNameR(player), sx, sy - offset, sx, sy - offset, tocolor(0,0,0,255), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false ) 
                    dxDrawColorText ( getPlayerName(player), sx-w, sy - offset, sx, sy - offset, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false ) 
                    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,50) ) 
                    --Next the inner background 
                    local health 
                    local p 
                    local r,g 
                    health = getElementHealth ( player ) 
                    health = math.max(health, 0)/100 
                    p = -510*(health^2) 
                    r,g = math.max(math.min(p + 255*health + 255, 255), 0), math.max(math.min(p + 765*health, 255), 0) 
                    if health > 1.0 then 
                        health = 1.0 
                    end 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        width - outlineThickness*2, 
                                        height - outlineThickness*2, 
                                        tocolor(0,0,0,50) 
                                    ) 
                    --Finally, the actual health 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        health*(width - outlineThickness*2), 
                                        height - outlineThickness*2, 
                                        tocolor(0,100,255,100) 
                                    )           
                end 
                break 
            end 
        end 
    end 
) 
  
  
---------------THE FOLLOWING IS THE MANAGEMENT OF NAMETAGS----------------- 
addEventHandler('onClientResourceStart', g_ResRoot, 
    function() 
        for i,player in ipairs(getElementsByType"player") do 
            if player ~= g_Me then 
                nametag.create ( player ) 
            end 
        end 
    end 
) 
  
addEventHandler ( "onClientPlayerJoin", g_Root, 
    function() 
        if source == g_Me then return end 
        setPlayerNametagShowing ( source, false ) 
        nametag.create ( source ) 
    end 
) 
  
addEventHandler ( "onClientPlayerQuit", g_Root, 
    function() 
        nametag.destroy ( source ) 
    end 
) 
  
-- Math functions 
function math.lerp(from,to,alpha) 
    return from + (to-from) * alpha 
end 
  
-- curve is { {x1, y1}, {x2, y2}, {x3, y3} ... } 
function math.evalCurve( curve, input ) 
    -- First value 
    if input[1][1] then 
        return curve[1][2] 
    end 
    -- Interp value 
    for idx=2,#curve do 
        if input[idx][1] then 
            local x1 = curve[idx-1][1] 
            local y1 = curve[idx-1][2] 
            local x2 = curve[idx][1] 
            local y2 = curve[idx][2] 
            -- Find pos between input points 
            local alpha = (input - x1)/(x2 - x1); 
            -- Map to output points 
            return math.lerp(y1,y2,alpha) 
        end 
    end 
    -- Last value 
    return curve[#curve][2] 
end 
  
 function removeColorCoding ( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  
function getPlayerNameR ( player ) 
    return removeColorCoding ( getPlayerName ( player ) ) 
end 
  
  
function dxDrawColorText(str, ax, ay, bx, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
  local pat = "(.-)#(%x%x%x%x%x%x)" 
  local s, e, cap, col = str:find(pat, 1) 
  local last = 1 
  while s do 
    if s ~= 1 or cap ~= "" then  
      local w = dxGetTextWidth(cap, scale, font) 
      dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
      ax = ax + w 
      color = tocolor(tonumber("0x"..string.sub(col, 1, 2)), tonumber("0x"..string.sub(col, 3, 4)), tonumber("0x"..string.sub(col, 5, 6)), 255) 
    end 
    last = e+1 
    s, e, cap, col = str:find(pat, last) 
  end 
  if last <= #str then 
    cap = str:sub(last) 
    local w = dxGetTextWidth(cap, scale, font) 
    dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
  end 
end 

So when i'm ingame original nametag will show and this version, 1 nametag is enough :P

Link to comment
srfont = dxCreateFont("bhz.ttf",13) 
  
g_Root = getRootElement() 
g_ResRoot = getResourceRootElement(getThisResource()) 
g_Players = getElementsByType('player') 
g_Me = getLocalPlayer() 
  
nametag = {} 
local nametags = {} 
local g_screenX,g_screenY = guiGetScreenSize() 
local bHideNametags = false 
  
local NAMETAG_SCALE = 0.3 --Overall adjustment of the nametag, use this to resize but constrain proportions 
local NAMETAG_ALPHA_DISTANCE = 50 --Distance to start fading out 
local NAMETAG_DISTANCE = 100 --Distance until we're gone 
local NAMETAG_ALPHA = 255 --The overall alpha level of the nametag 
--The following arent actual pixel measurements, they're just proportional constraints 
local NAMETAG_TEXT_BAR_SPACE = 2 
local NAMETAG_WIDTH = 50 
local NAMETAG_HEIGHT = 5 
local NAMETAG_TEXTSIZE = 0.3 
local NAMETAG_OUTLINE_THICKNESS = 1.2 
  
  
-- 
local NAMETAG_ALPHA_DIFF = NAMETAG_DISTANCE - NAMETAG_ALPHA_DISTANCE 
NAMETAG_SCALE = 1/NAMETAG_SCALE * 800 / g_screenY 
  
-- Ensure the name tag doesn't get too big 
local maxScaleCurve = { {0, 0}, {3, 3}, {13, 5} } 
-- Ensure the text doesn't get too small/unreadable 
local textScaleCurve = { {0, 0.8}, {0.8, 1.2}, {99, 99} } 
-- Make the text a bit brighter and fade more gradually 
local textAlphaCurve = { {0, 0}, {25, 100}, {120, 190}, {255, 190} } 
  
function nametag.create ( player ) 
    nametags[player] = true 
end 
  
function nametag.destroy ( player ) 
    nametags[player] = nil 
end 
  
addEventHandler ( "onClientRender", g_Root, 
    function() 
        -- Hideous quick fix -- 
        for i,player in ipairs(g_Players) do 
            if isElement(player) then 
                if player ~= g_Me then 
                    setPlayerNametagShowing ( player, false ) 
                    if not nametags[player] then 
                        nametag.create ( player ) 
                    end 
                end 
            end 
        end 
        if bHideNametags then 
            return 
        end 
        local x,y,z = getCameraMatrix() 
    
        for player in pairs(nametags) do 
            while true do 
                if not isElement(player) then break end 
                if getElementDimension(player) ~= getElementDimension(g_Me) then break end 
                local px,py,pz = getElementPosition ( player ) 
                if processLineOfSight(x, y, z, px, py, pz, true, false, false, true, false, true) then break end 
                local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) 
                if pdistance <= NAMETAG_DISTANCE then 
                    --Get screenposition 
                    local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) 
                    if not sx or not sy then break end 
                    --Calculate our components 
                    local scale = 1/(NAMETAG_SCALE * (pdistance / NAMETAG_DISTANCE)) 
                    local alpha = ((pdistance - NAMETAG_ALPHA_DISTANCE) / NAMETAG_ALPHA_DIFF) 
                    alpha = (alpha < 0) and NAMETAG_ALPHA or NAMETAG_ALPHA-(alpha*NAMETAG_ALPHA) 
                    scale = math.evalCurve(maxScaleCurve,scale) 
                    local textscale = math.evalCurve(textScaleCurve,scale) 
                    local textalpha = math.evalCurve(textAlphaCurve,alpha) 
                    local outlineThickness = NAMETAG_OUTLINE_THICKNESS*(scale) 
                    --Draw our text 
  
                    local r,g,b = getPlayerNametagColor(player) 
                    local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 
            local w = dxGetTextWidth(getPlayerNameR(player), textscale * NAMETAG_TEXTSIZE, srfont) / 2 
                    dxDrawText ( getPlayerNameR(player), sx, sy - offset, sx, sy - offset, tocolor(0,0,0,255), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false ) 
                    dxDrawColorText ( getPlayerName(player), sx-w, sy - offset, sx, sy - offset, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false ) 
                    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,50) ) 
                    --Next the inner background 
                    local health 
                    local p 
                    local r,g 
                    health = getElementHealth ( player ) 
                    health = math.max(health, 0)/100 
                    p = -510*(health^2) 
                    r,g = math.max(math.min(p + 255*health + 255, 255), 0), math.max(math.min(p + 765*health, 255), 0) 
                    if health > 1.0 then 
                        health = 1.0 
                    end 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        width - outlineThickness*2, 
                                        height - outlineThickness*2, 
                                        tocolor(0,0,0,50) 
                                    ) 
                    --Finally, the actual health 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        health*(width - outlineThickness*2), 
                                        height - outlineThickness*2, 
                                        tocolor(0,100,255,100) 
                                    )           
                end 
                break 
            end 
        end 
    end 
) 
  
---------------THE FOLLOWING IS THE MANAGEMENT OF NAMETAGS----------------- 
  
addEventHandler('onClientResourceStart', g_ResRoot, 
    function() 
        for i,player in ipairs(getElementsByType"player") do 
            if player ~= g_Me then 
                nametag.create ( player ) 
            end 
        end 
    end 
) 
  
addEventHandler ( "onClientPlayerJoin", g_Root, 
    function() 
        if source == g_Me then  
        setPlayerNametagShowing ( source, false ) 
        nametag.create ( source ) 
    end 
) 
  
addEventHandler ( "onClientPlayerQuit", g_Root, 
    function() 
        nametag.destroy ( source ) 
    end 
) 
  
-- Math functions 
function math.lerp(from,to,alpha) 
    return from + (to-from) * alpha 
end 
  
-- curve is { {x1, y1}, {x2, y2}, {x3, y3} ... } 
function math.evalCurve( curve, input ) 
    -- First value 
    if input[1][1] then 
        return curve[1][2] 
    end 
    -- Interp value 
    for idx=2,#curve do 
        if input[idx][1] then 
            local x1 = curve[idx-1][1] 
            local y1 = curve[idx-1][2] 
            local x2 = curve[idx][1] 
            local y2 = curve[idx][2] 
            -- Find pos between input points 
            local alpha = (input - x1)/(x2 - x1); 
            -- Map to output points 
            return math.lerp(y1,y2,alpha) 
        end 
    end 
    -- Last value 
    return curve[#curve][2] 
end 
  
 function removeColorCoding ( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  
function getPlayerNameR ( player ) 
    return removeColorCoding ( getPlayerName ( player ) ) 
end 
  
  
function dxDrawColorText(str, ax, ay, bx, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
  local pat = "(.-)#(%x%x%x%x%x%x)" 
  local s, e, cap, col = str:find(pat, 1) 
  local last = 1 
  while s do 
    if s ~= 1 or cap ~= "" then 
      local w = dxGetTextWidth(cap, scale, font) 
      dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
      ax = ax + w 
      color = tocolor(tonumber("0x"..string.sub(col, 1, 2)), tonumber("0x"..string.sub(col, 3, 4)), tonumber("0x"..string.sub(col, 5, 6)), 255) 
    end 
    last = e+1 
    s, e, cap, col = str:find(pat, last) 
  end 
  if last <= #str then 
    cap = str:sub(last) 
    local w = dxGetTextWidth(cap, scale, font) 
    dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
  end 
end 

Link to comment

No it didn't work, doesn't do anything now..

But the script was working! but my problem was that original mta names where visible and these from the script. i only want these from the script, I should set something on false in the original document?

Link to comment

try this :

srfont = dxCreateFont("bhz.ttf",13) 
  
g_Root = getRootElement() 
g_ResRoot = getResourceRootElement(getThisResource()) 
g_Players = getElementsByType('player') 
g_Me = getLocalPlayer() 
  
nametag = {} 
local nametags = {} 
local g_screenX,g_screenY = guiGetScreenSize() 
local bHideNametags = false 
  
local NAMETAG_SCALE = 0.3 --Overall adjustment of the nametag, use this to resize but constrain proportions 
local NAMETAG_ALPHA_DISTANCE = 50 --Distance to start fading out 
local NAMETAG_DISTANCE = 100 --Distance until we're gone 
local NAMETAG_ALPHA = 255 --The overall alpha level of the nametag 
--The following arent actual pixel measurements, they're just proportional constraints 
local NAMETAG_TEXT_BAR_SPACE = 2 
local NAMETAG_WIDTH = 50 
local NAMETAG_HEIGHT = 5 
local NAMETAG_TEXTSIZE = 0.3 
local NAMETAG_OUTLINE_THICKNESS = 1.2 
  
  
-- 
local NAMETAG_ALPHA_DIFF = NAMETAG_DISTANCE - NAMETAG_ALPHA_DISTANCE 
NAMETAG_SCALE = 1/NAMETAG_SCALE * 800 / g_screenY 
  
-- Ensure the name tag doesn't get too big 
local maxScaleCurve = { {0, 0}, {3, 3}, {13, 5} } 
-- Ensure the text doesn't get too small/unreadable 
local textScaleCurve = { {0, 0.8}, {0.8, 1.2}, {99, 99} } 
-- Make the text a bit brighter and fade more gradually 
local textAlphaCurve = { {0, 0}, {25, 100}, {120, 190}, {255, 190} } 
  
function nametag.create ( player ) 
    nametags[player] = true 
end 
  
function nametag.destroy ( player ) 
    nametags[player] = nil 
end 
  
addEventHandler ( "onClientRender", g_Root, 
    function() 
        -- Hideous quick fix -- 
        for i,player in ipairs(g_Players) do 
            if isElement(player) then 
                if player ~= g_Me then 
                    setPlayerNametagShowing ( player, false ) 
                    if not nametags[player] then 
                        nametag.create ( player ) 
                    end 
                end 
            end 
        end 
        if bHideNametags then 
            return 
        end 
        local x,y,z = getCameraMatrix() 
    
        for player in pairs(nametags) do 
            while true do 
                if not isElement(player) then break end 
                if getElementDimension(player) ~= getElementDimension(g_Me) then break end 
                local px,py,pz = getElementPosition ( player ) 
                if processLineOfSight(x, y, z, px, py, pz, true, false, false, true, false, true) then break end 
                local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) 
                if pdistance <= NAMETAG_DISTANCE then 
                    --Get screenposition 
                    local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) 
                    if not sx or not sy then break end 
                    --Calculate our components 
                    local scale = 1/(NAMETAG_SCALE * (pdistance / NAMETAG_DISTANCE)) 
                    local alpha = ((pdistance - NAMETAG_ALPHA_DISTANCE) / NAMETAG_ALPHA_DIFF) 
                    alpha = (alpha < 0) and NAMETAG_ALPHA or NAMETAG_ALPHA-(alpha*NAMETAG_ALPHA) 
                    scale = math.evalCurve(maxScaleCurve,scale) 
                    local textscale = math.evalCurve(textScaleCurve,scale) 
                    local textalpha = math.evalCurve(textAlphaCurve,alpha) 
                    local outlineThickness = NAMETAG_OUTLINE_THICKNESS*(scale) 
                    --Draw our text 
  
                    local r,g,b = getPlayerNametagColor(player) 
                    local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 
            local w = dxGetTextWidth(getPlayerNameR(player), textscale * NAMETAG_TEXTSIZE, srfont) / 2 
                    dxDrawText ( getPlayerNameR(player), sx, sy - offset, sx, sy - offset, tocolor(0,0,0,255), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false ) 
                    dxDrawColorText ( getPlayerName(player), sx-w, sy - offset, sx, sy - offset, tocolor(r,g,b,textalpha), textscale*NAMETAG_TEXTSIZE, srfont, "center", "bottom", false, false, false ) 
                    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,50) ) 
                    --Next the inner background 
                    local health 
                    local p 
                    local r,g 
                    health = getElementHealth ( player ) 
                    health = math.max(health, 0)/100 
                    p = -510*(health^2) 
                    r,g = math.max(math.min(p + 255*health + 255, 255), 0), math.max(math.min(p + 765*health, 255), 0) 
                    if health > 1.0 then 
                        health = 1.0 
                    end 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        width - outlineThickness*2, 
                                        height - outlineThickness*2, 
                                        tocolor(0,0,0,50) 
                                    ) 
                    --Finally, the actual health 
                    dxDrawRectangle (   drawX + outlineThickness, 
                                        drawY + outlineThickness, 
                                        health*(width - outlineThickness*2), 
                                        height - outlineThickness*2, 
                                        tocolor(0,100,255,100) 
                                    )           
                end 
                break 
            end 
        end 
    end 
) 
  
---------------THE FOLLOWING IS THE MANAGEMENT OF NAMETAGS----------------- 
  
addEventHandler('onClientResourceStart', g_ResRoot, 
    function() 
        for i,player in ipairs(getElementsByType"player") do 
            if player ~= g_Me then 
                nametag.create ( player ) 
            end 
        end 
    end 
) 
  
addEventHandler ( "onClientPlayerJoin", g_Root, 
    function() 
        setPlayerNametagShowing ( source, false ) 
        nametag.create ( source ) 
    end 
) 
  
addEventHandler ( "onClientPlayerQuit", g_Root, 
    function() 
        nametag.destroy ( source ) 
    end 
) 
  
-- Math functions 
function math.lerp(from,to,alpha) 
    return from + (to-from) * alpha 
end 
  
-- curve is { {x1, y1}, {x2, y2}, {x3, y3} ... } 
function math.evalCurve( curve, input ) 
    -- First value 
    if input[1][1] then 
        return curve[1][2] 
    end 
    -- Interp value 
    for idx=2,#curve do 
        if input[idx][1] then 
            local x1 = curve[idx-1][1] 
            local y1 = curve[idx-1][2] 
            local x2 = curve[idx][1] 
            local y2 = curve[idx][2] 
            -- Find pos between input points 
            local alpha = (input - x1)/(x2 - x1); 
            -- Map to output points 
            return math.lerp(y1,y2,alpha) 
        end 
    end 
    -- Last value 
    return curve[#curve][2] 
end 
  
 function removeColorCoding ( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  
function getPlayerNameR ( player ) 
    return removeColorCoding ( getPlayerName ( player ) ) 
end 
  
  
function dxDrawColorText(str, ax, ay, bx, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
  local pat = "(.-)#(%x%x%x%x%x%x)" 
  local s, e, cap, col = str:find(pat, 1) 
  local last = 1 
  while s do 
    if s ~= 1 or cap ~= "" then 
      local w = dxGetTextWidth(cap, scale, font) 
      dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
      ax = ax + w 
      color = tocolor(tonumber("0x"..string.sub(col, 1, 2)), tonumber("0x"..string.sub(col, 3, 4)), tonumber("0x"..string.sub(col, 5, 6)), 255) 
    end 
    last = e+1 
    s, e, cap, col = str:find(pat, last) 
  end 
  if last <= #str then 
    cap = str:sub(last) 
    local w = dxGetTextWidth(cap, scale, font) 
    dxDrawText(cap, ax, ay, ax + w, by, color, scale, font,alignX,alignY,clip, wordBreak, postGUI) 
  end 
end 

Link to comment

That script works!, but my problem is that the original mta names are still there.. i've found in resource cache a document called nametags.lua i guess it's the original file for mta. but when i make changes in that lua document and save it and then start my server, it will restore itself how it was before, so for example i set False to True, it changes itself to False again when i started the server

Link to comment

i don't understand how to turn off, look

nametag = {}

local nametags = {}

local g_screenX,g_screenY = guiGetScreenSize()

local bHideNametags = false

When i set "local bHideNametags = false" to "local bHideNametags = TRUE" it will automaticly change back to false when i start my server....

Link to comment

Yes but this is so strange, it replaces itself on my pc!!!

when i replace the images for the countdown 3,2,1,go and i start the server.. old images just get replaced :o how is that possible?

Please help me, my mta has selfcontrol.. and yes i save it all!!

The upperone you can see that i replaced the countdown_1,2,3,0

under i started my server and it replaced themself??????

wtfcf.png

Link to comment

Thanks SDK!!, It works now. The thing i did wrong = i selected mtasa 1.2 folder and then wrote in the searchbar "countdown.png" but the thing i forgot was to zip them :P!!

now the problem for the nametags, what do i have to do to turn the nametags off? i have a modified script,

Edit: No needed help anymore, i did it

Link to comment
  • 2 months later...

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