[1.7.10] Проблема с кодом волка

Здравствуйте.
Хотел я значит питомца сделать на основе волка из ванильного майна, чтобы он атаковал врагов и ходил за вами. Залез я значит в исходники майна, нашел EntityWolf.class , но я не могу понять, что там отвечает за "режим" питомца и хочется спросить у вас об этом.
Наверно задавать такие вопросы глупо, но нигде ответа на подобный вопрос я не нашел.
 
Tamed - прирученный/укрощенный.
Код:
this.isTamed()
Укрощен ли он.
Код:
this.setTamed(false);
true - укрощенный, false - дикий.
 
timaxa007 написал(а):
Tamed - прирученный/укрощенный.
Код:
this.isTamed()
Укрощен ли он.
Код:
this.setTamed(false);
true - укрощенный, false - дикий
Оно? 


Код:
protected void applyEntityAttributes()


    {


        super.applyEntityAttributes();


        this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D);





        if (this.isTamed())


        {


            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D);


        }


        else


        {


            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D);


        }


    }





    /**


     * Returns true if the newer Entity AI code should be run


     */


    public boolean isAIEnabled()


    {


        return true;


    }





    /**


     * Sets the active target the Task system uses for tracking


     */


    public void setAttackTarget(EntityLivingBase p_70624_1_)


    {


        super.setAttackTarget(p_70624_1_);





        if (p_70624_1_ == null)


        {


            this.setAngry(false);


        }


        else if (!this.isTamed())


        {


            this.setAngry(true);


        }


    }
 
Что "оно"?
Волк унаследован от EntityTameable, там то-же есть связанное с твоим требованием.
[merge_posts_bbcode]Добавлено: 05.06.2016 21:43:34[/merge_posts_bbcode]

Тем более не понятно, какие у тебя вопросы (так как знаков вопросов нет).
По-поводу AI атаки питомца, то оно не находиться в EntityTameable, оно находиться в самом питомце.
Код:
        this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this));
        this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this));
Нужно, чтобы у питомца был хозяин - так как из хозяина для питомца будет брать, какую цель атаковал хозяин.
Код:
        this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false));
Не прирученный волк будет пассивно атаковать овец.
 
А чтобы приручить, просто в каком-то айтеме при ПКМ проверить, является ли моб твоим волком и сетнуть ему теим .setTamed(true)?
А как игрока запихнуть? То есть как AI'шка поймёт, за кем идти?
 
setTamed(true) - делает его укрощенным, но не даёт знать кто его хозяин.
(func_152115_b - это типа setOwner) func_152115_b(player.getUniqueID().toString()); - даём UUID хозяина питомцу. (Используется в методе interact питомца, когда его приручаешь.)
Если AI поймёт, то думаю что да, я не проверял и не пробовал.
 
Назад
Сверху