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

Помогите Если здоровье меньше...

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

  1. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Что в нем такого?[DOUBLEPOST=1480442822,1480442717][/DOUBLEPOST]
    Ахах, раз в 2-е минуты проверять мобов в мире с опр. хп, боооже какая нагрузка, наверное дедик на Celeron-e :D
     
  2. Хостинг MineCraft
    <
  3. oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Сейчас бы раз в две минуты моба проверять, когда по ТЗ нам надо при нужном хп у моба которого бьем спавнить "миньонов".
     
  4. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Пфф, сейчас бы ТЗ читать :D Я просто предложил альтернативу
     
  5. AtomicInteger

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

    Баллы:
    46
    Убил ты такой моба, а где миньоны?А через 2 минуты будут.Или не будут.
     
  6. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Чот не продумал ничего, спать уже хочу ;D А на счет ТЗ, я его не читал
     
  7. AtomicInteger

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

    Баллы:
    46
    Слишком много кастомизации не бывает, добавил поддержку миров из конфига:

    Код:
        @EventHandler
        public void onEntityEvent(EntityDamageByEntityEvent event) {
            if(event.getDamager() instanceof Player && config.getList("worlds").contains(event.getDamager().getWorld())) {
                LivingEntity entity = (LivingEntity) event.getEntity();
                if(config.getList("entities").contains(event.getEntity().getType().toString()) && entity.getHealth() < config.getInt("healthCount"))
                    entity.getWorld().spawnEntity(entity.getLocation(), EntityType.valueOf(config.getString("spawnEntity")));
            }
        }
     
  8. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Каша
     
  9. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Но главную проблему ты не решил.

    Код:
        @EventHandler
        public void on(EntityDamageByEntityEvent e) {
            Entity mob = e.getEntity();
            if(mob.getCustomName()==null) return;
            if(mob.getCustomName().equals("Живой и полнон сил")) {
                LivingEntity en = (LivingEntity) mob;
                if(en.getHealth()<300) {
                    mob.setCustomName("Подыхаю");
                    mob.getWorld().spawnEntity(mob.getLocation(), EntityType.ZOMBIE);
                }
            }
        }
     
    Последнее редактирование: 29 ноя 2016
  10. AtomicInteger

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

    Баллы:
    46
    Я этой строки не понимаю.
     
  11. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Вот хороше решение[DOUBLEPOST=1480444591,1480444557][/DOUBLEPOST]
    Сравниваем имя моба с заданным в Equals
     
  12. AtomicInteger

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

    Баллы:
    46
    Это, конечно, понятно.Но где мы это кастомное имя задаем?Почему это лучше EntityType?Не понимаю.
     
  13. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Можно мобов объеденить
     
  14. AtomicInteger

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

    Баллы:
    46
    Каким образом?Имеешь в виду то, что у нескольких мобов один customName?
     
  15. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    При спавне босса конечно же.[DOUBLEPOST=1480445615,1480445379][/DOUBLEPOST]
    Не обязательно, можно по части из его имени.
    Код:
        @EventHandler
        public void on(EntityDamageByEntityEvent e) {
            Entity mob = e.getEntity();
            if(mob.getCustomName()==null) return;
            if(mob.getCustomName().contains("Живой и полон сил")) {
                LivingEntity en = (LivingEntity) mob;
                if(en.getHealth()<300) {
                    mob.setCustomName(mob.getCustomName().replace("Живой и полон сил", "Подыхаю"));
                    mob.getWorld().spawnEntity(mob.getLocation(), EntityType.ZOMBIE);
                }
            }
        }
     
  16. AtomicInteger

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

    Баллы:
    46
    Какого босса?Тут ещё используется какой-то ивент?
    Ты вызываешь метод getCustomName() на mob, а у класса Entity даже нет такого метода, или я что-то упустил?
    Зачем нужны дополнительные проверки и, тем более, записи в виде mob.setCustomName?
    Более того, код не работает, я только что проверил.[DOUBLEPOST=1480446545][/DOUBLEPOST]А какая у тебя версия?
     
  17. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    У LivingEntity есть.
     
  18. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Даа
     
  19. AtomicInteger

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

    Баллы:
    46
    Да, я заменил.
    EntityType тоже объединяет, не знаю это ли ты имел в виду...
     
  20. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Устанавливает имя
     
  21. AtomicInteger

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

    Баллы:
    46
    Спасибо.Я сам бы не додумался.[DOUBLEPOST=1480448769,1480447512][/DOUBLEPOST]
    Но всё же, что за главная проблема?
     

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