Jump to content

Ayuda como le pongo duracion a los objetos?


sthprk

Recommended Posts

setTimer

destroyElement

--Me imagino que quiere que el objeto lo vean todos asi que se tendria que hacer del lado del serverside.
--Aqui va un ejemplo

objetos = {}--declaramos una tabla para almacenar los objetos temporales y los timers

function usarObjeto(player) --funcion para usar el objeto
	objetos[player] = {object = nil, timer = nil}-- asignamos a una variable el valor de una tabla para almacenar los objetos temporales y los timers al mismo 		jugador, por eso se utiliza [player] despues de el nombre de la tabla.
  	objetos[player].object = createObject(modelo_id, x, y, z)-- creamos el objeto y lo asignamos a la variable "objet" del jugador.
  	objetos[player].timer = setTimer(eliminarObjeto, 1000, 1, objetos[player])-- creamos el timer y lo asignamos a la variable "timer" del jugador, el numero "1000" indica la duracion en milisegundos y el "1" indica las veces que se repetira el timer si remplazas el "1" por un "0" este timer se repetira sin parar, el "objetos[player]" al final del timer es un argumento que enviamos a la funcion eliminarObjeto.
end

function eliminarObjeto(tabla) --funcion para destruir el objeto al terminar el timer
 	if isElement(tabla.object) then --verificamos si el objeto existe
    	destroyElement(tabla.object)--eliminamos el objeto
   		tabla = nil --eliminamos la tabla del jugador en la que se almacenaban los datos
 	end
end

function eliminarObjetosAlSalir() --funcion para destruir el timer y el objeto cuando el jugador se desconecte en medio de el proceso del timer
 	if objetos[source] ~= nil then --verificamos si existe la tabla del jugador
    	destroyElement(objetos[source].object)--eliminamos el objeto
    	killTimer(objetos[source].timer)--detenemos el timer en ejecucion
   		objetos[player] = nil --eliminamos la tabla del jugador en la que se almacenaban los datos
   	end
end

--NOTA: Si te preguntas porque detenemos el timer en la funcion "eliminarObjetosAlSalir" y  porque no lo detenemos en "eliminarObjeto" es porque el timer llama a la funcion "eliminarObjeto" cuando finaliza y por lo tanto no nececita ser detenido.

 

Edited by Motar2k
Link to comment

La ultima funcion quedaria asi ya que olvide agregar el evento de salir para que se llame cada vez que el jugador salga del servidor

function eliminarObjetosAlSalir() --funcion para destruir el timer y el objeto cuando el jugador se desconecte en medio de el proceso del timer
 	if objetos[source] ~= nil then --verificamos si existe la tabla del jugador
    	destroyElement(objetos[source].object)--eliminamos el objeto
    	killTimer(objetos[source].timer)--detenemos el timer en ejecucion
   		objetos[player] = nil --eliminamos la tabla del jugador en la que se almacenaban los datos
   	end
end
addEventHandler("onPlayerQuit", getRootElement(), eliminarObjetosAlSalir) -- llamandon la funcion cuando el jugador se desconecte

 

Edited by Motar2k
Link to comment
35 minutes ago, Motar2k said:

La ultima funcion quedaria asi ya que olvide agregar el evento de salir para que se llame cada vez que el jugador salga del servidor


function eliminarObjetosAlSalir() --funcion para destruir el timer y el objeto cuando el jugador se desconecte en medio de el proceso del timer
 	if objetos[source] ~= nil then --verificamos si existe la tabla del jugador
    	destroyElement(objetos[source].object)--eliminamos el objeto
    	killTimer(objetos[source].timer)--detenemos el timer en ejecucion
   		objetos[player] = nil --eliminamos la tabla del jugador en la que se almacenaban los datos
   	end
end
addEventHandler("onPlayerQuit", getRootElement(), eliminarObjetosAlSalir) -- llamandon la funcion cuando el jugador se desconecte

 

Son objetos con createObject y con bone attach comidas cigarros y eso ,que apretas una tecla y crea el objeto, por ejemplo una lata de sprunk, despues toma la sprunk con clic derecho... pero yo queria que pudiera tomar hasta cierto punto, por ejemplo tomar solo 3 veces  y que la bebida se termine y dejar la lata en el piso o eliminarla...

para los cigarros esta bien porque se van consumiendo pero no se como hacer con las latas comidas y eso..

Link to comment
2 hours ago, sthprk said:

Son objetos con createObject y con bone attach comidas cigarros y eso ,que apretas una tecla y crea el objeto, por ejemplo una lata de sprunk, despues toma la sprunk con clic derecho... pero yo queria que pudiera tomar hasta cierto punto, por ejemplo tomar solo 3 veces  y que la bebida se termine y dejar la lata en el piso o eliminarla...

para los cigarros esta bien porque se van consumiendo pero no se como hacer con las latas comidas y eso..

Ok, entonces usa setElementData para almacenar la cantidad restante de veces que puede usar tal objeto

Link to comment

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...