MFF

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

    Pouvez vous m'aider a faire une arme à feux - AzUriA

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    18 Messages 5 Publieurs 1.4k Vues 4 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.
    • AymericRedA Hors-ligne
      AymericRed
      dernière édition par

      Oui il faut que tu fasses ceci, exactement.
      En fait, copies les fonctions “onStoppedUsing” et “onItemRightClick” (noms de mémoire), remplaces le contenu d’onItemRightClick par celui de onStoppedUsing en enlève onStoppedUsing. (Car l’arc a un délai avant de tirer, une arme non).

      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.

      AzUriAA 2 réponses Dernière réponse Répondre Citer 0
      • AzUriAA Hors-ligne
        AzUriA @AymericRed
        dernière édition par robin4002

        ça en gros ?

        package com.azuria.mod.items;
        
        import com.azuria.mod.Reference;
        import com.azuria.mod.ZombieSurvivalMain;
        import com.azuria.mod.init.ItemMod;
        
        import cpw.mods.fml.relauncher.Side;
        import cpw.mods.fml.relauncher.SideOnly;
        import net.minecraft.client.renderer.texture.IIconRegister;
        import net.minecraft.creativetab.CreativeTabs;
        import net.minecraft.enchantment.Enchantment;
        import net.minecraft.enchantment.EnchantmentHelper;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.entity.projectile.EntityArrow;
        import net.minecraft.init.Items;
        import net.minecraft.item.EnumAction;
        import net.minecraft.item.Item;
        import net.minecraft.item.ItemStack;
        import net.minecraft.util.IIcon;
        import net.minecraft.world.World;
        import net.minecraftforge.common.MinecraftForge;
        import net.minecraftforge.event.entity.player.ArrowLooseEvent;
        import net.minecraftforge.event.entity.player.ArrowNockEvent;
        
        public class AK47 extends Item{
        	public AK47()
            {
                this.maxStackSize = 1;
                this.setMaxDamage(384);
                this.setCreativeTab(CreativeTabs.tabCombat);
            }
        	 public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_)
        	    {
        	        int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
        
        	        ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
        	        MinecraftForge.EVENT_BUS.post(event);
        	        if (event.isCanceled())
        	        {
        	            return;
        	        }
        	        j = event.charge;
        
        	        boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
        
        	        if (flag || p_77615_3_.inventory.hasItem(Items.arrow))
        	        {
        	            float f = (float)j / 20.0F;
        	            f = (f * f + f * 2.0F) / 3.0F;
        
        	            if ((double)f < 0.1D)
        	            {
        	                return;
        	            }
        
        	            if (f > 1.0F)
        	            {
        	                f = 1.0F;
        	            }
        
        	            EntityArrow entityarrow = new EntityArrow(p_77615_2_, p_77615_3_, f * 2.0F);
        
        	            if (f == 1.0F)
        	            {
        	                entityarrow.setIsCritical(true);
        	            }
        
        	            int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, p_77615_1_);
        
        	            if (k > 0)
        	            {
        	                entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
        	            }
        
        	            int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, p_77615_1_);
        
        	            if (l > 0)
        	            {
        	                entityarrow.setKnockbackStrength(l);
        	            }
        
        	            if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, p_77615_1_) > 0)
        	            {
        	                entityarrow.setFire(100);
        	            }
        
        	            p_77615_1_.damageItem(1, p_77615_3_);
        	            p_77615_2_.playSoundAtEntity(p_77615_3_, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
        
        	            if (flag)
        	            {
        	                entityarrow.canBePickedUp = 2;
        	            }
        	            else
        	            {
        	                p_77615_3_.inventory.consumeInventoryItem(Items.arrow);
        	            }
        
        	            if (!p_77615_2_.isRemote)
        	            {
        	                p_77615_2_.spawnEntityInWorld(entityarrow);
        	            }
        	        }
        	    }
        	 public ItemStack onItemRightClick(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_)
        	    {
        	        int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
        
        	        ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
        	        MinecraftForge.EVENT_BUS.post(event);
        	        if (event.isCanceled())
        	        {
        	            return p_77615_1_;
        	        }
        	        j = event.charge;
        
        	        boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
        
        	        if (flag || p_77615_3_.inventory.hasItem(Items.arrow))
        	        {
        	            float f = (float)j / 20.0F;
        	            f = (f * f + f * 2.0F) / 3.0F;
        
        	            if ((double)f < 0.1D)
        	            {
        	                return null;
        	            }
        
        	            if (f > 1.0F)
        	            {
        	                f = 1.0F;
        	            }
        
        	            EntityArrow entityarrow = new EntityArrow(p_77615_2_, p_77615_3_, f * 2.0F);
        
        	            if (f == 1.0F)
        	            {
        	                entityarrow.setIsCritical(true);
        	            }
        
        	            int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, p_77615_1_);
        
        	            if (k > 0)
        	            {
        	                entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
        	            }
        
        	            int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, p_77615_1_);
        
        	            if (l > 0)
        	            {
        	                entityarrow.setKnockbackStrength(l);
        	            }
        
        	            if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, p_77615_1_) > 0)
        	            {
        	                entityarrow.setFire(100);
        	            }
        
        	            p_77615_1_.damageItem(1, p_77615_3_);
        	            p_77615_2_.playSoundAtEntity(p_77615_3_, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
        
        	            if (flag)
        	            {
        	                entityarrow.canBePickedUp = 2;
        	            }
        	            else
        	            {
        	                p_77615_3_.inventory.consumeInventoryItem(Items.arrow);
        	            }
        
        	            if (!p_77615_2_.isRemote)
        	            {
        	                p_77615_2_.spawnEntityInWorld(entityarrow);
        	            }
        	        }
        			return p_77615_1_;
        
        
        	    }
        	 }
        
        Wind_BladeW 1 réponse Dernière réponse Répondre Citer 0
        • AzUriAA Hors-ligne
          AzUriA @AymericRed
          dernière édition par

          Ce message a été supprimé !
          1 réponse Dernière réponse Répondre Citer 0
          • Wind_BladeW Hors-ligne
            Wind_Blade @AzUriA
            dernière édition par Wind_Blade

            @azuria a dit dans Pouvez vous m'aider a faire une arme à feux - AzUriA :

            ça en gros ?

            package com.azuria.mod.items;
            
            import com.azuria.mod.Reference;
            import com.azuria.mod.ZombieSurvivalMain;
            import com.azuria.mod.init.ItemMod;
            
            import cpw.mods.fml.relauncher.Side;
            import cpw.mods.fml.relauncher.SideOnly;
            import net.minecraft.client.renderer.texture.IIconRegister;
            import net.minecraft.creativetab.CreativeTabs;
            import net.minecraft.enchantment.Enchantment;
            import net.minecraft.enchantment.EnchantmentHelper;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.entity.projectile.EntityArrow;
            import net.minecraft.init.Items;
            import net.minecraft.item.EnumAction;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            import net.minecraft.util.IIcon;
            import net.minecraft.world.World;
            import net.minecraftforge.common.MinecraftForge;
            import net.minecraftforge.event.entity.player.ArrowLooseEvent;
            import net.minecraftforge.event.entity.player.ArrowNockEvent;
            
            public class AK47 extends Item{
            	public AK47()
                {
                    this.maxStackSize = 1;
                    this.setMaxDamage(384);
                    this.setCreativeTab(CreativeTabs.tabCombat);
                }
            	 public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_)
            	    {
            	        int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
            
            	        ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
            	        MinecraftForge.EVENT_BUS.post(event);
            	        if (event.isCanceled())
            	        {
            	            return;
            	        }
            	        j = event.charge;
            
            	        boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
            
            	        if (flag || p_77615_3_.inventory.hasItem(Items.arrow))
            	        {
            	            float f = (float)j / 20.0F;
            	            f = (f * f + f * 2.0F) / 3.0F;
            
            	            if ((double)f < 0.1D)
            	            {
            	                return;
            	            }
            
            	            if (f > 1.0F)
            	            {
            	                f = 1.0F;
            	            }
            
            	            EntityArrow entityarrow = new EntityArrow(p_77615_2_, p_77615_3_, f * 2.0F);
            
            	            if (f == 1.0F)
            	            {
            	                entityarrow.setIsCritical(true);
            	            }
            
            	            int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, p_77615_1_);
            
            	            if (k > 0)
            	            {
            	                entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
            	            }
            
            	            int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, p_77615_1_);
            
            	            if (l > 0)
            	            {
            	                entityarrow.setKnockbackStrength(l);
            	            }
            
            	            if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, p_77615_1_) > 0)
            	            {
            	                entityarrow.setFire(100);
            	            }
            
            	            p_77615_1_.damageItem(1, p_77615_3_);
            	            p_77615_2_.playSoundAtEntity(p_77615_3_, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
            
            	            if (flag)
            	            {
            	                entityarrow.canBePickedUp = 2;
            	            }
            	            else
            	            {
            	                p_77615_3_.inventory.consumeInventoryItem(Items.arrow);
            	            }
            
            	            if (!p_77615_2_.isRemote)
            	            {
            	                p_77615_2_.spawnEntityInWorld(entityarrow);
            	            }
            	        }
            	    }
            	 public ItemStack onItemRightClick(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_)
            	    {
            	        int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
            
            	        ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
            	        MinecraftForge.EVENT_BUS.post(event);
            	        if (event.isCanceled())
            	        {
            	            return p_77615_1_;
            	        }
            	        j = event.charge;
            
            	        boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
            
            	        if (flag || p_77615_3_.inventory.hasItem(Items.arrow))
            	        {
            	            float f = (float)j / 20.0F;
            	            f = (f * f + f * 2.0F) / 3.0F;
            
            	            if ((double)f < 0.1D)
            	            {
            	                return null;
            	            }
            
            	            if (f > 1.0F)
            	            {
            	                f = 1.0F;
            	            }
            
            	            EntityArrow entityarrow = new EntityArrow(p_77615_2_, p_77615_3_, f * 2.0F);
            
            	            if (f == 1.0F)
            	            {
            	                entityarrow.setIsCritical(true);
            	            }
            
            	            int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, p_77615_1_);
            
            	            if (k > 0)
            	            {
            	                entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
            	            }
            
            	            int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, p_77615_1_);
            
            	            if (l > 0)
            	            {
            	                entityarrow.setKnockbackStrength(l);
            	            }
            
            	            if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, p_77615_1_) > 0)
            	            {
            	                entityarrow.setFire(100);
            	            }
            
            	            p_77615_1_.damageItem(1, p_77615_3_);
            	            p_77615_2_.playSoundAtEntity(p_77615_3_, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
            
            	            if (flag)
            	            {
            	                entityarrow.canBePickedUp = 2;
            	            }
            	            else
            	            {
            	                p_77615_3_.inventory.consumeInventoryItem(Items.arrow);
            	            }
            
            	            if (!p_77615_2_.isRemote)
            	            {
            	                p_77615_2_.spawnEntityInWorld(entityarrow);
            	            }
            	        }
            			return p_77615_1_;
            
            
            	    }
            	 }
            

            oula il faut pas jutes copier coller le code, il faut l’adapter, car là ça fonctionne comme un arc, ton item devrais pouvoir tirer des flèches si tu a des flèches dans ton inventaire

            AzUriAA 1 réponse Dernière réponse Répondre Citer 0
            • AzUriAA Hors-ligne
              AzUriA @Wind_Blade
              dernière édition par

              @wind_blade merci, mes comment je l’adapte

              Wind_BladeW 1 réponse Dernière réponse Répondre Citer 0
              • Wind_BladeW Hors-ligne
                Wind_Blade @AzUriA
                dernière édition par Wind_Blade

                @azuria a dit dans Pouvez vous m'aider a faire une arme à feux - AzUriA :

                @wind_blade merci, mes comment je l’adapte

                bah en fonction de ce que tu veut faire avec ton arme, tu autorise le tir que si les joueurs a des minutions et tu l’enlève (si ton fusil a des munitions)

                AzUriAA 1 réponse Dernière réponse Répondre Citer 0
                • AzUriAA Hors-ligne
                  AzUriA @Wind_Blade
                  dernière édition par

                  @wind_blade En gros je remplace tout les entity arrow par des entity bullet c’est ça ?

                  Wind_BladeW 1 réponse Dernière réponse Répondre Citer 0
                  • Wind_BladeW Hors-ligne
                    Wind_Blade @AzUriA
                    dernière édition par Wind_Blade

                    @azuria a dit dans Pouvez vous m'aider a faire une arme à feux - AzUriA :

                    @wind_blade En gros je remplace tout les entity arrow par des entity bullet c’est ça ?

                    Oui, enlève aussi le code inutile, comme par exemple celui qui gère si la flèche est enflammer ou si l’arc n’a plus de durabilité (ainsi que celui qui gère l’eventArrowLooseEvent et autre) .
                    Apprend le java aussi, car nous partont sur le principe que tu connais le java, on ne crée pas de mod minecraft sans connaitre les bases du java

                    AzUriAA 1 réponse Dernière réponse Répondre Citer 0
                    • AzUriAA Hors-ligne
                      AzUriA @Wind_Blade
                      dernière édition par

                      @wind_blade Quel sont les fonctions a supprimés (pour que ça aille plus vite et que j’arrête de te faire perdre ton temp) et celles a modifier.

                      Wind_BladeW 1 réponse Dernière réponse Répondre Citer 0
                      • Wind_BladeW Hors-ligne
                        Wind_Blade @AzUriA
                        dernière édition par Wind_Blade

                        @azuria a dit dans Pouvez vous m'aider a faire une arme à feux - AzUriA :

                        @wind_blade Quel sont les fonctions a supprimés (pour que ça aille plus vite et que j’arrête de te faire perdre ton temp) et celles a modifier.

                        Nous somme un forum d’entraide pas de travail bâclée (on peut t’aider à comprendre si tu ne comprend pas un bug ou donner un schéma mais pas le code), déjà il faut que tu crée une entité bullet pour ton projectile, et les fonctions a supprimer sont tout simplement c’elle qui ne te servira pas. Tu peut analyser ce que fait le code pour comprendre ce qu’il faut modifier

                        AzUriAA 1 réponse Dernière réponse Répondre Citer 0
                        • AzUriAA Hors-ligne
                          AzUriA @Wind_Blade
                          dernière édition par

                          @wind_blade ok mrc

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

                            Il faudra également songer à la persistance des données via NBTTag (je pense au nbre de munitions dans le chargeur actuel).

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

                              @Plaigon Les tags NBT sont sauvegardés automatiquement (si tu parles de ceux des items)

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

                                Je parlais d’enregistrer les données dans le NBTTag de l’Itemstack, et non de les considérer comme un field de la classe Item.

                                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