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

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

Discussion in 'Разработка плагинов для новичков' started by MrQuest, May 24, 2015.

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    event.getCause()
     
  7. MOR_IV

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

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

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

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

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

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

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

    Trophy Points:
    78
    Skype:
    radius981
    Имя в Minecraft:
    LomNar
    @Rider3217, поправил:
    Code:
      @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 Старожил Пользователь

    Trophy Points:
    108
    Имя в Minecraft:
    CraftCoderr
    Code:
    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 Активный участник Пользователь

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

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

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

Share This Page