Platin Posted September 25, 2015 Share Posted September 25, 2015 Hola, venía a por una petición y en dado caso explicación. ¿Hay alguna forma de detectar cuando alguien pone un CMD que no hace nada? Se que onPlayerCommand detecta cuando alguien pone un CMD, pero no se como hacer para que detecte si este funciona o no, si trigge a alguna function. Espero y puedan ayudarme. Desde ya muchas gracias, Platin. Link to comment
aka Blue Posted September 25, 2015 Share Posted September 25, 2015 Si no me equivoco, onPlayerCommand realiza su función al poner /[comando]. Podrías utilizar algo parecido a esto, editando, obviamente ya que no te lo aseguro al 100%. PD: Y hacer un for para que si ponen un comando inválido, los administradores lo puedan ver. O outputDebugString. En fin, tú ya sabes lo que quiero decir . local mensaje = table.concat( { ... }, " " ) Link to comment
Platin Posted September 25, 2015 Author Share Posted September 25, 2015 Si no me equivoco, onPlayerCommand realiza su función al poner /[comando]. Podrías utilizar algo parecido a esto, editando, obviamente ya que no te lo aseguro al 100%.PD: Y hacer un for para que si ponen un comando inválido, los administradores lo puedan ver. O outputDebugString. En fin, tú ya sabes lo que quiero decir . local mensaje = table.concat( { ... }, " " ) Ya se, pero no se como detectar si es inválido o no, hay el punto del post. Link to comment
MTA Team 0xCiBeR Posted September 25, 2015 MTA Team Share Posted September 25, 2015 Podrías hacer una tabla con todos los comandos validos y loopear esa tabla en onPlayerCommand. Link to comment
aka Blue Posted September 25, 2015 Share Posted September 25, 2015 Eso iba a decir pero me puse a buscar alguna función como 'isCommandFunction' o algo así . PD: Creo que se podría hacer algo con el executeCommandHandler pero creo que lo de la tabla que dice @Ciber es mejor. Link to comment
MTA Team 0xCiBeR Posted September 25, 2015 MTA Team Share Posted September 25, 2015 executeCommandHandler devuelve false si no se puede ejecutar el comando pero creo que crearia errores el uso en este caso. Link to comment
Platin Posted September 25, 2015 Author Share Posted September 25, 2015 Creo que entiendo. Lo de las tablas sería algo complicado, tengo demasiados y quiero ahorrarme tiempo. Sería algo como: function cmd(cmd) if bla bla then cancelEvent() local cmdRep = executeCommandHandler(cmd, source) cancelEvent() else return true end end addCommandHandler("onPlayerCommand", root, cmd) Pero no creo que funcione. Luego pruebo y contesto. Link to comment
MTA Team 0xCiBeR Posted September 25, 2015 MTA Team Share Posted September 25, 2015 El tema de usar executeCommandHandler es que esa función ejecuta el comando entonces, imagina el supuesto caso donde un comando apaga el servidor. Un usuario random usa el comando y apaga el servidor, no muy util no? Link to comment
Platin Posted September 26, 2015 Author Share Posted September 26, 2015 El tema de usar executeCommandHandler es que esa función ejecuta el comando entonces, imagina el supuesto caso donde un comando apaga el servidor. Un usuario random usa el comando y apaga el servidor, no muy util no? Si... /shutdown EDIT: NOTE: You can only execute commands created by Lua. You cannot execute MTA harcoded commands due to security reasons. Link to comment
MTA Team 0xCiBeR Posted September 26, 2015 MTA Team Share Posted September 26, 2015 Puede no ser un comando por default: shutdown Link to comment
Tomas Posted September 26, 2015 Share Posted September 26, 2015 Crea una función llamada 'addCommandHandler' y cuando se ejecute guarda la función en una tabla, luego comparas si existe o no. Link to comment
Recommended Posts