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

Помогите NMS, добавление и удаление цели [МОБЫ]

Тема в разделе "Разработка плагинов для новичков", создана пользователем IcedwinterZ, 21 фев 2017.

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

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Как добавить мобов, на которых энтити должен нападать? Знаю что через goalSelector но как конкретнее, если можно, с примером (нагло выпрашиваю код).


    Спасибо!
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Залез в ведро (нет не в то ведро, в котором воду носят), и нашел там это:

    Код:
     if (this.world.spigotConfig.zombieAggressiveTowardsVillager) {
          this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget(this, EntityVillager.class, false));
        }
        this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget(this, EntityIronGolem.class, true));
    Впринципе, я то понял, как это устроено, но для меня остается загадкой, еще кое что.
    Смотрите, зомби же атакует и Жителя и Голема,
    с големом понятно, у него 2-ой аргумент true, а у жителя false, но он ведь его атакует.

    Еще, цифра которая 0-ым аргументом, это типа ИДА? А булевая в конце конструктора это приоритет или как?
     
  4. AtomicInteger

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

    Баллы:
    46
  5. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Я это смотрел, выставил все, как смотрел в ядре, поменял класс цели только, но он все равно не атакует скелета

    Код:
    public static void setTargetsMob(Entity e){
            if(!((EntityInsentient)((CraftEntity) e).getHandle() instanceof EntityCreature)){
                return;
            }
            EntityCreature nms = (EntityCreature) ((EntityInsentient)((CraftEntity) e).getHandle());
            nms.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget(nms, EntityZombie.class, true));
            nms.targetSelector.a(4, new PathfinderGoalNearestAttackableTarget(nms, EntitySkeleton.class, true));
            nms.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget(nms, EntityCreeper.class, true));
        }
    (Сделал так, потому что для каждого моба отдельные цели)
     
  6. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Потому что задачи 3, 4 и 5 уже существуют.
     
  7. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А я уже сделал, пасиб, просто забыл закрыть тему. Я очищал таргеты и гоал селекторы, потом просто делал свои задачи. Спасибо ;)
     

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