MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

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

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.x
    11 Messages 4 Publieurs 2.9k 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.
    • A Hors-ligne
      anguelwyvern
      dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • isadorI Hors-ligne
        isador Moddeurs confirmés Modérateurs
        dernière édition par

        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 réponse Dernière réponse Répondre Citer 0
        • ÜberfapÜ Hors-ligne
          Überfap
          dernière édition par

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

          Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
          Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

          1 réponse Dernière réponse Répondre Citer 0
          • isadorI Hors-ligne
            isador Moddeurs confirmés Modérateurs
            dernière édition par

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

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

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

              Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
              Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

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

                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 réponse Dernière réponse Répondre Citer 0
                • ÜberfapÜ Hors-ligne
                  Überfap
                  dernière édition par

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

                  Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
                  Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

                  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

                    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 réponse Dernière réponse Répondre Citer 0
                    • ÜberfapÜ Hors-ligne
                      Überfap
                      dernière édition par

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

                      Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
                      Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

                      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

                        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 réponse Dernière réponse Répondre Citer 0
                        • A Hors-ligne
                          anguelwyvern
                          dernière édition par

                          “dieux à parlez, tous simplement”

                          et les fidèles s’incline humblement

                          merci robin 😉

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

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB