MFF

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

    RenderGameOverlayEvent

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

      Bonsoir,

      Je sais pas comment vous l’expliquez donc si vous comprenez pas dite le moi!

      J’ai fais un système pour récupéré combien de pomme a le joueur dans son inventaire puis l’afficher à l’écran.

      Le problème et que je vois pas comment faire pour additionner les différente stacksize de pomme par slot.

      Je m’explique par exemple j’ai 64 pommes dans le premier slot et 15 dans le troisième bha moi il me dessiné une fois 64 et une fois 15 x), alors que moi je voudrais 64+15 donc 79 à l’écran.

      Pour se qui est du doublon j’ai juste a placer un break; dans mon for, par contre je vois pas du tout pour additionner les stacksizes.

      Je vous passe mon code:

      
      @SideOnly(Side.CLIENT)
      @SubscribeEvent
      public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
      {
      String str;
              Minecraft mc = Minecraft.getMinecraft();
      int i2 = event.resolution.getScaledWidth();
      int j = event.resolution.getScaledHeight();
      
      EntityPlayer player = mc.thePlayer;
      
      if(event.type == RenderGameOverlayEvent.ElementType.TEXT)
              {
      if(player.inventory.hasItemStack(new ItemStack(Items.apple)))
      {
      int number = 0;
      for(int i = 0; i < player.inventory.getSizeInventory(); i++)
         {
                if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == Items.apple)
                {
              number++; 
              System.out.println("Amout: " + player.inventory.getStackInSlot(i).stackSize);
              str = ChatFormatting.WHITE + String.valueOf(player.inventory.getStackInSlot(i).stackSize);
                  mc.fontRenderer.drawString(str, i2 - 20 - Minecraft.getMinecraft().fontRenderer.getStringWidth(str), j - 20, 0);
                }
         }
      }
      }
      
      }
      
      

      Log:

      
      [22:43:20] [Client thread/INFO] [STDOUT]: [com.nouvellefrance.fr.Events.Events:onRenderGameOverlay:38]: Amout: 3
      
      [22:43:20] [Client thread/INFO] [STDOUT]: [com.nouvellefrance.fr.Events.Events:onRenderGameOverlay:38]: Amout: 5
      

      Merci d’avance!

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

        (je sais pas si c’est possible)

        récupérer les valeurs de chaque stacksize les inserer dans un tableau et additionner chaque case du tableau.

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

          Salut, 
          La solution se trouve dans ta question : 
          " je vois pas du tout pour additionner les stacksizes "
          Mise à part le fait que l’addition est un truc de base de la programmation, pour additionner les stacksizes, il suffit de créer un variable entière, parcourir l’inventaire et si l’item est celui de la pomme, ajouter le stacksize de l’item à ta variable. À la fin, tu as la quantité totale d’items que tu as plus qu’à afficher.
          PS : pas besoin de passer par un tableau pour ça.

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

            c’est vrai que c’est encore plus simple ^^

            1 réponse Dernière réponse Répondre Citer 0
            • FolganskyF Hors-ligne
              Folgansky Correcteurs
              dernière édition par

              Du code qui avait été donné sur ce forum et donc que revoici:

                      InventoryPlayer inv = player.inventory;
              
              for(int i = 0; i < inv.getSizeInventory(); i++)
                          {
                              if(inv.getStackInSlot(i) != null && inv.getStackInSlot(i).getItem() == tonItemToussahToussah)
                                  size += inv.getStackInSlot(i).stackSize;
                          }
              

              size étant ton nombre d’un même item dans l’inventaire

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

                C’est tellement con, merci les amis , j’ai pas réfléchi !

                1 réponse Dernière réponse Répondre Citer 0
                • 1 / 1
                • Premier message
                  Dernier message
                Design by Woryk
                ContactMentions Légales

                MINECRAFT FORGE FRANCE © 2024

                Powered by NodeBB