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

    Всего на сайте: 11
    Гостей: 8
    Пользователи: - отсутствуют
    Роботы: Google AdSense, Yandex Bot, crawl Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 23-08-2011, 17:36 Просмотров: 8098

    is_user_admin Функция проверяет админ это или игрок

    Во многих плагинах существую команды доступные только игрокам или так называемым VIP`ам, как же проверить админ ли игрок или нет,vip или нет?
    Ответ прост, воспользоваться функцией is_user_admin. Или функцией get_user_flags, для получения флага игрока.

    Инфо из amxmisc.inc:
    stock is_user_admin(id)
    {
        new __flags=get_user_flags(id);
        return (__flags>0 && !(__flags&ADMIN_USER));
    }


    Синтаксис:
    is_user_admin ( id )
    • id - id проверяемого игрока.


    Пример:

    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <fun>

    #define PLUGIN "Open help MODT window"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

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

        register_clcmd("say /admincmd","admin_cmd")

    }
    public admin_cmd(id){

        if(is_user_admin(id)){ //Если админ то выполняем код ниже
        
            new health[32],name[32]
            set_user_health(id, (get_user_health(id)+100))
            health[id] = get_user_health(id)
            get_user_name(id,name,31)
            
            set_hudmessage(0, 255, 0, 0.05, 0.50, 0, 6.0, 12.0)
            show_hudmessage(id, "Admin %s have %d hp",name,health[id])
            
        }else{ // Если это простой игрок, то выполняем этот код:

            set_hudmessage(255, 0, 0, 0.05, 0.50, 0, 6.0, 12.0)
            show_hudmessage(id, "Xa xa xa, Tbl He agMuH")
            
        }
    }



    Описание:
    Поставим перед собой цель, разрешить какую то команду администратору и сделать так что бы простые игроки не смогли ей воспользоваться.
    Регистрировать команды, добавлять жизней и выводить HuD сообщение мы уже умеем. По этому эту часть кода пояснять не буду.
    И так, в нашей функции которую вызывает админская команда мы сразу же ставим условие:
    Если юзер админ, то выполняем часть кода, если нет то выполняем вторую часть кода ( после else)

    Теперь вы знаете, как ограничить использование команд.
    Если же вы хотите ограничить доступ некоторым админам, или дать возможность использоваться команду ( часть кода) только админу с определенным флагом, то вам в этом поможет функция get_user_flag

    Так же, можно при регистрации команды указать с каким флагом доступа, можно использовать данную функцию. Тогда там используем cmd_access.
    Все зависит от того, что за функция и какой доступ нужен.

    Может быть так:
    Функция должна быть доступна для всех, но для админа она чуть чуть иная ( как у нас в примере), а может быть такая команда, которая нужна только админу, например - смена карты.Вариантов много и решений тоже :)
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама