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

    Résolu Clé à molette (Wrench)

    1.7.x
    1.7.10
    4
    6
    1929
    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.
    • Romain120105
      Romain120105 dernière édition par

      Bonjour à tous.
      Ceci est mon premier topic donc je ne sais pas vraiment comment le rédiger, mais passons. 😄  (Je débute en modding)

      Alors voilà ce que je souhaite faire :
      Je souhaite faire une clé à molette (wrench) permettant de détruire les câbles et autres machines.

      J’ai fait pas mal de recherche sur MinecraftForgeFrance mais sans succés.
      Si quelqu’un pourrait m’aider s’il vous plâit ? 😄

      J'adore le modding !  :D

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

        Bonjour ,
        Il faut que tu crée ta wrench comme un outil et que tu suives ce tuto : ici en suivant la partie “Multiple Tool types in a single tool” et en modifiant un peu le code au niveau de “private static Set effectiveAgainst” pour custom les blocks que la wrench peut casser.

        Si tu comprends pas assez l’anglais , je suis en train de chercher un tuto francais ! EDIT : j’ai pas trouvé 😕

        Mes Sites(Mes Sites)
        |
        |    Site général : Game & play
        |   Site de projets (en dev !) :Infinite's Ressources
        J'ai et je suis content d'avoir 16,75 points d'ICRating

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

          Merci beaucoup je vais aller voir 🙂
          Sinon je pensais passer par le onBlockActived dans la classe des blocks dont je veut affecter, tu en penses quoi ? (je fais des tests)

          EDIT : J’ai fait ce code mais ça ne marche pas, quand je clique sur mon block ça ne fais rien…

          public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){
             if(player.getHeldItem().getItem() == EnergyzedItems.wrench) {
              Block b = world.getBlock(x, y, z);
              b.breakBlock(world, y, z, x, EnergyzedBlocks.guiTest, z);
             }else if (player.getHeldItem().getItem() == null){
              return true;
             }
           }
          

          Enfaite j’ai fait ce code dans la classe de mon block :

          public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){
          
            if(player.getHeldItem().getItem() == EnergyzedItems.wrench) {
              Block b = world.getBlock(x, y, z);
              b.breakBlock(world, y, z, x, EnergyzedBlocks.guiTest, z);
              player.addChatMessage(new ChatComponentTranslation("Bien joué"));
             }else{
          
              if(world.isRemote) {
               return true;
              }
              else {
               player.openGui(Main.instance, 0, world, x, y, z);
               return true;
              }
          
             }
            if(player.getHeldItem().getItem().equals(null)) {
             player.openGui(Main.instance, 0, world, x, y, z);
             return true;
            }
             return false;
          
           }
          

          Ca envois bien un message au joueur quand on clique avec la wrench
          Ca ouvre bien le gui quand on clique avec un item random
          Mais quand on à rien le jeu crash …

          Merci d"avance 🙂

          J'adore le modding !  :D

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

            player.getHeldItem() est null si le joueur n’a pas d’item, donc player.getHeldItem().getItem() cause un npe.

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

              Le prolème est que tu ne regardes pas si l’item en main du joueur existe bien :

               if(player.getHeldItem().getItem() == EnergyzedItems.wrench)
              

              Devient :

               if(player.getHeldItem() != null && player.getHeldItem().getItem() == EnergyzedItems.wrench)
              

              Et ce code sert à quoi ?

                if(player.getHeldItem().getItem().equals(null)) {
                player.openGui(Main.instance, 0, world, x, y, z);
                return true;
               }
                return false;
              

              Car de 1 le if() est faux, et de 2 c’est normal que ce code ne soit appelé excusivement quand le bloc est cassé ?

              PS : Utilises des balises java c’est plus lisible ^^

              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                @‘AymericRed’:

                Le prolème est que tu ne regardes pas si l’item en main du joueur existe bien :

                 if(player.getHeldItem().getItem() == EnergyzedItems.wrench)
                

                Devient :

                 if(player.getHeldItem() != null && player.getHeldItem().getItem() == EnergyzedItems.wrench)
                

                Et ce code sert à quoi ?

                  if(player.getHeldItem().getItem().equals(null)) {
                  player.openGui(Main.instance, 0, world, x, y, z);
                  return true;
                 }
                  return false;
                

                Car de 1 le if() est faux, et de 2 c’est normal que ce code ne soit appelé excusivement quand le bloc est cassé ?

                PS : Utilises des balises java c’est plus lisible ^^

                D’accord je vais tester pour le code 😉
                Le code permet de faire que mon gui s’ouvre (c’est un bloc coffre)
                Merci beaucoup ^^


                Merci beaucoup à tous les gars ça fonctionne nikel 🙂

                J'adore le modding !  :D

                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