[РЕШЕНО] ResetMaxHealth

_MRDen3000YT_

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

Добавляю максимально кол-во жизней так:
PHP:
p.getAttribute(Attribute.GENERIC_MAX_HEALTH).addModifier(new AttributeModifier("MaxHealth", 6, Operation.ADD_NUMBER));
                    p.setHealth(20.0);
Убирать пробовал так:
PHP:
player.getAttribute(Attribute.GENERIC_MAX_HEALTH).removeModifier(new AttributeModifier("MaxHealth", 6, Operation.ADD_NUMBER));
PHP:
player.resetMaxHealth(); (оно депректед и не работает)
 
Храни свой модификатор где-нибудь отдельно или добавь к нему какой-нибудь UUID для обоих вариантов. При удалении, собстна, используй тот же модификатор или тот же UUID.
Решено -
player.setHealthScale(double scale);
Это не решение - этот метод просто меняет отображение сердец у игрока. Если оно и работает, то только на чуде и может перестать работать позже.
 
Храни свой модификатор где-нибудь отдельно или добавь к нему какой-нибудь UUID для обоих вариантов. При удалении, собстна, используй тот же модификатор или тот же UUID.

Это не решение - этот метод просто меняет отображение сердец у игрока. Если оно и работает, то только на чуде и может перестать работать позже.
Этот метод работает. Провел тесты: при падении с 10 блоков мне нанеслось 3,5 хп. Добавил себе дополнительную строчку хп, опять упал, все те же 3,5 хп. Буду тестить еще, если перестанет работать - отпишу в эту тему.
 
@imDaniX был прав, этот метод добавляет только визуальную часть.
Нашел для себя решение:
PHP:
                    p.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(40.0[кол-во хп]);
                    p.setHealthScale(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue());
 
Назад
Верх