Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 2
    Гостей: 0
    Пользователи: RelaxJobert
    Роботы: crawl Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 5-08-2011, 10:31 Просмотров: 10499

    register_clcmd Функция регистрации клиентских (консольных) команд

    register_clcmd - С помощью данной функции вы сможете добавить в свой плагин, необходимые для него команды для игроков.

    Инфо из amxmodx.inc:
    /* Registers function which will be called from client console. 
    * Set FlagManager to 1 to make FlagManager always include this command
    * Set FlagManager to 0 to make FlagManager never include this command
    * Returns the command ID.
    */
    native register_clcmd(const client_cmd[],const function[],flags=-1, const info[]="", FlagManager=-1);


    Синтаксис:
    register_clcmd ( const client_cmd[],const function[],flags=-1, info[]="" )
    register_clcmd("amx_mycommand","MyFunction",ADMIN_KICK,"Description of the command")


    Description of the command - Добавляет информацию к команде.

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>


    #define PLUGIN "Register client cmd"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    new Handle:SQL_Tuple
    new Handle:SQL_Connection // Открытие соединения с базой данных


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)

        register_clcmd("testcmd","you_cmd")
        register_clcmd("say /testcmd","you_cmd",_,"test command")
        
    }
    public you_cmd(id){
        //Add you code
        client_print(id,print_chat,"You first command")
    }


    Данный пример регистрирует 2 команды:
    1. say /testcmd - Можно выполнить как в консоле, так и в чате написать /testcmd
    2. testcmd - Выолняется только в консоле
    При выполнении обоих команд, в в чат, после выполнения команды, будет выдано сообщение:You first command

    Список админских флагов доступа:
    #define ADMIN_ALL        0    //Everyone
    #define ADMIN_IMMUNITY        1    //Flag "a", immunity
    #define ADMIN_RESERVATION    2    //Flag "b", reservation
    #define ADMIN_KICK        4    //Flag "c", kick
    #define ADMIN_BAN        8    //Flag "d", ban
    #define ADMIN_SLAY        16    //Flag "e", slay
    #define ADMIN_MAP        32    //Flag "f", map change
    #define ADMIN_CVAR        64    //Flag "g", cvar change
    #define ADMIN_CFG        128    //Flag "h", config execution
    #define ADMIN_CHAT        256    //Flag "i", chat
    #define ADMIN_VOTE        512    //Flag "j", vote
    #define ADMIN_PASSWORD        1024    //Flag "k", sv_password
    #define ADMIN_RCON        2048    //Flag "l", rcon access
    #define ADMIN_LEVEL_A        4096    //Flag "m", custom
    #define ADMIN_LEVEL_B        8192    //Flag "n", custom
    #define ADMIN_LEVEL_C        16384    //Flag "o", custom
    #define ADMIN_LEVEL_D        32768    //Flag "p", custom
    #define ADMIN_LEVEL_E        65536    //Flag "q", custom
    #define ADMIN_LEVEL_F        131072    //Flag "r", custom
    #define ADMIN_LEVEL_G        262144    //Flag "s", custom
    #define ADMIN_LEVEL_H        524288    //Flag "t", custom
    #define ADMIN_MENU        1048576    //Flag "u", menus
    #define ADMIN_ADMIN        16777216    //Flag "y", default admin
    #define ADMIN_USER        33554432    //Flag "z", default user

    #define FLAG_KICK        1    //Auth flag "a", kick if no auth
    #define FLAG_TAG        2    //Auth flag "b", auth by tag
    #define FLAG_AUTHID        4    //Auth flag "c", auth by WON/Steam ID
    #define FLAG_IP            8    //Auth flag "d", auth by IP address
    #define FLAG_NOPASS        16    //Auth flag "e", don't require password
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    lsr

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    ADMIN_IMMUNITY
    ADMIN_USER
    Doombringer

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    А из какого инклюда взят список флагов доступа? Можно ли поменять названия флагов, например ADMIN_KICK на ADMIN_LEVEL_C, или названия "вшиты" в amxx?
    DeathGun

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Подскажите, почему функция не реагирует на флаг?
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Потому, что в функции ещё должна стоять проверка на этот флаг.

    acess вроде.

    То что ты ставишь доступ тут, оно просто передаёт этот флаг как дополнительный параметр.

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама