MFF

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

    Savoir si un item est présent dans l'inventaire

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    27 Messages 4 Publieurs 5.9k 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.
    • Y Hors-ligne
      yveslefou
      dernière édition par

      @‘Dylem’:

      excuse-moi, j’ai répondu trop rapidement. Ce serait plutôt ça :

      
      1.  **public** ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
      2.  **if** (!world.isRemote && player.inventory.hasItemStack(new ItemStack(tonItem)))  {
      3.  }
      4.  }
      
      

      A merci, tu m’aides énormément la tu peus pas savoir :3 juste dernier petite chose c’est bien le nom non localisé que je dois mettre à la place du ‘tonItem’ ? Juste pour être sur

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

        Pas du tout, c’est l’Item lui même. Par exemple, pour une pomme, ce serait Items.apple (Pour ton Item ce serait donc TonFichierDenregistrement.TonItem)

        Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

        1 réponse Dernière réponse Répondre Citer 1
        • Y Hors-ligne
          yveslefou
          dernière édition par

          @‘Dylem’:

          Pas du tout, c’est l’Item lui même. Par exemple, pour une pomme, ce serait Items.apple (Pour ton Item ce serait donc TonFichierDenregistrement.TonItem)

          Un énorme merci pour ton aide mais j’ais du faire une erreur idiote car j’ais pas de message ou d’effet quand je fais un clic droit avec :

          public class Sort1 extends Item{

          public ItemStack onItemRightClick(World world,ItemStack stack,EntityPlayer player)
          {
          if (!world.isRemote && player.inventory.hasItemStack(new ItemStack(Main.Mana))) {
          player.addPotionEffect(new PotionEffect(3, 200, 2));

          }
          else{
          player.addChatMessage(new ChatComponentText(“[Magie] Mana insuffisant”));
          }
          return stack ;

          }
          }

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

            J’ai testé ceci et ça marche :

            public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
            if (!world.isRemote && player.inventory.hasItemStack(new ItemStack(Items.apple))) {
            System.out.println("j'ai une pomme !");
            }
            }
            

            Le problème vient donc d’autre chose, eclipse ne te met pas d’erreur sur le Main.mana ?

            Sinon, ça pourrait venir du fait que tu n’aies pas de constructeur

            public Sort1(String name) {
            this.setUnlocalizedName(name);
            }
            

            par exemple.

            Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

              Les Item n’ont pas forcement besoin d’un constructeur, ensuite il est possible que l’itemstack de mana qu’il ai sur lui n’est pas le même métadata (vu que c’est un truc de mana j’imagine que ce n’est pas infini et du coup ya une durabilité où un truc comme ça (peut-être));
              Et les arguments de la fonctions ne sont pas bons
              Donc utilise plutôt :

              
              public class Sort1 extends Item{
              
              public ItemStack onItemRightClick(ItemStack itemStackIn, World world, EntityPlayer player)
              {
              if (!world.isRemote && player.inventory.hasItem(Main.Mana)) {
              player.addPotionEffect(new PotionEffect(3, 200, 2));
              
              }
              else{
              player.addChatMessage(new ChatComponentText("[Magie] Mana insuffisant"));
              }
              return stack ;
              
              }
              }
              
              
              1 réponse Dernière réponse Répondre Citer 0
              • Y Hors-ligne
                yveslefou
                dernière édition par

                J’avais lue sur le site de minecraft forge france qu’il n’y avais plus besoin de constructeur en 1.7.10. Du coup cela ce résume par le codes suivant de la main :

                Mana = new Mana().setUnlocalizedName(“Mana_”).setTextureName(MODID +“:Sort 1”).setCreativeTab(CreativeTabs.tabMaterials);
                GameRegistry.registerItem(Mana, “Ma_na”);

                Il y aussi une class de faite pour le mana mais elle est vide du coup je vais déjà voir pour ce que tu viens de me dire et me renseigner sur les constructeurs. Un énorme merci à toi ^^

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

                  Le problème vient du fait que les arguments de la fonctions ne sont pas le bon ordre, le constructeur n’a rien à voir

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

                    @‘BrokenSwing’:

                    Les Item n’ont pas forcement besoin d’un constructeur, ensuite il est possible que l’itemstack de mana qu’il ai sur lui n’est pas le même métadata (vu que c’est un truc de mana j’imagine que ce n’est pas infini et du coup ya une durabilité où un truc comme ça (peut-être));
                    Et les arguments de la fonctions ne sont pas bons
                    Donc utilise plutôt :

                    
                    public class Sort1 extends Item{
                    
                    public ItemStack onItemRightClick(ItemStack itemStackIn, World world, EntityPlayer player)
                    {
                    if (!world.isRemote && player.inventory.hasItem(Main.Mana)) {
                    player.addPotionEffect(new PotionEffect(3, 200, 2));
                    
                    }
                    else{
                    player.addChatMessage(new ChatComponentText("[Magie] Mana insuffisant"));
                    }
                    return stack ;
                    
                    }
                    }
                    
                    

                    Il n’y a pas de méthadata mais il est vrai que j’avais les avais mis dans le mauvais ordre sans m’en rendre compte mais maintenant bien que j’ais mes manas dans l’inventaire cela les détecte pas mais je pense que je peus régler sa en regardant un peu merci beaucoup

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

                      Non je parle de l’ORDRE, d’abord l’ItemStack, puis le World puis l’EntityPlayer, tu peut laisser stack comme nom de varariable
                      EDIT : Quand tu override une fonction pense toujours à l’annoté comme ça tu sais si tu as fait une erreur

                      1 réponse Dernière réponse Répondre Citer 1
                      • DylemD Hors-ligne
                        Dylem
                        dernière édition par

                        J’ai testé le code en 1.8.9 donc je ne peux pas garantir qu’il marche en 1.7, sinon par convention on ne donne pas de majuscule aux variables 😉
                        Tu as bien définit ton Item en public static ?

                        Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                          Oui il est bien en public ^^

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

                            Il faut que ta fonction soit comme ça et c’est tout :

                            
                            @Override
                            public ItemStack onItemRightClick(ItemStack stack, World world,EntityPlayer player)
                            {
                            if (!world.isRemote && player.inventory.hasItemStack(new ItemStack(Main.Mana))) {
                            player.addPotionEffect(new PotionEffect(3, 200, 2));
                            
                            }
                            else{
                            player.addChatMessage(new ChatComponentText("[Magie] Mana insuffisant"));
                            }
                            return stack ;
                            
                            }
                            }
                            
                            
                            1 réponse Dernière réponse Répondre Citer 0
                            • DylemD Hors-ligne
                              Dylem
                              dernière édition par

                              Sinon effectivement je n’avais pas vu mais ça ne marchera pas si tu change l’ordre des paramètres…

                              Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                                en effet le problémé venais bien de l’ordre mais maintenant j’ais un tout petit soucie mais je en regardant un peu dessus je suis sur que je peus le regler tout seul. C’est que cela me donne l’effet et m’affiche le message.

                                Sinon un grand merci à vous deux que dis je un énorme ^^

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

                                  @‘yveslefou’:

                                  en effet le problémé venais bien de l’ordre mais maintenant j’ais un tout petit soucie mais je en regardant un peu dessus je suis sur que je peus le regler tout seul. C’est que cela me donne l’effet et m’affiche le message.

                                  Sinon un grand merci à vous deux que dis je un énorme ^^

                                  C’est tout simplement parce que le world.isRemote sera vrai et donc il affiche le message.

                                  @Override
                                  public ItemStack onItemRightClick(ItemStack stack, World world,EntityPlayer player)
                                  {
                                  if (!world.isRemote) {
                                  if player.inventory.hasItemStack(new ItemStack(Main.Mana)) {
                                  player.addPotionEffect(new PotionEffect(3, 200, 2));
                                  }
                                  else{
                                  player.addChatMessage(new ChatComponentText("[Magie] Mana insuffisant"));
                                  }
                                  }
                                  return stack ;
                                  
                                  }
                                  

                                  Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                                    @‘Dylem’:

                                    @‘yveslefou’:

                                    en effet le problémé venais bien de l’ordre mais maintenant j’ais un tout petit soucie mais je en regardant un peu dessus je suis sur que je peus le regler tout seul. C’est que cela me donne l’effet et m’affiche le message.

                                    Sinon un grand merci à vous deux que dis je un énorme ^^

                                    C’est tout simplement parce que le !world.isRemote sera faux et donc il affiche le message.

                                    @Override
                                    public ItemStack onItemRightClick(ItemStack stack, World world,EntityPlayer player)
                                    {
                                    if (!world.isRemote) {
                                    if player.inventory.hasItemStack(new ItemStack(Main.Mana)) {
                                    player.addPotionEffect(new PotionEffect(3, 200, 2));
                                    }
                                    else{
                                    player.addChatMessage(new ChatComponentText("[Magie] Mana insuffisant"));
                                    }
                                    }
                                    return stack ;
                                    
                                    }
                                    

                                    Je venais juste de trouver la raison quand tu as publié le message. Je te remercie encore car surtout grâce à toi le mod pourra voir le jour.

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

                                      A en faite la solution trouvé tout les deux ne peus pas convenir car cela fais crash le jeux.

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

                                        En faite c’est bon il y avais juste une petit erreur dans ce que tu as envoyé et un } qui manqué dans ma version. Encore merci à toi

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

                                          Minimum 24h entre 2 messages.

                                          PS : si le sujet est résolu, pense à la balise

                                          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