Jump to content

Ayuda con dxDrawText para aplicar texto


Recommended Posts

Hola! Necesito ayuda para saber cómo podría con dxDrawText aplicar un texto con un contorno negro de borde y que cuando el personaje gire sobre el texto, el texto tambien gire como tambien que si te acercas el texto se achique y viceversa.

Estoy usando de base el resource https://community.multitheftauto.com/index.php?p=resources&s=details&id=13656 

y este es el código que usa

Server.lua

Spoiler

---------------------------------------- MARKER DE ENTRADA A BASE ----------------------------------------

local alpha = 150
local r, g, b = 255, 255, 255
local size = 1.5
local typem = "cylinder"
local posx, posy, posz = 1976.0625, -1251.630859375, 22.8203125

entradaB = createMarker ( posx, posy, posz, typem, size, r, g, b, alpha, getRootElement() )

local x, y, z = 1973.83984375, -1235.0791015625, 24.51535987854 -- Posicion en la que el Jugador va Aparecer despues de Entrar
local r, g, b = 255, 255, 0 -- Colores R G B
local text = "[SERVER] #FF0000Bienvenido a la Base S.W.A.T.!" -- Mensaje al Salir del Marker

function alEntrar(hitElement)
    outputChatBox(text, getRootElement(), r, g, b, true)
    setElementPosition(hitElement, x, y, z)
end
addEventHandler("onMarkerHit", entradaB, alEntrar)

---------------------------------------- MARKER DE SALIDA DE LA BASE ----------------------------------------

local alpha = 150
local r, g, b = 255, 255, 255
local size = 1.5
local typem = "cylinder"
local posx, posy, posz = 1971.837890625, -1223.1513671875, 24.001644134521

salidaB = createMarker ( posx, posy, posz, typem, size, r, g, b, alpha, getRootElement() )

local x, y, z = 1975.4501953125, -1246.87109375, 23.992124557495 -- Posicion en la que el Jugador va Aparecer despues de Salir
local r, g, b = 255, 255, 0 -- Colores R G B
local text = "[SERVER] #FF0000Salistes de la Base S.W.A.T., Vuelve Pronto!" -- Mensaje al Salir del Marker

function alSalir(hitElement)
    outputChatBox(text, getRootElement(), r, g, b, true)
    setElementPosition(hitElement, x, y, z)
end
addEventHandler("onMarkerHit", salidaB, alSalir)

 

 

y Client.lua

Spoiler

----------------------------- TEXTO DEL MARKER DE ENTRADA -----------------------------

local alpha = 0
local r, g, b = 255, 255, 255
local size = 1.5
local typem = "cylinder"
local posx, posy, posz = 1976.0625, -1251.630859375, 22.8203125

local entradaB = createMarker (posx, posy, posz, typem, size, r, g, b, alpha)

addEventHandler( "onClientRender", root, function (  )
       local x, y, z = getElementPosition( entradaB )
       local Mx, My, Mz = getCameraMatrix(   )
        if ( getDistanceBetweenPoints3D( x, y, z, Mx, My, Mz ) <= 30 ) then
           local WorldPositionX, WorldPositionY = getScreenFromWorldPosition( x, y, z +1, 0.07 )
            if ( WorldPositionX and WorldPositionY ) then
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX - 1, WorldPositionY - 1, WorldPositionX - 1, WorldPositionY - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX + 1, WorldPositionY - 1, WorldPositionX + 1, WorldPositionY - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX - 1, WorldPositionY + 1, WorldPositionX - 1, WorldPositionY + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX + 1, WorldPositionY + 1, WorldPositionX + 1, WorldPositionY + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX, WorldPositionY, WorldPositionX, WorldPositionY, tocolor(255, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
            end
      end
end 
)

----------------------------- TEXTO DEL MARKER DE SALIDA -----------------------------

local alpha = 0
local r, g, b = 255, 255, 255
local size = 1.5
local typem = "cylinder"
local posx, posy, posz = 1971.837890625, -1223.1513671875, 24.001644134521

local salidaB = createMarker (posx, posy, posz, typem, size, r, g, b, alpha)

addEventHandler( "onClientRender", root, function (  )
       local x, y, z = getElementPosition( salidaB )
       local Mx, My, Mz = getCameraMatrix(   )
        if ( getDistanceBetweenPoints3D( x, y, z, Mx, My, Mz ) <= 30 ) then
           local WorldPositionX, WorldPositionY = getScreenFromWorldPosition( x, y, z +1, 0.07 )
            if ( WorldPositionX and WorldPositionY ) then
			    dxDrawText("Salida\nBase S.W.A.T.", WorldPositionX - 1, WorldPositionY - 1, WorldPositionX - 1, WorldPositionY - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Salida\nBase S.W.A.T.", WorldPositionX + 1, WorldPositionY - 1, WorldPositionX + 1, WorldPositionY - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Salida\nBase S.W.A.T.", WorldPositionX - 1, WorldPositionY + 1, WorldPositionX - 1, WorldPositionY + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Salida\nBase S.W.A.T.", WorldPositionX + 1, WorldPositionY + 1, WorldPositionX + 1, WorldPositionY + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Salida\nBase S.W.A.T.", WorldPositionX, WorldPositionY, WorldPositionX, WorldPositionY, tocolor(255, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
            end
      end
end 
)

 

Yo solamente de esto necesito un texto que se pueda usar coordenadas diferentes, sin el cilindro que teletransporta.

Saludos.

Link to comment

No era tan difícil, del mismo script ese sólo cambias ciertas cosas :b
 

local x, y, z = 1976.0625, -1251.630859375, 22.8203125

addEventHandler( "onClientRender", root, function (  )
       local Mx, My, Mz = getCameraMatrix(   )
        if ( getDistanceBetweenPoints3D( x, y, z, Mx, My, Mz ) <= 30 ) then
           local WorldPositionX, WorldPositionY = getScreenFromWorldPosition( x, y, z +1, 0.07 )
            if ( WorldPositionX and WorldPositionY ) then
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX - 1, WorldPositionY - 1, WorldPositionX - 1, WorldPositionY - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX + 1, WorldPositionY - 1, WorldPositionX + 1, WorldPositionY - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX - 1, WorldPositionY + 1, WorldPositionX - 1, WorldPositionY + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX + 1, WorldPositionY + 1, WorldPositionX + 1, WorldPositionY + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
			    dxDrawText("Entrada\nBase S.W.A.T.", WorldPositionX, WorldPositionY, WorldPositionX, WorldPositionY, tocolor(255, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false)
            end
      end
end 
)

 

  • Like 1
Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...