Kilfwan Posted August 27, 2015 Posted August 27, 2015 Hola, Tengo una duda. Como podría hacer para que un usuario no pueda a volver a usar un comando y activar lo después con un setTimer() , Lo que no entiendo es realmente como hacer que ya no lo vuelva a usar por segunda vez y volverlo a activar, Usando cancelEvent() creo seria, pero por favor podrían darme un ejemplo? Gracias.
aka Blue Posted August 27, 2015 Posted August 27, 2015 Pues puedes usar que al usar tal comando le ponga true y al true le pones un setTimer para que cada x tiempo se ponga false. Algo como ésto, usado = false, después, if false then y que pueda usarlo pero if true then le pones un mensajito y abajo del todo un setTimer que cada tanto tiempo se ponga en true.
UserToDelete Posted August 27, 2015 Posted August 27, 2015 Pues puedes usar que al usar tal comando le ponga true y al true le pones un setTimer para que cada x tiempo se ponga false.Algo como ésto, usado = false, después, if false then y que pueda usarlo pero if true then le pones un mensajito y abajo del todo un setTimer que cada tanto tiempo se ponga en true. Efectivamente, una variable sencillisima como lo que te dijo ejemplo practico local usado = false function comando (source, comando) if usado then return end outputChatBox('has usado este comando', source, 0,0,0,true) usado = true end addCommandHandler('usarcomando', comando) o tambien puedes hacer esto, que es mas basico local usado = false function comando (source, comando) if not usado then outputChatBox('has usado este comando', source, 0,0,0,true) usado = true end end addCommandHandler('usarcomando', comando)
Platin Posted August 27, 2015 Posted August 27, 2015 El ejemplo que te dió VeNaD es correcto, pero solo servirá para Client-Side ya que si lo pones en Server, una vez que un usuario lo utilice, todos los demás no podrán utilizarlo.
Kilfwan Posted August 27, 2015 Author Posted August 27, 2015 El ejemplo que te dió VeNaD es correcto, pero solo servirá para Client-Side ya que si lo pones en Server, una vez que un usuario lo utilice, todos los demás no podrán utilizarlo. Yo lo iba a usar para server side D:, Era para cuando usen /evento se warpeen y Usar un Col y cuando salga de hay prohibir el comando hasta cuando el timer lo active, entonces como seria?
Platin Posted August 27, 2015 Posted August 27, 2015 El ejemplo que te dió VeNaD es correcto, pero solo servirá para Client-Side ya que si lo pones en Server, una vez que un usuario lo utilice, todos los demás no podrán utilizarlo. Yo lo iba a usar para server side D:, Era para cuando usen /evento se warpeen y Usar un Col y cuando salga de hay prohibir el comando hasta cuando el timer lo active, entonces como seria? Este es el metodo que yo use para mi script de habilidades. local timer = {} function asd(thePlayer) if not timer[thePlayer] then timer[thePlayer] = setTimer() else outputChatBox("Espera unos segundos") end end
Kilfwan Posted August 27, 2015 Author Posted August 27, 2015 Entonces dentro del timer pondría otra función que seria el evento y otro para el warp. Dentro de la tabla pongo el tiempo que demora en activarse o dentro de la función? o como?
Platin Posted August 27, 2015 Posted August 27, 2015 Entonces dentro del timer pondría otra función que seria el evento y otro para el warp.Dentro de la tabla pongo el tiempo que demora en activarse o dentro de la función? o como? La tabla no la tocas. El Timer solo sirve para que el sujeto, hasta que este no se active, no pueda hacer nada, crea una funcion de fachada. setTimer(fachada, 15000, 1) function fachada() return false end Debajo del Timer, pones la funcion del warp y evento o todo lo que quieras.
MTA Team 0xCiBeR Posted August 27, 2015 MTA Team Posted August 27, 2015 Para aclarar algo: local usado = false function comando (source, comando) if usado then return end outputChatBox('has usado este comando', source, 0,0,0,true) usado = true end addCommandHandler('usarcomando', comando) Al returnear end nunca se modificaría la variable y tampoco verías el mensaje ya que eso le da instrucciones al procesador Lua a no continuar leyendo. En cuanto a como lo haría yo, si es posible hacerlo client-side mejor, y sino como te indica @Platin
Kilfwan Posted September 2, 2015 Author Posted September 2, 2015 Esto también me hubiera servido removeCommandHandler
Platin Posted September 3, 2015 Posted September 3, 2015 Esto también me hubiera servido removeCommandHandler Pero lo elimina para todos, mi amor.
Tomas Posted September 3, 2015 Posted September 3, 2015 Esto también me hubiera servido removeCommandHandler Pero lo elimina para todos, mi amor. A menos que lo esté haciendo en el cliente, mi dulce princesa.
Recommended Posts