Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    SOLVED Ajouter des effet "cumulatif" sur un set d'armure

    1.7.x
    1.7.x
    4
    11
    2423
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      anguelwyvern last edited by

      Slt voila avant de partir j’étais rester sur un problème, un effet cumulatif sur mes armure sur un set

      (je cherche l’effet absorption)

      exemple : quand je mets mon casque j’ai 2 coeur d’abso, la tous va bien,
      si je rajoute par exemple le body qui lui rajoute 4 coeur donc au total j’ai “6 coeur d’abso” etc etc en rajoutant legs et feet, donc un effet qui s’ajoute et pas qui ce remplace,

      ce que j’ai obtenu comme résultat jusqua maintenant c’est
      soit la pièce d’armure avec l’abso la plus élever prend le pas,
      soit j’ai un nombre de cœur d’abso heu INFINI !! (un peu overcheat l’armure O.o)

      ce qui est intéressant c’est le regen des coeur d’abso qui lui ce cumul bien !!

      bref si vous avez une idée je veux bien car la je suis a cours …

      PS : AlphaSwittleTeam m’aide également sur la chose mais idem il semble avoir également qu’elle que difficulté

      bref voici mon code j’espère sa pourra aidez

      package fr.celestiafrance.c_drone.common;
      
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.ItemArmor;
      import net.minecraft.item.ItemStack;
      import net.minecraft.potion.Potion;
      import net.minecraft.potion.PotionEffect;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.World;
      
      public class ArmorMK1 extends ItemArmor {
          public static final float ABSORPTION_LIMIT = 40.0f;
          private ItemArmor.ArmorMaterial material;
          private Object event;
      
          public ArmorMK1(ItemArmor.ArmorMaterial material, int type) {
              super(material, 0, type);
              this.material = material;
          }
      
          public String getArmorTexture(ItemStack stack, Entity entity, int slot,
                  String type) {
              if (slot == 2) {
                  return c_drone.MODID + ":textures/models/armor/Mk1_layer_2.png";
              }
              else {
                  return c_drone.MODID + ":textures/models/armor/Mk1_layer_1.png";
              }
          }
          @Override
          public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
              if (this.armorType == 2 && player.isSprinting() && player.onGround) {
                  player.motionX *= 1.4F;
                  player.motionZ *= 1.4F;
              }
      
              if (this.armorType == 0) {
                  if ((player.ticksExisted % 80) == 0) {
                      float absorption = player.getAbsorptionAmount();
                      if (absorption < 4.5f) {
                          absorption += 0.5f;
                          player.setAbsorptionAmount(absorption);
                      }
                  }
              }
              if (this.armorType == 1) {
                  if ((player.ticksExisted % 80) == 0) {
                      float absorption = player.getAbsorptionAmount();
                      if (absorption < 8.5f) {
                          absorption += 0.5f;
                          player.setAbsorptionAmount(absorption);
                      }
                  }
              }
              if (this.armorType == 2) {
                  if ((player.ticksExisted % 80) == 0) {
                      float absorption = player.getAbsorptionAmount();
                      if (absorption < 2.5) {
                          absorption += 0.5f;
                          player.setAbsorptionAmount(absorption);
                      }
                  }
              }
              if (this.armorType == 3) {
                  if ((player.ticksExisted % 80) == 0) {
                      float absorption = player.getAbsorptionAmount();
                      if (absorption < 5.5f) {
                          absorption += 0.5f;
                          player.setAbsorptionAmount(absorption);
                      }
                  }
              }
          }
      }
      
      
      1 Reply Last reply Reply Quote 0
      • isador
        isador Moddeurs confirmés Modérateurs last edited by

        tu fait une condition qui check les pièces d’armure du joueur, si il a un casque ca ajoute a une variable +2, etc… et c’est cette variable que tu attribut a ton setAbsoption

        1 Reply Last reply Reply Quote 0
        • Überfap
          Überfap last edited by

          Ah oui Isador, en effet c’est une bonne idée 😉

          1 Reply Last reply Reply Quote 0
          • isador
            isador Moddeurs confirmés Modérateurs last edited by

            je sais j’ai toujours de bonne idée 😛

            1 Reply Last reply Reply Quote 0
            • Überfap
              Überfap last edited by

              @Override
              public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
              float absorption = player.getAbsorptionAmount();
              float limit = 10.0f;
              if (this.armorType == 1) {
              if (absorption < limit) {
              if (player.ticksExisted % 80 == 0) {
              absorption += (limit - absorption);
              player.setAbsorptionAmount(absorption);
              }
              }
              }
              }
              
              1 Reply Last reply Reply Quote 0
              • A
                anguelwyvern last edited by

                je revient vers vous cher amis MFF, voila avec alpha on c’est penchez sur la chose, on as creuser autant que possible mais la on bloque, pas moyen de mettre un effet qui ce cumul entre les pièces d’armure, serait t’il possible d’avoir l’aide de nos grand maitre java bien aimez ?^^

                1 Reply Last reply Reply Quote 0
                • Überfap
                  Überfap last edited by

                  Oh tout puissant robin qui consulte ce poste, viens nous en aide 😛

                  1 Reply Last reply Reply Quote 0
                  • robin4002
                    robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                    Et si ne je ne sais pas ?
                    En fait je ne vois pas l’intérêt de faire ce que vous êtes en train de faire, pour l’absorption il y a déjà l’EnumArmor, et si il ne suffit pas, on peut passer par l’interface ISpecialArmor, je ne vois pas l’intérêt de passer par la fonction de tick…

                    1 Reply Last reply Reply Quote 0
                    • Überfap
                      Überfap last edited by

                      J’ai rien compris x) Tu peux nous mettre un exemple s’il te plait ?

                      1 Reply Last reply Reply Quote 0
                      • robin4002
                        robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                        www.minecraftforgefrance.fr/showthread.php?tid=1012&pid=11807#pid11807

                        https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/ultimategravisuite/common/UltimateArmor.java#L279-L328

                        1 Reply Last reply Reply Quote 0
                        • A
                          anguelwyvern last edited by

                          “dieux à parlez, tous simplement”

                          et les fidèles s’incline humblement

                          merci robin 😉

                          1 Reply Last reply Reply Quote 0
                          • 1 / 1
                          • First post
                            Last post
                          Design by Woryk
                          Contact / Mentions Légales / Faire un don

                          MINECRAFT FORGE FRANCE © 2018

                          Powered by NodeBB