Matias_Montanna Posted January 8, 2017 Share Posted January 8, 2017 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
#Dv^ Posted January 9, 2017 Share Posted January 9, 2017 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 ) 1 Link to comment
Recommended Posts