Jump to content

Prohibir un comando cuando se use por segunda Vez


Kilfwan

Recommended Posts

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

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

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
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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