MFF

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

    Problème IGUIHandler

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    191 Messages 7 Publieurs 34.6k 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

      @Override
      public void onContainerClosed(EntityPlayer player) {
      if(player.getHeldItem() == null) {
             this.writeToNBT(player.getHeldItem());
         }
         super.onContainerClosed(player);
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • AymericRedA Hors-ligne
        AymericRed
        dernière édition par

        Heu….
        T’a bien relu ton code ?
        “if(player.getHeldItem() == null) {”
        T’es en train d’écrire dans la nbt uniquement si l’item que tu tiens null, faut que tu mettes != null

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

          Je crash pas mais ça save pas mon item quand je quitte le container, après ça vient peut-etre pas d’ici

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

            Oui ça vient d’ici parce que si tu tiens un item, ta condition retournera toujours faux

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

              Bah je peux le remplacer par quoi?

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

                Ouais c’est bon^^ par contre petit soucis quand je le met un item dans mon inv et que je referme il drop fin en gros il reste pas dans le slot .
                merci d’ailleurs 😄

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

                  Help?

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

                    Ah dsl, voulais revenir et ai oublié, ton inv, c’est birn un backpack ?
                    Et met tt ton code en lien avec ça

                    Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                    AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                    Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                      Pas grave ^^, Bah en fait j’ai repris les code du backpack de SCAREX mais moi je veux en faire un inventaire, peut-être pour ça que y’a des soucis^^ non?
                      Birn = ?

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

                        Il faut que tu saves bien et load bien dans les nbt de l’items et normalement, y a pas de raison que ça loot les items.
                        Montre ta classe InventoryArma, car il y a une fonction qui pourrait causer ça.

                        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                          D’acc je fais ça ce soir tien pour la class inv:

                          
                          package armacraft.net.GUI;
                          
                          import armacraft.net.Items.Water;
                          import net.minecraft.client.Minecraft;
                          import net.minecraft.entity.player.EntityPlayer;
                          import net.minecraft.inventory.IInventory;
                          import net.minecraft.item.ItemStack;
                          import net.minecraft.nbt.NBTTagCompound;
                          import net.minecraft.nbt.NBTTagList;
                          import net.minecraftforge.common.util.Constants;
                          
                          public class InventaireArma implements IInventory
                          {
                          public ItemStack[] content;
                          public int size;
                          
                          public InventaireArma(ItemStack container, int size) {
                          this.size = size;
                          this.content = new ItemStack;
                          }
                          
                          /**
                          * This methods reads the content of the NBTTagCompound inside the container
                          * 
                          * @param comp
                          *            the container NBTTagCompound
                          */
                          public void readFromNBT(NBTTagCompound comp) {
                          NBTTagList nbtlist = comp.getTagList("a", Constants.NBT.TAG_COMPOUND);
                          for (int i = 0; i < nbtlist.tagCount(); i++) {
                          NBTTagCompound comp1 = nbtlist.getCompoundTagAt(i);
                          int slot = comp1.getInteger("z");
                          this.content[slot] = ItemStack.loadItemStackFromNBT(comp1);
                          }
                          }
                          
                          /**
                          * This methods saves the content inside the container
                          * 
                          * @param comp
                          *            the NBTTagCompound to write in
                          */
                          public void writeToNBT(NBTTagCompound comp) {
                          NBTTagList nbtlist = new NBTTagList();
                          
                          for (int i = 0; i < this.size; i++) {
                          if (this.content* != null) {
                          NBTTagCompound comp1 = new NBTTagCompound();
                          comp1.setInteger("Slot", i);
                          this.content*.writeToNBT(comp1);
                          nbtlist.appendTag(comp1);
                          }
                          }
                          comp.setTag("e", nbtlist);
                          }
                          
                          @Override
                          public int getSizeInventory() {
                          return this.size;
                          }
                          
                          @Override
                          public ItemStack getStackInSlot(int index) {
                          return this.content[index];
                          }
                          
                          @Override
                          public ItemStack decrStackSize(int index, int amount) {
                          ItemStack stack = getStackInSlot(index);
                          if (stack != null) {
                          if (stack.stackSize > amount) {
                          stack = stack.splitStack(amount);
                          if (stack.stackSize == 0) this.content[index] = null;
                          } else {
                          this.content[index] = null;
                          }
                          }
                          return stack;
                          }
                          
                          @Override
                          public ItemStack getStackInSlotOnClosing(int index) {
                          ItemStack stack = getStackInSlot(index);
                          if (stack != null) this.content[index] = null;
                          return stack;
                          }
                          
                          @Override
                          public void setInventorySlotContents(int index, ItemStack stack) {
                          this.content[index] = stack;
                          }
                          
                          @Override
                          public String getInventoryName() {
                          return "amm" + ".inventaire.arma";
                          }
                          
                          @Override
                          public boolean hasCustomInventoryName() {
                          return false;
                          }
                          
                          @Override
                          public int getInventoryStackLimit() {
                          return 64;
                          }
                          
                          @Override
                          public void markDirty() {}
                          
                          @Override
                          public boolean isUseableByPlayer(EntityPlayer player) {
                          return true;
                          }
                          
                          @Override
                          public void openInventory() {}
                          
                          @Override
                          public void closeInventory() {
                          }
                          
                          /**
                          * Prevents backpack-ception
                          */
                          @Override
                          public boolean isItemValidForSlot(int index, ItemStack stack) {
                          return !(stack.getItem() instanceof Water);
                          }
                          
                          }
                          
                          
                          1 réponse Dernière réponse Répondre Citer 0
                          • AymericRedA Hors-ligne
                            AymericRed
                            dernière édition par

                            ça m’a l’air d’être bon, je vérifierais en détail tout à l’heure en regardant comment la fermeture des container est gérée. Vérifies juste que tes méthodes read et write soient bien appelée (clic droit sur la fonction –> Call hierarchy).
                            Et je précise que tu tu compliques la vie dans des fonctions de nbt, tu pourrais directement utiliser le tag pasé en paramètre pour set l’id du slot et sont contenu au lieu de passé pas un tag que tu mets dans une liste que tu mets dans le tag d’origine.

                            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                              D’accord merci,
                              [font=Ubuntu, sans-serifJe préfère pas toucher car je connais pas les container et tout si je commence a touché ça va crash et tout donc je préfère laisser comme ça pour le moment du moment que ça marche ça me dérange pas x) .]

                              [font=Ubuntu, sans-serifEDIT:]

                              [font=Ubuntu, sans-serifAlors,]

                              [font=Ubuntu, sans-serifdans le read c’est vide il est pas appeler et dans le write il est juste appeler dans la class container quand on close dans la fonction “onContainerClosed” .]

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

                                Ton container, il est ouvert avec ton item ?
                                Donc il faut que tu récupères le held item du joueur, que tu vérifies si il a des tags nbt et si oui, t’appelle ta fonction read avec ces tags.

                                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                                  Nan il est ouvert avec un keybinding ^^, Je dois faire comment quand c’est comme ça ?

                                  Edit:
                                  J’ai essayer ça:

                                  private void keyTestTyped()
                                  {
                                  EntityPlayer player = Minecraft.getMinecraft().thePlayer;
                                  World world = player.worldObj;
                                  
                                  if (stack.hasTagCompound()) stack.setTagCompound(new NBTTagCompound()); // ici la ligne qui cause prob.
                                  inv.readFromNBT(stack.getTagCompound());
                                  player.openGui(AltisMineMod.INSTANCE, 0, world, (int) player.posX, (int) player.posY, (int) player.posZ);
                                  }
                                  

                                  J’ai un crash ^^

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

                                    Non mais en fait ce qu’il faut dans ce cas où l’inventaire n’est pas dans un item, c’est faire un extended entity Properties (je n’en ai jamais fait mais y a un tuto je crois)

                                    Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                    AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                    Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                                      Waa le bordel ^^ ehh t’aurais le lien ou des mots clé pour que je trouve ? se serrai super 😄

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

                                        Tiens

                                        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                                          Ah ouais merci, j’avais déjà utilisé ça, par contre a la place je dois prendre mon inv c’est ça ? alors je dois prendre le joueur et dans le packet j’ouvre l’inv au joueur .

                                          Sinon y’a pas un moyen plus simplement normalement on a pas besoin de ça j’crois ^^

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

                                            Si tu n’as pas d’item ou de bloc pour le sauvegarder, t’es obligé de passer pas la

                                            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 10
                                            • 8 / 10
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB