Jump to content

[AYUDA] onMarkerHit


santiagoBMX

Recommended Posts

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 )

 

Link to comment
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 ;)

 

Link to comment

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)
Link to comment
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.

Link to comment

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
Link to comment
  • Recently Browsing   0 members

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