• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Ignorer un item

    1.7.x
    1.7.2
    5
    17
    2694
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • darkvince37
      darkvince37 last edited by

      Bonjours,

      Je poste car j’ai un petit probleme je voudrai ignoré un item

      package fr.darkvince.ultra;
      
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      
      public class itemRepaire extends Item
      {
          public itemRepaire()
          {
              this.maxStackSize = 1;
          }
      
          public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean selected)
          {
              if(entity instanceof EntityPlayer)
              {
                  EntityPlayer player = (EntityPlayer)entity;
                  for(int i = 0; i < 4; i++)
                  {
                      ItemStack armor = player.getCurrentArmor(i);
                      if(armor != null)
                      {
                          if(armor.getItemDamage() > 0 && stack.getItemDamage() < stack.getMaxDamage())
                          {
                              stack.setItemDamage(stack.getItemDamage() + 1);
                              armor.setItemDamage(armor.getItemDamage() - 1);
                          }
                      }
                  }
      
                  for(int i = 0; i < 9; i++)     
                  {
                      ItemStack targetStack = player.inventory.getStackInSlot(i);
                      Item target = Main.Cuprite_sword;
      
                      {
                          if(targetStack != null && targetStack.getItem().isRepairable() && target.isDamaged(targetStack))
                          {
                              stack.setItemDamage(stack.getItemDamage() + 1);
                              targetStack.setItemDamage(targetStack.getItemDamage() - 1);
                          }
                      }
                  }
              }
          }
      }
      

      En gros se que ej voudrai faire c’est que l’épée En Cuprite ne puisse pas etre reparable

      1 Reply Last reply Reply Quote 0
      • LeBossMax2
        LeBossMax2 last edited by

        Bonjour !

        Dans le if de ton deuxième for, tu n’a qu’a ajouter à ta condition “&& targetStack.getItem() != target”

        1 Reply Last reply Reply Quote 0
        • darkvince37
          darkvince37 last edited by

          @‘LeBossMax2’:

          Bonjour !

          Dans le if de ton deuxième for, tu n’a qu’a ajouter à ta condition “&& targetStack.getItem() != target”

          Merci de ta reponse

          Mais c’est pas que je veut pas mais y a un probleme

          for(int i = 0; i < 9 && targetStack.getItem() != target; i++ )     
                      {
                      Item target = Main.Cuprite_sword;
                          ItemStack targetStack = player.inventory.getStackInSlot(i);
          
                          {
                              if(targetStack != null && targetStack.getItem().isRepairable())
                              {
                                  stack.setItemDamage(stack.getItemDamage() + 1);
                                  targetStack.setItemDamage(targetStack.getItemDamage() - 1);
                              }
          

          Si je mais comme sa targetStack.getItem() != target; y a une erreur sur targetStack et target se qui est normal

          et si je mais comme se y a mon i en erreur normal aussi car il est en dessous

          Item target = Main.Cuprite_sword;
                      ItemStack targetStack = player.inventory.getStackInSlot(i);
                      for(int i = 0; i < 9 && targetStack.getItem() != target; i++ )     
                      {
          
                          {
                              if(targetStack != null && targetStack.getItem().isRepairable())
                              {
                                  stack.setItemDamage(stack.getItemDamage() + 1);
                                  targetStack.setItemDamage(targetStack.getItemDamage() - 1);
                              }
          
          1 Reply Last reply Reply Quote 0
          • LeBossMax2
            LeBossMax2 last edited by

            Tu n’a pas compris ce que je voulais dire :
            Il faut mettre “&& targetStack.getItem() != target” dans la condition du If, pas dans la condition du For.

            1 Reply Last reply Reply Quote 0
            • darkvince37
              darkvince37 last edited by

              @‘LeBossMax2’:

              Tu n’a pas compris ce que je voulais dire :
              Il faut mettre “&& targetStack.getItem() != target” dans la condition du If, pas dans la condition du For.

              J’ai essayé sa marche pas

              1 Reply Last reply Reply Quote 0
              • Deleted
                Deleted last edited by

                Beh tout simplement ça dans la classe de ton épée :

                
                   @Override
                   public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_)
                   {
                       return false;
                   }
                
                
                1 Reply Last reply Reply Quote 0
                • darkvince37
                  darkvince37 last edited by

                  @‘Plaigon’:

                  Beh tout simplement ça dans la classe de ton épée :

                  
                     @Override
                     public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_)
                     {
                         return false;
                     }
                  
                  

                  Non justement sa marche pas

                  Edit:
                  Tu n’a pas compris ce que je voulais dire :

                  Il faut mettre “&& targetStack.getItem() != target” dans la condition du If, pas dans la condition du For.

                  C’est pas que sa marche pas enfaîte c’est que l’item qui repaire les item s’utilise toute seul apres

                  1 Reply Last reply Reply Quote 0
                  • Deleted
                    Deleted last edited by

                    Pas compris …
                    Explique clairement ce que tu souhaites faire, car là je ne vois pas pourquoi mon code ne te satisfait pas 😕

                    1 Reply Last reply Reply Quote 0
                    • darkvince37
                      darkvince37 last edited by

                      @‘Plaigon’:

                      Pas compris …
                      Explique clairement ce que tu souhaites faire, car là je ne vois pas pourquoi mon code ne te satisfait pas 😕

                      Car ton code fait que sa repaire quand meme l’item en faite l’item que j’ai actuellement permet de reparer des item et armures quand il sont dans ton inventaire le probleme je veut ignorer 1 seul item mais avec ton code bah sa repaire quand meme l’item car la c’est pas une itemSword c’est une épee refaite en Item

                      Moi j’avais penser a faire sa

                      if(si c’est equal a épée Cuprite)

                      Sa fait rien

                      else(Si c’est pas une cuprite)
                      J’execute ma fonction

                      Mais j’y arrive pas

                      1 Reply Last reply Reply Quote 0
                      • Deleted
                        Deleted last edited by

                        Est-ce que ça va comme ceci ?

                        
                        @Override
                        public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isInHand)
                        {
                        super.onUpdate(stack, world, entity, slotIndex, isInHand);
                        EntityPlayer player = (EntityPlayer)entity;
                        for(int i = 0; i <= player.inventory.getSizeInventory(); i++)
                        {
                        ItemStack currentInventoryStack = player.inventory.getStackInSlot(i);
                        if(currentInventoryStack != null)
                        {
                        if(!currentInventoryStack.equals(Items.coal) && currentInventoryStack.getClass().equals(ItemSword.class))//remplace coal par ton item
                        {
                        if(!world.isRemote)
                        {
                        stack.damageItem(1, (EntityLivingBase)entity);
                        currentInventoryStack.setItemDamage(currentInventoryStack.getItemDamage() - 1 <= 0 ? currentInventoryStack.getItemDamage() - 1 : 0);
                        }
                        }
                        }
                        }
                        for(int i = 0; i < player.inventory.armorInventory.length; i++)
                        {
                        ItemStack currentArmorStack = player.inventory.armorItemInSlot(i);
                        if(currentArmorStack != null)
                        {
                        if(!world.isRemote)
                        {
                        stack.damageItem(1, (EntityLivingBase)entity);
                        currentArmorStack.setItemDamage(currentArmorStack.getItemDamage() - 1 <= 0 ? currentArmorStack.getItemDamage() - 1 : 0);
                        }
                        }
                        }
                        }
                        
                        
                        1 Reply Last reply Reply Quote 0
                        • darkvince37
                          darkvince37 last edited by

                          @‘Plaigon’:

                          Est-ce que ça va comme ceci ?

                          
                          @Override
                          public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isInHand)
                          {
                          super.onUpdate(stack, world, entity, slotIndex, isInHand);
                          EntityPlayer player = (EntityPlayer)entity;
                          for(int i = 0; i <= player.inventory.getSizeInventory(); i++)
                          {
                          ItemStack currentInventoryStack = player.inventory.getStackInSlot(i);
                          if(currentInventoryStack != null)
                          {
                          if(!currentInventoryStack.equals(Items.coal) && currentInventoryStack.getClass().equals(ItemSword.class))//remplace coal par ton item
                          {
                          if(!world.isRemote)
                          {
                          stack.damageItem(1, (EntityLivingBase)entity);
                          currentInventoryStack.setItemDamage(currentInventoryStack.getItemDamage() - 1 <= 0 ? currentInventoryStack.getItemDamage() - 1 : 0);
                          }
                          }
                          }
                          }
                          for(int i = 0; i < player.inventory.armorInventory.length; i++)
                          {
                          ItemStack currentArmorStack = player.inventory.armorItemInSlot(i);
                          if(currentArmorStack != null)
                          {
                          if(!world.isRemote)
                          {
                          stack.damageItem(1, (EntityLivingBase)entity);
                          currentArmorStack.setItemDamage(currentArmorStack.getItemDamage() - 1 <= 0 ? currentArmorStack.getItemDamage() - 1 : 0);
                          }
                          }
                          }
                          }
                          
                          

                          Crash direct 
                          C’est un ItemSword.class c’ets un Item tous court tien la class de l’item sa peut peut etre t’aider

                          package fr.darkvince.ultra;
                          
                          import java.util.List;
                          
                          import cpw.mods.fml.relauncher.Side;
                          import cpw.mods.fml.relauncher.SideOnly;
                          import net.minecraft.enchantment.Enchantment;
                          import net.minecraft.entity.Entity;
                          import net.minecraft.entity.EntityLivingBase;
                          import net.minecraft.entity.player.EntityPlayer;
                          import net.minecraft.init.Items;
                          import net.minecraft.item.EnumAction;
                          import net.minecraft.item.Item;
                          import net.minecraft.item.Item.ToolMaterial;
                          import net.minecraft.item.ItemStack;
                          import net.minecraft.item.ItemSword;
                          import net.minecraft.potion.Potion;
                          import net.minecraft.potion.PotionEffect;
                          import net.minecraft.util.EnumChatFormatting;
                          import net.minecraft.world.World;
                          
                          public class Cuprite_sword extends Item
                          {
                          
                          public Cuprite_sword() {
                          super();
                           setMaxStackSize(1);
                           setMaxDamage(90);
                          }
                          
                          public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase)
                           {
                             par1ItemStack.damageItem(1, par3EntityLivingBase);
                             if (getDamage(par1ItemStack) == 30) {
                               par1ItemStack.addEnchantment(Enchantment.sharpness, 10);
                             }
                             if (getDamage(par1ItemStack) == 45) {
                               par1ItemStack.addEnchantment(Enchantment.sharpness, 11);
                             }
                             if (getDamage(par1ItemStack) == 60) {
                               par1ItemStack.addEnchantment(Enchantment.sharpness, 12);
                             }
                             if (getDamage(par1ItemStack) == 75) {
                               par1ItemStack.addEnchantment(Enchantment.sharpness, 13);
                             }
                             if (getDamage(par1ItemStack) == 85) {
                               par1ItemStack.addEnchantment(Enchantment.sharpness, 25);
                             }
                             return true;
                           }
                          
                          @SideOnly(Side.CLIENT)
                             public boolean isFull3D()
                             {
                                 return true;
                             }
                          
                           public EnumAction getItemUseAction(ItemStack p_77661_1_)
                             {
                                 return EnumAction.block;
                             }
                           @Override
                            public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_)
                            {
                                return false;
                            }
                          
                           public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_)
                             {
                                 p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
                                 return p_77659_1_;
                             }
                           @SideOnly(Side.CLIENT)
                           public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
                           {
                             par3List.add(EnumChatFormatting.WHITE + "Epee de dieux LVL 1");
                           }
                          }
                          

                          at fr.darkvince.ultra.itemRepaire.onUpdate(itemRepaire.java:25)

                          La ligne 25 :  ItemStack currentInventoryStack = player.inventory.getStackInSlot(i);

                          1 Reply Last reply Reply Quote 0
                          • Deleted
                            Deleted last edited by

                            Crash report ?

                            1 Reply Last reply Reply Quote 0
                            • Deleted
                              Deleted last edited by

                              Remplace :
                              if(!currentInventoryStack.equals(Items.coal) && currentInventoryStack.getClass().equals(ItemSword.class))
                              Par :
                              if(!currentInventoryStack.equals(Items.coal) && currentInventoryStack.getItem ().getClass().equals(ItemSword.class))

                              EDIT = Crash report stp

                              1 Reply Last reply Reply Quote 0
                              • Deleted
                                Deleted last edited by

                                Crash report aussi stp 😃

                                1 Reply Last reply Reply Quote 0
                                • darkvince37
                                  darkvince37 last edited by

                                  @‘Plaigon’:

                                  Crash report aussi stp 😃

                                  Aucun crash report est les log non plus

                                  Edit:

                                  J’était dans le mauvais dossier de mods

                                  –-- Minecraft Crash Report ----
                                  // Oh - I know what I did wrong!
                                  
                                  Time: 23/04/16 15:02
                                  Description: Ticking player
                                  
                                  java.lang.ArrayIndexOutOfBoundsException: 4
                                  at net.minecraft.entity.player.InventoryPlayer.getStackInSlot(InventoryPlayer.java:646)
                                  at fr.darkvince.ultra.itemRepaire.onUpdate(itemRepaire.java:25)
                                  at net.minecraft.item.ItemStack.updateAnimation(ItemStack.java:476)
                                  at net.minecraft.entity.player.InventoryPlayer.decrementAnimations(InventoryPlayer.java:347)
                                  at net.minecraft.entity.player.EntityPlayer.onLivingUpdate(EntityPlayer.java:610)
                                  at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:1816)
                                  at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:327)
                                  at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:330)
                                  at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:329)
                                  at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37)
                                  at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.processPacket(C03PacketPlayer.java:271)
                                  at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
                                  at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
                                  at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
                                  at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
                                  at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
                                  at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
                                  at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
                                  
                                  A detailed walkthrough of the error, its code path and all known details is as follows:
                                  ---------------------------------------------------------------------------------------
                                  
                                  -- Head --
                                  Stacktrace:
                                  at net.minecraft.entity.player.InventoryPlayer.getStackInSlot(InventoryPlayer.java:646)
                                  at fr.darkvince.ultra.itemRepaire.onUpdate(itemRepaire.java:25)
                                  at net.minecraft.item.ItemStack.updateAnimation(ItemStack.java:476)
                                  at net.minecraft.entity.player.InventoryPlayer.decrementAnimations(InventoryPlayer.java:347)
                                  at net.minecraft.entity.player.EntityPlayer.onLivingUpdate(EntityPlayer.java:610)
                                  at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:1816)
                                  at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:327)
                                  
                                  -- Player being ticked --
                                  Details:
                                  Entity Type: null (net.minecraft.entity.player.EntityPlayerMP)
                                  Entity ID: 534
                                  Entity Name: Player88
                                  Entity's Exact location: -172,50, 63,00, 257,50
                                  Entity's Block location: World: (-173,63,257), Chunk: (at 3,3,1 in -11,16; contains blocks -176,0,256 to -161,255,271), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
                                  Entity's Momentum: 0,00, -0,08, 0,00
                                  Stacktrace:
                                  at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:330)
                                  at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:329)
                                  at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37)
                                  at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.processPacket(C03PacketPlayer.java:271)
                                  at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
                                  
                                  -- Ticking connection --
                                  Details:
                                  Connection: net.minecraft.network.NetworkManager@70604eee
                                  Stacktrace:
                                  at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
                                  at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
                                  at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
                                  at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
                                  at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
                                  at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
                                  
                                  -- System Details --
                                  Details:
                                  Minecraft Version: 1.7.10
                                  Operating System: Windows 10 (amd64) version 10.0
                                  Java Version: 1.8.0_74, Oracle Corporation
                                  Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                                  Memory: 936570232 bytes (893 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
                                  JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                                  AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                                  IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
                                  FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 4 mods loaded, 4 mods active
                                  States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                                  UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
                                  UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
                                  UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
                                  UCHIJAAAA ultra{1.0} [ultra] (bin) 
                                  GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
                                  Profiler Position: N/A (disabled)
                                  Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                                  Player Count: 1 / 8; [EntityPlayerMP['Player88'/534, l='New World', x=-172,50, y=63,00, z=257,50]]
                                  Type: Integrated Server (map_client.txt)
                                  Is Modded: Definitely; Client brand changed to 'fml,forge'
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • SCAREX
                                    SCAREX last edited by

                                    Envoi la classe entière de l’Item sinon on peut pas savoir où c’est précisément

                                    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 Reply Last reply Reply Quote 0
                                    • robin4002
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                      C’est telement difficile de faire un
                                      if(itemstack != null && itemstack.getItem() != ClassPrincipale.itemAExclure)
                                      ???

                                      1 Reply Last reply Reply Quote 0
                                      • 1 / 1
                                      • First post
                                        Last post
                                      Design by Woryk
                                      Contact / Mentions Légales

                                      MINECRAFT FORGE FRANCE © 2018

                                      Powered by NodeBB