2

我在我的世界中使实体可控时遇到问题。我可以安装它,它会移动,但在你移动它几秒钟后,它就会跳回到你移动它之前的位置。这是我的实体类:

package net.minecraft.src;

public class mod_EntityMech extends EntityMob // this to make mob hostile
{
  public boolean stationary;
  public mod_EntityMech(World par1World)
  {
    super(par1World);
    isImmuneToFire = false;
  }
  public int func_82193_c(Entity par1Entity) //the amount of damage
  {
    return 4;
  }
  protected void fall(float par1)
  {}
  public int getMaxHealth() // Mob health
  {
    return 1000;
  }
  protected int getDropItemId()
  {
    return 0;
  }
  protected boolean canDespawn()
  {
    return false;
  }
  public boolean interact(EntityPlayer entityplayer)
  {
    if (riddenByEntity == null || riddenByEntity == entityplayer)
    {
      entityplayer.mountEntity(this);
      return true;
    }
    else
    {
      return false;
    }
  }
  protected boolean isMovementCeased()
  {
    return stationary;
  }
  public void moveEntity(double d, double d1, double d2)
  {
    if (riddenByEntity != null)
    {
      this.prevRotationYaw = this.rotationYaw = this.riddenByEntity.rotationYaw;
      this.rotationPitch = this.riddenByEntity.rotationPitch * 0.5F;
      this.setRotation(this.rotationYaw, this.rotationPitch);
      this.rotationYawHead = this.renderYawOffset = this.rotationYaw;
      stationary = true;
      motionX += riddenByEntity.motionX * 10; // * 0.20000000000000001D;
      motionZ += riddenByEntity.motionZ * 10; // * 0.20000000000000001D;
      if (isCollidedHorizontally)
      {
        isJumping = true;
      }
      else
      {
        isJumping = false;
      }
      super.moveEntity(motionX, motionY, motionZ);
    }
    else
    {
      stationary = false;
      super.moveEntity(d, d1, d2);
    }
  }
  public void onUpdate()
  {
    super.onUpdate();
    if (riddenByEntity != null) //check if there is a rider
    {
      //currentTarget = this;
      this.randomYawVelocity = 0; //try not to let the horse control where to look.
      this.rotationYaw = riddenByEntity.rotationYaw;
    }
  }
  protected boolean isAIEnabled() //Allow your AI task to work?
  {
    return true;
  }
}

PS 我正在使用 ModLoader

4

1 回答 1

0

您需要使用消息处理来添加客户端-服务器同步。我推荐使用本教程: http: //www.minecraftforge.net/forum/index.php/topic,20138.0.html

于 2015-07-28T21:20:08.293 回答