MFF

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

    [Inventaire personnalisé] Par ou commencer

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    27 Messages 5 Publieurs 6.5k 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.
    • DCEDOD Hors-ligne
      DCEDO
      dernière édition par

      Waw, merci donc si je résume :

      Je créé une classe GuiInventory similaire à celle de minecraft, une classe container qui gérera le contenu de l’inventaire et une classe Inventaire basée sur IInventory ?

      Pour l’ouverture, une nouvelle touche + un blocage de l’ancien inventaire seront parfaits.

      Je me pose quand même la question de l’utilité de ce que je viens de faire du coup ? Enfin l’utilité de “InventoryBasic”

      EDIT : J’ai suivi le tutoriel que tu m’as envoyé (Plaigon) et merci mais … J’ai des erreurs et arrivé à l’étape 4.1 ou l’auteur n’explique plus vraiment ça devient très complexe. Je suis de nouveau bloqué …  😕


      Du coup j’ai réussi à résoudre quelques erreurs mais je suis bloqué sur une partie de ma classe InventoryCustom qui reprend les propriétés de l’inventaire.

      public void readFromNBT(NBTTagCompound compound)
         {
             NBTBase items = compound.getTag(tagName);
      
             for (int i = 0; i < items.tagCount(); ++i)
             {
                 NBTTagCompound item = (NBTTagCompound) items.tagAt(i);
                 byte slot = item.getByte("Slot");
      
                 if (slot >= 0 && slot < getSizeInventory()) {
                     inventory[slot] = ItemStack.loadItemStackFromNBT(item);
                 }
             }
         }
      

      J’ai deux erreurs : la première pour tagCount() et la seconde pour tagAt, les erreurs sont “The method tagCount() is undefined for the type NBTBase” et “The method tagAt(int) is undefined for the type NBTBase”, je ne comprend vraiment pas d’ou ça peut venir.

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

        Car tu dois avoir un NBTList au lieu d’un NBTBase, donc tu dois faire compound.getTagList(tagName, 10)

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

          J’arrive à quelque chose comme ça du tout mais ca me semble faux :

          public void readFromNBT(NBTTagCompound compound)
             {
                 NBTTagList items = compound.getTagList(tagName, 10);
          
                 for (int i = 0; i < items.tagCount(); ++i)
                 {
                     NBTTagCompound item = (NBTTagCompound) items.getCompoundTagAt(i);
                     byte slot = item.getByte("Slot");
          
                     if (slot >= 0 && slot < getSizeInventory()) {
                         inventory[slot] = ItemStack.loadItemStackFromNBT(item);
                     }
                 }
             }
          

          Je n’ai plus l’erreur au tagCount, même si eclipse me dit qu’elle n’est pas utilisée, je vois pas trop ce que j’ai loupé

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

            Qu’est-ce qui n’est pas utilisé ?

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

              Trop de choses que je comprend pas dans le tutoriel que j’ai suivi, de plus il est en 1.6.4, je reprend tout et je ferais une liste de ce qui me bloque ou ce que je comprend pas…

              Et c’était tagCount qui n’était pas utilisé

              Ok du coup je reprend tout à partir des classes de bases et en m’aidant d’un mod existant mais quelqu’un sait ou je peux trouver des exemples sans les func_16424_d (exemple), car je ne sait pas trop quoi mettre dans ma fonction “markDirty()”

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

                hein ? Tu as copié des mods avec des noms obfusqués ?

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

                  Bah j’ai demandé a un mec le mod qu’il utilisait sur son ancien serveur pour voir à quoi il ressemblait et il me l’a filé mais sous forme de mod, du coup il m’a conseillé d’utiliser jd-gui pour le lire.

                  EDIT : Je cherche donc toujours une fonction de base markDirty() que je pourrais modifier pour qu’elle corresponde à ce que je cherche et je n’ai toujours pas trouvé de solution pour le “tagAt” :

                  public void readFromNBT(NBTTagCompound compound)
                     {
                       NBTTagList items = compound.func_150295_c("CustomInvTag", compound.tagAt());
                       for (int i = 0; i < items.tagCount(); i++)
                       {
                         NBTTagCompound item = items.tagAt(i);
                         byte slot = item.getByte("Slot");
                         if ((slot >= 0) && (slot < getSizeInventory ())) {
                           this.inventory[slot] = ItemStack.loadItemStackFromNBT(item);
                         }
                       }
                     }
                  

                  L’erreur : The method tagAt() is undefined for the type NBTTagCompound

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

                    Pour retrouver les bons noms, tu peux utiliser BON2 (disponible sur github).

                    Regarde plutôt les tutoriels disponibles sur le forum pour ce genre de choses car ils sont mieux faits ici

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

                      @‘SCAREX’:

                      Pour retrouver les bons noms, tu peux utiliser BON2 (disponible sur github).

                      Regarde plutôt les tutoriels disponibles sur le forum pour ce genre de choses car ils sont mieux faits ici

                      Je vais voir ça, je n’ai pas trouvé de tutoriel pour ça mais je vais re-chercher

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

                        https://www.minecraftforgefrance.fr/showthread.php?tid=2082
                        https://www.minecraftforgefrance.fr/showthread.php?tid=2017

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

                          @‘SCAREX’:

                          https://www.minecraftforgefrance.fr/showthread.php?tid=2082
                          https://www.minecraftforgefrance.fr/showthread.php?tid=2017

                          Ah oui je les avaient vus mais ils correspondent pas vraiment à ce que je veux.

                          Sinon entre temps j’ai repris tout le code qu’on m’avait donné grâce à BON2 en le modifiant à ma sauve mais j’ai des erreurs au lancement que je comprend pas trop, si quelqu’un veut bien se dévouer pour me les “traduire”, ce serait super gentil.

                          http://pastebin.com/5r9iVABN     (sous pastebin car c’est long)

                          J’ai vu que ca avait l’air de planter avec les ChannelPipeline (un doublon ? je n’en ai pas vu) voici donc le code de PacketPipeline : http://pastebin.com/4FySm6x7

                          Je ne sait pas si cela peut aider mais j’ai aussi AbstractPacket pour les Packets donc voici son code (d’ailleurs, dans Eclipse dans mon Package Explorer, à gauche j’ai un petit A en haut à droite de la feuille de code) 
                          http://pastebin.com/E8cZ6Weg

                          Merci d’avance !

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

                            Quelle est la version de minecraft d’où vient ce code ?

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

                              @‘SCAREX’:

                              Quelle est la version de minecraft d’où vient ce code ?

                              1.7.10

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

                                Essaie avec cette méthode pour les paquets : https://www.minecraftforgefrance.fr/showthread.php?tid=1118

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

                                  @‘SCAREX’:

                                  Essaie avec cette méthode pour les paquets : https://www.minecraftforgefrance.fr/showthread.php?tid=1118

                                  Mais du coup pourquoi tout refaire ? Peut etre que c’est juste un petit truc qui bloque quoi

                                  Edit : j’ai trouvé les deux lignes qui posent problème :

                                  Dans ma classe qui principale de l’inventaire :

                                  @Mod.EventHandler
                                     public void init(FMLInitializationEvent event)
                                     {
                                       proxy.registerRender();
                                       PacketPipeline.initialise();
                                       MinecraftForge.EVENT_BUS.register(new DCEDOEventHandler());
                                       FMLCommonHandler.instance().bus().register(new DCEDOEventHandler());
                                       NetworkRegistry.INSTANCE.registerGuiHandler(this, new DCEDOCommonProxy());
                                     }
                                  
                                  la ligne :       PacketPipeline.initialise();
                                  

                                  Dans ma classe PacketPipeline :

                                     public void initialise()
                                     {
                                       this.channels = NetworkRegistry.INSTANCE.newChannel("DCEDOInventory", new ChannelHandler[] { this });      
                                       registerPackets();
                                     }
                                  
                                  la ligne :       this.channels = NetworkRegistry.INSTANCE.newChannel("DCEDOInventory", new ChannelHandler[] { this });      
                                  

                                  Je sais que c’est elle qui posent problème car dans la console lors du crash est affiché :

                                  at fr.shyfe.dcedo.common.PacketPipeline.initialise(PacketPipeline.java:94) ~[bin/:?]

                                  at fr.shyfe.dcedo.common.DCEDOInventory.init(DCEDOInventory.java:38) ~[bin/:?]

                                  Et ce sont les seuls qui viennent de moi.

                                  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

                                    Pourquoi tout refaire ?
                                    Car ce système de paquet cause une fuite de mémoire.
                                    Il est mal conçu.

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

                                      @‘robin4002’:

                                      Pourquoi tout refaire ?
                                      Car ce système de paquet cause une fuite de mémoire.
                                      Il est mal conçu.

                                      Oui je vois, je vais essayer alors

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

                                        J’ai plusieurs problèmes avec mon inventaire personnalisé:
                                        -Quand on clique sur un items pour le déplacer, il est directement remis à sa place donc impossible de déplacer les items et si on fais clique molette et qu’on met un objet dans un autre slot et puis qu’on clique dessus, il disparait
                                        -Quand j’arrive à mettre un item dans un de mes slots perso, quand je ferme l’inventaire il est droppé

                                        Merci d’avance 🙂

                                        Minantcraft ;)

                                        >! Binary Dimension
                                        [url=https://minecraft.cu…

                                        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