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

    Résolu KnockBackResistance sur une armure

    1.7.x
    1.7.10
    3
    10
    2133
    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.
    • Folgansky
      Folgansky Correcteurs dernière édition par

      Bien le bonjour,

      Je me suis baladé sur le code source de flan’s mod afin de trouver comment il mettait le knockBackResistance sur certaines pièces d’armures, cela dit comme je suis un novice de stade 0 élevé au grade de “boulet qui n’a pas eu le temps de comprendre vraiment les bases du langage java”, eh bien je n’ai pas réussis à l’adapter à mon projet.

      Voilà le lieu du GitHub quand je cherche "knockBackResistance " https://github.com/FlansMods/FlansMod/search?utf8=✓&q=knockbackResistance

      Si quelqu’un pouvait m’expliquer (en un dialecte pas trop spécifique même si il faut ce qu’il faut) si ce qu’il y a à mettre dans ma classe ItemArmor, si y’a un truc dans le ClientProxy ou ce genre d’infos qui ne paraitront évident qu’aux initiés, je vous en serais grandement reconnaissant. 😃

      Toutoune1008,
      Novice de stade 0

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

        https://github.com/FlansMods/FlansMod/blob/03ce92f1ab2cf12850e9b8f47816a426d6dcb3eb/src/main/java/com/flansmod/common/teams/ItemTeamArmour.java#L96-L103
        C’est juste une petite fonction dans la classe de l’armure.

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

          @‘robin4002’:

          https://github.com/FlansMods/FlansMod/blob/03ce92f1ab2cf12850e9b8f47816a426d6dcb3eb/src/main/java/com/flansmod/common/teams/ItemTeamArmour.java#L96-L103
          C’est juste une petite fonction dans la classe de l’armure.

          Oui, seulement le “map” s’affiche jaune et je ne sais pas comment régler ça.

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

            Ce n’est pas une erreur, c’est un warning.

            N’y fais pas attention, ça ne provoquera aucun crash en jeu 😃

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

              @‘Julot10085’:

              Ce n’est pas une erreur, c’est un warning.

              N’y fais pas attention, ça ne provoquera aucun crash en jeu 😃

              D’acc alors mon code ressemble à ça

              package fr.heroesconflict.modhc.common;
              
              import net.minecraft.entity.Entity;
              import net.minecraft.entity.SharedMonsterAttributes;
              import net.minecraft.entity.ai.attributes.AttributeModifier;
              import net.minecraft.item.ItemArmor;
              import net.minecraft.item.ItemStack;
              
              import com.google.common.collect.Multimap;
              
              public class ItemAllArmor extends ItemArmor
              {
              public ItemAllArmor(ArmorMaterial material, int type)
              {
              super(material, 0, type);
              }
              
              @Override
                  public Multimap getAttributeModifiers(ItemStack stack)
                  {
                      Multimap map = super.getAttributeModifiers(stack);
                      map.put(SharedMonsterAttributes.knockbackResistance.getAttributeUnlocalizedName(), new AttributeModifier(uuid[type.type], "KnockbackResist", type.knockbackModifier, 0));
                      return map;
                  }
              
              public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
              {
              if(stack.getItem() == Modhc.bodyShock  || stack.getItem() == Modhc.headShock || stack.getItem() == Modhc.bootsShock || stack.getItem() == Modhc.legsShock)
              {
              return Modhc.MODID + ":textures/models/armors/bio_shock_layer_1.png";
              }
              […]
              else if(stack.getItem() == Modhc.bodyGreyR3 || stack.getItem() == Modhc.headGreyR3 || stack.getItem() == Modhc.bootsGreyR3 || stack.getItem() == Modhc.legsGreyR3)
              {
              return Modhc.MODID + ":textures/models/armors/soldat_grey_r3_layer_1.png";
              }
              return null;
              }
              }
              
              

              Dans le jeu, je n’ai pas du tout l’impression d’avoir la resistance aux KnockBack à 1 (maximum logiquement). 
              Est ce que je dois changer le 0 par un 1 dans la fonction qu’on me dit de rajouter?

              De plus il doit y avoir un “public…” à ajouter quelques part car “type.” apparait en rouge, pareil pour les uui

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

                type est une variable rajoutée au constructeur de la classe
                Crées-toi le même constructeur ainsi que la même variable et tu ne devrais plus avoir ce problème

                
                public ArmourType type;
                public ItemTeamArmour(ArmourType t)
                {
                type = t;
                }
                
                
                1 réponse Dernière réponse Répondre Citer 0
                • Folgansky
                  Folgansky Correcteurs dernière édition par

                  @‘Julot10085’:

                  type est une variable rajoutée au constructeur de la classe
                  Crées-toi le même constructeur ainsi que la même variable et tu ne devrais plus avoir ce problème

                  
                  public ArmourType type;
                  public ItemTeamArmour(ArmourType t)
                  {
                              type = t;
                          }
                  
                  

                  Ouaip, alors après j’ai des probs de constructeurs, car j’ai suivi le tuto de Robin et ma classe principale contient ça pour mes armures:

                  :::

                  public static Item bodyHaloBlueR1,
                  […]
                  public static ArmorMaterial armorHaloBlueR1 = EnumHelper.addArmorMaterial("armorHaloBlueR1", 20, new int[]{2, 6, 5, 2}, 0);
                  […]
                  headHaloBlueR1 = new ItemAllArmor(armorHaloBlueR1, 0).setUnlocalizedName("headHaloBlueR1").setTextureName(MODID + ":headHaloBlueR1").setCreativeTab(Modhc.tabHc);
                  bodyHaloBlueR1 = new ItemAllArmor(armorHaloBlueR1, 1).setUnlocalizedName("bodyHaloBlueR1").setTextureName(MODID + ":bodyHaloBlueR1").setCreativeTab(Modhc.tabHc);
                     legsHaloBlueR1 = new ItemAllArmor(armorHaloBlueR1, 2).setUnlocalizedName("legsHaloBlueR1").setTextureName(MODID + ":legsHaloBlueR1").setCreativeTab(Modhc.tabHc);
                     bootsHaloBlueR1 = new ItemAllArmor(armorHaloBlueR1, 3).setUnlocalizedName("bootsHaloBlueR1").setTextureName(MODID + ":bootsHaloBlueR1").setCreativeTab(Modhc.tabHc);
                     GameRegistry.registerItem(headHaloBlueR1, "head_halo_blue_r1");
                     GameRegistry.registerItem(bodyHaloBlueR1, "body_halo_blue_r1");
                     GameRegistry.registerItem(legsHaloBlueR1, "legs_halo_blue_r1");
                     GameRegistry.registerItem(bootsHaloBlueR1, "boots_halo_blue_r1");
                  […]
                  
                  

                  :::

                  Du coup pour le constructeur et ce qu’il y a à mettre dedans me pose problème.

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

                    @Override
                    public Multimap getAttributeModifiers(ItemStack stack)
                    {
                    Multimap map = super.getAttributeModifiers(stack);
                    map.put(SharedMonsterAttributes.knockbackResistance.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "KnockbackResist", 2, 0));
                    return map;
                    }
                    

                    Faut tester avec d’autres valeurs, j’ai mit 2 comme ça.

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

                      Oh…

                      Radicalement dans le mille.
                      Ce “field_111210_e” me sauve pour ceux qui passeront par là.

                      Un grand merci pour cette aide apportée en tout cas.

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

                        Minecraft utilise ce même field pour les AttributeModifiers de l’épée et des outils. C’est dans ces classes que je l’ai trouvé.

                        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