MFF

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

    Table de craft buguée

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    19 Messages 6 Publieurs 3.1k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Bon, déjà retire tous les private static final String __OBFID = “CL_00001744”; ils n’ont rien à faire là.
      Le problème est surement au niveau du container, mais je ne vois pas où il est.

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

        J’aime paaaaaaaaaaaas les problèmes inexpliqués !!
        Je check aprtout, je trouve rien, mais après, je comprend rien au GUI, Container, donc c’est dur, mais j’ai check partout, j’ai comparé avec le code de base, y’a aucune différence….
        Je comprend rien à cette erreur…
        Je vais approfondir ma recherche, mais la, franchement, je coince

        PS : Je vois pas à quoi sert le string, que tu me demande d’enlever à chaque fois
              Il ne gêne pas, il n’est pas utilisé, il sert a rien, donc je vois pas pourquoi l’enlever. Enfi oui je vois, c’est pour que ce soit plus propre, mais je       n’y pense pas tout le temps, puisqu’il ne gêne pas dans le code
              Peut-etre qu’il gêne, mais je ne voit pas en quoi

        EDIT : J’ai trouvé un bon s’homme ( Orthographe volontaire ) dans le même cas que moi. Malheureusement, je suis un homme assez contradictioire, je comrpend facilement l’anglais en audio, et j’écris mieux l’anglais que je ne le parle. Mais quand il s’agit de lire de l’anglais, j’ia du mal.
        http://www.minecraftforge.net/forum/index.php?topic=30417.0

        Membre fantôme
        Je développe maintenant un jeu sur UnrealEngine4


        Contact :…

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

          Le String inutile sert à réobfusqué/déobfusqué les classes. Donc pas besoin dans tes propres classes.

          Le problème vient du fait que le clear de la table de craft se fait lorsqu’on enlève un Item du slot de résultat, Minecraft utilise un slot custom mais toi tu as ajouté des slots normaux.

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

            Ah, et comment faire, j’aurais besoin d’éclairement,car moi et les GUI’s, sa fait 2, voir 3 peut-etre 😕
            Faut que je fasse ma propre classe de slot ?
            (Je fais tenter cela, car il y a bien Slot, et SlotCrafting  )

            Edit: Non, c’est pas ça. Bon j’ai juste fait un copier coller de la classe vanilla…
            Il faut peut-etre rajouter un truc mais je sais pas ce que c’est

            ​package net.minecraft.inventory;
            
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.init.Blocks;
            import net.minecraft.init.Items;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemHoe;
            import net.minecraft.item.ItemPickaxe;
            import net.minecraft.item.ItemStack;
            import net.minecraft.item.ItemSword;
            import net.minecraft.item.crafting.CraftingManager;
            import net.minecraft.stats.AchievementList;
            
            public class SlotCrafting extends Slot
            {
                /** The craft matrix inventory linked to this result slot. */
                private final InventoryCrafting craftMatrix;
                /** The player that is using the GUI where this slot resides. */
                private final EntityPlayer thePlayer;
                /** The number of items that have been crafted so far. Gets passed to ItemStack.onCrafting before being reset. */
                private int amountCrafted;
                private static final String __OBFID = "CL_00001761";
            
                public SlotCrafting(EntityPlayer player, InventoryCrafting craftingInventory, IInventory p_i45790_3_, int slotIndex, int xPosition, int yPosition)
                {
                    super(p_i45790_3_, slotIndex, xPosition, yPosition);
                    this.thePlayer = player;
                    this.craftMatrix = craftingInventory;
                }
            
                /**
                 * Check if the stack is a valid item for this slot. Always true beside for the armor slots.
                 */
                public boolean isItemValid(ItemStack stack)
                {
                    return false;
                }
            
                /**
                 * Decrease the size of the stack in slot (first int arg) by the amount of the second int arg. Returns the new
                 * stack.
                 */
                public ItemStack decrStackSize(int amount)
                {
                    if (this.getHasStack())
                    {
                        this.amountCrafted += Math.min(amount, this.getStack().stackSize);
                    }
            
                    return super.decrStackSize(amount);
                }
            
                /**
                 * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood. Typically increases an
                 * internal count then calls onCrafting(item).
                 */
                protected void onCrafting(ItemStack stack, int amount)
                {
                    this.amountCrafted += amount;
                    this.onCrafting(stack);
                }
            
                /**
                 * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
                 */
                protected void onCrafting(ItemStack stack)
                {
                    if (this.amountCrafted > 0)
                    {
                        stack.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.amountCrafted);
                    }
            
                    this.amountCrafted = 0;
            
                    if (stack.getItem() == Item.getItemFromBlock(Blocks.crafting_table))
                    {
                        this.thePlayer.triggerAchievement(AchievementList.buildWorkBench);
                    }
            
                    if (stack.getItem() instanceof ItemPickaxe)
                    {
                        this.thePlayer.triggerAchievement(AchievementList.buildPickaxe);
                    }
            
                    if (stack.getItem() == Item.getItemFromBlock(Blocks.furnace))
                    {
                        this.thePlayer.triggerAchievement(AchievementList.buildFurnace);
                    }
            
                    if (stack.getItem() instanceof ItemHoe)
                    {
                        this.thePlayer.triggerAchievement(AchievementList.buildHoe);
                    }
            
                    if (stack.getItem() == Items.bread)
                    {
                        this.thePlayer.triggerAchievement(AchievementList.makeBread);
                    }
            
                    if (stack.getItem() == Items.cake)
                    {
                        this.thePlayer.triggerAchievement(AchievementList.bakeCake);
                    }
            
                    if (stack.getItem() instanceof ItemPickaxe && ((ItemPickaxe)stack.getItem()).getToolMaterial() != Item.ToolMaterial.WOOD)
                    {
                        this.thePlayer.triggerAchievement(AchievementList.buildBetterPickaxe);
                    }
            
                    if (stack.getItem() instanceof ItemSword)
                    {
                        this.thePlayer.triggerAchievement(AchievementList.buildSword);
                    }
            
                    if (stack.getItem() == Item.getItemFromBlock(Blocks.enchanting_table))
                    {
                        this.thePlayer.triggerAchievement(AchievementList.enchantments);
                    }
            
                    if (stack.getItem() == Item.getItemFromBlock(Blocks.bookshelf))
                    {
                        this.thePlayer.triggerAchievement(AchievementList.bookcase);
                    }
            
                    if (stack.getItem() == Items.golden_apple && stack.getMetadata() == 1)
                    {
                        this.thePlayer.triggerAchievement(AchievementList.overpowered);
                    }
                }
            
                public void onPickupFromSlot(EntityPlayer playerIn, ItemStack stack)
                {
                    net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerCraftingEvent(playerIn, stack, craftMatrix);
                    this.onCrafting(stack);
                    net.minecraftforge.common.ForgeHooks.setCraftingPlayer(playerIn);
                    ItemStack[] aitemstack = CraftingManager.getInstance().func_180303_b(this.craftMatrix, playerIn.worldObj);
                    net.minecraftforge.common.ForgeHooks.setCraftingPlayer(null);
            
                    for (int i = 0; i < aitemstack.length; ++i)
                    {
                        ItemStack itemstack1 = this.craftMatrix.getStackInSlot(i);
                        ItemStack itemstack2 = aitemstack*;
            
                        if (itemstack1 != null)
                        {
                            this.craftMatrix.decrStackSize(i, 1);
                        }
            
                        if (itemstack2 != null)
                        {
                            if (this.craftMatrix.getStackInSlot(i) == null)
                            {
                                this.craftMatrix.setInventorySlotContents(i, itemstack2);
                            }
                            else if (!this.thePlayer.inventory.addItemStackToInventory(itemstack2))
                            {
                                this.thePlayer.dropPlayerItemWithRandomChoice(itemstack2, false);
                            }
                        }
                    }
                }
            }
            

            EDIT² j’ai trouvé l’erreur mais je ne peut  pas al corriger maintenat

            Membre fantôme
            Je développe maintenant un jeu sur UnrealEngine4


            Contact :…

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

              C’était ça, maintenant, trouvez l’erreur 😛
              ( Elle est plûtot simple a trouver, je l’ai vu en quelques secondes )
              Le premier qui trouve aura le droit à un COOKIE

              Membre fantôme
              Je développe maintenant un jeu sur UnrealEngine4


              Contact :…

              1 réponse Dernière réponse Répondre Citer 0
              • DiabolicaTrixD Hors-ligne
                DiabolicaTrix Correcteurs Moddeurs confirmés
                dernière édition par

                Enleve ça: private static final String __OBFID = “CL_00001761”; c’est pour l’obfuscation, tu n’en as pas besoin 😉

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

                  J’en ai pas besoin mais il ne gêne as, j’ai carrèment la flemme de l’enlever pour être franc 😛

                  Membre fantôme
                  Je développe maintenant un jeu sur UnrealEngine4


                  Contact :…

                  1 réponse Dernière réponse Répondre Citer 0
                  • DiabolicaTrixD Hors-ligne
                    DiabolicaTrix Correcteurs Moddeurs confirmés
                    dernière édition par

                    Haha, d’accord 😛

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

                      Ah, je viens de me rendre compte que c’est pas ma classe … Fuck, désolé ^^’
                      Voici ma classe

                      package eryah.usefulthings.container;
                      
                      import net.minecraft.entity.player.EntityPlayer;
                      import net.minecraft.inventory.IInventory;
                      import net.minecraft.inventory.InventoryCrafting;
                      import net.minecraft.inventory.Slot;
                      import net.minecraft.item.ItemStack;
                      import eryah.usefulthings.recipes.WeaponTableRecipes;
                      
                      public class SlotWeaponResult extends Slot
                      {
                      /** The craft matrix inventory linked to this result slot. */
                      private final InventoryCrafting craftMatrix;
                      /** The player that is using the GUI where this slot resides. */
                      private final EntityPlayer thePlayer;
                      /** The number of items that have been crafted so far. Gets passed to ItemStack.onCrafting before being reset. */
                      private int amountCrafted;
                      
                      public SlotWeaponResult(EntityPlayer player, InventoryCrafting craftingInventory, IInventory p_i45790_3_, int slotIndex, int xPosition, int yPosition)
                      {
                      super(p_i45790_3_, slotIndex, xPosition, yPosition);
                      this.thePlayer = player;
                      this.craftMatrix = craftingInventory;
                      }
                      
                      /**
                      * Check if the stack is a valid item for this slot. Always true beside for the armor slots.
                      */
                      public boolean isItemValid(ItemStack stack)
                      {
                      return false;
                      }
                      
                      /**
                      * Decrease the size of the stack in slot (first int arg) by the amount of the second int arg. Returns the new
                      * stack.
                      */
                      public ItemStack decrStackSize(int amount)
                      {
                      if (this.getHasStack())
                      {
                      this.amountCrafted += Math.min(amount, this.getStack().stackSize);
                      }
                      
                      return super.decrStackSize(amount);
                      }
                      
                      /**
                      * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood. Typically increases an
                      * internal count then calls onCrafting(item).
                      */
                      protected void onCrafting(ItemStack stack, int amount)
                      {
                      this.amountCrafted += amount;
                      this.onCrafting(stack);
                      }
                      
                      /**
                      * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
                      */
                      protected void onCrafting(ItemStack stack)
                      {
                      if (this.amountCrafted > 0)
                      {
                      stack.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.amountCrafted);
                      }
                      
                      this.amountCrafted = 0;
                      
                      }
                      
                      public void onPickupFromSlot(EntityPlayer playerIn, ItemStack stack)
                      {
                      net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerCraftingEvent(playerIn, stack, craftMatrix);
                      this.onCrafting(stack);
                      net.minecraftforge.common.ForgeHooks.setCraftingPlayer(playerIn);
                      ItemStack[] aitemstack = WeaponTableRecipes.getInstance().func_180303_b(this.craftMatrix, playerIn.worldObj);
                      net.minecraftforge.common.ForgeHooks.setCraftingPlayer(null);
                      
                      for (int i = 0; i < aitemstack.length; ++i)
                      {
                      ItemStack itemstack1 = this.craftMatrix.getStackInSlot(i);
                      ItemStack itemstack2 = aitemstack*;
                      
                      if (itemstack1 != null)
                      {
                      this.craftMatrix.decrStackSize(i, 1);
                      }
                      
                      if (itemstack2 != null)
                      {
                      if (this.craftMatrix.getStackInSlot(i) == null)
                      {
                      this.craftMatrix.setInventorySlotContents(i, itemstack2);
                      }
                      else if (!this.thePlayer.inventory.addItemStackToInventory(itemstack2))
                      {
                      this.thePlayer.dropPlayerItemWithRandomChoice(itemstack2, false);
                      }
                      }
                      }
                      }
                      }
                      

                      Membre fantôme
                      Je développe maintenant un jeu sur UnrealEngine4


                      Contact :…

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

                        protected void onCrafting(ItemStack stack, int amount) {
                           this.amountCrafted += amount;
                           this.onCrafting(stack);
                        }
                        

                        Tu augmentes le nombre d’items dans la case résultat sans vider la matrice de craft?

                        **EDIT : **Je suis con, amountCrafted c’est même pas le nombre d’items en résultat… si?
                        EDIT 2 :…Eryah il est con aussi, il nous donne la classe corrigée, comment il veut qu’on trouve l’erreur facepalm

                        Mes mods :

                        • Cookie Ore (1.7.10)

                        Mod en cours : **E…

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

                          Ca pourrait être ça, mais non

                          Membre fantôme
                          Je développe maintenant un jeu sur UnrealEngine4


                          Contact :…

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

                            J’ai mis la classe corrigée –’

                            package eryah.usefulthings.container;
                            
                            import net.minecraft.entity.player.EntityPlayer;
                            import net.minecraft.inventory.IInventory;
                            import net.minecraft.inventory.InventoryCrafting;
                            import net.minecraft.inventory.Slot;
                            import net.minecraft.item.ItemStack;
                            import eryah.usefulthings.recipes.WeaponTableRecipes;
                            
                            public class SlotWeaponResult extends Slot
                            {
                               /** The craft matrix inventory linked to this result slot. */
                               private final InventoryCrafting craftMatrix;
                               /** The player that is using the GUI where this slot resides. */
                               private final EntityPlayer thePlayer;
                               /** The number of items that have been crafted so far. Gets passed to ItemStack.onCrafting before being reset. */
                               private int amountCrafted;
                            
                               public SlotWeaponResult(EntityPlayer player, InventoryCrafting craftingInventory, IInventory p_i45790_3_, int slotIndex, int xPosition, int yPosition)
                               {
                                   super(p_i45790_3_, slotIndex, xPosition, yPosition);
                                   this.thePlayer = player;
                                   this.craftMatrix = craftingInventory;
                               }
                            
                               /**
                                * Check if the stack is a valid item for this slot. Always true beside for the armor slots.
                                */
                               public boolean isItemValid(ItemStack stack)
                               {
                                   return false;
                               }
                            
                               /**
                                * Decrease the size of the stack in slot (first int arg) by the amount of the second int arg. Returns the new
                                * stack.
                                */
                               public ItemStack decrStackSize(int amount)
                               {
                                   if (this.getHasStack())
                                   {
                                       this.amountCrafted += Math.min(amount, this.getStack().stackSize);
                                   }
                            
                                   return super.decrStackSize(amount);
                               }
                            
                               /**
                                * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood. Typically increases an
                                * internal count then calls onCrafting(item).
                                */
                               protected void onCrafting(ItemStack stack, int amount)
                               {
                                   this.amountCrafted += amount;
                                   this.onCrafting(stack);
                               }
                            
                               /**
                                * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
                                */
                               protected void onCrafting(ItemStack stack)
                               {
                                   if (this.amountCrafted > 0)
                                   {
                                       stack.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.amountCrafted);
                                   }
                            
                                   this.amountCrafted = 0;
                            
                               }
                            
                               public void onPickupFromSlot(EntityPlayer playerIn, ItemStack stack)
                               {
                                   net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerCraftingEvent(playerIn, stack, craftMatrix);
                                   this.onCrafting(stack);
                                   net.minecraftforge.common.ForgeHooks.setCraftingPlayer(playerIn);
                                   ItemStack[] aitemstack = CraftingManager.getInstance().func_180303_b(this.craftMatrix, playerIn.worldObj);
                                   net.minecraftforge.common.ForgeHooks.setCraftingPlayer(null);
                            
                                   for (int i = 0; i < aitemstack.length; ++i)
                                   {
                                       ItemStack itemstack1 = this.craftMatrix.getStackInSlot(i);
                                       ItemStack itemstack2 = aitemstack*;
                            
                                       if (itemstack1 != null)
                                       {
                                           this.craftMatrix.decrStackSize(i, 1);
                                       }
                            
                                       if (itemstack2 != null)
                                       {
                                           if (this.craftMatrix.getStackInSlot(i) == null)
                                           {
                                               this.craftMatrix.setInventorySlotContents(i, itemstack2);
                                           }
                                           else if (!this.thePlayer.inventory.addItemStackToInventory(itemstack2))
                                           {
                                               this.thePlayer.dropPlayerItemWithRandomChoice(itemstack2, false);
                                           }
                                       }
                                   }
                               }
                            }
                            

                            Membre fantôme
                            Je développe maintenant un jeu sur UnrealEngine4


                            Contact :…

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

                              Code erroné :

                              ItemStack[] aitemstack = CraftingManager.getInstance().func_180303_b(this.craftMatrix, playerIn.worldObj);
                              

                              Code corrigé :

                              ItemStack[] aitemstack = WeaponTableRecipes.getInstance().func_180303_b(this.craftMatrix, playerIn.worldObj);
                              

                              :::
                              Trouvé avec ceci x)
                              :::

                              Mes mods :

                              • Cookie Ore (1.7.10)

                              Mod en cours : **E…

                              1 réponse Dernière réponse Répondre Citer 0
                              • DiabolicaTrixD Hors-ligne
                                DiabolicaTrix Correcteurs Moddeurs confirmés
                                dernière édition par

                                Je l’ai dit avant 😛

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

                                  Mais pas sur ce topic 😛

                                  Mes mods :

                                  • Cookie Ore (1.7.10)

                                  Mod en cours : **E…

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

                                    Arghhh je venais de voir le même truc x( mais Sasukz, tu fus plus rapide…

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

                                      Vous avez gagnés un cookie 🙂
                                      GG a vous deux

                                      Membre fantôme
                                      Je développe maintenant un jeu sur UnrealEngine4


                                      Contact :…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • DiabolicaTrixD Hors-ligne
                                        DiabolicaTrix Correcteurs Moddeurs confirmés
                                        dernière édition par

                                        C’était easy avec Winmerge 😛

                                        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