MFF

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

    Arc Custom

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    25 Messages 3 Publieurs 5.4k 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.
    • EryahE Hors-ligne
      Eryah
      dernière édition par

      Merci 🙂
      Je lance le client pour test


      Err, non le bloc magique violet et noir n’inflige toujours pas les dégats d’un épée

      Membre fantôme
      Je développe maintenant un jeu sur UnrealEngine4


      Contact :…

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

        Je rapelle que ce topic existe 😞
        Et j’aimerai quand même que cela fonctionne 😞
        Tous est bon, sauf les dégats, l’arc n’inflige toujours pas de dégats
        Petit problème supplémentaire :

        • Impossible d’enchanter les arcs autrement qu’en Solidité

        Classe de l’un des arc (Ici en fer)

        ​package eryah.usefulthings.init;
        
        import net.minecraft.client.Minecraft;
        import net.minecraft.client.resources.model.ModelResourceLocation;
        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.ItemBow;
        import net.minecraft.item.ItemStack;
        import net.minecraft.stats.StatList;
        import net.minecraft.world.World;
        import net.minecraftforge.fml.common.registry.GameRegistry;
        import eryah.usefulthings.Reference;
        import eryah.usefulthings.UsefulthingsMod;
        
        public class BladedBowIron extends ItemBow
        {
            public static final String[] bowPullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"};
            public static Item iron_bladed_bow;
        
            public BladedBowIron()
            {
                this.maxStackSize = 1;
                this.setMaxDamage(384);       
            }
        
        public static void init(){
        iron_bladed_bow = new BladedBowIron().setUnlocalizedName("iron_bladed_bow").setCreativeTab(UsefulthingsMod.UTTab);
        }
        
        public static void register()
        {
        GameRegistry.registerItem(iron_bladed_bow, iron_bladed_bow.getUnlocalizedName().substring(5));
        }
        
        public static void registerRenders()
        {
        registerRender(iron_bladed_bow);
        }
        
        public static void registerRender(Item item)
        {
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
        }
        
        public float getDamageVsEntity()
           {
               return 6.0F;
           }
        
            /**
             * Called when the player stops using an Item (stops holding the right mouse button).
             *  
             * @param timeLeft The amount of ticks left before the using would have been complete
             */
            public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityPlayer playerIn, int timeLeft)
            {
                int j = this.getMaxItemUseDuration(stack) - timeLeft;
                net.minecraftforge.event.entity.player.ArrowLooseEvent event = new net.minecraftforge.event.entity.player.ArrowLooseEvent(playerIn, stack, j);
                if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) return;
                j = event.charge;
        
                boolean flag = playerIn.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0;
        
                if (flag || playerIn.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(worldIn, playerIn, f * 2.0F);
        
                    if (f == 1.0F)
                    {
                        entityarrow.setIsCritical(true);
                    }
        
                    int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, stack);
        
                    if (k > 0)
                    {
                        entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
                    }
        
                    int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, stack);
        
                    if (l > 0)
                    {
                        entityarrow.setKnockbackStrength(l);
                    }
        
                    if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, stack) > 0)
                    {
                        entityarrow.setFire(100);
                    }
        
                    stack.damageItem(1, playerIn);
                    worldIn.playSoundAtEntity(playerIn, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
        
                    if (flag)
                    {
                        entityarrow.canBePickedUp = 2;
                    }
                    else
                    {
                        playerIn.inventory.consumeInventoryItem(Items.arrow);
                    }
        
                    playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
        
                    if (!worldIn.isRemote)
                    {
                        worldIn.spawnEntityInWorld(entityarrow);
                    }
                }
            }
        
            /**
             * Called when the player finishes using this Item (E.g. finishes eating.). Not called when the player stops using
             * the Item before the action is complete.
             */
            public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
            {
                return stack;
            }
        
            /**
             * How long it takes to use or consume an item
             */
            public int getMaxItemUseDuration(ItemStack stack)
            {
                return 72000;
            }
        
            /**
             * returns the action that specifies what animation to play when the items is being used
             */
            public EnumAction getItemUseAction(ItemStack stack)
            {
                return EnumAction.BOW;
            }
        
            /**
             * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
             */
            public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
            {
                net.minecraftforge.event.entity.player.ArrowNockEvent event = new net.minecraftforge.event.entity.player.ArrowNockEvent(playerIn, itemStackIn);
                if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) return event.result;
        
                if (playerIn.capabilities.isCreativeMode || playerIn.inventory.hasItem(Items.arrow))
                {
                    playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn));
                }
        
                return itemStackIn;
            }
        
            /**
             * Return the enchantability factor of the item, most of the time is based on material.
             */
            public int getItemEnchantability()
            {
                return 1;
            }
        
            @Override
            public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining)
            {
                ModelResourceLocation modelresourcelocation = new ModelResourceLocation(Reference.MOD_ID + ":iron_bladed_bow_standby", "inventory");
        
                if(stack.getItem() == this && player.getItemInUse() != null)
                {
                    if(useRemaining >= 71985)
                    {
                        modelresourcelocation = new ModelResourceLocation(Reference.MOD_ID + ":iron_bladed_bow_pulling_0", "inventory");
                    }
                    else if(useRemaining > 71979)
                    {
                        modelresourcelocation = new ModelResourceLocation(Reference.MOD_ID + ":iron_bladed_bow_pulling_1", "inventory");
                    }
                    else if(useRemaining > 0)
                    {
                        modelresourcelocation = new ModelResourceLocation(Reference.MOD_ID + ":iron_bladed_bow_pulling_2", "inventory");
                    }
                }
                return modelresourcelocation;
            }
        
        }
        
        

        Membre fantôme
        Je développe maintenant un jeu sur UnrealEngine4


        Contact :…

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

          Dégâts au corps à corps ou à distance ?
          Pour l’enchantement, je ne sais pas comment ils fonctionnent en 1.8. Fais quelques recherches de ton côté.

          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 réponse Dernière réponse Répondre Citer 0
          • EryahE Hors-ligne
            Eryah
            dernière édition par

            @‘Eryah’:

            Ce n’est pas les dégats des flèches ces valeurs ?
            Je voudrais que sa soit comme un épée, un arc épée

            Membre fantôme
            Je développe maintenant un jeu sur UnrealEngine4


            Contact :…

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

              Donc corps à corps ?

              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 réponse Dernière réponse Répondre Citer 0
              • EryahE Hors-ligne
                Eryah
                dernière édition par

                Je pensais que c’était clair 😞
                Dans les précédent messages, j’ai dis pas mal de fois que je voulait faire un arc épée, et le nom de mon item est BLADED bow

                Membre fantôme
                Je développe maintenant un jeu sur UnrealEngine4


                Contact :…

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

                  “faire un arc épée” n’est pas français.

                  Je ne sais pas si je te l’ai déjà dit mais il y a quelques trucs à faire quand on voit que changer le code ne sert à rien (retiens bien cette liste, elle te servira par la suite dès qu’un truc ne fonctionne pas) :

                  • regarder si la méthode est appelée, par exemple en rajoutant un System.out.prinln.
                  • s’il en s’affiche pas, n’oublie pas l’annotation @Override : elle te permet de savoir si tu as le bon nom de fonction et les bons paramètres. Pour éviter çà, tu peux toujours utiliser Alt + shift + S puis override/implement methods pour choisir la méthode.
                  • Si toujours rien ne s’affiche, sélectionne le nom de la fonction et fait “Open call hierarchy” pour voir quand ta méthode est appelée, si tu vois que ta méthode n’est ajamais appelée, il y a 2 possibilités : le nom n’est pas bon, ou les paramèters ne sont aps bons, ou la méthode est appelée via un l’ASM.
                  • Si toujours rien, regarde comment Minecraft fait.

                  Fait cette méthode et tu verras normalement d’où vient le problème. Si tu ne trouves pas c’est que tu n’as pas tout lu.

                  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 réponse Dernière réponse Répondre Citer 0
                  • EryahE Hors-ligne
                    Eryah
                    dernière édition par

                    Je sais que ce n’est pas français, mais en gros c’est un arc, et une épée, dans le même item

                    Il semble que la méthode que m’

                    Membre fantôme
                    Je développe maintenant un jeu sur UnrealEngine4


                    Contact :…

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

                      Je sais que ce n’est pas français, mais en gros c’est un arc, et une épée, dans le même item

                      Il semble que la méthode que m’a donné robin, n’est plus valide

                      ​@Override
                      public float getDamageVsEntity()
                         {
                             return 6.0F;
                         }
                      

                      J’ai tenter de faire un OnLeftClickOnEntity (Ou un truc comme ça ), mais peu concluant

                      Membre fantôme
                      Je développe maintenant un jeu sur UnrealEngine4


                      Contact :…

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

                        Regarde le message précédent. Tu n’as pas fait ce que je t’ai dit : regarde comment c’est fait dans les classes de Minecraft, j’ai trouvé pendant que j’écrivais le message précédent.

                        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 réponse Dernière réponse Répondre Citer 0
                        • EryahE Hors-ligne
                          Eryah
                          dernière édition par

                          J’ai tout tenté, et dans minecraft, c’est géré comme çela ( Classe de l’épée )

                          ​public float getDamageVsEntity()
                              {
                                  return this.material.getDamageVsEntity();
                              }
                          

                          J’ai tenté de l’adapter a mon code, et peut concluant

                          ​public float getDamageVsEntity(float f)
                              {
                                  return getDamageVsEntity(6.0F);
                              }
                          

                          Membre fantôme
                          Je développe maintenant un jeu sur UnrealEngine4


                          Contact :…

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

                            Il y en a un autre, regarde la classe entière.

                            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 réponse Dernière réponse Répondre Citer 0
                            • EryahE Hors-ligne
                              Eryah
                              dernière édition par

                              public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker)
                              
                                 {
                              
                                     stack.damageItem(1, attacker);
                              
                                     return true;
                              
                                 }
                              

                              ?

                              Membre fantôme
                              Je développe maintenant un jeu sur UnrealEngine4


                              Contact :…

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

                                Non, çà c’est ce qui permet de casser ton épée. Regarde encore plus bas.

                                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 réponse Dernière réponse Répondre Citer 0
                                • EryahE Hors-ligne
                                  Eryah
                                  dernière édition par

                                  ​public Multimap getItemAttributeModifiers()
                                      {
                                          Multimap multimap = super.getItemAttributeModifiers();
                                          multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(itemModifierUUID, "Weapon modifier", (double)this.attackDamage, 0));
                                          return multimap;
                                      }
                                  

                                  C’est la dernière méthode

                                  Membre fantôme
                                  Je développe maintenant un jeu sur UnrealEngine4


                                  Contact :…

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

                                    Bravo, tu as trouvé ! Regarde là dedans.

                                    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 réponse Dernière réponse Répondre Citer 0
                                    • EryahE Hors-ligne
                                      Eryah
                                      dernière édition par

                                      Quel idiot suis-je…
                                      Bref, c’est bon, mon arc inflige des dégats
                                      Merci SCAREX, tu me fait penser a un prof, tu donne la solution, sans nous la donner, tu nous guide juste

                                      Membre fantôme
                                      Je développe maintenant un jeu sur UnrealEngine4


                                      Contact :…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • 1
                                      • 2
                                      • 2 / 2
                                      • Premier message
                                        Dernier message
                                      Design by Woryk
                                      ContactMentions Légales

                                      MINECRAFT FORGE FRANCE © 2024

                                      Powered by NodeBB