我当前正在尝试创建自定义实体。到目前为止,我已经使用Wolf AI进行了渲染,移动和攻击。我认为通过使用扩展的狼,狼部分中的某些东西会改变它的生命值和攻击力。但是,由于某些原因,速度仍然有效。
我已经尽力想了一切。例如,从狼的部分复制东西,覆盖它,然后取消它的作用。
public class EntityKendal extends EntityWolf{
public EntityKendal(World worldIn) {
super(worldIn);
this.setSize(0.6F, 0.85F);
}
@Override
protected void applyEntityAttributes()
{
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(500.0D);
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.5D);
this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(18D);
}
@Override
protected void initEntityAI()
{
this.tasks.addTask(1, new EntityAISwimming(this));
this.tasks.addTask(4, new EntityAILeapAtTarget(this, 0.4F));
this.tasks.addTask(5, new EntityAIAttackMelee(this, 1.0D, true));
this.tasks.addTask(8, new EntityAIWanderAvoidWater(this, 1.0D));
this.tasks.addTask(10, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
this.tasks.addTask(10, new EntityAILookIdle(this));
this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true, new Class[0]));
this.targetTasks.addTask(5, new EntityAINearestAttackableTarget(this, AbstractSkeleton.class, false));
}
@Override
public boolean processInteract(EntityPlayer player, EnumHand hand) {
return false;
}
@Override
public EntityWolf createChild(EntityAgeable ageable)
{
return new EntityKendal(world);
}
}
我希望该实体拥有500点生命值,并在2次命中中杀死玩家,但两者均不会。