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

    Résolu Détécter un outil

    1.7.x
    1.7.10
    3
    9
    1423
    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.
    • Snyker
      Snyker dernière édition par

      Bonjour,

      je souhaite faire en sorte que mon block ne puisse être casser que par un outils spécifier ( juste ceux de minecraft )
      mon code du block :

      public class BogoPlank extends Block{
      
      public BogoPlank(Material material) {
      super(material);
      this.setCreativeTab(CreativeTabs.tabBlock);
             this.setHardness(5.0F);
      this.setBurning();
      }
      
                 public Block getBlockDropped(int stack, Random rand, int metadata)
         {
      return Principal.bogoplanks;
         }
      
      @Override
      public boolean isWood(IBlockAccess world, int x, int y, int z)
      {
           return true;
      }
      
      @Override
      public int getFlammability(IBlockAccess world, int x, int y, int z, ForgeDirection face)
         {
             return 25;
         }
      @Override
         public boolean isFlammable(IBlockAccess world, int x, int y, int z, ForgeDirection face)
         {
             return true;
         }
      @Override
         public int getFireSpreadSpeed(IBlockAccess world, int x, int y, int z, ForgeDirection face)
         {
             return 25;
         }
      
         }
      

      je pensait que en rajoutant cela aurait fonctionner. Mais ce n’est pas le cas ^^

      private String toolMaterial;
      
      public BogoPlank(Material material) {
      super(material);
             this.toolMaterial = "axe";
      this.setCreativeTab(CreativeTabs.tabBlock);
             this.setHardness(5.0F);
      this.setBurning();
      }
      
         public Block getBlockDropped(int stack, Random rand, int metadata)
         {
          if(toolMaterial != null){
      return Principal.bogoplanks;
          } return null;
         }
      

      De plus j’ai chercher dans les classes Block & ItemTools je ne parviens pas à trouver le bon code.

      Aucune signature n'est disponible pour une barre chocolatée.

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

        Tu peux utiliser la fonction getPlayerRelativeBlockHardness
        Si tu retourne -1 le bloc ne sera pas destructible. Si tu retourne une valeur positive ça sera le temps pour détruire le bloc :

        ​ public float getPlayerRelativeBlockHardness(EntityPlayer player, World world, int x, int y, int z)
        {
        if(player.getCurrentEquippedItem() != null && (player.getCurrentEquippedItem().getItem() == Items.itemVoulu1 || player.getCurrentEquippedItem().getItem() == Items.itemVoulu2))
        {
        return 5.0F;
        }
        return -1.0F;
        }
        
        1 réponse Dernière réponse Répondre Citer 0
        • EmotionFox
          EmotionFox dernière édition par

          En version 1.8 il faut utiliser ça :

          public TonBloc()
          {
             super(Material.rock);
             this.setHarvestLevel("axe", 4);
          }
          

          axe étant l’outil et 4 le niveau de l’outil, 3 étant le diamant, 2 le fer, 1 la pierre, 0 le bois et l’or.

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

            Merci robin !

            Par contre il ne prend pas en compte return 5.0F , il me le casse instant.
            Mais il prend bien en compte le -1.0F.

            EmotionFox , il n’y aurai pas le même en 1.7.10 ? Car en tapant il me mais bien toolClass & level, mais ne marche pas en jeux.

            Aucune signature n'est disponible pour une barre chocolatée.

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

              Comment ça ça ne fonctionne pas, aucun bloc dropé ou plutôt bloc dropé avec n’importe quel outil ?

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

                Block dropé avec n’importe quel outil ^^

                Aucune signature n'est disponible pour une barre chocolatée.

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

                  setHarvestLevel

                  permet juste de rendre le bloc plus rapide à se détruire avec la hache / pelle / pioche, et dans le cas de la pioche ne rien dropper si la pioche n’est pas assez forte.

                  Seul mon code permet de rendre le code incassable sauf si le bon outil est utilisé. Mets 25 à la place de 5, 5 c’est trop peu.

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

                    Merci à vous deux, robin ton code ma l’air intéressant pour d’autre bloc mais pas pour celui-ci ^^.

                    Aucune signature n'est disponible pour une barre chocolatée.

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

                      C’est sûr, avec cette fonction + l’event BlockEvent.BreakEvent on peut faire beaucoup de chose. Je les utilises beaucoup dans mon mod privatizer : https://github.com/FFMT/Privatizer

                      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