MFF

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

    Objet qui s'use

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.6.4
    18 Messages 3 Publieurs 4.3k 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.
    • Nolan-XXN Hors-ligne
      Nolan-XX
      dernière édition par

      @‘EclipseOnFire’:

      Essaye avec le code que j’ai conseillé, l’exception vient du fait que la boucle dépasse la taille de la liste.

      for(ItemStack i : player.inventory.mainInventory){
      if(i != null && i.itemID == itemId){
      return i;
      }
      return -1;
      }
      

      Il me donne une erreur à

      return i;
      
      1 réponse Dernière réponse Répondre Citer 0
      • EclipseOnFireE Hors-ligne
        EclipseOnFire
        dernière édition par

        Oui évidemment… T_T J’ai bouzillé ma boucle ^^ Essaye ça :

        
        int j = 0;
        for(ItemStack i : player.inventory.mainInventory){
        if(i != null && i.itemID == itemId){
        return j;
        }
        j++;
        }
        return -1;
        
        

        Travaille sur un super serveur, Wirestone.

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002R Hors-ligne
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
          dernière édition par

          @‘EclipseOnFire’:

          Essaye avec le code que j’ai conseillé, l’exception vient du fait que la boucle dépasse la taille de la liste.

          for(ItemStack i : player.inventory.mainInventory){
          if(i != null && i.itemID == itemId){
          return i;
          }
          return -1;
          }
          

          Regarde bien ce que tu fais ici. i est un ItemStack, et tu return i or la fonction est un int. Ça ne peux pas fonctionner …
          Si j’ai utiliser un nombre i c’est pas pour rien, je connais aussi les itérateurs, mais ils ne convient pas dans ce cas.

          Je comprends pas pourquoi il return -1 alors que ton code vérifie que le joueur à bien l’item sur lui, c’est étrange.

          Tu peux faire du debug ?

          private int getItemIntoInventory(EntityPlayer player, int itemId)
          {
          for(int i = 0; i < player.inventory.mainInventory.lenth; i ++)
          {
          if(player.inventory.mainInventory* != null && player.inventory.mainInventory*.itemID == itemId)
          {
          return i;
          System.out.println("l'item se trouve dans le slot : " + i);
          }
          }
          System.out.println("l'item non trouvé");
          return -1;
          }
          

          EDIT : j’ai mit le return -1 au mauvais endroit, c’est pour ça x)

          1 réponse Dernière réponse Répondre Citer 0
          • Nolan-XXN Hors-ligne
            Nolan-XX
            dernière édition par

            Parfait, ça marche, sauf que la boite de munition ne se détruit pas lorsqu’elle est vide.

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002R Hors-ligne
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
              dernière édition par

              Remplace

              player.inventory.mainInventory[getItemIntoInventory(player, EastonIsland.I9mm.itemID)].damageItem(1, player);
              

              par :

              int slotId = getItemIntoInventory(player, EastonIsland.I9mm.itemID);
              player.inventory.mainInventory[slotId].damageItem(1, player);
              if(player.inventory.mainInventory[slotId].getItemDamage == 0)
              {
              player.inventory.mainInventory[slotId] = null;
              }
              
              1 réponse Dernière réponse Répondre Citer 0
              • EclipseOnFireE Hors-ligne
                EclipseOnFire
                dernière édition par

                Je vire mes posts ça va alléger !

                Travaille sur un super serveur, Wirestone.

                1 réponse Dernière réponse Répondre Citer 0
                • Nolan-XXN Hors-ligne
                  Nolan-XX
                  dernière édition par

                  Une erreur a

                  int slotId = player.inventory.mainInventory[getItemIntoInventory(player, EastonIsland.I9mm.itemID)];
                  

                  :```
                  Type mismatch: cannot convert from ItemStack to int

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    oups x)
                    int slotId = getItemIntoInventory(player, EastonIsland.I9mm.itemID);

                    1 réponse Dernière réponse Répondre Citer 0
                    • Nolan-XXN Hors-ligne
                      Nolan-XX
                      dernière édition par

                      Parfait, merci.

                      1 réponse Dernière réponse Répondre Citer 0
                      • Nolan-XXN Hors-ligne
                        Nolan-XX
                        dernière édition par

                        En fait non, il m’envoie une erreur à :

                        java.lang.ArrayIndexOutOfBoundsException: -1
                        

                        La classe de l’item

                        
                        package assets.ei.Weapons;
                        
                        import net.minecraft.client.renderer.texture.IconRegister;
                        import net.minecraft.entity.Entity;
                        import net.minecraft.entity.EntityLivingBase;
                        import net.minecraft.entity.player.EntityPlayer;
                        import net.minecraft.item.ItemStack;
                        import net.minecraft.util.MovingObjectPosition;
                        import net.minecraft.world.World;
                        import assets.NolanCore.Data.EntityShoot;
                        import assets.ei.Data.EastonIsland;
                        import assets.ei.Data.EntityBullet;
                        import assets.ei.Data.ItemWeapon;
                        import assets.mgs.common.Main;
                        
                        public class W_GP extends ItemWeapon
                        {
                        
                        private int timer = 0;
                        
                        public W_GP(int par1)
                        {
                        super(par1);
                        this.maxStackSize = 1;
                        this.setCreativeTab(EastonIsland.Ei3);
                        }
                        
                        /*
                        * private int getItemIntoInventory(EntityPlayer player, int itemId)
                        {
                        for(int i = 0; i < player.inventory.mainInventory.lenth; i ++)
                        {
                        if(player.inventory.mainInventory* != null && player.inventory.mainInventory*.itemID == itemId)
                        {
                        return i;
                        }
                        return -1;
                        }
                        }*/
                        
                        public boolean onEntitySwing(EntityLivingBase e, ItemStack s)
                        {
                        if (s.getItemDamage() == 0)
                        if (e instanceof EntityPlayer)
                        {
                        EntityPlayer player = (EntityPlayer) e;
                        boolean flag = false;
                        
                        if (player.capabilities.isCreativeMode)
                        {
                        flag = true;
                        }
                        else
                        {
                        player.inventory.mainInventory[getItemIntoInventory(player, EastonIsland.I9mm.itemID)].damageItem(1, player);
                        
                        }
                        
                        if (flag)
                        {
                        EntityBullet bullet = new EntityBullet(e.worldObj, e, false, "GP", 5, 64);
                        if (!e.worldObj.isRemote)
                        e.worldObj.spawnEntityInWorld(bullet);
                        e.worldObj.playSoundAtEntity(e, "ei:pistol_fire", 0.5f, 1);
                        onUsed(s, e);
                        int slotId = getItemIntoInventory(player, EastonIsland.I9mm.itemID);
                        player.inventory.mainInventory[slotId].damageItem(1, player);
                        if(player.inventory.mainInventory[slotId].getItemDamage() == 0)
                        {
                        player.inventory.mainInventory[slotId] = null;
                        }
                        }
                        else
                        e.worldObj.playSoundAtEntity(e, "ei:ClipEmpty_Pistol",0.5f, 1);
                        
                        }
                        return true;
                        }
                        
                        private int getItemIntoInventory(EntityPlayer player, int itemId)
                        {
                        for(int i = 0; i < player.inventory.mainInventory.length; i ++)
                        {
                        if(player.inventory.mainInventory* != null && player.inventory.mainInventory*.itemID == itemId)
                        {
                        return i;
                        }
                        }
                        System.out.println("l'item non trouvé");
                        return -1;
                        }
                        
                        public boolean onBlockStartBreak(ItemStack s, int x, int y, int z,EntityPlayer player)
                        {
                        return true;
                        }
                        
                        public boolean hitEntity(ItemStack s, EntityLivingBase e, EntityLivingBase source)
                        {
                        if (s.getItemDamage() == 0)
                        if (source instanceof EntityPlayer) {
                        EntityPlayer player = (EntityPlayer) source;
                        boolean flag = false;
                        if (player.capabilities.isCreativeMode)
                        {
                        flag = true;
                        } else
                        {
                        flag = player.inventory
                        .consumeInventoryItem(EastonIsland.I9mm.itemID);
                        }
                        if (flag)
                        {
                        if (!e.worldObj.isRemote)
                        new EntityBullet(source.worldObj, source, false, "GP",5, 64).onImpact(new MovingObjectPosition(e));
                        onUsed(s, source);
                        }
                        else
                        source.worldObj.playSoundAtEntity(source,"ei:ClipEmpty_Pistol", 1, 1);
                        }
                        return false;
                        }
                        
                        private void onUsed(ItemStack s, EntityLivingBase e) {
                        s.setItemDamage(20);
                        }
                        
                        public void onUpdate(ItemStack s, World w, Entity p, int i, boolean flag) {
                        super.onUpdate(s, w, p, i, flag);
                        if (s.getItemDamage() > 0)
                        {
                        s.setItemDamage(s.getItemDamage() - 1);
                        }
                        }
                        
                        @Override
                        public void registerIcons(IconRegister iconRegister)
                        {
                        itemIcon = iconRegister.registerIcon("ei:Pistolet Browning GP");
                        }
                        }
                        
                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002R Hors-ligne
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                          dernière édition par

                          int slotId = getItemIntoInventory(player, EastonIsland.I9mm.itemID);
                          if(slotId >= 0)
                          {
                          player.inventory.mainInventory[slotId].damageItem(1, player);
                          if(player.inventory.mainInventory[slotId].getItemDamage() == 0)
                          {
                          player.inventory.mainInventory[slotId] = null;
                          }
                          }
                          

                          Tu n’avais pas de munition quand tu as eu le crash, si ?

                          1 réponse Dernière réponse Répondre Citer 0
                          • Nolan-XXN Hors-ligne
                            Nolan-XX
                            dernière édition par

                            Non, je n’en n’avais pas

                            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