• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Chaise

    1.8.x
    1.8
    8
    19
    3669
    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.
    • R
      Realague dernière édition par

      Bonjour/Bonsoir
      J’aimerai pouvoir faire en sorte que quand le joueur fait un clic droit sur un bloc il s’assoie dessus et je ne sais pas comment faire.

      1 réponse Dernière réponse Répondre Citer 0
      • Deleted
        Deleted dernière édition par

        Tu fais spawn une entity et tu fais asseoir le joueur dessus. Bien évidemment l entity doit être immobilile et tu dois set ses positions a chaque tick pour qu elle ne bouge pas pareil pour sa rotatoin, enleve lui son ia et fais en sorte qu elle ne puisse pas être poussée et que quand le joueur se lève de la chaise, tu la setdead.

        1 réponse Dernière réponse Répondre Citer 0
        • SCAREX
          SCAREX dernière édition par

          Ou tu peux tout simplement aller voir le github de FFMTLibs où il y a une classe exprès pour çà.

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

          1 réponse Dernière réponse Répondre Citer 0
          • R
            Realague dernière édition par

            J’ai fait comme dans le github avec le EntityBlockSittable et le block sittable mais quand je clic droit sur le block rien ne se passe.

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

              Sans ton code on ne risque pas de pouvoir t’aider.

              1 réponse Dernière réponse Répondre Citer 0
              • Folgansky
                Folgansky Correcteurs dernière édition par

                Tu n’as pas oublié cette partie?

                [size=small/**]
                
                 * To use, add this in your block: (change heightOfThePlayer with a float)
                %(#969896)[ *```
                ]
                 * public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                 * {
                 * return FFMTBlockSittable.sitPlayer(world, x, y, z, player, heightOfThePlayer);
                 * }
                %(#969896)[ * 
                ```]
                 **/
                
                1 réponse Dernière réponse Répondre Citer 0
                • R
                  Realague dernière édition par

                  package com.mod_rpg.Block;
                  
                  import java.util.List;
                  
                  import com.mod_rpg.CoreMod.Main;
                  import com.mod_rpg.Entity.EntityBlockSittable;
                  
                  import net.minecraft.block.Block;
                  import net.minecraft.block.material.Material;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.util.AxisAlignedBB;
                  import net.minecraft.world.World;
                  
                  public class BlockSittable extends Block
                  {
                      public BlockSittable(Material material, String name)
                      {
                          super(material);
                          this.setUnlocalizedName(name);
                          this.setCreativeTab(Main.TabsDeco);
                      }
                      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                      {
                          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.fromBounds(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;
                      }
                  }
                  
                  
                  package com.mod_rpg.Entity;
                  
                  import net.minecraft.entity.Entity;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.nbt.NBTTagCompound;
                  import net.minecraft.world.World;
                  
                  public class EntityBlockSittable extends Entity
                  {
                      public int blockPosX;
                      public int blockPosY;
                      public 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;
                          }
                  
                          if(!this.worldObj.isRemote)
                          {
                              entityplayer.mountEntity(this);
                          }
                          return true;
                      }
                  
                      @Override
                      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()
                      {
                  
                      }
                  }
                  
                  ```</entityblocksittable>
                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                    Je suis presque sûr que tu n’as pas enregistré l’entité.

                    1 réponse Dernière réponse Répondre Citer 0
                    • Folgansky
                      Folgansky Correcteurs dernière édition par

                      Au passage vous sauriez où trouver l’équivalent en 1.7 svp?

                      Quand j’essaie d’adapter [font=Ubuntu, sans-serif le github de FFMTLibs précieusement renseigné de la part de SCAREX, la “seule” erreur vient de:]

                      %(#000000)[[font=monospace]AxisAlignedBB]%(#666600)[[font=monospace].]%(#000000)[[font=monospace]fromBounds]%(#666600)[[font=monospace](]%(#000000)[[font=monospace]x]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] y]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] z]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] x ]%(#666600)[[font=monospace]+] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] y ]%(#666600)[[font=monospace]+] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] z ]%(#666600)[[font=monospace]+] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace]).]%(#000000)[[font=monospace]expand]%(#666600)[[font=monospace](]%(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace]));]
                      
                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                        https://github.com/FFMT/FFMT-libs/tree/17
                        D’ailleurs je viens de capter qu’il y a un problème dans le code, le expand n’a rien à faire là.

                        1 réponse Dernière réponse Répondre Citer 1
                        • Folgansky
                          Folgansky Correcteurs dernière édition par

                          ça marche du tonnerre.
                          Merci Robin.

                          1 réponse Dernière réponse Répondre Citer 0
                          • R
                            Realague dernière édition par

                              EntityRegistry.registerModEntity(EntityBlockSittable.class, "entityblocksittable", 100, this, 0, 10, true);
                            
                            1 réponse Dernière réponse Répondre Citer 0
                            • EmotionFox
                              EmotionFox dernière édition par

                              Le problème dans ce code c’est le :

                              public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                              {
                              return sitPlayer(world, x, y, z, player, 1.0F);
                              }
                              

                              Qui en 1.8 est supposé être comme ça :

                              @Override
                              public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
                              {
                              return sitPlayer(world, pos.getX(), pos.getY(), pos.getZ(), player, 1.0F);
                              }
                              

                              Toujours penser à vérifier les fonctions “officiels” avec le petit @Override ça évite ce genre d’erreur.

                              Ps: Moi j’aurais voulue savoir comment descendre l’entité qui remonte à chaque fois au bout d’une seconde environ 😕

                              1 réponse Dernière réponse Répondre Citer 0
                              • Folgansky
                                Folgansky Correcteurs dernière édition par

                                @‘EmotionFox’:

                                Le problème dans ce code c’est le :

                                public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                                {
                                   return sitPlayer(world, x, y, z, player, 1.0F);
                                }
                                

                                Qui en 1.8 est supposé être comme ça :

                                @Override
                                public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
                                {
                                   return sitPlayer(world, pos.getX(), pos.getY(), pos.getZ(), player, 1.0F);
                                }
                                

                                Toujours penser à vérifier les fonctions “officiels” avec le petit @Override ça évite ce genre d’erreur.

                                Ps: Moi j’aurais voulue savoir comment descendre l’entité qui remonte à chaque fois au bout d’une seconde environ 😕

                                Moi j’ai abaissé la position du joueur (edit: en 1.7, je reprécise)

                                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, 0.5F);
                                }
                                

                                Par contre j’ai un bloc avec des bordures réduites de moitié (sinon le joueur est considéré dans le bloc et remonte)

                                M’enfin la position de l’entité doit bien pouvoir être réglée. A voir si l’entité a le même soucis de position réactualisée pour ne pas être dans le bloc.
                                A toi de faire mumuse avec ces variables. (Je suis pas de grande utilité mais chui qu’un bidouilleur de codes pour le moment).

                                1 réponse Dernière réponse Répondre Citer 0
                                • Ama
                                  Ama dernière édition par

                                  je crois qu’il y a un truc avec le noclip ou alors je me trompe.

                                  Mes dernière chaises date de la bêta 1.2.5 donc bon…

                                  Si je t'ai filé un coup de main n'oublie pas le + / -
                                  Par contre évite les demandes d'aides en MP, tu sera sympa'

                                  La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                  Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • EmotionFox
                                    EmotionFox dernière édition par

                                    Arf justement TouToune j’ai baissé cette valeur et beaucoup d’autre (en réalité j’ai déjà transformé toutes les valeurs en float et je l’ai est toutes abaissé en ce qui concerne les valeurs d’Y) mais le problème que l’entité ce réajuste persiste :C Et en ce qui concerne le noClip je vois pas trop ce que je pourrais changer

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • Ama
                                      Ama dernière édition par

                                      dans le constructeur de l’entité pour sit, this.noClip = true;

                                      Si je t'ai filé un coup de main n'oublie pas le + / -
                                      Par contre évite les demandes d'aides en MP, tu sera sympa'

                                      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • R
                                        Realague dernière édition par

                                        J’aimerais que la hitbox du bloc que j’ai modifier soit toujours placer en fonction de la position du joueur quand il place le bloc pour que la hitbox suive le model custom.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • Diangle
                                          Diangle dernière édition par

                                          passe par les axis ou direction.

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

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB