Jump to content

[AYUDA] onMarkerHit


santiagoBMX

Recommended Posts

Posted

Hola, soy nuevo en esto del scripting, apenas ayer estaba tratando de hacer unas pruebas para conocer más el uso de las funciones y la estructura que se debe usar y todo esto.

Entonces en el script que estaba haciendo quería crear un marcador que al pasar por él me cambiara el skin, pero no sé por qué no funciona, la consola no me muestra ningún error ni nada, el marcador sí se crea y todo pero al pasar por ahí no pasa nada. ¿Alguien sabe qué estoy haciendo mal?

function consoleCreateMarker ( thePlayer, commandName )
      marker1 = createMarker ( 2497.8662109375, -1669.2919921875, 13.341800689697, "cylinder", 1.5, 255, 255, 0, 170 )
      outputChatBox ( "Marker created successfully" )      
end
addEventHandler ( "onResourceStart", resourceRoot, consoleCreateMarker )

function CambiodeSkin (source)
	setElementModel ( source, 299 )
end
addEventHandler ( "onMarkerhit", resourceRoot, CambiodeSkin )

 

Posted
marker1 = createMarker ( 2497.8662109375, -1669.2919921875, 13.341800689697, "cylinder", 1.5, 255, 255, 0, 170 )

function CambiodeSkin (hitelement)
    if getElementType ( hitelement ) == "player" then
	   setElementModel ( hitelement, 299 )
    end
end
addEventHandler ( "onMarkerHit", marker1, CambiodeSkin )

Prueba con eso ;)

 

Posted

Gracias, sí me funcionó :smile:, pero, ¿por qué como lo tenía antes no funcionaba, qué tenía mal?

y en este caso si quiero poner un mensaje al iniciar el resource ¿en donde ubico el outputChatBox? 

Posted

No funcionaba porque habías puesto "onMarkerhit" en vez de "onMarkerHit" y "resourceRoot" en vez de "root" o "marker1".

addEventHandler ( "onMarkerhit", resourceRoot, CambiodeSkin ) -- "onMarkerhit", "resourceRoot"
addEventHandler ( "onMarkerHit", marker1, CambiodeSkin ) -- "onMarkerHit", "marker1"

Además agregué para que compruebe si el que entra al marker es un player, ya que puede entrar un vehículo, por ejemplo, y cambiarle el modelo.

function CambiodeSkin (hitelement)
    if getElementType ( hitelement ) == "player" then --Comprueba si el que entra al marker (hitelement) es un "player". 
	   setElementModel ( hitelement, 299 ) --Si el que entra es un "player", le cambia el modelo (skin).
    end
end
addEventHandler ( "onMarkerHit", marker1, CambiodeSkin )

Para el mensaje:

function mensaje()
outputChatBox ( "Bla bla bla" ) 
end
addEventHandler ( "onResourceStart", resourceRoot, mensaje)
Posted

No había visto que faltaba esa mayúscula :-o 
cambié el "onMarkerhit" por "onMarkerHit" y ahora sí funcionó, funcionó sin cambiar el "resourceRoot" por "root" o "marker1" ¿cuál es la diferencia?

Posted (edited)

Si está en 'root' o resourceRoot, cualquier marker que pases por encima, se ejecutará el evento ya que 'root' es global claramente

Edited by #Dv^
  • Like 1
Posted
17 minutes ago, santiagoBMX said:

No había visto que faltaba esa mayúscula :-o 
cambié el "onMarkerhit" por "onMarkerHit" y ahora sí funcionó, funcionó sin cambiar el "resourceRoot" por "root" o "marker1" ¿cuál es la diferencia?

Lo que dijo #Dv^. 

Igual me equivoqué yo al corregir eso, pensaba que resourceRoot era otra cosa :P.

Posted (edited)

En el mismo evento puedes usar root y también condiciones para que al pisar cierto marker se cumpla la condición, es decir;
 

marker1 = createMarker ( 2497.8662109375, -1669.2919921875, 13.341800689697, "cylinder", 1.5, 255, 255, 0, 170 )
marker2 = createMarker ( 2490.8662109375, -1669.2919921875, 13.341800689697, "cylinder", 1.5, 255, 255, 0, 170 )

addEventHandler("onMarkerHit", root,
	function(hit)
		if source == marker1 then
			if getElementType(hit) == "player" then
				--
			end
		elseif source == marker2 then
			if getElementType(hit) == "player" then
				--
			end
		end
	end
)

 

Edited by #Dv^
  • Like 1
  • Recently Browsing   0 members

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