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

/NMS/ Как заставить моба атаковать?

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

Статус темы:
Закрыта.
  1. Автор темы
    molor

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

    Баллы:
    66
    Имя в Minecraft:
    molore
    Такое дело. Есть один зомби, как заставить его атаковать другого моба (например, скелета)?
    Порылся в исходниках ядра, нашёл в EntityInsentient.java метод setGoalTarget(). Но работает он как-то неправильно. Вызываю его на зомби:
    Код:
    net.minecraft.server.v1_11_R1.EntityZombie zombie = ...;
    net.minecraft.server.v1_11_R1.EntitySkeleton nearby = ...;
    
    zombie.setGoalTarget(nearby, TargetReason.CUSTOM, true);
    После чего зомби словно начинает атаковать невидимая сила, в результате чего он в итоге умирает; скелет тем временем просто стоит на месте. Ошибок в консоли нет.

    Что я делаю не так и как заставить этот код работать правильно? Хотелось бы, чтобы зомби начал атаковать скелета так же, как если бы скелет случайно выстрелил в него.
     
    Последнее редактирование: 31 мар 2017
  2. Хостинг MineCraft
    <
  3. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    targetSelector не?
     
  4. Автор темы
    molor

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

    Баллы:
    66
    Имя в Minecraft:
    molore
    хм, Ладно, но.. как с ним работать?
    Ведь его изменение повлияет на поведение всех зомби, а не только того, которого мне нужно?[DOUBLEPOST=1491127942,1491032414][/DOUBLEPOST]Так это возможно?!
     
  5. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Тебе видимо нет.
     
  6. Автор темы
    molor

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

    Баллы:
    66
    Имя в Minecraft:
    molore
    Видимо, нет, Вы ведь показать пример кода опять не можете, а только мнение высказываете.[DOUBLEPOST=1491143670,1491140821][/DOUBLEPOST]Реализовал желаемое через setGoalTarget(). Причиной того, почему зомби атаковала неизвестная сила, была моя ошибка (умудрился заставить entity атаковать самого себя, игнорируя аргумент nearby; забавно, что ядро не посчитало это ошибкой и не выбросило исключение). Закрываю, всем спасибо за ничего.
     
Статус темы:
Закрыта.

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