[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Создание чат/консоль/сервер команд (RegConsoleCmd, RegServerCmd, RegAdminCmd Взято с world-sourc)
Создание чат/консоль/сервер команд
rootДата: Воскресенье, 03.02.2013, 00:52 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
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 */
 
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Создание чат/консоль/сервер команд (RegConsoleCmd, RegServerCmd, RegAdminCmd Взято с world-sourc)
  • Страница 1 из 1
  • 1
Поиск: