- Баллы
- 78
- Имя в Minecraft
- MrQuest
Проблема с мини-игрой, нужно, чтобы после убийства излечился убийца. Как излечить именно его?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Поймать эвент смерти игрока, узнать от чего он умер, если от плеера, узнать его имя и вылечить.Проблема с мини-игрой, нужно, чтобы после убийства излечился убийца. Как излечить именно его?
Нужно не умершего хилить а того кто убилПоймать эвент смерти игрока, узнать от чего он умер, если от плеера, узнать его имя и вылечить.
Точно не помню. Можно так же через EntityDamageEvent сделать.
Проблема в том, что я только учу методы и не знаю название метода убийства... Буду благодарен за подсказку =)Слушай эвент убийства и лечи.
В чём проблема?
event.getCause()не знаю название метода убийства
Так понятнее?Поймать эвент смерти игрока, узнать от чего он умер, если от плеера, узнать его(убийцы) имя и вылечить.
Точно не помню. Можно так же через EntityDamageEvent сделать.
) Player){ @EventHandler
public void onDeath(PlayerDeathEvent e) {
if (!(e.getEntity().getKiller() instanceof Player)) {
return;
}
Player killer = e.getEntity().getKiller();
if (killer.getHealth() < 20) {
killer.setHealth(killer.getHealth() + 2);
}
}
int regen = сколько хп нужно отрегенить
if (event.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent){
EntityDamageByEntityEvent dEvent = (EntityDamageByEntityEvent) event.getEntity().getLastDamageCause();
Player killer = null;
if (dEvent.getDamager() instanceof Player){
killer = (Player) dEvent.getDamager();
} else
if (dEvent.getDamager() instanceof Arrow){
if (((Arrow) dEvent.getDamager()).getShooter() instanceof Player){
killer = (Player) ((Arrow) dEvent.getDamager()).getShooter();
}
}
if (killer != null){
if (killer.getHealth() + regen <= killer.getMaxHealth()){
killer.setHealth(killer.getHealth() + regen);
} else killer.setHealth(killer.getMaxHealth());
}
}
Спасибо, просто с утра с телефона писал@Rider3217, поправил:
Java:@EventHandler public void onDeath(PlayerDeathEvent e) { if (!(e.getEntity().getKiller() instanceof Player)) { return; } Player killer = e.getEntity().getKiller(); if (killer.getHealth() < 20) { killer.setHealth(killer.getHealth() + 2); } }
