06/11/2013, 09:47 PM
Aca voy a dejar un pequeño tip, para cuando necesitemos Detectar/Hookear/Registrar un comando y hacer la accion que queramos. Siempre y cuando hablemos de comandos ya existentes en el cs.
Por ejemplo, registremos cuando se usa el comando buyammo1 que es cuando compramos balas para el arma primaria:
Bien, funcionar funciona... el problema es que depende el comando y/o la funcion del plugin que estemos haciendo... se puede evadir la deteccion de dicho comando usando un alias.
Por eso para una mejor deteccion de un comando deberiamos hacer lo siguiente:
De esta manera lo que hace es verificar si el comando que se ejecuto contiene "buyammo1" no importa si hay 2 comandos en un bind ("comando1;comando2") o si es unico comando. Por ende, no se puede burlar usando alias de la forma anteriormente mostrada.
Por ejemplo, registremos cuando se usa el comando buyammo1 que es cuando compramos balas para el arma primaria:
Código PHP:
#include <amxmodx>
public plugin_init()
{
register_plugin("Registrar Comando", "1.0", "Alucard")
register_clcmd("buyammo1", "HookBuyCmd")
}
public HookBuyCmd(id)
{
// Codigo aca...
}
Bien, funcionar funciona... el problema es que depende el comando y/o la funcion del plugin que estemos haciendo... se puede evadir la deteccion de dicho comando usando un alias.
Código PHP:
alias evadir "say cualquier_comando;buyammo1"
Por eso para una mejor deteccion de un comando deberiamos hacer lo siguiente:
Código PHP:
#include <amxmodx>
public plugin_init()
{
register_plugin("Registrar Comando", "2.0", "Alucard")
}
public client_command(id) // Cuando el player ejecuta un comando
{
static argv[12] // Donde se guarda el comando
read_argv(0, argv, charsmax(argv) ) // Detectamos el comando
if(equali(argv, "buyammo1") ) // Si dicho comando tiene equivalencia con "buyammo1"
{
// Codigo aca...
}
}
De esta manera lo que hace es verificar si el comando que se ejecuto contiene "buyammo1" no importa si hay 2 comandos en un bind ("comando1;comando2") o si es unico comando. Por ende, no se puede burlar usando alias de la forma anteriormente mostrada.