Помогите (РЕШЕНО)Как изменять скорость Entity

Статус
Закрыто для дальнейших ответов.

Mukiroku

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Kukuroku
Здравствуйте я сделал жителя(Villager villager = (Villager)loc.getWorld().spawnEntity(loc, EntityType.VILLAGER)😉
Но не знаю как сделать что бы он не двигался и что бы на него не не действовал огонь.

Подскажите метод чтобы остановить жителя, и сделать его не уязвимым.
 
Ты это к чему? Зачем мене ИИ?
Как зачем?
как сделать что бы он не двигался и что бы на него не не действовал огонь
Без ИИ он передвигаться не будет, это же очевидно. По поводу урона не уверен. Возможно придётся обрабатывать EntityDamageEvent
 
Скобок не так уж и много, сколько нужно.
Villager villager = (Villager) loc.getWorld().spawnEntity(loc, EntityType.VILLAGER);
И попробуй без кастов.
Можно юзать просто метод spawn, там дженерики все за тебя сделают
 
setInvulnerable(boolean flag)
У себя делал, хотел чтобы житель смотрел на игрока (с noAI он тупо стоит), пытался с setCollideable(), но сломались стрелы. Сделал через Runnable телепортацию если его сдвинули.
 
setInvulnerable(boolean flag)
У себя делал, хотел чтобы житель смотрел на игрока (с noAI он тупо стоит), пытался с setCollideable(), но сломались стрелы. Сделал через Runnable телепортацию если его сдвинули.
А нахрена стоящему жителю стрелы?
 
Извини, но почему при попытке ввесnи .setAI(true);
.setAI - этого метода нет. Версия Spigot 1.8
Как я сделал:
LivingEntity villager= (LivingEntity) loc.getWorld().spawnEntity(loc, EntityType.VILLAGER);
villager.setAI(false);
Ну все - выбрасывай, динозаврам надо в nbt лезь
 
Ставь атрибут на скорость 0, но толкать его смогут.
 
По идеи можно сделать кастомного ентити и оверайднуть ему метод collide
Ради одного отключения движения - слишком много кода и геморроя с версиями. Проще noAI через nbt поставить
 
Последнее редактирование:
Извини, но почему при попытке ввесnи .setAI(true);
.setAI - этого метода нет. Версия Spigot 1.8
Как я сделал:
LivingEntity villager= (LivingEntity) loc.getWorld().spawnEntity(loc, EntityType.VILLAGER);
villager.setAI(false);
Ну, в таком случае, мои соболезнования.
Нужно меньше сидеть на старых версиях.
Хотя как раз в 1.8 появился nbt-тег noAI. Но я даже не уверен, что его можно использовать без нмс. Возможно протоколлиб поможет, возможно ещё какой-то плагин. Ну, либо используй НМС, привязывайся к конкретно версии 1.8 и обновляй плагин руками в случае чего
 
Спасибо за помощь.
Вот моё решение:

public static void NoAI(Entity ent) {
net.minecraft.server.v1_8_R3.Entity nmsEntity = ((CraftEntity) ent).getHandle();
NBTTagCompound tag = nmsEntity.getNBTTag();

if(tag == null){
tag = new NBTTagCompound();
}
nmsEntity.c(tag);
tag.setInt("NoAI", 1);
nmsEntity.f(tag);

}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх