sthprk Posted March 20, 2020 Share Posted March 20, 2020 Buenas gente queria ponerle duración a los objetos por ejemplo a las comidas y eso, que se use hasta un punto y despues se elimine que funciones deberia usar ? Link to comment
Motar2k Posted March 20, 2020 Share Posted March 20, 2020 (edited) 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 March 20, 2020 by Motar2k Link to comment
Motar2k Posted March 20, 2020 Share Posted March 20, 2020 (edited) 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 March 20, 2020 by Motar2k Link to comment
sthprk Posted March 20, 2020 Author Share Posted March 20, 2020 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
Motar2k Posted March 21, 2020 Share Posted March 21, 2020 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
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