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

Помогите Как увеличить силу взрыва у кристалла энда?

Тема в разделе "Разработка плагинов для новичков", создана пользователем ItsWay, 18 июн 2022.

Статус темы:
Закрыта.
  1. Автор темы
    ItsWay

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

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    На сервере присутсвует возможность сделать себе на броню зачарования: защита 6 и взрывоустойчивость 5. При этом, если тебя будет взрывать кристалл, то он будет сносить мало хп. Как можно в плагине усилить силу взрыва кристалла, то-есть что бы при взрыве кристалла если игрок стоит в его радиусе ему больше сносило хп от взрыва?
     
  2. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Используй EntityDamageByEntityEvent - просто проверь, что event.getDamager().getType() == EntityType.ENDER_CRYSTAL, и соответственно увеличивай урон.
     
  3. Автор темы
    ItsWay

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

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    А каким образом можно увеличить?
     
  4. mirrerror

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

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    event.setDamage(damage);
     
  5. Автор темы
    ItsWay

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

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    Спасибо, а то я искал через event.getDamager. и не нашёл, а оказывается надо у ивента устанавливать.
    Всем спасибо, тема закрыта.
     
  6. Автор темы
    ItsWay

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

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    через event.getDamager не срабатывает, так же сносит, сколько бы не ставил, вот код:

    Код:
        public void onCristalExplode(EntityDamageByEntityEvent event) {
            Entity damager = event.getDamager();
            Entity entity = event.getEntity();
            if(damager.getType() == EntityType.ENDER_CRYSTAL) {
                
                if(entity instanceof Player) {
                    event.setDamage(130);
                }
                
            }
        }
     
  7. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    getFinalDamage изменяется? Событие вызывается?
    Почему кристалл проверяете через getType, а игрока через instanceof?
     
  8. MySoR

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

    Баллы:
    76
    Имя в Minecraft:
    MySoR
    Рабочий ивент:

    Код:
                @EventHandler
                public void onDamage(EntityDamageByEntityEvent e){
                    if(e.getDamager().getType() != EntityType.ENDER_CRYSTAL) return;
                    if(e.getEntity().getType() != EntityType.PLAYER) return;
                    e.setDamage(130);
                }
    Если дамаг будет 0 то ивент даже не вызнаётся, так может быть ели стоит difficulty peaceful
     
  9. Автор темы
    ItsWay

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

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    На самом деле я забыл объявить методу что он ивент, через @EventHandler. Спасибо всем, тема точно закрыта.
     
Статус темы:
Закрыта.

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