Facundoz Posted April 6, 2019 Share Posted April 6, 2019 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? Link to comment
KaMi Posted April 6, 2019 Share Posted April 6, 2019 Usa onClientMarkerHit onClientMarkerLeave dxDrawImage 1 Link to comment
Facundoz Posted April 6, 2019 Author Share Posted April 6, 2019 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 Link to comment
KaMi Posted April 6, 2019 Share Posted April 6, 2019 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 ? Link to comment
Facundoz Posted April 6, 2019 Author Share Posted April 6, 2019 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 Link to comment
KaMi Posted April 6, 2019 Share Posted April 6, 2019 (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 Edited April 6, 2019 by <~KaMiKaZe~> 1 Link to comment
Facundoz Posted April 6, 2019 Author Share Posted April 6, 2019 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 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 Link to comment
KaMi Posted April 6, 2019 Share Posted April 6, 2019 (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 April 6, 2019 by <~KaMiKaZe~> 1 Link to comment
Facundoz Posted April 6, 2019 Author Share Posted April 6, 2019 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 Link to comment
KaMi Posted April 6, 2019 Share Posted April 6, 2019 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") 1 Link to comment
Facundoz Posted April 6, 2019 Author Share Posted April 6, 2019 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! Link to comment
KaMi Posted April 6, 2019 Share Posted April 6, 2019 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'. Link to comment
Facundoz Posted April 6, 2019 Author Share Posted April 6, 2019 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? Link to comment
Facundoz Posted April 6, 2019 Author Share Posted April 6, 2019 Ya logre hacerlo funcionar gracias a vos! Te agradezco mucho. Saludoss! Link to comment
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