Kilfwan Posted August 27, 2015 Share 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. Link to comment
aka Blue Posted August 27, 2015 Share 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. Link to comment
UserToDelete Posted August 27, 2015 Share 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) Link to comment
Platin Posted August 27, 2015 Share 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. Link to comment
Kilfwan Posted August 27, 2015 Author Share 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? Link to comment
Platin Posted August 27, 2015 Share 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 Link to comment
Kilfwan Posted August 27, 2015 Author Share 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? Link to comment
Platin Posted August 27, 2015 Share 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. Link to comment
MTA Team 0xCiBeR Posted August 27, 2015 MTA Team Share 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 Link to comment
Kilfwan Posted September 2, 2015 Author Share Posted September 2, 2015 Esto también me hubiera servido removeCommandHandler Link to comment
Platin Posted September 3, 2015 Share Posted September 3, 2015 Esto también me hubiera servido removeCommandHandler Pero lo elimina para todos, mi amor. Link to comment
Tomas Posted September 3, 2015 Share 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. Link to comment
Kilfwan Posted September 3, 2015 Author Share Posted September 3, 2015 e.e Que un admin cierre el post. Link to comment
Recommended Posts