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.
    • AzUriAA Hors-ligne
      AzUriA
      dernière édition par

      merci AymericRed mais si tu veux m’aider plus j’ai regarder les tutos de Checconio (regarde l’épisode des items) donc sa veut dire que a la place de:
      AK47 = new Item();
      Je met :
      AK47 = new ItemAutoGun();

      puis je créer une classe avec un extends item avec le code un peux modifier de l’Arc (je cracherais pas sur ce qui peux être supprimé si tu me le dis)

      Merci bcp

      1 réponse Dernière réponse Répondre Citer 0
      • 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