MFF

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

    Transparence d'un bloc / Possibilité d'escalader un bloc

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    32 Messages 5 Publieurs 4.7k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Elle est dans BlockBreakable alors

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

        Cela devrait t’aider : http://www.minecraftforgefrance.fr/showthread.php?tid=1977&page=3&highlight=%C3%A9chelle

        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
        • EryahE Hors-ligne
          Eryah
          dernière édition par

          J’ai bien trouvé la méthode. Mais cela ne change rien du tout
          Quand a la possibilité de grimpé dessus, je pense que je vais laisser tomber, puis je reprendrais lors d’une MàJ de mon mod ( Je pense la Bêta 1.0 ou la 1.0 )

          Membre fantôme
          Je développe maintenant un jeu sur UnrealEngine4


          Contact :…

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

            Pour la transparence : regarde comment est fait le verre.

            Pour grimper : la solution que j’ai donné dans l’autre topic fonctionne, si tu n’y arrive pas c’est que tu l’utilises mal.

            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
            • EryahE Hors-ligne
              Eryah
              dernière édition par

              Voici la classe de mon bloc

              package eryah.usefulthings.blocks;
              
              import net.minecraft.block.Block;
              import net.minecraft.block.material.Material;
              import net.minecraft.block.state.IBlockState;
              import net.minecraft.client.Minecraft;
              import net.minecraft.client.resources.model.ModelResourceLocation;
              import net.minecraft.entity.EntityLivingBase;
              import net.minecraft.item.Item;
              import net.minecraft.util.AxisAlignedBB;
              import net.minecraft.util.BlockPos;
              import net.minecraft.util.EnumFacing;
              import net.minecraft.util.EnumWorldBlockLayer;
              import net.minecraft.world.IBlockAccess;
              import net.minecraft.world.World;
              import net.minecraftforge.fml.common.registry.GameRegistry;
              import net.minecraftforge.fml.relauncher.Side;
              import net.minecraftforge.fml.relauncher.SideOnly;
              import eryah.usefulthings.Reference;
              import eryah.usefulthings.UsefulthingsMod;
              
              public class Scaffolding extends Block {
              
              protected Scaffolding(Material materialIn) {
              super(materialIn);
              // TODO Auto-generated constructor stub
              }
              
              public static Block scaffolding;
              
              public static void init()
              {
              scaffolding = new Scaffolding(Material.wood).setUnlocalizedName("scaffolding").setCreativeTab(UsefulthingsMod.UTTab);
              }
              
              public static void register()
              {
              GameRegistry.registerBlock(scaffolding, scaffolding.getUnlocalizedName().substring(5));
              }
              
              public static void registerRenders()
              {
              registerRender(scaffolding);
              }
              
              public static void registerRender(Block block)
              {
              Item item = Item.getItemFromBlock(block);
              Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
              }
              
              public boolean renderAsNormalBlock()
                 {
                     return false;
                 }
              
              @SideOnly(Side.CLIENT)
              
                 public EnumWorldBlockLayer getBlockLayer()
                 {
                     return EnumWorldBlockLayer.CUTOUT;
                 }
              
              public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side )
                 {
              return true;
              
                 }
              
              public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
                 {
                     return true;
                 }
              
              public boolean isFullCube()
                 {
                     return false;
                 }
              
              }
              
              

              Membre fantôme
              Je développe maintenant un jeu sur UnrealEngine4


              Contact :…

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

                public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side )
                {
                return true;
                
                }
                

                Il manque des conditions il me semble ?

                De plus tu n’as rajouté les fonctions qui permettent de grimper…

                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
                • EryahE Hors-ligne
                  Eryah
                  dernière édition par

                  Bah si, je crois que c’est

                  public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
                         {
                             return true;
                         }
                  

                  Membre fantôme
                  Je développe maintenant un jeu sur UnrealEngine4


                  Contact :…

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

                    Absolument pas, ça ne suffit pas, essaie avec çà :

                    @Override
                    public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity)
                    {
                    if (entity.onGround || entity.isCollidedVertically) { return; }
                    if (entity.motionY >= 0.1) {
                    entity.setPosition(entity.posX, entity.posY + 1.0F, entity.posZ); // Ici le + 1.0F correspond à la vitesse de l'échelle, 1.0F est très grand, je te laisse essayer avec tes valeurs
                    } else if (entity.motionY <= -0.1) {
                    Block blockUnder = world.getBlockState(new BlockPos(entity.posX, entity.posY - 3, entity.posZ)).getBlock();
                    if (blockUnder == null || blockUnder == this) {
                    entity.setPosition(entity.posX, entity.posY - 1.0F, entity.posZ); // Même valeur ici mais en négatif
                    }
                    }
                    }
                    

                    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
                    • EryahE Hors-ligne
                      Eryah
                      dernière édition par

                      Je ne grimpe toujours pas
                      Verification de la classe

                      package eryah.usefulthings.blocks;
                      
                      import net.minecraft.block.Block;
                      import net.minecraft.block.material.Material;
                      import net.minecraft.block.state.IBlockState;
                      import net.minecraft.client.Minecraft;
                      import net.minecraft.client.resources.model.ModelResourceLocation;
                      import net.minecraft.entity.Entity;
                      import net.minecraft.entity.EntityLivingBase;
                      import net.minecraft.item.Item;
                      import net.minecraft.util.AxisAlignedBB;
                      import net.minecraft.util.BlockPos;
                      import net.minecraft.util.EnumFacing;
                      import net.minecraft.util.EnumWorldBlockLayer;
                      import net.minecraft.world.IBlockAccess;
                      import net.minecraft.world.World;
                      import net.minecraftforge.fml.common.registry.GameRegistry;
                      import net.minecraftforge.fml.relauncher.Side;
                      import net.minecraftforge.fml.relauncher.SideOnly;
                      import eryah.usefulthings.Reference;
                      import eryah.usefulthings.UsefulthingsMod;
                      
                      public class Scaffolding extends Block {
                      
                      protected Scaffolding(Material materialIn) {
                      super(materialIn);
                      // TODO Auto-generated constructor stub
                      }
                      
                      public static Block scaffolding;
                      
                      public static void init()
                      {
                      scaffolding = new Scaffolding(Material.wood).setUnlocalizedName("scaffolding").setCreativeTab(UsefulthingsMod.UTTab);
                      }
                      
                      public static void register()
                      {
                      GameRegistry.registerBlock(scaffolding, scaffolding.getUnlocalizedName().substring(5));
                      }
                      
                      public static void registerRenders()
                      {
                      registerRender(scaffolding);
                      }
                      
                      public static void registerRender(Block block)
                      {
                      Item item = Item.getItemFromBlock(block);
                      Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
                      }
                      
                      public boolean renderAsNormalBlock()
                          {
                              return false;
                          }
                      
                      @SideOnly(Side.CLIENT)
                      
                         public EnumWorldBlockLayer getBlockLayer()
                         {
                             return EnumWorldBlockLayer.CUTOUT;
                         }
                      
                      public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side )
                         {
                      return true;
                      
                         }
                      
                      public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
                         {
                             return true;
                         }
                      
                      @Override
                      public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity)
                         {
                      if (entity.onGround || entity.isCollidedVertically) { return; }
                      if (entity.motionY >= 0.1) {
                      entity.setPosition(entity.posX, entity.posY + 1.0F, entity.posZ);
                      } else if (entity.motionY <= -0.1) {
                      Block blockUnder = world.getBlockState(new BlockPos(entity.posX, entity.posY - 3, entity.posZ)).getBlock();
                      if (blockUnder == null || blockUnder == this) {
                      entity.setPosition(entity.posX, entity.posY - 1.0F, entity.posZ);
                      }
                      }
                      }
                      
                      }
                      
                      

                      Membre fantôme
                      Je développe maintenant un jeu sur UnrealEngine4


                      Contact :…

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

                        Mets un System.out.println(“quelque chose”) (ou utilise un logger si tu en as un) et place le dans la fonction onEntityCollidedWithBlock pour voir si la fonction est appellée lorsque tu te colles au block et que tu appuies sur la touche avancer.

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

                          Ça fonction ne sera jamais appelé car il n’a pas réduit la boite de collision du bloc …

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

                            Pour que le bloc soit transparent :

                            
                            @Override
                            @SideOnly(Side.CLIENT)
                            public EnumWorldBlockLayer getBlockLayer()
                            {
                            return EnumWorldBlockLayer.CUTOUT_MIPPED;
                            }
                            
                            

                            Dans cette première fonction tu peux remplacer CUTOUT_MIPPED par CUTOUT ou par TRANSLUCENT, le mieux c’est de les tester tous pour voir leur différente propriété.

                            
                            @Override
                            public boolean isVisuallyOpaque()
                            {
                            return false; //Si visuellement opaque
                            }
                            
                            @Override
                            public boolean isOpaqueCube()
                            {
                            return false; //Si effectivement opaque
                            }
                            
                            @Override
                            public boolean isFullCube()
                            {
                            return true; //Si complet
                            }
                            
                            

                            Et ça c’est le reste des fonctions obligatoires, un peux de recherche par ci par là t’aurais vite conduit à ce résultat.

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

                              Plus de problème 🙂
                              Enfin… Si
                              Je peut monter uniquement si je saute contre le bloc, et je monte de 6 blocs max
                              Si il est possible de corriger le bug, voici ma classe

                              package eryah.usefulthings.blocks;
                              
                              import net.minecraft.block.Block;
                              import net.minecraft.block.material.Material;
                              import net.minecraft.block.state.IBlockState;
                              import net.minecraft.client.Minecraft;
                              import net.minecraft.client.resources.model.ModelResourceLocation;
                              import net.minecraft.entity.Entity;
                              import net.minecraft.entity.EntityLivingBase;
                              import net.minecraft.item.Item;
                              import net.minecraft.util.AxisAlignedBB;
                              import net.minecraft.util.BlockPos;
                              import net.minecraft.util.EnumFacing;
                              import net.minecraft.util.EnumWorldBlockLayer;
                              import net.minecraft.world.IBlockAccess;
                              import net.minecraft.world.World;
                              import net.minecraftforge.fml.common.registry.GameRegistry;
                              import net.minecraftforge.fml.relauncher.Side;
                              import net.minecraftforge.fml.relauncher.SideOnly;
                              import eryah.usefulthings.Reference;
                              import eryah.usefulthings.UsefulthingsMod;
                              
                              public class Scaffolding extends Block {
                              
                              protected Scaffolding(Material materialIn) {
                              super(materialIn);
                              // TODO Auto-generated constructor stub
                              }
                              
                              public static Block scaffolding;
                              
                              public static void init()
                              {
                              scaffolding = new Scaffolding(Material.wood).setUnlocalizedName("scaffolding").setCreativeTab(UsefulthingsMod.UTTab);
                              }
                              
                              public static void register()
                              {
                              GameRegistry.registerBlock(scaffolding, scaffolding.getUnlocalizedName().substring(5));
                              }
                              
                              public static void registerRenders()
                              {
                              registerRender(scaffolding);
                              }
                              
                              public static void registerRender(Block block)
                              {
                              Item item = Item.getItemFromBlock(block);
                              Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
                              }
                              
                              public boolean renderAsNormalBlock()
                                 {
                                     return false;
                                 }
                              
                              @Override
                                 public boolean isVisuallyOpaque()
                                 {
                                     return false; //Si visuellement opaque
                                 }
                              
                                 @Override
                                 public boolean isOpaqueCube()
                                 {
                                     return false; //Si effectivement opaque
                                 }
                              
                                 @Override
                                 public boolean isFullCube()
                                 {
                                     return true; //Si complet
                                 }
                              
                              @SideOnly(Side.CLIENT)
                              
                                 public EnumWorldBlockLayer getBlockLayer()
                                 {
                                     return EnumWorldBlockLayer.CUTOUT;
                                 }
                              
                              public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side )
                                  {
                                      switch(side) {
                              
                                      case DOWN:
                                      return false;
                                      default:
                                      return true;
                                      }
                              
                                  }
                              
                              public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
                                 {
                                     return true;
                                 }
                              
                              @Override
                              public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity)
                                 {
                              if (entity.onGround || entity.isCollidedVertically) { return; }
                              if (entity.motionY >= 0.1) {
                              entity.setPosition(entity.posX, entity.posY + 1.0F, entity.posZ);
                              } else if (entity.motionY <= -0.1) {
                              Block blockUnder = world.getBlockState(new BlockPos(entity.posX, entity.posY - 3, entity.posZ)).getBlock();
                              if (blockUnder == null || blockUnder == this) {
                              entity.setPosition(entity.posX, entity.posY - 1.0F, entity.posZ);
                              }
                              }
                              }
                              
                              public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
                                 {
                                     this.setBlockBoundsBasedOnState(worldIn, pos);
                                     return super.getCollisionBoundingBox(worldIn, pos, state);
                                 }
                              
                                 @SideOnly(Side.CLIENT)
                                 public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos)
                                 {
                                     this.setBlockBoundsBasedOnState(worldIn, pos);
                                     return super.getSelectedBoundingBox(worldIn, pos);
                                 }
                              
                                 public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
                                 {
                                     this.setBlockBounds(0.1F, 0.1F, 0.1F, 0.9F, 0.9F, 0.9F);
                                 }
                              
                              }
                              
                              

                              Membre fantôme
                              Je développe maintenant un jeu sur UnrealEngine4


                              Contact :…

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

                                Need Help guys…

                                Membre fantôme
                                Je développe maintenant un jeu sur UnrealEngine4


                                Contact :…

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

                                  @‘Eryah’:

                                  Need Help guys…

                                  On a cours nous, inutile de presser les gens du jour au lendemain.

                                  Le code que je t’ai donné fonctionne sur le fait que le joueur saute car sinon il faudrait regarder son motion sur les axes X et Z en regardant comment est situé le bloque par rapport à çà (libre à toi de le faire si çà te chante). Pour la vitesse de l’échelle, je t’ai dit qu’il fallait changer le “+ 1.0F” et le “- 1.0F” pour aller plus ou moins vite.

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

                                    Surtout que le règlement dit qu’il doit avoir 24h entre deux messages postés à la suite par la même personne …

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

                                      Pas de problème pour la vitesse, je veut pas faire un ascenceur qui monte jusqu’a la couche 256…
                                      Je pense savoir comment faire. J’ai crée un bloc de route. Pour cela, j’ai simplement pris entièrement le code de la soulsand, et j’ai vu cette ligne

                                      public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn)
                                         {
                                             entityIn.motionX *= 0.4D;
                                             entityIn.motionZ *= 0.4D;
                                         }
                                      

                                      Puis j’ai ajouté la Eryah’s Touch ! ( J’ai simplement fait en sorte qu’on se déplace plus vite lorsque l’ont est en contact avec la route…)

                                      public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn)
                                         {
                                             entityIn.motionX *= 1.2D;
                                             entityIn.motionZ *= 1.2D;
                                         }
                                      

                                      Je vais tester donc de faire ceci, mais avec un motionY

                                      Edit : Je suis déso de trop vous solliciter, mais je suis rester 1j sans rien faire, car je n’avais plus d’idée
                                      Edit² : (J’ai écrit le message pendant que tu écrivais le tien robin ) Je m’en excuse

                                      Membre fantôme
                                      Je développe maintenant un jeu sur UnrealEngine4


                                      Contact :…

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

                                        Utiliser un multiplicateur est une TRES mauvaise idée car si en touchant le premier block, le motion du joueur est à 1, il sera ensuite à 1.2, puis 1.44, etc ce qui fera une boucle infinie, de plus essaie de mettre un bloque tout en haut pour t’empêcher de passer : vu que tu n’as pas de condition pour çà tu vas passer à travers ce block.

                                        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
                                        • EryahE Hors-ligne
                                          Eryah
                                          dernière édition par

                                          De toute façon, ça ne marche pas 🙂
                                          Bon, je laisse le code comme il est.
                                          Je passe le topic en résolu

                                          Membre fantôme
                                          Je développe maintenant un jeu sur UnrealEngine4


                                          Contact :…

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

                                          MINECRAFT FORGE FRANCE © 2024

                                          Powered by NodeBB