Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    SOLVED Supprimer un certain nombre d'item dans l'inventaire du joueur

    1.9.x et 1.10.x
    1.10.x
    4
    8
    2476
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Gabs
      Gabs last edited by

      Bonsoir,
      Comme vous l’avez lu, j’aimerais pouvoir supprimé par exemple 9 items de l’inventaire du joueur.

      J’ai la base de mon code mais je bloque, je ne vois pas comment faire du tout, si vous pouvez me donner un petit coup de pousse ça serrait super sympa 😉

      Code:

      
      if(player.inventory.hasItemStack(new ItemStack(CSCItems.item_lingottraite)))
                  {
                  for(int i = 0; i < player.inventory.getSizeInventory(); i++)
                  {
                  if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == CSCItems.item_lingottraite)
                  {
                  System.out.println(i);
                  player.inventory.removeStackFromSlot(i);//La ça supprime tout les items :/
                  }
                  }
                  }
      
      

      Après ça je vois pas du tout j’ai tout essayer je galère depuis 2 heures sur un truc tout con j’en suis sur.

      1 Reply Last reply Reply Quote 0
      • jglrxavpok
        jglrxavpok Modérateurs last edited by

        Les objets ItemStack ont une méthode pour changer la taille du stack (setStackSize surement), utilise ça plutôt.

        Et c’est normal que tous les items soient supprimés si tu dis au jeu de retirer le stack entier.

        1 Reply Last reply Reply Quote 0
        • Gabs
          Gabs last edited by

          Bah il y stacksize mais je vois pas comment l"utiliser en fait ^^
          je sais que on peut faire: player.inventory.getStackInSlot(i).stacksize– ou ++ mais c’est pareil ça change tout les items ce qui est normal.

          1 Reply Last reply Reply Quote 0
          • Sorax
            Sorax last edited by

            A mon avis, le problème viens du ==, utilise la méthode .equals(Object o) qui est plus approprié lorsqu’on travaille avec des objets.

            1 Reply Last reply Reply Quote 0
            • robin4002
              robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

              Il faut mettre un break à la fin de la condition si tu veux que ça retire les items sur seulement un stack et pas sur tous ceux de l’inventaire.

              1 Reply Last reply Reply Quote 0
              • Gabs
                Gabs last edited by

                @‘robin4002’:

                Il faut mettre un break à la fin de la condition si tu veux que ça retire les items sur seulement un stack et pas sur tous ceux de l’inventaire.

                En fait, les items que j’utilise ne se stack pas, mais tu penses que le break je peux le mettre après 8 slots parcourus ?

                1 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                  Ah, dans ce cas faut faire comme ça :

                  
                  if(player.inventory.hasItemStack(new ItemStack(CSCItems.item_lingottraite)))
                  
                  {
                      int count = 0;
                      for(int i = 0; i < player.inventory.getSizeInventory(); i++)
                      {
                             if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == CSCItems.item_lingottraite)
                             {
                                  player.inventory.removeStackFromSlot(i);
                                  count++;
                                  if(count > 8)
                                  {
                                       break;
                                  }
                  
                             }
                       }
                  }
                  

                  Ce genre d’information, ça serait bien de le préciser directement dans le premier message au lieu d’attendre 3 réponses …

                  1 Reply Last reply Reply Quote 1
                  • Gabs
                    Gabs last edited by

                    Oui désolé… merci!

                    1 Reply Last reply Reply Quote 0
                    • 1 / 1
                    • First post
                      Last post
                    Design by Woryk
                    Contact / Mentions Légales / Faire un don

                    MINECRAFT FORGE FRANCE © 2018

                    Powered by NodeBB