Uso correcto de register_clcmd y register_concmd en comandos restringidos por accesos (Admin)
La verdad sorprende la cantidad de errores y mal uso por falta de información de estas natives.
Para dar un ejemplo ayer mirando los plugins nuevos en AM (foro oficial) en las primeras dos paginas encontré casi 10 plugins usando register_concmd incorrectamente. Sin ir mas lejos Neeeeeeeeeeeel casi no me aprueba un plugin por no usar register_concmd en un comando solo para admin o.O.
register_clcmd: Registra un comando para el cliente
register_srvcmd: Registra un comando para el servidor
register_concmd: Registra un comando para el cliente y servidor
Parámetros: (los dos primeros ya lo saben)
-flags: es solo para saber a quien hay que mostrarlo en amx_help(get_concmd), no restringe el acceso por si solo.
-info: la información que saldrá en amx_help(get_concmd)
-FlagManage: si se usara el archivo cmdaccess.ini para cambiar el acceso
En el handler (osea la función que es llamada cuando usan el comando) los tres tienen los mismos parámetros:
Comandos para admin/rcon:
Si lo van a usar solo para un admin utilicen register_clcmd.
Si quieren registrar un comando que pueda ser usado por un admin y la consola del servidor o rcon utilicen register_concmd.
Comprobar acceso:
Para register_concmd:
Para register_clcmd:
La verdad sorprende la cantidad de errores y mal uso por falta de información de estas natives.
Para dar un ejemplo ayer mirando los plugins nuevos en AM (foro oficial) en las primeras dos paginas encontré casi 10 plugins usando register_concmd incorrectamente. Sin ir mas lejos Neeeeeeeeeeeel casi no me aprueba un plugin por no usar register_concmd en un comando solo para admin o.O.
register_clcmd: Registra un comando para el cliente
register_srvcmd: Registra un comando para el servidor
register_concmd: Registra un comando para el cliente y servidor
Parámetros: (los dos primeros ya lo saben)
-flags: es solo para saber a quien hay que mostrarlo en amx_help(get_concmd), no restringe el acceso por si solo.
-info: la información que saldrá en amx_help(get_concmd)
-FlagManage: si se usara el archivo cmdaccess.ini para cambiar el acceso
En el handler (osea la función que es llamada cuando usan el comando) los tres tienen los mismos parámetros:
Código:
(PlayerIndex, ComandLevel, ComandIndex)
-->
(id, level, cid)
Comandos para admin/rcon:
Si lo van a usar solo para un admin utilicen register_clcmd.
Si quieren registrar un comando que pueda ser usado por un admin y la consola del servidor o rcon utilicen register_concmd.
Comprobar acceso:
Para register_concmd:
Código PHP:
public comando_por_consola(id, level, cid)
{
// cmd_access(id, level, cid, num, bool:accesssilent = false)
if(!cmd_access(id, level, cid, 1))
{
return PLUGIN_HANDLED
}
// Utilizar solo console_print(...) para informar/imprimir mensajes
}
Para register_clcmd:
Código PHP:
public comando_de_cliente(id, level, cid)
{
/*El que suelo utilizar*/
if(!(get_user_flags(id)&level))
{
return PLUGIN_HANDLED
}
/* Si también querés comprobar los argumentos podes usar:
if(!cmd_access(id, level, cid, 1))
{
return PLUGIN_HANDLED
}
Esto también es valido
if(!(get_user_flags(id)&ADMIN_BAN)) // El flag que quieras
{
return PLUGIN_HANDLED
}
*/
}
Tutoriales:
Aportes:
[API] Advanced Vault System - [API] sXe Injected Events - [Modulo] MySQL Threads 1.2 - [API] OldMenu 1.1
[TOOL] AMXX-Editor v2.2 (new)
MyAnimeList
Aportes:
[API] Advanced Vault System - [API] sXe Injected Events - [Modulo] MySQL Threads 1.2 - [API] OldMenu 1.1
[TOOL] AMXX-Editor v2.2 (new)
MyAnimeList