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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 2-09-2011, 15:35 Просмотров: 5542

    is_user_connected Функция проверяет подключен игрок к серверу или нет.

    Многие функции в скриптинге работают с id игрока, и если игрок еще не присоединился к серверу, то функция буде выдавать ошибку и плагин будет работать не верно, а иногда и в обще выдавать критическую ошибку и сервер будет "падать". Что бы этого избежать, необходимо проверять присоединился игрок к серверу или нет с помощью функции is_user_connected

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


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

    • index - id игрока


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

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "Is user connected"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    new g_sekundomer

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
    }
    public client_connect(id){
        set_task(1.0,"sekundomer",1,_,_,"b")
    }
    public sekundomer(){
        g_sekundomer++
        server_print("[Time %d]User connecting",g_sekundomer)    

        new players[32],playersnum,player
        get_players(players,playersnum,"h")

        for(new i=0;i < playersnum;i++){
            player = players[i]
            if(is_user_connected(player)){
                server_print("[Time %d]User connected",g_sekundomer)    
                remove_task(1)
            }
        }
    }


    Описание:
    Результат данного примера будет виден в консоле сервера.
    Для наглядности, результат будет выводиться каждую секунду.

    В момент когда игрок присоединяется к серверу,всегда вызывается функция client_connect. В ней мы вызываем функцию sekundomer, с помощью функции set_task, с интервалом в 1 секунду, пока не наступит нужный нам момент и не выключим это повторение с помощью функции remove_task.

    В функции
    public sekundomer()

    Мы прибавляем к глобальной переменной 1, это наши секунды.
    И выводим сообщение с временем в секундах и что игрок еще присоединяется.
    Далее регистрируем необходимые массивы для цикла, так как в данной функции нет id игроков, придется проверять всех.

    И внутри цикла мы создаем условие:
    if(is_user_connected(player))
    Если игрок присоединился то.

    Когда условие будет верным, то мы увидим сообщение в консоли, с помощью функции server_print, что игрок присоединился и выполним функцию remove_task, что бы удалить задачу установленную с помощью set_task
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама