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

    Résolu Un arc modifiable

    1.7.x
    1.7.x
    3
    11
    2436
    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.
    • zeldadu76290
      zeldadu76290 dernière édition par

      Bonjour je cherche depuis ce matin et je m’arrache les yeux en cherchant comment créer un arc plus rapide a viser et qui tire un autre item que les flèches. Merci d’avance .

      Travail sur le Mod PrimevalCraftWorld  :)

      Si tu est Interresser contact moi  :D

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

        Envoie ton code actuel ?

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

          Pour le moment c’est le même code ou presque que l’arc mais la je seche .

          package primeval.common;
          
          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 Itemfussil 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 Itemfussil()
          {
          this.maxStackSize = 1;
          this.setMaxDamage(384);
          this.setCreativeTab(CreativeTabs.tabCombat);
          }
          
          /**
          * called when the player releases the use item button. Args: itemstack, world, entityplayer, itemInUseCount
          */
          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 onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_)
          {
          return p_77654_1_;
          }
          
          /**
          * How long it takes to use or consume an item
          */
          public int getMaxItemUseDuration(ItemStack p_77626_1_)
          {
          return 72000;
          }
          
          /**
          * returns the action that specifies what animation to play when the items is being used
          */
          public EnumAction getItemUseAction(ItemStack p_77661_1_)
          {
          return EnumAction.bow;
          }
          
          /**
          * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
          */
          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_;
          }
          
          /**
          * 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 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*);
          }
          }
          
          /**
          * used to cycle through icons based on their used duration, i.e. for the bow
          */
          @SideOnly(Side.CLIENT)
          public IIcon getItemIconForUseDuration(int p_94599_1_)
          {
          return this.iconArray[p_94599_1_];
          }
          }
          

          Travail sur le Mod PrimevalCraftWorld  :)

          Si tu est Interresser contact moi  :D

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

            Bon déjà
            private static final String __OBFID = “CL_00001777”; -> tu le vire

            @SideOnly(Side.CLIENT)
            public IIcon getItemIconForUseDuration(int p_94599_1_)
            {
            return this.iconArray[p_94599_1_];
            }
            -> idem

            Et tu ajoutes :

            @Override
            public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
            {
            if(usingItem != null && usingItem.getItem() == ClassePrincipale.tonArc)
            {
            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
            • zeldadu76290
              zeldadu76290 dernière édition par

              Merci pour c’est code et avez vous une idée pour le temp a la visée et tirée autre chose que la fleche
              ps : quelqu’un aurais une idée pour augmenter la puissance ?


              C’est bon j’ai trouvé pour la tirer autre chose que la flèche mais pas pour le reste qu’elle qu’un peut m’aider svp .

              Travail sur le Mod PrimevalCraftWorld  :)

              Si tu est Interresser contact moi  :D

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

                public int getMaxItemUseDuration(ItemStack p_77626_1_)
                {
                return 72000;
                }
                -> temps

                int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
                Force.

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

                  j’ai beau changer le temps , cela ne change rien pour moi et je ne comprend pas le système de force je vous envoi
                  ma classe :

                  package primeval.common;

                  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 ItemFussil extends Item
                  {
                  public static final String[] bowPullIconNameArray = new String[] {“pulling_0”, “pulling_1”, “pulling_2”};
                  @SideOnly(Side.CLIENT)
                  private IIcon[] iconArray;

                  public ItemFussil()
                  {
                  this.maxStackSize = 1;
                  this.setMaxDamage(700);
                  this.setCreativeTab(CreativeTabs.tabCombat);
                  }

                  /**

                  • called when the player releases the use item button. Args: itemstack, world, entityplayer, itemInUseCount
                    */
                    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 onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_)
                  {
                  return p_77654_1_;
                  }

                  /**

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

                  /**

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

                  /**

                  • Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
                    */
                    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_;
                  }

                  /**

                  • 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 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*);
                  }
                  }

                  /**

                  • 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() == Modprimeval.itemFussil)

                  {

                  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);
                  }

                  }

                  Travail sur le Mod PrimevalCraftWorld  :)

                  Si tu est Interresser contact moi  :D

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

                    Utilises la balise java, c’est pas très lisible …
                    Si tu veux accélérer l’animation, il faut changer les valeurs dans la fonction pour la texture.
                    Pour la force : int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
                    j vaut la durée maximum d’utilisation moins le temps durant lequel tu as changés l’arc. Tu peux y ajouter 0,5 par exemple pour monter la puissance.

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

                      Désoler si je peut paraître ennuyeux mes je débute en codage et j’ai du mal a comprendre veiller m’excuser .
                      Pourrirait vous me fournir un exemple .

                      Travail sur le Mod PrimevalCraftWorld  :)

                      Si tu est Interresser contact moi  :D

                      1 réponse Dernière réponse Répondre Citer 0
                      • Superloup10
                        Superloup10 Modérateurs dernière édition par

                        Apprends les bases de Java sur openclassroom dans ce cas.

                        Envoyé de mon AN7DG3-LZ en utilisant Tapatalk

                        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                          j += 0.5;
                          Et voila …

                          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