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

      Bonjour Je m’appelle Azuria je suis débutant en java . Je demande de l’aide car pour mon mode je voudrais créer une arme à feux, un AK47 (fusil mitrailleur pour ceux qui si connaisse pas ) et un Berreta (pistolet ) mais vue que JE SUIS NUL EN JAVA,si vous pouvez me faire un code ou un exemple de code svp (je suis en 1.7.10)

      Cordialement AzUriA

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

        @azuria en gros tu veux du code tout fais gratos quoi

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

          Salut,
          Vouloir faire des armes en étant débutant…c’est pas le meilleur truc à faire.
          Je te conseille de regarder du côté de FlansMod pour avoir des armes déjà faites, ou même si tu veux regarder son code (il est open-source, sur github).
          Si tu veux le coder, il te faudra faire :

          • un item avec action au clic droit (plus l’item de munition)
          • une entité “balle” tirée au moment du clic (tu peux regarde ItemArrow et EntityArrow, le principe est en partie le même) et qui fait des dégats quand elle touche quelqu’un.

          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
          • 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