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

      Il y aura un Wooden Bladed Bow, un Stone Bladed Bow, un Iron, Gold et Diamond
      Sinon pour la texture pulling, j’aimerai que ce soit comme l’arc de base. Quand on right click, l’arc se charge, avec la corde qui bouge et tout

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


      Contact :…

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

        Pour le pulling je l’ai déjà expliqué : http://minecraftforgefrance.fr/showthread.php?tid=2164&pid=24595#pid24595
        Et pour les matériaux il faut faire plusieurs arcs et pour les dégâts c’est dans onPlayerStoppedUsing, c’est la valeur de f.

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

          La méthode OnPlayerStoppedUsed me donne ceci
          this.onPlayerStoppedUsing(stack, worldIn, playerIn, timeLeft);
          quelle est la valeur des dégats ?

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


          Contact :…

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

            Dans la fonction onPlayerStoppedUsing :

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

              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
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                ah d’accord.
                Dans ce cas il suffit d’ajouter :

                ​    public float getDamageVsEntity()
                    {
                        return 2.0F;
                    }
                
                1 réponse Dernière réponse Répondre Citer 0
                • 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
                                            • 1
                                            • 2
                                            • 2 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB