Arc et puissance



  • voilla je n'arive pas à augmenter la puissance de mon arc voici sa class

    package com.adamitemod.mod.items;
    
    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 ItemBowRuby extends Item
    {
        public static final String[] bowPullIconNameArray = new String[] {"a", "b", "c"};
        @SideOnly(Side.CLIENT)
        private IIcon[] iconArray;
        private static final String __OBFID = "CL_00001777";
    
        public ItemBowRuby()
        {
            this.maxStackSize = 1;
            this.setMaxDamage(395);//j'ai deja essayer ici
            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.6D + 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 = 5;
                }
                else
                {
                    p_77615_3_.inventory.consumeInventoryItem(Items.arrow);
                }
    
                if (!p_77615_2_.isRemote)
                {
                    p_77615_2_.spawnEntityInWorld(entityarrow);
                }
            }
        }
    
        public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_)
        {
            return p_77654_1_;
        }
    
        public int getMaxItemUseDuration(ItemStack p_77626_1_)
        {
            return 72000;
        }
    
        public EnumAction getItemUseAction(ItemStack p_77661_1_)
        {
            return EnumAction.bow;
        }
    
        public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_)
        {
            ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_);
            MinecraftForge.EVENT_BUS.post(event);
            if (event.isCanceled())
            {
                return event.result;
            }
    
            if (p_77659_3_.capabilities.isCreativeMode || p_77659_3_.inventory.hasItem(Items.arrow))
            {
                p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
            }
    
            return p_77659_1_;
        }
    
        public int getItemEnchantability()
        {
            return 1;
        }
    
        @SideOnly(Side.CLIENT)
        public void registerIcons(IIconRegister p_94581_1_)
        {
            this.itemIcon = p_94581_1_.registerIcon(this.getIconString() + "_standby");
            this.iconArray = new IIcon[bowPullIconNameArray.length];
    
            for (int i = 0; i < this.iconArray.length; ++i)
            {
                this.iconArray* = p_94581_1_.registerIcon(this.getIconString() + "_" + bowPullIconNameArray*);
            }
        }
    
        @SideOnly(Side.CLIENT)
        public IIcon getItemIconForUseDuration(int p_94599_1_)
        {
            return this.iconArray[p_94599_1_];
        }
    }
    


  • @'amigo127':

    voilla je n'arive pas à augmenter la puissance de mon arc voici sa class

    package com.adamitemod.mod.items;
    
    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 ItemBowRuby extends Item
    {
        public static final String[] bowPullIconNameArray = new String[] {"a", "b", "c"};
        @SideOnly(Side.CLIENT)
        private IIcon[] iconArray;
        private static final String __OBFID = "CL_00001777";
    
        public ItemBowRuby()
        {
            this.maxStackSize = 1;
            this.setMaxDamage(395);//j'ai deja essayer ici
            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.6D + 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 = 5;
                }
                else
                {
                    p_77615_3_.inventory.consumeInventoryItem(Items.arrow);
                }
    
                if (!p_77615_2_.isRemote)
                {
                    p_77615_2_.spawnEntityInWorld(entityarrow);
                }
            }
        }
    
        public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_)
        {
            return p_77654_1_;
        }
    
        
        public int getMaxItemUseDuration(ItemStack p_77626_1_)
        {
            return 72000;
        }
    
        
        public EnumAction getItemUseAction(ItemStack p_77661_1_)
        {
            return EnumAction.bow;
        }
    
       
        public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_)
        {
            ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_);
            MinecraftForge.EVENT_BUS.post(event);
            if (event.isCanceled())
            {
                return event.result;
            }
    
            if (p_77659_3_.capabilities.isCreativeMode || p_77659_3_.inventory.hasItem(Items.arrow))
            {
                p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
            }
    
            return p_77659_1_;
        }
    
        
        public int getItemEnchantability()
        {
            return 1;
        }
    
        @SideOnly(Side.CLIENT)
        public void registerIcons(IIconRegister p_94581_1_)
        {
            this.itemIcon = p_94581_1_.registerIcon(this.getIconString() + "_standby");
            this.iconArray = new IIcon[bowPullIconNameArray.length];
    
            for (int i = 0; i < this.iconArray.length; ++i)
            {
                this.iconArray* = p_94581_1_.registerIcon(this.getIconString() + "_" + bowPullIconNameArray*);
            }
        }
    
      
        @SideOnly(Side.CLIENT)
        public IIcon getItemIconForUseDuration(int p_94599_1_)
        {
            return this.iconArray[p_94599_1_];
        }
    }
    

    Sois plus poli et normalement les dégats de l'arc viennent de la flèche et non pas de l'arc en lui même

    damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity);
    
    
             if (p_70037_1_.hasKey("damage", 99))
            {
                this.damage = p_70037_1_.getDouble("damage");
            }
    


  • @'BubllesssGaming':

    @'amigo127':

    voilla je n'arive pas à augmenter la puissance de mon arc voici sa class

    package com.adamitemod.mod.items;
    
    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 ItemBowRuby extends Item
    {
        public static final String[] bowPullIconNameArray = new String[] {"a", "b", "c"};
        @SideOnly(Side.CLIENT)
        private IIcon[] iconArray;
        private static final String __OBFID = "CL_00001777";
    
        public ItemBowRuby()
        {
            this.maxStackSize = 1;
            this.setMaxDamage(395);//j'ai deja essayer ici
            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.6D + 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 = 5;
                }
                else
                {
                    p_77615_3_.inventory.consumeInventoryItem(Items.arrow);
                }
    
                if (!p_77615_2_.isRemote)
                {
                    p_77615_2_.spawnEntityInWorld(entityarrow);
                }
            }
        }
    
        public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_)
        {
            return p_77654_1_;
        }
    
        
        public int getMaxItemUseDuration(ItemStack p_77626_1_)
        {
            return 72000;
        }
    
        
        public EnumAction getItemUseAction(ItemStack p_77661_1_)
        {
            return EnumAction.bow;
        }
    
       
        public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_)
        {
            ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_);
            MinecraftForge.EVENT_BUS.post(event);
            if (event.isCanceled())
            {
                return event.result;
            }
    
            if (p_77659_3_.capabilities.isCreativeMode || p_77659_3_.inventory.hasItem(Items.arrow))
            {
                p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
            }
    
            return p_77659_1_;
        }
    
        
        public int getItemEnchantability()
        {
            return 1;
        }
    
        @SideOnly(Side.CLIENT)
        public void registerIcons(IIconRegister p_94581_1_)
        {
            this.itemIcon = p_94581_1_.registerIcon(this.getIconString() + "_standby");
            this.iconArray = new IIcon[bowPullIconNameArray.length];
    
            for (int i = 0; i < this.iconArray.length; ++i)
            {
                this.iconArray* = p_94581_1_.registerIcon(this.getIconString() + "_" + bowPullIconNameArray*);
            }
        }
    
      
        @SideOnly(Side.CLIENT)
        public IIcon getItemIconForUseDuration(int p_94599_1_)
        {
            return this.iconArray[p_94599_1_];
        }
    }
    

    Sois plus poli et normalement les dégats de l'arc viennent de la flèche et non pas de l'arc en lui même

    damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity);
    
    et         if (p_70037_1_.hasKey("damage", 99))
            {
                this.damage = p_70037_1_.getDouble("damage");
            }
    


  • Mon petit doit me dit que tu vas avoir un petit problème avec ce double poste 🙂


  • Administrateurs

    Les dégâts des flèches de l'arc sont proportionnels à la force de tire.
    Et c'est ici :

    EntityArrow entityarrow = new EntityArrow(p_77615_2_, p_77615_3_, f * 2.0F); // f * 2.0F est la force
    


  • @'robin4002':

    Les dégâts des flèches de l'arc sont proportionnels à la force de tire.
    Et c'est ici :

               EntityArrow entityarrow = new EntityArrow(p_77615_2_, p_77615_3_, f * 2.0F); // f * 2.0F est la force
    

    Pour une fois que j'avait un peu raison xD



  • D'abord merci amigo127 , _Isaac je ne t'es pas menacé X) je t'ai juste dit de te méfié des double post car c'est contraire au règlement 🙂