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

    Всего на сайте: 1
    Гостей: 0
    Пользователи: - отсутствуют
    Роботы: crawl Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 30-08-2011, 02:14 Просмотров: 3493

    is_user_bot Функция проверяет игрок это или бот

    Представим на секунду что мы пишем плагин для удаления игроков с большим пингом или по какой то причине, но у нас на сервере есть один бот или больше, зачем проверять ботов, если мы точно знаем что бота мы не кикнем.
    Или нам на оборот нужно сделать какие то действия только с ботами, для упрощения нашей жизни и решения подобных проблем есть функция is_user_bot.

    Инфо из amxxmodx.inc:
    /* Returns 1 or 0. */
    native is_user_bot(index);


    Синтаксис:
    is_user_bot ( index )

    • index - id игрока


    Пример:

    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "Is User Bot"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_clcmd("say /bots-online","check_bot")
    }

    public check_bot(id){

        new MaxPlayers
        MaxPlayers = get_maxplayers()

        new bot_count,name[32]
        new message[1024],len=0
        
        len = format(message,charsmax(message),"Bots online: ")
        for (new i=1; i<=MaxPlayers; i++){
            if(is_user_bot(i)){
                get_user_name(i,name,31)
                bot_count++
                len +=format(message[len],charsmax(message)-len,"%s,",name)
            }
        }
        len--
        len += format(message[len],charsmax(message)-len," Bots total: %d",bot_count)
        client_print(0,print_chat,message)
        
    }

    Описание:
    Функция предельно проста, по этому пример немного усложнен.
    Зарегистрированная команды вызывает функцию, внутри которой мы получаем максимальное количество игроков на сервере и в цикле проверяем каждого игрока, бот он или нет.
    Если выводить в цикле сообщение бот или нет, то будет сообщений столько же, сколько и ботов на сервере,а это не красиво.
    Для решения данной проблемы нам помогла функция format.
    До цикла мы записали начало сообщения, в самом цикле мы дописывали в это сообщение имена ботов и записывали в переменную их количество.
    После цикла стоит
    len-- 
    - это мы удаляем последнюю не нужную нам запятую после подстановки имени %s,
    len +=format(message[len],charsmax(message)-len,"%s,",name)
    .

    И наконец добавляем в наше сообщение информацию о количесве ботов на сервере, после чего благополучно выводим сообщение всем присутствующим на сервере.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    is_user_bot Функция проверяет игрок это или бот
    Ewer

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

    В инклудах слэш лишний
    Radius

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

    Цитата: Ewer
    В инклудах слэш лишний
    исправлено

    Информация

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

Реклама