Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите При определённых условиях отключить действие брони

Den-Xs

Старожил
Пользователь
Баллы
103
Собственно, нужно чтобы при определенных условиях, при нанесении игроку урона, игнорировался эффект от брони.
 
Собственно, нужно чтобы при определенных условиях, при нанесении игроку урона, игнорировался эффект от брони.
А что сложного? Задавай при определённых условиях больше урона
 
т.е. если я поставлю event.setDamage(10), у меня будет наноситься 10 урона не зависимо от наличия брони?
 
Однако ж нет
Код:
package ru.testplugin;
 
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.plugin.java.JavaPlugin;
 
public class TestPlugin extends JavaPlugin implements Listener {
 
    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }
 
    @EventHandler
    public void onDamage (EntityDamageByEntityEvent event) {
        if (event.getEntity() instanceof Player) {
            event.setDamage(6D);
        }
    }
}
Не смотря на то, что во всех случаях нанесения урона игроку урон устанавливается на 6, реальные значения урона у игроков с бронёй и без неё будет различаться.
Тема всё ещё актуальна
 
Сделал так:
Код:
@EventHandler
public void onDamage (EntityDamageByEntityEvent event) {
   if (event.getEntity() instanceof Player) {
       Player p = (Player) event.getEntity();
       double dmg = event.getDamage();
       p.damage(dmg);
       p.sendMessage("Вы получили " + dmg + " урона");
    }
}
При употреблении зелья на урон в броне в чат пишет "вы получили 6.0 урона", а реально отнимается только 2 сердца (4 урона). Без брони наносится, как положено, 6 урона.
Упс, случайно проводил испытания на чареной броне, на обыкновенной с p.damage() всё в порядке :)
 
Сделал так:
Код:
@EventHandler
public void onDamage (EntityDamageByEntityEvent event) {
  if (event.getEntity() instanceof Player) {
      Player p = (Player) event.getEntity();
      double dmg = event.getDamage();
      p.damage(dmg);
      p.sendMessage("Вы получили " + dmg + " урона");
    }
}
При употреблении зелья на урон в броне в чат пишет "вы получили 6.0 урона", а реально отнимается только 2 сердца (4 урона). Без брони наносится, как положено, 6 урона.
Упс, случайно проводил испытания на чареной броне, на обыкновенной с p.damage() всё в порядке :)
Для совсем извращений есть p.setHealth();
 

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

Назад
Верх