MFF

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

    Faire changer un item avec un clique droit sur un block

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.9.4
    39 Messages 4 Publieurs 6.2k 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.
    • TituyaT Hors-ligne
      Tituya
      dernière édition par

      Je vais essaye cela, je vous dit ca tout à l’heure
      [EDIT]
      J’ai fait ceci mais cela ne fonctionne pas :,C, la fonction me demande de return et de plus le code ne supprime pas l’item en main

      public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
          {
               if(player.getHeldItemMainhand() != null && player.getHeldItemMainhand().getItem() == ItemsMod.supT)
               {
                   EntityItem entityItem =new EntityItem(world, player.posX, player.posY, player.posZ, new ItemStack(ItemsMod.dust));
                   world.spawnEntityInWorld(entityItem); // je fais spawn l'entité
               }
               else
               {
                   player.addChatMessage(new ChatComponentText("L'item utilisé n'est pas le bon !"));
               }
          }
      

      et au passage, j’ai une erreur sur ChatComponentText, il me propose de crée un classe, moi je souhaite juste marqué qelque chose dans le chat, avec si possible une couleur.

      Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

        Coucou ,
        Pour le ChatComponentText , tu peux le remplacer par

        
        player.addChatMessage(new ChatComponentTranslation("mod.nomdelitem"));
        
        

        puis rajouter dans ton fichier lang :

        
        mod.nomdelitem=§4L'item utilisé n'est pas le bon !
        
        

        le §4 est le code couleur qui est changeable (voir touts les codes couleurs : ici)

        Pour le reste je sais pas car je code pas en 1.9 , désolé …

        En éspérant que ceci t’aura aidé

        EDIT:Essaie de retourner le boolean avec return true; ou return false;

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

          merci 😄
          pour le reste c’est pas grave, tu m’a aidé c’est le principal !
          [EDIT]
          meme ton code ne fonctionne pas 😕

          Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

            Je viens de regarder vite fait et je pense que ce code fonctionne :

            
            [size=mediumplayer.addChatComponentMessage(new TextComponentString(Message));]
            
            

            tient moi au courant 🙂

            EDIT : Lit le message de @Plaigon

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

              Ce n’est pas son code qui ne fonctionne pas, mais ton utilisation.
              Autre chose, je t’avais conseillé de set une nouvelle valeur de InventoryPlayer#currentItem, mais toi tu es parti sur le spawn d’une entity item. Pourquoi ? Ne viens pas t’étonner que ton item ne change pas après ^^’
              Les return sont à ajouter en fonction de si ton blocl à fonctionné comme tu souhaitais (return true), ou non (return false).

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

                Ouais mais je ne sais pas faire ce que tu dit, je pensais alors que faire Spawn l’item et supprime celui dans la main etait une bonne idee, comment faire ce que tu dit alors ? Et le msg merci 😄

                Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

                  Essaie ceci :
                  player.inventory.currentItem = new ItemStack(ItemsMod.dust);

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

                    Je le met ou ? Apres le if

                    Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

                      Dedans

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

                        Tu le mets là où tu veux voir apparaître ton nouvel item en main. Mais je me suis trompé, currentItem renvoie un integer qui est l’index du slot actuellement occupé. Du coup il faudrait mieux utiliser la méthode InventoryPlayer#setInventorySlotContents, avec en premier argument l’index du slot, puis ensuite l’itemstack. Tu as désormais tous les élément, je te laisse faire !

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

                          Non, ca ne fonctionne pas, ça dit "type mismatch: cannot convert from ItemStack to int

                          Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

                            Partage ton code ça a l’air pas compliqué ,je vais essayer de t’aider

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

                              Euh j’ai pas tout compris … je débute vraiment en modding …

                              Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

                                Alors ?

                                EDIT : Ok

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

                                  Attendez un peu, je fait quelque chose, je vous partage le code actuelle dans quelques minutes

                                  Voila

                                  package com.tuto.mod.blocks;
                                  
                                  import com.tuto.mod.init.ItemsMod;
                                  
                                  import net.minecraft.block.Block;
                                  import net.minecraft.block.material.Material;
                                  import net.minecraft.block.state.IBlockState;
                                  import net.minecraft.entity.item.EntityItem;
                                  import net.minecraft.entity.player.EntityPlayer;
                                  import net.minecraft.item.ItemStack;
                                  import net.minecraft.util.EnumFacing;
                                  import net.minecraft.util.math.BlockPos;
                                  import net.minecraft.util.text.TextComponentString;
                                  import net.minecraft.util.text.TextComponentTranslation;
                                  import net.minecraft.util.text.TextFormatting;
                                  import net.minecraft.world.World;
                                  
                                  public class MachineMod extends Block
                                  {
                                  
                                      public MachineMod(Material materialIn)
                                      {
                                          super(materialIn);
                                          setResistance(3F);
                                          setHardness(3F);
                                          setHarvestLevel("pickaxe", 1);
                                      }
                                  
                                      public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
                                      {
                                           if(player.getHeldItemMainhand() != null && player.getHeldItemMainhand().getItem() == ItemsMod.supT)
                                           {
                                               player.inventory.setInventorySlotContents(new ItemStack(ItemsMod.dust));
                                           }
                                  
                                           else
                                           {
                                               player.addChatMessage(new TextComponentString("L item n est pas le bon"));
                                           }
                                      }
                                  
                                  }
                                  

                                  il manque quelque chose entre setInventorySlotContents et new Item stack …

                                  Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

                                    Oui, l’index du slot concerné, qu’on obtient grâce à la variable currentItem, précédemment énoncé.

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

                                      comme ça ?

                                      
                                      package com.tuto.mod.blocks;
                                      
                                      import com.tuto.mod.init.ItemsMod;
                                      
                                      import net.minecraft.block.Block;
                                      import net.minecraft.block.material.Material;
                                      import net.minecraft.block.state.IBlockState;
                                      import net.minecraft.entity.item.EntityItem;
                                      import net.minecraft.entity.player.EntityPlayer;
                                      import net.minecraft.item.ItemStack;
                                      import net.minecraft.util.EnumFacing;
                                      import net.minecraft.util.math.BlockPos;
                                      import net.minecraft.util.text.TextComponentString;
                                      import net.minecraft.util.text.TextComponentTranslation;
                                      import net.minecraft.util.text.TextFormatting;
                                      import net.minecraft.world.World;
                                      
                                      public class MachineMod extends Block
                                      {
                                      
                                          public MachineMod(Material materialIn)
                                          {
                                              super(materialIn);
                                              setResistance(3F);
                                              setHardness(3F);
                                              setHarvestLevel("pickaxe", 1);
                                          }
                                      
                                          public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
                                          {
                                               if(player.getHeldItemMainhand() != null && player.getHeldItemMainhand().getItem() == ItemsMod.supT)
                                               {
                                                   player.inventory.setInventorySlotContents(player.inventory.currentItem, new ItemStack(ItemsMod.dust));
                                               }
                                      
                                               else
                                               {
                                                   player.addChatMessage(new TextComponentString("L'item n'est pas le bon"));
                                               }
                                          }
                                      
                                      }
                                      
                                      

                                      Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

                                        Je teste et je te réponds
                                        Essaye de faire ça :

                                        
                                        player.inventory.setInventorySlotContents(player.inventory.currentItem, new ItemStack(ItemsMod.dust));
                                        
                                        

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

                                          non ça ne fonctionne pas, ce n’est pas ça alors… je vois pas vraiment quoi mettre en tant qu’index


                                          C’est exactement ce que j’ai mit avant ;D Et sinon non toujours pas 😢

                                          Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

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

                                            Moi de mon coté en 1.7.10 l’item est remplacé pendant un millième de seconde
                                            et toi ?

                                            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
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB