Allied Modders en español

Versión completa: [Info] Uso correcto de register_clcmd/concmd
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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:
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(idlevelcid)
{
      
// cmd_access(id, level, cid, num, bool:accesssilent = false) 
      
if(!cmd_access(idlevelcid1))
      {
            return 
PLUGIN_HANDLED
      
}
      
// Utilizar solo console_print(...) para informar/imprimir mensajes


Para register_clcmd:
Código PHP:
public comando_de_cliente(idlevelcid)
{
      
/*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
      }
      */

Muy buena informacion! No tenia muy claro lo del concmd. Gracias.

Yo presenti que serias moderador, sabelo (?
Yo había hecho un Tutorial paresido.
https://amxmodx-es.com/Thread-TUT-Acerca...tilizarlos

Aunque tiene info extra que esta bueno e.e
(07/10/2014, 07:24 PM)CSAxel escribió: [ -> ]Yo había hecho un Tutorial paresido.
https://amxmodx-es.com/Thread-TUT-Acerca...tilizarlos

Aunque tiene info extra que esta bueno e.e

Es otra cosa, este no esta referido a el comando en si, sino a los flags y condiciones pacman
Retiro lo dicho Whatdone

Yendo al TUT me aclararon algunas dudas. :3
Podrías agregar también algun ejemplo de uso del command id, que hasta ahora no he visto ni un plugin que lo use Whatdone

Recuerdo alguna vez que le di un ejemplo de uso a neeeeeeeeeeeeeeeeel en el desvirtue, si no se me olvidó, le pasé el mismo código a idiotstrike y está publicado en el foro oficial en plugins aprobados (el plugin es Knife API).