Jump to content

DxDraw3DText update text


Death

Recommended Posts

problems upgrading 3d text when buying the base he create another text instead of upgrading the same I can use?

my script

server

function createNewBASES()    
    for _, area in pairs ( bases_radar ) do  
            Radar[_] = createRadarArea ( area.x, area.y, area.width, area.height, markers[area.nome]['r'], markers[area.nome]['g'], markers[area.nome]['b'], 200 ); 
            theCol[_] = createColCuboid ( area.x, area.y, area.z, area.width, area.height, area.size ); 
    end 
for _, areia in pairs ( bases_marker ) do 
    triggerClientEvent( readyPlayerList, "onSetOwner", root, areia.nome, markers[areia.nome]['gangowner'], areia.preco, areia.x, areia.y, areia.z, markers[areia.nome]['r'], markers[areia.nome]['g'], markers[areia.nome]['b']) 
    Marker[_] = createMarker(areia.x, areia.y, areia.z, "cylinder", 1.5, markers[areia.nome]['r'], markers[areia.nome]['g'], markers[areia.nome]['b'], 200) 
    addEventHandler( "onMarkerHit", Marker[_], Base ) 
end 
end 

client

addEvent("onSetOwner", true) 
resourceRoot = getResourceRootElement() 
addEventHandler("onClientResourceStart",resourceRoot, 
function() 
    triggerServerEvent( "clientReady", resourceRoot ) 
end 
) 
  
local fonts = { [ "default" ] = true, [ "default-bold" ] = true,[ "clear" ] = true,[ "arial" ] = true,[ "sans" ] = true, 
      [ "pricedown" ] = true, [ "bankgothic" ] = true,[ "diploma" ] = true,[ "beckett" ] = true 
}; 
function convertNumber ( number )   
    local formatted = number   
    while true do       
        formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')     
        if ( k==0 ) then       
            break   
        end   
    end   
    return formatted 
end 
function lol(name, owner, preco, x, y, z, red, green, blue) 
  
dxDraw3DText("Name: "..name,x, y, z+0.512, 0.5, "bankgothic", red, green, blue, -- s8) -->
dxDraw3DText("Owner: "..owner,x, y, z+0.400, 0.5, "bankgothic", red, green, blue, -- s8) -->
dxDraw3DText("Cash: $"..convertNumber(preco),x, y, z+0.288, 0.5, "bankgothic", red, green, blue, -- s8) -->
  
end 
addEventHandler ( "onSetOwner", getRootElement(), lol ) 
  
function dxDraw3DText( text, x, y, z, scale, font, r, g, b, maxDistance ) 
    -- checking required arguments 
    assert( type( text ) == "string", "Bad argument @ dxDraw3DText" ); 
    assert( type( x ) == "number", "Bad argument @ dxDraw3DText" ); 
    assert( type( y ) == "number", "Bad argument @ dxDraw3DText" ); 
    assert( type( z ) == "number", "Bad argument @ dxDraw3DText" ); 
    -- checking optional arguments 
    if not scale or type( scale ) ~= "number" or scale <= 0 then 
        scale = 2 
    end 
    if not font or type( font ) ~= "string" or not fonts[ font ] then 
        font = "default" 
    end 
    if not r or type( r ) ~= "number" or r < 0 or r > 255 then 
        r = 255 
    end 
    if not g or type( g ) ~= "number" or g < 0 or g > 255 then 
        g = 255 
    end 
    if not b or type( b ) ~= "number" or b < 0 or b > 255 then 
        b = 255 
    end 
    if not maxDistance or type( maxDistance ) ~= "number" or maxDistance <= 1 then 
        maxDistance = 12 
    end 
    local textElement = createElement( "text" ); 
  
    -- checking if the element was created 
    if textElement then  
        -- setting the element datas 
        setElementData( textElement, "text", text ); 
        setElementData( textElement, "x", x ); 
        setElementData( textElement, "y", y ); 
        setElementData( textElement, "z", z ); 
        setElementData( textElement, "scale", scale ); 
        setElementData( textElement, "font", font ); 
        setElementData( textElement, "rgba", { r, g, b, 255 } ); 
        setElementData( textElement, "maxDistance", maxDistance ); 
        -- returning the text element 
        return textElement 
    end 
    -- returning false in case of errors 
    return false 
end 
  
addEventHandler( "onClientRender", root, 
    function( ) 
        local texts = getElementsByType( "text" ); 
        if #texts > 0 then 
            local pX, pY, pZ = getElementPosition( localPlayer ); 
            for i = 1, #texts do 
                local text = getElementData( texts[i], "text" ); 
                local tX, tY, tZ = getElementData( texts[i], "x" ), getElementData( texts[i], "y" ), getElementData( texts[i], "z" ); 
                local font = getElementData( texts[i], "font" ); 
                local scale = getElementData( texts[i], "scale" ); 
                local color = getElementData( texts[i], "rgba" ); 
                local maxDistance = getElementData( texts[i], "maxDistance" ); 
                if not text or not tX or not tY or not tZ then 
                    return 
                end 
                if not font then font = "default" end 
                if not scale then scale = 2 end 
                if not color or type( color ) ~= "table" then 
                    color = { 255, 255, 255, 255 }; 
                end 
                if not maxDistance then maxDistance = 12 end 
                local distance = getDistanceBetweenPoints3D( pX, pY, pZ, tX, tY, tZ ); 
                if distance <= maxDistance then 
                    local x, y = getScreenFromWorldPosition( tX, tY, tZ ); 
                    if x and y then 
                        dxDrawBorderedText( text, x, y, _, _, tocolor( color[1], color[2], color[3], color[4] ), scale, font, "center", "center" ); 
                    end 
                end 
            end 
        end 
    end 
); 
  
  
function dxDrawBorderedText( text, x, y, _, _, color, scale, font, alignX, alignY, clip, wordBreak, postGUI ) 
    dxDrawText ( text, x - 1, y - 1, _, _, tocolor ( 0, 0, 0, 155 ), scale, font, alignX, alignY, clip, wordBreak, false ) 
    dxDrawText ( text, x + 1, y - 1, _, _, tocolor ( 0, 0, 0, 155 ), scale, font, alignX, alignY, clip, wordBreak, false ) 
    dxDrawText ( text, x - 1, y + 1, _, _, tocolor ( 0, 0, 0, 155 ), scale, font, alignX, alignY, clip, wordBreak, false ) 
    dxDrawText ( text, x + 1, y + 1, _, _, tocolor ( 0, 0, 0, 155 ), scale, font, alignX, alignY, clip, wordBreak, false ) 
  
     
    dxDrawText ( text, x, y, _, _, color, scale, font, alignX, alignY, clip, wordBreak, postGUI ) 
end 
  
  

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