RegConsoleCmd(const String:cmd[], ConCmd:callback, const String:descr[]="", flags=0);
Код
cmd - команда
callback - блок, который будет вызван
descr - описание команды (не обязательно)
flags - флаги
Пример:
Код
#include <sourcemod>
public OnPluginStart()
{
RegConsoleCmd("xz", xzBlock);
}
public Action:xzBlock(client, args)
{
PrintToChatAll("args = %d, your name = %N", args, client);
return Plugin_Handled;
}
Будет доступно три команды: xz (консоль), !xz и /xz (чат). Если ввести !xz, то все игроки увидят ваш ввод, если /xz, то никто не увидит. args - это количество аргументов после команды 'xz'. например здесь: xz 4 "dfdd" 2 три аргумента, где 4 это первый из них.
Вы можете получать аргументы с помощью функции GetCmdArg(argnum, String:buffer[], maxlength); или сразу же всю строку: GetCmdArgString(String:buffer[], maxlength);
Создание СЕРВЕРНОЙ команды:
Код
RegServerCmd("xz", callback);
public Action:callback(args)
{
PrintToServer("Была введена RCON команда xz");
PrintToServer("Аргументов: %d", args);
return Plugin_Handled;
}
Создание АДМИНСКОЙ консольной команды:
Код
RegAdminCmd("xz", wS_AdminSay, ADMFLAG_ROOT);
public Action:wS_AdminSay(i, args)
{
// Если у админа есть ADMFLAG_ROOT, он увидит это сообщение
PrintToChat(i, "Вы использовали админскую команду xz");
return Plugin_Handled;
}
Админские флаги:
Код
#define ADMFLAG_RESERVATION (1<<0) /**< Convenience macro for Admin_Reservation as a FlagBit */
#define ADMFLAG_GENERIC (1<<1) /**< Convenience macro for Admin_Generic as a FlagBit */
#define ADMFLAG_KICK (1<<2) /**< Convenience macro for Admin_Kick as a FlagBit */
#define ADMFLAG_BAN (1<<3) /**< Convenience macro for Admin_Ban as a FlagBit */
#define ADMFLAG_UNBAN (1<<4) /**< Convenience macro for Admin_Unban as a FlagBit */
#define ADMFLAG_SLAY (1<<5) /**< Convenience macro for Admin_Slay as a FlagBit */
#define ADMFLAG_CHANGEMAP (1<<6) /**< Convenience macro for Admin_Changemap as a FlagBit */
#define ADMFLAG_CONVARS (1<<7) /**< Convenience macro for Admin_Convars as a FlagBit */
#define ADMFLAG_CONFIG (1<<8) /**< Convenience macro for Admin_Config as a FlagBit */
#define ADMFLAG_CHAT (1<<9) /**< Convenience macro for Admin_Chat as a FlagBit */
#define ADMFLAG_VOTE (1<<10) /**< Convenience macro for Admin_Vote as a FlagBit */
#define ADMFLAG_PASSWORD (1<<11) /**< Convenience macro for Admin_Password as a FlagBit */
#define ADMFLAG_RCON (1<<12) /**< Convenience macro for Admin_RCON as a FlagBit */
#define ADMFLAG_CHEATS (1<<13) /**< Convenience macro for Admin_Cheats as a FlagBit */
#define ADMFLAG_ROOT (1<<14) /**< Convenience macro for Admin_Root as a FlagBit */
#define ADMFLAG_CUSTOM1 (1<<15) /**< Convenience macro for Admin_Custom1 as a FlagBit */
#define ADMFLAG_CUSTOM2 (1<<16) /**< Convenience macro for Admin_Custom2 as a FlagBit */
#define ADMFLAG_CUSTOM3 (1<<17) /**< Convenience macro for Admin_Custom3 as a FlagBit */
#define ADMFLAG_CUSTOM4 (1<<18) /**< Convenience macro for Admin_Custom4 as a FlagBit */
#define ADMFLAG_CUSTOM5 (1<<19) /**< Convenience macro for Admin_Custom5 as a FlagBit */
#define ADMFLAG_CUSTOM6 (1<<20) /**< Convenience macro for Admin_Custom6 as a FlagBit */