MFF

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

    Rendre un bloc destructible + vite avec un type d'outil?

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.8.9
    23 Messages 5 Publieurs 4.6k 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.
    • BrokenSwingB Hors-ligne
      BrokenSwing Moddeurs confirmés Rédacteurs
      dernière édition par

      Donc si je comprend bien pour ce bloc tu veux qu’on ne puisse le casser qu’avec la pelle :

      
      @Override
      public boolean canHarvestBlock(IBlockAccess world, BlockPos pos, EntityPlayer player)
      {
      if(!(player.getHeldItem().getItem() instanceof ItemSpade)) {
      return false;
      }
      return super.canHarvestBlock(world, pos, player);;
      }
      
      

      J’ai pas testé, dis-moi

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

        La fonction marche pour ne casser qu’avec la pelle.

        Mais j’aimerais en fait que mon bloc de limon se casse plus VITE à la pelle.

        J’aimerais aussi faire en sorte que le bloc ne se casse pas à la main dans un premier temps.
        Ensuite, qu’il ne se casse pas avec la pioche ET la hache par exemple.

        Je suis la terreur un quart née!
        #Diablo #HOTS

        1 réponse Dernière réponse Répondre Citer 0
        • BrokenSwingB Hors-ligne
          BrokenSwing Moddeurs confirmés Rédacteurs
          dernière édition par

          Ah, oui désolé j’avais mal vu, donc comme le sable en fait, essaie avec Material.sand

          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

            this.setHarvestLevel(“spade”, 0);
            dans le constructeur.

            • material.sand
            1 réponse Dernière réponse Répondre Citer 0
            • BrokenSwingB Hors-ligne
              BrokenSwing Moddeurs confirmés Rédacteurs
              dernière édition par

              Mais je me demandais robin, est ce que l’harvestLevel ne vas pas empêcher de le casser à la main ? Du moins il n’y aura pas de drop

              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

                Non.

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

                  Ca ne fonctionne pas.

                  Ligne de la classe principale:

                  limonBloc = new LimonBloc(Material.sand).setUnlocalizedName("limonbloc").setHardness(1.15F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabBlock);
                  

                  Ligne de la classe ‘LimonBloc.java’ :

                  package fr.vorax.egypte.common;
                  
                  import net.minecraft.block.Block;
                  import net.minecraft.block.material.Material;
                  import net.minecraft.block.state.IBlockState;
                  import net.minecraft.entity.Entity;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.item.ItemSpade;
                  import net.minecraft.potion.Potion;
                  import net.minecraft.potion.PotionEffect;
                  import net.minecraft.util.BlockPos;
                  import net.minecraft.world.IBlockAccess;
                  import net.minecraft.world.World;
                  import net.minecraftforge.client.event.sound.PlaySoundEvent;
                  
                  public class LimonBloc extends Block
                  {
                  
                      public LimonBloc(Material material)
                      {
                          super(material);
                          this.setHarvestLevel("spade", 0);
                      }
                  
                      @Override
                      public boolean canHarvestBlock(IBlockAccess world, BlockPos pos, EntityPlayer player)
                      {
                          if(!(player.getHeldItem().getItem() instanceof ItemSpade)) {
                              return false;
                          }
                  
                          return super.canHarvestBlock(world, pos, player);
                      }
                  
                  }
                  
                  

                  Je suis la terreur un quart née!
                  #Diablo #HOTS

                  1 réponse Dernière réponse Répondre Citer 0
                  • BrokenSwingB Hors-ligne
                    BrokenSwing Moddeurs confirmés Rédacteurs
                    dernière édition par

                    Mais du coup enlève la fonction canHarvestBlcok

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

                      Ca ne change rien quand je l’enlève.

                      Je suis la terreur un quart née!
                      #Diablo #HOTS

                      1 réponse Dernière réponse Répondre Citer 0
                      • BrokenSwingB Hors-ligne
                        BrokenSwing Moddeurs confirmés Rédacteurs
                        dernière édition par

                        C’est à dire, il y a quoi comme problème ?

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

                          Que ce soit à la main ou tous les outils, c’est le même temps pour casser le bloc.

                          Je suis la terreur un quart née!
                          #Diablo #HOTS

                          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

                            C’est shovel et non spade.
                            Autant pour moi.

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

                              Ah oui c’est vrai, c’est malin qu’ils aient mis spade au lieu de shovel tiens…
                              Enfin bon, ça marche.

                              Mais pour que la pelle ET la pioche soient les seuls à droper le cube (et que la pioche n’aille pas forcément aussi vite que la pelle), il faut faire comment?
                              Après, je ne pense pas avoir d’autres questions, je préfère tout poser ici plutôt que de refaire d’autres sujets à chaque fois que je n’arrive pas à faire une petite chose.

                              Je suis la terreur un quart née!
                              #Diablo #HOTS

                              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

                                Via un event :

                                   @SubscribeEvent
                                   public void onBlockDrop(BlockEvent.HarvestDropsEvent event)
                                   {
                                       if(event.state.getBlock() == ClassePrincipale.bloc && event.harvester != null && event.harvester.getCurrentEquippedItem() != null)
                                       { // si c'est ton bloc et que le bloc a été détruit par un joueur et que l'item qu'il a en main n'est pas nul
                                           Set <string>toolClass = event.harvester.getCurrentEquippedItem().getItem().getToolClasses(event.harvester.getCurrentEquippedItem()); // le type d'outil
                                           if(!toolClass.contains("pickaxe") && !toolClass.contains("shovel"))
                                           { // s'il ne contient ni pickaxe ni shovel (donc si ce n'est pas une pioche ni une pelle)
                                               event.drops.clear(); // on retire le drop
                                           }
                                       }
                                   }
                                ```</string>
                                1 réponse Dernière réponse Répondre Citer 0
                                • VoraXV Hors-ligne
                                  VoraX
                                  dernière édition par

                                  J’ai essayé dans la classe ‘Limon Bloc.java’:

                                  package fr.vorax.egypte.common;
                                  
                                  import java.util.Set;
                                  
                                  import net.minecraft.block.Block;
                                  import net.minecraft.block.material.Material;
                                  import net.minecraft.entity.player.EntityPlayer;
                                  import net.minecraft.item.ItemSpade;
                                  import net.minecraft.util.BlockPos;
                                  import net.minecraft.world.IBlockAccess;
                                  import net.minecraftforge.event.world.BlockEvent;
                                  import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
                                  
                                  public class LimonBloc extends Block
                                  {
                                  
                                      public LimonBloc(Material material)
                                      {
                                          super(material);
                                          this.setHarvestLevel("shovel", 0);
                                      }
                                  
                                      @SubscribeEvent
                                      public void onBlockDrop(BlockEvent.HarvestDropsEvent event)
                                      {
                                          if(event.state.getBlock() == ModEgypte.limonBloc && event.harvester != null && event.harvester.getCurrentEquippedItem() != null)
                                          { // si c'est ton bloc et que le bloc a été détruit par un joueur et que l'item qu'il a en main n'est pas nul
                                              Set <string>toolClass = event.harvester.getCurrentEquippedItem().getItem().getToolClasses(event.harvester.getCurrentEquippedItem()); // le type d'outil
                                              if(!toolClass.contains("pickaxe") && !toolClass.contains("shovel"))
                                              { // s'il ne contient ni pickaxe ni shovel (donc si ce n'est pas une pioche ni une pelle)
                                                  event.drops.clear(); // on retire le drop
                                              }
                                          }
                                      }
                                  
                                  }
                                  
                                  

                                  Ca ne fonctionne pas.</string>

                                  Je suis la terreur un quart née!
                                  #Diablo #HOTS

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

                                    Si tu veux utiliser un event : https://www.minecraftforgefrance.fr/showthread.php?tid=716

                                    Sinon tu peux toujours modifier la fonction correspondante dans ton block (personnellement je préfère cette méthode si j’ai accès au 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
                                    • 1
                                    • 2
                                    • 1 / 2
                                    • Premier message
                                      Dernier message
                                    Design by Woryk
                                    ContactMentions Légales

                                    MINECRAFT FORGE FRANCE © 2024

                                    Powered by NodeBB