MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Asseoir un joueur

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.2
    7 Messages 4 Publieurs 1.5k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • mindany2M Hors-ligne
      mindany2
      dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        Ton entité est au moins enregistré ?

        1 réponse Dernière réponse Répondre Citer 0
        • mindany2M Hors-ligne
          mindany2
          dernière édition par

          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 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

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

            1 réponse Dernière réponse Répondre Citer 0
            • pulganP Hors-ligne
              pulgan
              dernière édition par

              Bah remet le joueur en permanence a la bonne hauteur

              1 réponse Dernière réponse Répondre Citer 0
              • GuguG Hors-ligne
                Gugu
                dernière édition par

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

                "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                ― Jordan B. Peterson

                1 réponse Dernière réponse Répondre Citer 0
                • mindany2M Hors-ligne
                  mindany2
                  dernière édition par

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

                  ^^

                  1 réponse Dernière réponse Répondre Citer 0
                  • 1 / 1
                  • Premier message
                    Dernier message
                  Design by Woryk
                  ContactMentions Légales

                  MINECRAFT FORGE FRANCE © 2024

                  Powered by NodeBB