• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Problème IGUIHandler

1.7.x
1.7.10
7
191
29.4k
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.
  • Gabs
    Gabs dernière édition par 9 mars 2016, 10:52

    Help?

    1 réponse Dernière réponse Répondre Citer 0
    • AymericRed
      AymericRed dernière édition par 9 mars 2016, 11:51

      Pour que ça sauvegarde l’item, il faut faire avec les tags nbt.
      Et pour le held Item, il faut que tu retires tout ce qui touche ce stack dans ton inv si il est 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
      • Dylem
        Dylem dernière édition par 9 mars 2016, 16:02

        Je suis perplexe par rapport au fait que tu aies une fonction writeToNBT et pas une fonction readFromNBT, si tu veux écrire dans ton autre classe ajoute directement à ta fonction la-bas, crées y une NBTTagList contenant tes slots. Et puis bon, nommer ses variables en français… Je vais pas faire de commentaire là-dessus mais c’est pas terrible.

        Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

        1 réponse Dernière réponse Répondre Citer 0
        • Gabs
          Gabs dernière édition par 9 mars 2016, 16:41

          Se que j’ai du mal a comprendre c’est pourquoi quand j’ouvre mon inventaire avec l’item dans les mains et que je déplace un item je crash pas et quand j’ouvre mon inventaire avec une touche toujours avec un item dans les mains et que je veux déplacer un item dans l’inventaire j’ai un java.lang.IndexOutOfBoundsException: Index: 55, Size: 45 .
          /!\ Attention lorsque vous manipulez des tableaux. Chercher un élement d’un tableau à un indice inexistant causera un OutOfBoundException.
          pourquoi j’ai cette erreur quand j’ouvre l’inventaire avec une touche?

          1 réponse Dernière réponse Répondre Citer 0
          • AymericRed
            AymericRed dernière édition par 9 mars 2016, 17:36

            Parce que lid du slot est trop élevé, là actuellement tu peux avoir 45 items (donc autant dids) et tu essayes tu mettre un slot avec 45 comme id

            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 1
            • Gabs
              Gabs dernière édition par 9 mars 2016, 19:06

              Merci maintenant il me manque juste a viré le held item et c’est bon par contre j’ai pas trop suivi je dois procédé comment ?

              1 réponse Dernière réponse Répondre Citer 0
              • AymericRed
                AymericRed dernière édition par 9 mars 2016, 20:50

                Tu retire tout les trucs de nbt qui sont en rapport avec ce stack dans ton InventaireArma (d’après ce que j’avais vu, ça ne servait à rien)

                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
                • Gabs
                  Gabs dernière édition par 9 mars 2016, 21:09

                  Yep c’est nickel merci par contre quand je clique sur échap je crash mais le soucis c’est que si j’enlève le nbt sa save pas mon item dans le slot lorsque je quitte le container.

                  1 réponse Dernière réponse Répondre Citer 0
                  • AymericRed
                    AymericRed dernière édition par 9 mars 2016, 21:28

                    Montre le rapport et le code qui va avec

                    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
                    • Gabs
                      Gabs dernière édition par 9 mars 2016, 21:32

                      @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
                      • AymericRed
                        AymericRed dernière édition par 9 mars 2016, 21:39

                        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
                        • Gabs
                          Gabs dernière édition par 9 mars 2016, 21:47

                          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
                          • AymericRed
                            AymericRed dernière édition par 9 mars 2016, 22:02

                            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
                            • Gabs
                              Gabs dernière édition par 9 mars 2016, 22:08

                              Bah je peux le remplacer par quoi?

                              1 réponse Dernière réponse Répondre Citer 0
                              • Gabs
                                Gabs dernière édition par 9 mars 2016, 22:24

                                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
                                • Gabs
                                  Gabs dernière édition par 10 mars 2016, 19:35

                                  Help?

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • AymericRed
                                    AymericRed dernière édition par 10 mars 2016, 19:42

                                    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
                                    • Gabs
                                      Gabs dernière édition par 10 mars 2016, 20:20

                                      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
                                      • AymericRed
                                        AymericRed dernière édition par 10 mars 2016, 22:50

                                        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
                                        • Gabs
                                          Gabs dernière édition par 11 mars 2016, 12:39

                                          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
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 5
                                          • 9
                                          • 10
                                          • 3 / 10
                                          41 sur 191
                                          • Premier message
                                            41/191
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB