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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 7-12-2011, 13:59 Просмотров: 4117

    get_user_health Функция получает здоровья игрока.

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

    Инфо из amxmodx.inc:
    /* Returns player health. */
    native get_user_health(index);


    Синтаксис:
    get_user_health ( id )

    • id - id игрока чье здоровье требуется получить.


    Тип функции:
    Native

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

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[amxmodx.inc] get_user_health"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {
        
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /my_hp","f_my_hp")
        
    }
    public f_my_hp(id){
        
        //объявление новой переменной и получение hp игрока
        new my_health = get_user_health(id)
        
        //Вывод сообщения в чат
        client_print(id,print_chat,"You hp:%d",my_health)
        
    }


    Описание:
    Данный пример особенно бесполезный, так как результатом его работы является текстовое сообщение с количеством здоровья игрока, выполнившего команду, а вы все помните, что здоровье игрока и так постоянно показывается на экране у игрока. Но мы не о полезности примера тут собрались поговорить, а о работе функции.

    И так, в функции f_my_hp выполняется очень простое действо, объявление переменной и запись в нее количество жизней игрока выполнившего команду, которая вызывает данную функцию. Следом идет вывод в чат того, что получили в прошлой функции. Все просто и бесполезно.

    Что бы немного поднять интерес к функции, давайте попробуем получить здоровье всех игроков на сервере.
    Для этого в тело функции f_my_hp необходимо добавить цикл в котором будут проверяться все игроки и суммироваться их здоровье.
        new maxplayers = get_maxplayers()
        new all_health
        for(new i = 1; i <= maxplayers; i++){
            all_health = all_health + get_user_health(i)
        }
        client_print(0,print_chat,"All health:%d",all_health)


    В итоге вы получите количество здоровья всех игроков на сервере.

    Задачка для самоконтроля:
    Получите здоровья только своей команды и как оптимизировать работы цикла.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    get_user_health Функция получает здоровья игрока.
    KEFIR

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

    Здравствуйте задача такая, при смерти игрока выполнялась какая либо команда. Пробывал такой вариант:


    public event_damage(id) {
        new my_health = get_user_health(id)
        if(my_health > 0) {
            return PLUGIN_CONTINUE;
        }
        else
        client_cmd (id, "МОЯ КОМАНДА");
        return PLUGIN_CONTINUE;
    }
    Valer4

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

    KEFIR,
    #include <amxmodx>

    public plugin_init()
    {
       register_plugin("cmd_to_death", "KEFIR", "amxmodx.ru")
    }

    public client_damage(not_used_atac, vict)
    {
        client_print(vict, print_chat, "МОЯ КОМАНДА")
    }
    KEFIR

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

    Valer4, Спасибо Решил проблему еще вчера чуть иначе


    public ham_player_kill(victim){
           client_cmd(КОМАНДА);
           return PLUGIN_CONTINUE
    }

    Информация

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

Реклама