ИИ Моба 1.6.x

Статус
В этой теме нельзя размещать новые ответы.
Подскажите пожалуйста, создаю моба, он должен бояться воды и ни в коем случае не должен залезать в неё. Когда он агриться на игрока он тоже не должен бежать за игроком через воду. Как ему это прописать? 
В пример: 
Код:
this.tasks.addTask(0, new EntityAISwimming(this)); //Возможность моба плавать
А нужно обратное. Моб плавать не умеет, поэтому в воду не лезет.

Спасибо
 
Неа, он вроде бы стоит на блоке (посреди воды) и никуда не дрыгается, а когда агриться на меня, то всё равно пытается накидываться, спрыгивает с блока и плывёт за мной.
[merge_posts_bbcode]Добавлено: 15.03.2015 21:24:29[/merge_posts_bbcode]

Например, волк тоже спокойно стоит (у него тоже такой код, он боится воды), а если его заагрить, то он поломится в воду
 
Хм, ну да, согласен, кстати, а как сделать проверку, моб саргрился на игрока или нет. Типо если он съагрился, то проигрывать другой звук, если нет и он просто стоит (пока не видит игрока), то звук иной
 
Стоит глянуть эндермена, может что и есть. Или как выше писали самому ИИ написать.

По поводу агриться... класс EntityMob метод findPlayerToAttack ну и там далее смотри.
 
1,990
18
105
Эндерман не игнорит воду, у него отключен продвинутый ИИ, который на тасках (как у ТС). Логика у эндермана такая, что он просто не телепортируется в воду. Больше она нигде не задействована. 
Также, если разлить воду недалеко от него, он не станет убегать.
24pRTQs.png

Вот здесь видно, что эндермана возвращает обратно, если в целевой точке есть жидкость.
d3, d4, d5 - позиция эндермана перед телепортом.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху