Death Posted May 1, 2015 Author Posted May 1, 2015 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now