MFF

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

    Nombre d'items dans l'inventaire

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    25 Messages 4 Publieurs 6.8k 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.
    • SCAREXS Hors-ligne
      SCAREX
      dernière édition par

      Tu peux utiliser une boucle for en accédant à l’inventaire du joueur avec Minecraft.getMinecraft().thePlayer.

      PS : penses à utiliser les balises java pour que l’on puisse voir les lignes plus facilement.

      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 1
      • PlasManiaP Hors-ligne
        PlasMania
        dernière édition par

        C’est ce à quoi j’avais penser, une boucle for qui test pour chaque slot si l’item est de l’emeraude, et si oui ajouter à une variable le nombre d’émeraudes, mais comment testez si l’item est de l’émeraude et savoir le nombre d’item dans un slot ?

        [EDIT]:
        J’ai trouver ça:

        ​emeraldNumber = Minecraft.getMinecraft().thePlayer.inventory.getStackInSlot(3);
        

        Si je m’et dans mon 4ème slot 5emeraudes j’ai:
        5xitem.emerald@0, y a t’il moyen de n’obtenir que le 5 ?

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

          Essaie avec çà :

          int size = 0; // On initialise la variable
          InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; // On récupère l'inventaire du joueur
          for (int i = 0; i < inv.getSizeInventory; i++) { // Boucle for
          if (inv.getStackInslot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald) size += inv.getStackInSlot(i).stackSize; // Si l'ItemStack à l'index n'est pas nul et que c'est bien une émeraude, alors on l'ajoute
          }
          
          

          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 1
          • PlasManiaP Hors-ligne
            PlasMania
            dernière édition par

            Merci, ça marche a peu prés sauf que le nombre n’arrête pas d’augmenter tant que j’ai une émeraude dans l’inventaire 😕

            [EDIT]:
            C’est bon j’ai tous simplement réinitialiser la valeur à 0 à la fin de la fonction 😉

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

              Juste, si quelqu’un sais comment faire pour utiliser

              InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory;
              

              avec l’ender Chest ?

              [EDIT]:
              J’ai trouver:

              ​InventoryEnderChest invEnderChest = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest();
              
              1 réponse Dernière réponse Répondre Citer 0
              • PlasManiaP Hors-ligne
                PlasMania
                dernière édition par

                Je voudrais faire la même chose mais avec l’ender chest cependant quand je met:

                public int invEmeraldNumber;
                public int bankEmeraldNumber;
                
                @SubscribeEvent
                public void renderEmeraldsNumber(RenderGameOverlayEvent event)
                {
                InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory;
                InventoryEnderChest bank = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest();
                
                for (int i = 0; i < inv.getSizeInventory(); i++) 
                {
                if (inv.getStackInSlot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald)
                bankEmeraldNumber += (inv.getStackInSlot(i).stackSize);
                }
                
                for (int i = 0; i < bank.getSizeInventory(); i++) 
                {
                if (bank.getStackInSlot(i) != null && bank.getStackInSlot(i).getItem() == Items.emerald)
                bankEmeraldNumber += (bank.getStackInSlot(i).stackSize);
                }
                
                Minecraft.getMinecraft().fontRenderer.drawString("Emeralds: " + invEmeraldNumber + " (" + bankEmeraldNumber + ")", 2, 2, 0xFFFFFF);
                
                invEmeraldNumber = 0;
                bankEmeraldNumber = 0;
                }
                }
                

                Ca ne marche pas :/, j’ai beau  avoir des emeraudes dans mon enderchest, le nombre entre parenthèse, reste à 0.

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

                  Je comprends pas trop ce que tu veux faire, tu veux faire la même chose mais avec l’enderchest ?

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

                    Oui exactement, j’ai mis mon code au dessus.

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

                      La fonction getInventoryEnderChest est publique, je vois pas où est le problème, mis à part qu’il faudrait utiliser un autre nom de variable dans la 2ème boucle.

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

                        Normalement non, la variable de la boucle est seulement utilisé dans la boucle, donc ça devrais aller.

                        J’ai aussi testez la fonction:

                        ​inv.setInventorySlotContents();
                        ​bank.setInventorySlotContents();
                        

                        et dans l’inventaire, elle marche mais pas dans l’ender chest

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

                          Il me semble qu’il faut mettre à jour l’inventaire après avoir modifié des slots, car le joueur est seulement côté client.

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

                            Sauf que je ne veut pas modifier les slots moi, je veut juste savoir les items dans les slots dans l’ender chest

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

                              alors pourquoi tu veux utiliser setInventorySlotContents ?

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

                                Non, c’était juste pour testez

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

                                  @‘PlasMania’:

                                  Je voudrais faire la même chose mais avec l’ender chest cependant quand je met:

                                  public int invEmeraldNumber;
                                  public int bankEmeraldNumber;
                                  
                                  @SubscribeEvent
                                  public void renderEmeraldsNumber(RenderGameOverlayEvent event)
                                  {
                                  InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory;
                                  InventoryEnderChest bank = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest();
                                  
                                  for (int i = 0; i < inv.getSizeInventory(); i++)
                                  {
                                  if (inv.getStackInSlot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald)
                                  bankEmeraldNumber += (inv.getStackInSlot(i).stackSize);
                                  }
                                  
                                  for (int i = 0; i < bank.getSizeInventory(); i++)
                                  {
                                  if (bank.getStackInSlot(i) != null && bank.getStackInSlot(i).getItem() == Items.emerald)
                                  bankEmeraldNumber += (bank.getStackInSlot(i).stackSize);
                                  }
                                  
                                  Minecraft.getMinecraft().fontRenderer.drawString("Emeralds: " + invEmeraldNumber + " (" + bankEmeraldNumber + ")", 2, 2, 0xFFFFFF);
                                  
                                  invEmeraldNumber = 0;
                                  bankEmeraldNumber = 0;
                                  }
                                  }
                                  

                                  Ca ne marche pas :/, j’ai beau  avoir des emeraudes dans mon enderchest, le nombre entre parenthèse, reste à 0.

                                  Utilise des variables local au lieu de reset sur 0 …

                                  @SubscribeEvent
                                  public void renderEmeraldsNumber(RenderGameOverlayEvent event)
                                  {
                                  int invEmeraldNumber = 0;
                                  int bankEmeraldNumber = 0;
                                  InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory;
                                  InventoryEnderChest bank = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest();
                                  
                                  for (int i = 0; i < inv.getSizeInventory(); i++)
                                  {
                                  if (inv.getStackInSlot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald)
                                  bankEmeraldNumber += (inv.getStackInSlot(i).stackSize);
                                  }
                                  
                                  for (int i = 0; i < bank.getSizeInventory(); i++)
                                  {
                                  if (bank.getStackInSlot(i) != null && bank.getStackInSlot(i).getItem() == Items.emerald)
                                  bankEmeraldNumber += (bank.getStackInSlot(i).stackSize);
                                  }
                                  
                                  Minecraft.getMinecraft().fontRenderer.drawString("Emeralds: " + invEmeraldNumber + " (" + bankEmeraldNumber + ")", 2, 2, 0xFFFFFF);
                                  }
                                  }
                                  

                                  à mon avis pour l’enderchest, ça ne fonctionne pas car temps que tu ne l’ouvre pas il est considéré comme vide côté client. Ouvre-le et regardes si la valeur change.

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

                                    Okai, merci pour la correction, et l’ouvrir ne change rien 😕

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

                                      Envoi le code de ton block + GuiHandler.

                                      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
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par

                                        Il y a au moins des émeraudes dans le coffre x) ?

                                        @‘SCAREX’:

                                        Envoi le code de ton block + GuiHandler.

                                        fail ?

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

                                          http://puu.sh/iG5hZ/18fdcb12fc.jpg

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

                                            Robin -> euh oui, je me suis trompé de sujet : internet explorer sur windows phone fait un peu de la merde.

                                            Rajoute des logs pour savoir si à chaque fois le slot est vide.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB