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

Помогите Ошибка в LivingEntity..

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

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

    Hasim2003 Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Hasim
    Здравствуйте.У меня в коде выдает ошибку,а именно в LivingEntity.Java не видит getHealth().Кратко расскажу о плагине,чтобы вы поймали суть.короче,я у меня 3 моба с рандомным именем при спавне.Например: ZOMBIE, BOSS, и ORC.
    И даю каждому из них здоровье через setMaxHealth(), но не работает и вот именно поэтому создал метод через EntityDamageByEntityEvent.Но вот в этом коде не находит getHealth().
    Помогите пожалуйста:
    @EventHandler
    public void onEntityDamage(EntityDamageByEntityEvent e)
    {
    LivingEntity ent = (LivingEntity)e.getEntity();
    if(ent.getCustomName() != null)
    {
    if(e.getDamage() <= ent.getHealth())
    {
    ent.setHealth( ent.getHealth() - e.getDamage() );
    } else
    {
    ent.setHealth(0);
    }
    }
    }
     
  2. Хостинг MineCraft
    <
  3. Sonicxd2

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

    Баллы:
    76
    1) setMaxHealth() просто увеличивает кол-во возможного хп. Так что добавь еще setHealth()
    2) Так и не понял проблему. Если в LivingEntity нету методов которые тебе нужны, то просто приведи тип к зомби
    Пример
    Zombie z=(Zombie) ent
    Но перед этим надо проверить зомби ли это:
    if(ent instanceof Zombie)
     
  4. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
  5. Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    Что значит
    ? Скриншот есть?
    Попробуй сделать через Damageable
    Код:
        @EventHandler
        public void onHeromPoLbuDali(EntityDamageByEntityEvent event){
            LivingEntity ent = (LivingEntity)event.getEntity();
            if(ent.getCustomName() != null)
            {
                Damageable damag = (Damageable) ent;
                if(event.getDamage() <= damag.getHealth())
                {
                    ent.setHealth( damag.getHealth() - event.getDamage() );
                } else{
             
                    ent.setHealth(0d);
                }
            }
        }
     
  6. Dymeth

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

    Баллы:
    76
  7. Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    Говорят что так нагрузка на машину меньше(if (ent.getType() == EntityType.ZOMBIE)). Я могу ошибаться.
     
  8. Dymeth

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

    Баллы:
    76
    Ну, если рассуждать логически, то так и есть. Я просто подумал, что есть разница с программной точки зрения (результата, а не производительности), поэтому и спросил...
     

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