Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Хил игрока

Тема в разделе "Разработка плагинов для новичков", создана пользователем MrQuest, 24 май 2015.

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

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

    Баллы:
    78
    Skype:
    tima.maryin
    Имя в Minecraft:
    MrQuest
    Проблема с мини-игрой, нужно, чтобы после убийства излечился убийца. Как излечить именно его?
     
  2. Хостинг MineCraft
    <
  3. Plasticable

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

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Слушай эвент убийства и лечи.
    В чём проблема?
     
  4. MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Поймать эвент смерти игрока, узнать от чего он умер, если от плеера, узнать его имя и вылечить.
    Точно не помню. Можно так же через EntityDamageEvent сделать.
     
  5. Автор темы
    MrQuest

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

    Баллы:
    78
    Skype:
    tima.maryin
    Имя в Minecraft:
    MrQuest
    Нужно не умершего хилить а того кто убил
    Проблема в том, что я только учу методы и не знаю название метода убийства... Буду благодарен за подсказку =)
     
  6. Plasticable

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

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    event.getCause()
     
  7. MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Так понятнее?
     
  8. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    А смотреть все доступные методы, смотреть те которые возвращают Player?..
     
  9. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Player killer = event.getEnity().getKiller();
    if(killer.getHealth() != 20 && infalaceon(забыл как пишется:D) Player){
    killer.setHealth(killer.getHealth() + 2)
    }
    Вообще наугад написал))
     
  10. LomNar

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

    Баллы:
    78
    Skype:
    radius981
    Имя в Minecraft:
    LomNar
    @Rider3217, поправил:
    Код:
      @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);
            }
    
        }
     
  11. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Код:
    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());
                    }
    }
    
    Тут еще не рассмотрен случай, когда игрок убийца ударил игрока, а игрок упал в бездну или разбился, но для этого нужно еще вводить HashMap, в котором запоминать последнего дамагера игрока для каждой жертвы игрока.
     
  12. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Спасибо, просто с утра с телефона писал:D
     
  13. Автор темы
    MrQuest

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

    Баллы:
    78
    Skype:
    tima.maryin
    Имя в Minecraft:
    MrQuest
    Спасибо!
     

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