• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Aide Pour arc 1.7.2

    1.7.x
    1.7.2
    2
    4
    1050
    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.
    • M
      MeG4FRaZz dernière édition par

      Donc Voilas mon problème n’ai pas très grand mais je voudrai savoir comment on fait pour règler la distance et le nombre de dégat dans se code :

      package fr.minecraft.monmod;

      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 arc_lol extends Item{

      public static final String[] bowPullIconNameArray = new String[] {“pulling_0”, “pulling_1”, “pulling_2”};
         @SideOnly(Side.CLIENT)
         private IIcon[] iconArray;
         private static final String __OBFID = “CL_00001777”;

      public arc_lol()
         {
             this.maxStackSize = 1;
             this.setMaxDamage(570);
             this.setFull3D();
         }

      /**
          * called when the player releases the use item button. Args: itemstack, world, entityplayer, itemInUseCount
          */
         public void onPlayerStoppedUsing(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4)
         {
             int j = this.getMaxItemUseDuration(par1ItemStack) - par4;

      ArrowLooseEvent event = new ArrowLooseEvent(par3EntityPlayer, par1ItemStack, j);
             MinecraftForge.EVENT_BUS.post(event);
             if (event.isCanceled())
             {
                 return;
             }
             j = event.charge;

      boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0;

      if (flag || par3EntityPlayer.inventory.hasItem(Items.arrow))
             {
                 float f = (float)j / 16.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(par2World, par3EntityPlayer, f * 2.0F);

      if (f == 1.0F)
                 {
                     entityarrow.setIsCritical(true);
                 }

      int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, par1ItemStack);

      if (k > 0)
                 {
                     entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
                 }

      int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, par1ItemStack);

      if (l > 0)
                 {
                     entityarrow.setKnockbackStrength(l);
                 }

      if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, par1ItemStack) > 0)
                 {
                     entityarrow.setFire(110);
                 }

      par1ItemStack.damageItem(1, par3EntityPlayer);
                 par2World.playSoundAtEntity(par3EntityPlayer, “random.bow”, 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);

      if (flag)
                 {
                     entityarrow.canBePickedUp = 2;
                 }
                 else
                 {
                     par3EntityPlayer.inventory.consumeInventoryItem(Items.arrow);
                 }

      if (!par2World.isRemote)
                 {
                     par2World.spawnEntityInWorld(entityarrow);
                 }
             }
         }

      public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
         {
             return par1ItemStack;
         }

      /**
          * How long it takes to use or consume an item
          */
         public int getMaxItemUseDuration(ItemStack par1ItemStack)
         {
             return 72000;
         }

      /**
          * returns the action that specifies what animation to play when the items is being used
          */
         public EnumAction getItemUseAction(ItemStack par1ItemStack)
         {
             return EnumAction.bow;
         }

      /**
          * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
          */
         public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
         {
             ArrowNockEvent event = new ArrowNockEvent(par3EntityPlayer, par1ItemStack);
             MinecraftForge.EVENT_BUS.post(event);
             if (event.isCanceled())
             {
                 return event.result;
             }

      if (par3EntityPlayer.capabilities.isCreativeMode || par3EntityPlayer.inventory.hasItem(Items.arrow))
             {
                 par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
             }

      return par1ItemStack;
         }

      /**
          * Return the enchantability factor of the item, most of the time is based on material.
          */
         public int getItemEnchantability()
         {
             return 1;
         }

      @SideOnly(Side.CLIENT)
         public void registerIcons(IIconRegister par1IconRegister)
         {
             this.itemIcon = par1IconRegister.registerIcon(this.getIconString() + “_standby”);
             this.iconArray = new IIcon[bowPullIconNameArray.length];

      for (int i = 0; i < this.iconArray.length; ++i)
             {
                 this.iconArray* = par1IconRegister.registerIcon(this.getIconString() + “_” + bowPullIconNameArray*);
             }
         }

      /**
          * used to cycle through icons based on their used duration, i.e. for the bow
          */
         @Override
         public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
         {
         if(usingItem != null && usingItem.getItem().equals(this))
         {
         int k = usingItem.getMaxItemUseDuration() - useRemaining;
         if(k >= 18)
         return iconArray[2];
         if(k > 13)
         return iconArray[1];
         if(k > 0)
         return iconArray[0];
         }
         return getIconIndex(stack);
         }
      }

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

        EntityArrow entityarrow = new EntityArrow(par2World, par3EntityPlayer, f * 2.0F);
        Le f * 2.0F est la puissance de tire, il gère à la fois la distance et les dégâts.

        Pour info : copier/coller un code sans le comprendre est inutile et ne te ferra pas progresser.

        1 réponse Dernière réponse Répondre Citer 0
        • M
          MeG4FRaZz dernière édition par

          je suis désoler mais j’ai trouver qu’un tuto et c’est d’une personne qui explique pas donc voilas pourquoi ( PS : C’est Darkvince37 )et merci

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

            En passant je déplaces dans la bonne section, j’avais pas fait attention que tu avais posté dans la mauvaise section.

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

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB