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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 29-08-2011, 19:07 Просмотров: 8851

    is_user_alive Функция помогает узнать жив или мертв игрок/бот

    Очень часто бывают моменты, когда нужно проверить жив игрок или мертв. Например вы хотите использовать жизнь и возродиться, как вы себе представляете ситуацию, если игрок живой и снова возрождается? Правильно, не очень как то.Но с этой задачей легко справляется функция is_user_alive которая и подскажет скрипту, живой ил игрок.

    Инфо из amxmodx.inc:

    /* Returns 1 or 0. */
    native is_user_alive(index);


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

    Возвращает 1 если игрок живой и 0 если мертв.

    Пример:

    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

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

    public plugin_init ( )
    {
        register_plugin ( PLUGIN, VERSION, AUTHOR )
        
        //Регистрируем новую консольную команду
        register_concmd("users_alive","list_alive_users")
        
        
    }
    //Функция которую вызывает наша команда
    public list_alive_users(id){
        
        //Регистрируем необходимые массивы
        new Players[32]
        new playerCount, i, player,name[32]
        
        //Получаем список игроков
        get_players(Players, playerCount, "h")
        
        //Выводм в консоль заглавное сообщение для списка
        client_print(id,print_console,"List Alive players")
        
        //Цикл в котором пробегаем по всем игрока из полученного списка
        for (i=0; i<playerCount; i++) {
            // ID игрока = Players[i]
            player = Players[i]
            //Получаем имя грока
            get_user_name(player,name,31)
            
            //Улсовие: Если игрок живой то пишем в консоль сообщение с его именем.
            if(is_user_alive(player)){
                
                client_print(id,print_console,"Player: %s is alive",name)
            }
        }
        
        
    }


    Описание:
    По большому счету в данном примере нечего описывать или комментировать, там и так все предельно ясно, тем более почти к каждой строке написано комментарий. Хочу сказать,вернее предупредить вот о чем:
    Так как в нашем скрипте мы точно знаем что команду вызываем мы сами и мы а сервере, нам не надо проверять присоединился ли игрок к серверу.
    Но и то не совсем правильно, а если ко то сейчас присоединится? то будет ошибка. По этому используйте всегда такую конструкцию:

    if(is_user_connected(id) && is_user_alive(id)){


    Проверяет присоединен ли юзер к серверу и живой он или мертвый.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Небожитель

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

    if(is_user_connected(id) && is_user_alive(id)){

    Почему? В провреке is_user_alive уже есть проверка на законнекченность игрока.
    Admin

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

    Не знал, что при проверке на жив/мертв игрок делается проверка на коннект.

    This also checks if the player is connected so you do not have to use is_user_connected() as well.

    Example:
    if(is_user_connected(id) && is_user_alive(id)){

    can now be

    if(is_user_alive(id)){
    --------------------
    KEFIR

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

    Как сделать проверку был ли жив игрок в предыдущем раунде?
    Admin

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

    записать в переменную жив игрок или нет в конце раунда.
    В следующем проверить эту переменную.
    --------------------
    KEFIR

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

    Подскажите как это сделать, можно в ПС буду очень признателен! Спасибо!
    Admin

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

    начини с этого:
    Урок 1
    --------------------

    Информация

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

Реклама