Sign in to follow this  
Facundoz

Mostrar imagen al pararse en teleport

Recommended Posts

Hola, estuve buscando algun script sencillo para que al pararse un jugador en un teleport muestre una imagen y al salir del teleport deje de mostrarla pero no he encontrado ninguno, alguien sabe como hacerlo? 

Share this post


Link to post

Gracias por la respuesta, lo que sucede es que soy muy nuevo en esto y no se lo suficiente de script para armarlo, lo he intentado y no me sale

Share this post


Link to post

 

1 minute ago, Facundoz said:

Gracias por la respuesta, lo que sucede es que soy muy nuevo en esto y no se lo suficiente de script para armarlo, lo he intentado y no me sale

Podrías postear el codigo para que podamos ayudarte ?

Share this post


Link to post
3 minutes ago, <~KaMiKaZe~> said:

 

Podrías postear el codigo para que podamos ayudarte ?

Esto es lo que tengo hasta ahora: 

local marker = createMarker(7147.4609375, -2186.1020507813, 3.7390625476837 - 0.9, "cylinder", .75, 255, 0, 0) 
function showimage(hit)
    if getElementType(hit) == "player" then
        name = getPlayerName(getLocalPlayer())
        if getPlayerName(hit) == name then
            dxDrawImage(10, 10, 48, 48, "img/display.png") 
            end

Pero no muestra la imagen ni nada al pararme sobre el teleport :/ 

Share this post


Link to post
Posted (edited)
1 hour ago, Facundoz said:

Esto es lo que tengo hasta ahora: 

local marker = createMarker(7147.4609375, -2186.1020507813, 3.7390625476837 - 0.9, "cylinder", .75, 255, 0, 0) 
function showimage(hit)
    if getElementType(hit) == "player" then
        name = getPlayerName(getLocalPlayer())
        if getPlayerName(hit) == name then
            dxDrawImage(10, 10, 48, 48, "img/display.png") 
            end

Pero no muestra la imagen ni nada al pararme sobre el teleport :/ 

addEventHandler("onClientRender", root,
function()
if ( getElementData( localPlayer, "dibujarImagen" ) == true ) then
dxDrawImage(10, 10, 48, 48, "img/display.png")
end
end
)

local marker = createMarker(7147.4609375, -2186.1020507813, 3.7390625476837, "cylinder", 1.75, 255, 0, 0) 
function showimage(hit)
    if getElementType(hit) == "player" then
	  if hit == getLocalPlayer() then
       --local name = getPlayerName(getLocalPlayer())
        --if getPlayerName(hit) == name then
            setElementData( hit, "dibujarImagen", true ) 
		end
	end	
end	
addEventHandler("onClientMarkerHit", marker, showimage )	

function unShowImage(leave)
    if getElementType(leave) == "player" then
	    if leave == getLocalPlayer() then
	   setElementData( leave, "dibujarImagen", false ) 
	    end
    end		 
end
addEventHandler("onClientMarkerLeave", marker, unShowImage )

Tuviste algunos errores:

1- No pusiste los eventos ( Que son muy importantes para ejecutar la función ).

2- El tamaño del marker estaba mal.

3- La función dxDrawImage  solo se muestran por 1 milisegundo, por lo tanto, podrías haber usado el evento onClientRender.

4- La función showimage no está cerrada.

5- Esta linea es innecesaria :

local name = getPlayerName(getLocalPlayer())
if getPlayerName(hit) == name then

El codigo no lo probé todavía pero creo que está bien y si no, me avisas por fa.

Suerte :D

Edited by <~KaMiKaZe~>
  • Like 1

Share this post


Link to post
1 hour ago, <~KaMiKaZe~> said:

addEventHandler("onClientRender", root,
function()
if ( getElementData( localPlayer, "dibujarImagen" ) == true ) then
dxDrawImage(10, 10, 48, 48, "img/display.png")
end
end
)

local marker = createMarker(7147.4609375, -2186.1020507813, 3.7390625476837, "cylinder", 1.75, 255, 0, 0) 
function showimage(hit)
    if getElementType(hit) == "player" then
	  if hit == getLocalPlayer() then
       --local name = getPlayerName(getLocalPlayer())
        --if getPlayerName(hit) == name then
            setElementData( hit, "dibujarImagen", true ) 
		end
	end	
end	
addEventHandler("onClientMarkerHit", marker, showimage )	

function unShowImage(leave)
    if getElementType(leave) == "player" then
	    if leave == getLocalPlayer() then
	   setElementData( leave, "dibujarImagen", false ) 
	    end
    end		 
end
addEventHandler("onClientMarkerLeave", marker, unShowImage )

Tuviste algunos errores:

1- No pusiste los eventos ( Que son muy importantes para ejecutar la función ).

2- El tamaño del marker estaba mal.

3- La función dxDrawImage  solo se muestran por 1 milisegundo, por lo tanto, podrías haber usado el evento onClientRender.

4- La función showimage no está cerrada.

5- Esta linea es innecesaria :


local name = getPlayerName(getLocalPlayer())
if getPlayerName(hit) == name then

El codigo no lo probé todavía pero creo que está bien y si no, me avisas por fa.

Suerte :D

Muchas gracias por el tiempo! esto debería ponerle en el archivo que le puse de nombre "teleimage" no necesita tener nada que diga "server" o "client", con solo poner los archivos teleimage.lua y meta.xml ya funcionaria? nuevamente te agradezco

Share this post


Link to post
Posted (edited)
5 minutes ago, Facundoz said:

Muchas gracias por el tiempo! esto debería ponerle en el archivo que le puse de nombre "teleimage" no necesita tener nada que diga "server" o "client", con solo poner los archivos teleimage.lua y meta.xml ya funcionaria? nuevamente te agradezco

Sí pero el archivo teleimage.lua tiene que estar del lado client. Si no me entendés, acá te dejo un ejemplo:

	<script src="teleimage.lua" type="client" />	

 

Edited by <~KaMiKaZe~>
  • Like 1

Share this post


Link to post

Acabo de probar y ya me aparecio el teleport, sin embargo no muestra la imagen :(

estara mal algo en el meta? 

Asi lo tengo: 

<meta>
    <info author="Terror" version="1.0.0" name="Scream" description="Test" type="map" />
    <script src="teleimage.lua" type="client" />
    <file src="display.png" />
</meta>

 

Y en el lua puse tal cual lo pusiste

Share this post


Link to post
2 minutes ago, Facundoz said:

Acabo de probar y ya me aparecio el teleport, sin embargo no muestra la imagen :(

estara mal algo en el meta? 

Asi lo tengo: 

<meta>
    <info author="Terror" version="1.0.0" name="Scream" description="Test" type="map" />
    <script src="teleimage.lua" type="client" />
    <file src="display.png" />
</meta>

 

Y en el lua puse tal cual lo pusiste

Si el meta te corrió el código significa que está bien. El problema es en el client en esta linea:

 

dxDrawImage(10, 10, 48, 48, "img/display.png")

Te olvidaste de eliminar el 'img/' ya que la imagen está suelta en tu archivo y no dentro de otra carpeta. Por lo tanto, tendría esa linea tendrás que reemplazarla por esta:

dxDrawImage(10, 10, 48, 48, "display.png")

 

  • Like 1

Share this post


Link to post
13 minutes ago, <~KaMiKaZe~> said:

Si el meta te corrió el código significa que está bien. El problema es en el client en esta linea:

 


dxDrawImage(10, 10, 48, 48, "img/display.png")

Te olvidaste de eliminar el 'img/' ya que la imagen está suelta en tu archivo y no dentro de otra carpeta. Por lo tanto, tendría esa linea tendrás que reemplazarla por esta:


dxDrawImage(10, 10, 48, 48, "display.png")

 

Acabo de probar y aun corrigiendo eso no muestra mi imagen, sera un problema del tamaño de la imagen o que podria ser? 😨

Finalmente la imagen aparecio! pero aparece pequeñita y en el rincon superior izquierdo, se puede hacer que aparezca en toda la pantalla? Gracias!

Share this post


Link to post
12 minutes ago, Facundoz said:

Acabo de probar y aun corrigiendo eso no muestra mi imagen, sera un problema del tamaño de la imagen o que podria ser? 😨

Finalmente la imagen aparecio! pero aparece pequeñita y en el rincon superior izquierdo, se puede hacer que aparezca en toda la pantalla? Gracias!

Bien. Depende un poco de la resolución de tu imagen pero quizá funcione el código que te pasaré.

local sW, sH = guiGetScreenSize()--Esto va afuera de todo. Sirve para tomar el tamaño de la pantalla.

dxDrawImage((sW - 800) / 2, (sH - 600) / 2, 800, 600, "display.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) --Esto reemplazará tu otra función de 'dxDrawImage'.

 

Share this post


Link to post
27 minutes ago, <~KaMiKaZe~> said:

Bien. Depende un poco de la resolución de tu imagen pero quizá funcione el código que te pasaré.


local sW, sH = guiGetScreenSize()--Esto va afuera de todo. Sirve para tomar el tamaño de la pantalla.

dxDrawImage((sW - 800) / 2, (sH - 600) / 2, 800, 600, "display.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) --Esto reemplazará tu otra función de 'dxDrawImage'.

 

Eso lo pongo arriba del codigo que me pasaste anteriormente?

Share this post


Link to post

Ya logre hacerlo funcionar gracias a vos! Te agradezco mucho. Saludoss!

Share this post


Link to post

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.