Jump to content

Mob refuses to move faster, but will move slower when adjusting attributes?


Recommended Posts

Posted

So first off the mob works fine besides this. All the other values are as intended, and everything works as intended.

 

However, in the line

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

 

which is found here in my code in the Entity Class, it doesn't affect the mobs movement speed. I've spawned new ones with new eggs and everything, the other values keep updating but the movement speed won't. I am able to make it move slower by lowering the value below 0.6999D to something like 0.3333D, but if I make it higher it does nothing.

public void applyEntityAttributes(){
	super.applyEntityAttributes();

	this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5.0D);
	this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(52.0D);
	this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(0.0D);
	this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.94D);
	this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(13.0D);

 

Posted

Hmm. There might be another way.

Can I see your whole entire Entity class - real quick?

 

Here ya go:

 

 

 

package mainlandModding.mob.entity;

 

import net.minecraft.block.Block;

import net.minecraft.entity.Entity;

import net.minecraft.entity.SharedMonsterAttributes;

import net.minecraft.entity.monster.EntityMob;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.world.World;

 

public class EntityRunner extends EntityMob {

 

public EntityRunner(World par1World) {

super(par1World);

this.setSize(1.0F, 1.0F);

// TODO Auto-generated constructor stub

}

 

protected String getLivingSound(){

return "mob.wither.idle";

}

 

protected String getDeathSound(){

return "mob.wither.death";

}

 

protected String getHurtSound(){

    return "mob.wither.hurt";

}

 

protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_)

    {

        this.playSound("mob.pig.step", 0.15F, 1.0F);

    }

 

protected Entity findPlayerToAttack(){

EntityPlayer entityPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D);

return entityPlayer != null && this.canEntityBeSeen(entityPlayer) ? entityPlayer : null;

 

}

 

 

public void applyEntityAttributes(){

super.applyEntityAttributes();

 

this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5.0D);

this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(52.0D);

this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(0.0D);

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

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

 

 

}

 

 

}

 

 

 

Posted

That's bizarre. I just tried it on one of my entities and he was zipping around with a movement at 3.3D. Are you sure you just aren't noticing the difference between 0.69 and 0.94? Try setting it higher and see if it still doesn't work for you.

I've tried setting it at 3.0D, 50.0D, 300.0D. Doesn't affect anything.

Posted

That's bizarre. I just tried it on one of my entities and he was zipping around with a movement at 3.3D. Are you sure you just aren't noticing the difference between 0.69 and 0.94? Try setting it higher and see if it still doesn't work for you.

I've tried setting it at 3.0D, 50.0D, 300.0D. Doesn't affect anything.

Then you probably need to turn on the AI, because it is not enabled by default in EntityMob:

@Override
protected boolean isAIEnabled() {
        return true;
    }

Posted

That's bizarre. I just tried it on one of my entities and he was zipping around with a movement at 3.3D. Are you sure you just aren't noticing the difference between 0.69 and 0.94? Try setting it higher and see if it still doesn't work for you.

I've tried setting it at 3.0D, 50.0D, 300.0D. Doesn't affect anything.

Then you probably need to turn on the AI, because it is not enabled by default in EntityMob:

@Override
protected boolean isAIEnabled() {
        return true;
    }

Adding below the attributes section just makes my mob stand there, and he doesn't use his AI anymore.

Posted

Adding below the attributes section just makes my mob stand there, and he doesn't use his AI anymore.

Oh right, you aren't using the new AI... maybe try that instead? Take a look at a vanilla mob such as the zombie to see what kinds of AI you can add. My mob was using the AI system and the speed worked correctly, though I haven't looked through the code to find out why.

Posted

Adding below the attributes section just makes my mob stand there, and he doesn't use his AI anymore.

Oh right, you aren't using the new AI... maybe try that instead? Take a look at a vanilla mob such as the zombie to see what kinds of AI you can add. My mob was using the AI system and the speed worked correctly, though I haven't looked through the code to find out why.

Worked, thanks.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.