Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    SOLVED Asseoir un joueur

    1.7.x
    1.7.2
    4
    7
    1185
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mindany2
      mindany2 last edited by

      Bonjour 😄 ,
      J’ai (encore) un problème mais plus simple je pense (je vous épargnerais les vecteurs)
      J’aimerais faire en sorte qu’un joueur puisse s’asseoir sur mon bloc
      Je sais que FFTM-libs le propose mais ça ne marche pas chez moi 😞 
      Je suis considéré comme sur l’entité (donc je peux sneak pour la dismount) mais quand je la monte il ne se passe rien (je ne suis pas sur l’entité en “assis”, je reste debout à ma place et je peux bouger) :s

      En ce qui concerne les codes ce sont ceux de FFTM-libs

      ​public class EntityBlockSittable extends Entity
      
      {
      protected int blockPosX;
      protected int blockPosY;
      protected int blockPosZ;
      
      public EntityBlockSittable(World world)
      {
      super(world);
      this.noClip = true;
      this.preventEntitySpawning = true;
      this.setSize(0.0F, 0.0F);
      }
      
      public EntityBlockSittable(World world, EntityPlayer entityplayer, int x, int y, int z, float entityX, float entityY, float entityZ)
      {
      this(world);
      this.blockPosX = x;
      this.blockPosY = y;
      this.blockPosZ = z;
      this.setPosition(entityX, entityY, entityZ);
      }
      
      public boolean interact(EntityPlayer entityplayer)
      {
      
      if(this.riddenByEntity != null)
      {
      return true;
      }
      else
      {
      entityplayer.rotationYaw = this.rotationYaw;
      entityplayer.rotationPitch = this.rotationPitch;
      
             if (!this.worldObj.isRemote)
             {
              entityplayer.mountEntity(this);
              System.out.println(this);
             }
      
                  return true;
      }
      }
      
      public void onEntityUpdate()
      {
      if(this.riddenByEntity == null || this.riddenByEntity.isDead)
      {
      this.setDead();
      }
      super.onEntityUpdate();
      }
      
      @Override
      public void readEntityFromNBT(NBTTagCompound compound)
      {
      this.blockPosX = compound.getInteger("blockPosX");
      this.blockPosY = compound.getInteger("blockPosY");
      this.blockPosZ = compound.getInteger("blockPosZ");
      }
      
      @Override
      public void writeEntityToNBT(NBTTagCompound compound)
      {
      compound.setInteger("blockPosX", this.blockPosX);
      compound.setInteger("blockPosY", this.blockPosY);
      compound.setInteger("blockPosZ", this.blockPosZ);
      }
      
      @Override
      protected void entityInit()
      {
      
      }
      
      ​public class BlockSittable extends Block
      
      {
      public BlockSittable(Material material)
      {
      super(material);
      }
      
      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
      {
      return sitPlayer(world, x, y, z, player, 1.0F);
      }
      
      public static boolean sitPlayer(World world, int x, int y, int z, EntityPlayer player, float entityY)
      {
      return sitPlayer(world, x, y, z, player, 0.5F, entityY, 0.5F);
      }
      
      public static boolean sitPlayer(World world, int x, int y, int z, EntityPlayer player, float entityX, float entityY, float entityZ)
      {
      if(!world.isRemote)
      {
      List <entityblocksittable>listEMB = world.getEntitiesWithinAABB(EntityBlockSittable.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).expand(1.0D, 1.0D, 1.0D));
      for(EntityBlockSittable entitytocheck : listEMB)
      {
      if((entitytocheck.blockPosX == x) && (entitytocheck.blockPosY == y) && (entitytocheck.blockPosZ == z))
      {
      entitytocheck.interact(player);
      return true;
      }
      }
      
      EntityBlockSittable entity = new EntityBlockSittable(world, player, x, y, z, x + entityX, y + entityY, z + entityZ);
      world.spawnEntityInWorld(entity);
      entity.interact(player);
      }
      return true;
      }
      }
      

      Si ça se trouve c’est une faute toute bête que … je ne trouve pas, j’ai regarder du côté du cheval mais je n’ai pas trouvé ce qui était en plus pour que ça marche :s

      Merci d’avance :D</entityblocksittable>

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

        Ton entité est au moins enregistré ?

        1 Reply Last reply Reply Quote 0
        • mindany2
          mindany2 last edited by

          rire jaune

          Si ça se trouve c’est une faute toute bête que … je ne trouve pas

          Bah … c’était bien ça (y a de quoi se sentir bête…)

          En revanche j’ai un autre problème : lorsque je clique droit et que je suis sur l’entité je “monte” par exemple si je clique sur un bloc je suis aux coordonnées 63.125 mais après quelque chose change et je passe en coordonnées 63.5 une idée ? :s (explication très confuse)

          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

            J’ai compris ton explication, mais je ne vois pas ce qui pourrai causer ça.

            1 Reply Last reply Reply Quote 0
            • pulgan
              pulgan last edited by

              Bah remet le joueur en permanence a la bonne hauteur

              1 Reply Last reply Reply Quote 0
              • Gugu
                Gugu last edited by

                C’est un bug assez commun, enfait l’entité semble se TP plus haut, essaie de la mettre en noclip pour voir.

                1 Reply Last reply Reply Quote 0
                • mindany2
                  mindany2 last edited by

                  Il y est déjà (codes plus haut) dans le constructeur de l’entité

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  • First post
                    Last post
                  Design by Woryk
                  Contact / Mentions Légales / Faire un don

                  MINECRAFT FORGE FRANCE © 2018

                  Powered by NodeBB