1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[РЕШЕНО] ResetMaxHealth

Тема в разделе "Разработка плагинов для новичков", создана пользователем _MRDen3000YT_, 25 мар 2021.

  1. Автор темы
    _MRDen3000YT_

    _MRDen3000YT_ Активный участник Пользователь

    Баллы:
    76
    Добрый день, столкнулся с проблемой. Не могу сбросить значение максимального кол-во жизней.

    Добавляю максимально кол-во жизней так:
    PHP:
    p.getAttribute(Attribute.GENERIC_MAX_HEALTH).addModifier(new AttributeModifier("MaxHealth"6Operation.ADD_NUMBER));
                        
    p.setHealth(20.0);
    Убирать пробовал так:
    PHP:
    player.getAttribute(Attribute.GENERIC_MAX_HEALTH).removeModifier(new AttributeModifier("MaxHealth"6Operation.ADD_NUMBER));
    PHP:
    player.resetMaxHealth(); (оно депректед и не работает)
     
  2. Автор темы
    _MRDen3000YT_

    _MRDen3000YT_ Активный участник Пользователь

    Баллы:
    76
  3. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Храни свой модификатор где-нибудь отдельно или добавь к нему какой-нибудь UUID для обоих вариантов. При удалении, собстна, используй тот же модификатор или тот же UUID.
    Это не решение - этот метод просто меняет отображение сердец у игрока. Если оно и работает, то только на чуде и может перестать работать позже.
     
  4. Автор темы
    _MRDen3000YT_

    _MRDen3000YT_ Активный участник Пользователь

    Баллы:
    76
    Этот метод работает. Провел тесты: при падении с 10 блоков мне нанеслось 3,5 хп. Добавил себе дополнительную строчку хп, опять упал, все те же 3,5 хп. Буду тестить еще, если перестанет работать - отпишу в эту тему.
     
  5. Автор темы
    _MRDen3000YT_

    _MRDen3000YT_ Активный участник Пользователь

    Баллы:
    76
    @imDaniX был прав, этот метод добавляет только визуальную часть.
    Нашел для себя решение:
    PHP:
                        p.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(40.0[кол-во хп]);
                        
    p.setHealthScale(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue());
     

Поделиться этой страницей