Jump to content

[Ayuda] Eliminar muerte


Ryuto

Recommended Posts

¡Hola!

 

Queria pedirles ayuda con un script que quiero realizar pero la verdad no sé si es posible o no, se trata de evitar la muerte o sea cuando un jugador se le quita toda la vida este quede tirado con una animación y que tarde 20 o 25 segundos para que este se levante nuevamente con muy poca vida. Es algo parecido a como pasa en el PUBG cuando se queda tirando caminando hasta que alguien lo revive.

 

¿Es posible? si es así, ¿qué códigos de scripting puedo utilizar?

 

Gracias!!

Link to comment

Te he hecho un código de ejemplo para que te puedas guiar, únicamente hice la parte en la que el jugador espera a ser revivido para que te encargues del resto y lo puedas hacer a tu gusto. Intenta hacerla y si te surgen dudas, comenta de nuevo en este post.

 

Salu2 ?‍♂️

 

local dyingState = nil
local delayTime = 10000 -- Aquí se especifica en milisegundos cuánto tiempo tendrá de margen el jugador para ser revivido.

addEventHandler( "onClientPlayerDamage", getRootElement( ), -- Con este evento comprobamos cuándo el jugador recibe daño.
	function(  )
		if dyingState then -- Comprobar si el jugador está esperando a ser revivido, por defecto el valor de la variable es nulo ( no está esperando a ser revivido ).
			cancelEvent( ) -- Evitamos que se reciva daño mientra espera a ser revivido.
			return -- Hacemos un return para que no ejecute el resto del código dentro de la función.
		end
		if getElementHealth( localPlayer ) < 5 and cancelEvent( ) then -- Comprobamos si la vida del jugador es menor a 5, y evitamos que reciba más daño para que este no llegue a morir del todo.
			dyingState = getTickCount( ) -- Asignamos a la variable el tiempo que lleva activo el server, será útil para comparar cuánto tiempo ha pasado desde que cayó al suelo.
			setElementHealth( localPlayer, 5 ) -- Dejamos al jugador con algo de vida para que no muera.
			setPedAnimation( localPlayer, "finale", "fin_land_die", delayTime, false ) -- Asignamos una animación para que el personaje caiga y se mantenga en el suelo.
		end
	end
)

addEventHandler( "onClientRender", getRootElement( ),
	function( )
		if dyingState and ( getTickCount( ) - dyingState ) > delayTime then -- Comprobamos si el jugador espera a ser revivido y la resta entre el tiempo actual y el tiempo que asignamos cuando cayó al suelo es superior a 'delayTime'.
			dyingState = nil -- El jugador deja de estar a la espera de ser revivido.
			setElementHealth( localPlayer, 0 ) -- El jugador muere.
		end
	end
)

 

  • Thanks 1
Link to comment
On 02/08/2019 at 08:57, DBY said:

Te he hecho un código de ejemplo para que te puedas guiar, únicamente hice la parte en la que el jugador espera a ser revivido para que te encargues del resto y lo puedas hacer a tu gusto. Intenta hacerla y si te surgen dudas, comenta de nuevo en este post.

 

Salu2 ?‍♂️

 


local dyingState = nil
local delayTime = 10000 -- Aquí se especifica en milisegundos cuánto tiempo tendrá de margen el jugador para ser revivido.

addEventHandler( "onClientPlayerDamage", getRootElement( ), -- Con este evento comprobamos cuándo el jugador recibe daño.
	function(  )
		if dyingState then -- Comprobar si el jugador está esperando a ser revivido, por defecto el valor de la variable es nulo ( no está esperando a ser revivido ).
			cancelEvent( ) -- Evitamos que se reciva daño mientra espera a ser revivido.
			return -- Hacemos un return para que no ejecute el resto del código dentro de la función.
		end
		if getElementHealth( localPlayer ) < 5 and cancelEvent( ) then -- Comprobamos si la vida del jugador es menor a 5, y evitamos que reciba más daño para que este no llegue a morir del todo.
			dyingState = getTickCount( ) -- Asignamos a la variable el tiempo que lleva activo el server, será útil para comparar cuánto tiempo ha pasado desde que cayó al suelo.
			setElementHealth( localPlayer, 5 ) -- Dejamos al jugador con algo de vida para que no muera.
			setPedAnimation( localPlayer, "finale", "fin_land_die", delayTime, false ) -- Asignamos una animación para que el personaje caiga y se mantenga en el suelo.
		end
	end
)

addEventHandler( "onClientRender", getRootElement( ),
	function( )
		if dyingState and ( getTickCount( ) - dyingState ) > delayTime then -- Comprobamos si el jugador espera a ser revivido y la resta entre el tiempo actual y el tiempo que asignamos cuando cayó al suelo es superior a 'delayTime'.
			dyingState = nil -- El jugador deja de estar a la espera de ser revivido.
			setElementHealth( localPlayer, 0 ) -- El jugador muere.
		end
	end
)

 

 

Me pude guiar perfectamente de tu ejemplo y me ha funcionado, estoy muy agradecido!

  • Like 1
Link to comment
  • 4 years later...

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

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