MFF

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

    Créer une armure

    Planifier Épinglé Verrouillé Déplacé Les items
    1.7.x
    247 Messages 39 Publieurs 73.4k Vues 9 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.
    • BlackPandaB Hors-ligne
      BlackPanda
      dernière édition par

      Salut !

      J’ai presque réussi a faire tout ce que tu fait dans ton tutoriel mais j’ai rencontré un problème : les textures de mon armure ne s’affiche pas sur mon joueur.
      Je te passe ma classe principale et ma class “Armures”:

      package fr.blackpandagaming.dragonadventure.common;
      
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemArmor.ArmorMaterial;
      import net.minecraftforge.common.util.EnumHelper;
      import cpw.mods.fml.common.Mod;
      import cpw.mods.fml.common.Mod.EventHandler;
      import cpw.mods.fml.common.Mod.Instance;
      import cpw.mods.fml.common.SidedProxy;
      import cpw.mods.fml.common.event.FMLInitializationEvent;
      import cpw.mods.fml.common.event.FMLPostInitializationEvent;
      import cpw.mods.fml.common.event.FMLPreInitializationEvent;
      import cpw.mods.fml.common.registry.GameRegistry;
      import fr.blackpandagaming.dragonadventure.proxy.CommonProxy;
      
      @Mod(modid = DragonAdventure.MODID, name = "Dragon Adventure", version = "1.0.0")
      
      public class DragonAdventure
      {
      public static final String MODID = "dragonadventure";
      @Instance(MODID)
      public static DragonAdventure instance;
      
      @SidedProxy(clientSide = "fr.blackpandagaming.dragonadventure.proxy.ClientProxy", serverSide = "fr.blackpandagaming.dragonadventure.proxy.CommonProxy")
      public static CommonProxy proxy;
      
      public static Item batonVert, batonRouge, batonBleu, batonBlanc, batonNoir, dragoniteVerte, dragoniteRouge, dragoniteBleue, dragoniteBlanche, dragoniteNoire, casqueDragoniteBlanche, plastronDragoniteBlanche, pentalonDragoniteBlanche, bottesDragoniteBlanche;
      
      public static ArmorMaterial Armures = EnumHelper.addArmorMaterial("Armures", 25, new int[]{4, 6, 5, 4}, 35);
      
      @EventHandler
      public void preInit(FMLPreInitializationEvent event)
      {
      batonVert = new Batons().setUnlocalizedName("batonVert").setTextureName(MODID + ":baton_vert").setCreativeTab(CreativeTabs.tabMaterials);
      batonRouge = new Batons().setUnlocalizedName("batonRouge").setTextureName(MODID + ":baton_rouge").setCreativeTab(CreativeTabs.tabMaterials);
      batonBleu = new Batons().setUnlocalizedName("batonBleu").setTextureName(MODID + ":baton_bleu").setCreativeTab(CreativeTabs.tabMaterials);
      batonBlanc = new Batons().setUnlocalizedName("batonBlanc").setTextureName(MODID + ":baton_blanc").setCreativeTab(CreativeTabs.tabMaterials);
      batonNoir = new Batons().setUnlocalizedName("batonNoir").setTextureName(MODID + ":baton_noir").setCreativeTab(CreativeTabs.tabMaterials);
      
      dragoniteVerte = new Batons().setUnlocalizedName("dragoniteVerte").setTextureName(MODID + ":dragonite_verte").setCreativeTab(CreativeTabs.tabMaterials);
      dragoniteRouge = new Batons().setUnlocalizedName("dragoniteRouge").setTextureName(MODID + ":dragonite_rouge").setCreativeTab(CreativeTabs.tabMaterials);
      dragoniteBleue = new Batons().setUnlocalizedName("dragoniteBleue").setTextureName(MODID + ":dragonite_bleue").setCreativeTab(CreativeTabs.tabMaterials);
      dragoniteBlanche = new Batons().setUnlocalizedName("dragoniteBlanche").setTextureName(MODID + ":dragonite_blanche").setCreativeTab(CreativeTabs.tabMaterials);
      dragoniteNoire = new Batons().setUnlocalizedName("dragoniteNoire").setTextureName(MODID + ":dragonite_noire").setCreativeTab(CreativeTabs.tabMaterials);
      
      casqueDragoniteBlanche = new Armures(Armures, 0).setUnlocalizedName("casqueDragoniteBlanche").setTextureName(MODID + ":casquedragonite_blanche");
      plastronDragoniteBlanche = new Armures(Armures, 1).setUnlocalizedName("plastronDragoniteBlanche").setTextureName(MODID + ":plastrondragonite_blanche");
      pentalonDragoniteBlanche = new Armures(Armures, 2).setUnlocalizedName("pentalonDragoniteBlanche").setTextureName(MODID + ":pentalondragonite_blanche");
      bottesDragoniteBlanche = new Armures(Armures, 3).setUnlocalizedName("bottesDragoniteBlanche").setTextureName(MODID + ":bottesdragonite_blanche");
      
      GameRegistry.registerItem(batonVert, "baton_vert");
      GameRegistry.registerItem(batonRouge, "baton_rouge");
      GameRegistry.registerItem(batonBleu, "baton_bleu");
      GameRegistry.registerItem(batonBlanc, "baton_blanc");
      GameRegistry.registerItem(batonNoir, "baton_noir");
      
      GameRegistry.registerItem(dragoniteVerte, "dragonite_verte");
      GameRegistry.registerItem(dragoniteRouge, "dragonite_rouge");
      GameRegistry.registerItem(dragoniteBleue, "dragonite_bleue");
      GameRegistry.registerItem(dragoniteBlanche, "dragonite_blanche");
      GameRegistry.registerItem(dragoniteNoire, "dragonite_noire");
      
      GameRegistry.registerItem(casqueDragoniteBlanche, "casquedragonite_blanche");
      GameRegistry.registerItem(plastronDragoniteBlanche, "plastrondragonite_blanche");
      GameRegistry.registerItem(pentalonDragoniteBlanche, "pentalondragonite_blanche");
      GameRegistry.registerItem(bottesDragoniteBlanche, "bottesdragonite_blanche");
      }
      
      @EventHandler
      public void init(FMLInitializationEvent event)
      {
      proxy.registerRender();
      }
      
      @EventHandler
      public void postInit(FMLPostInitializationEvent event)
      {
      
      }
      }
      

      Et voici ma class “Armures”:

      package fr.blackpandagaming.dragonadventure.common;
      
      import net.minecraft.entity.Entity;
      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.world.World;
      
      public class Armures extends ItemArmor
      {
      
      public Armures(ArmorMaterial material, int type)
      {
      super(material, 0, type);
      }
      
      public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
      {
      if(slot == 2)
      {
      return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_2";
      }
      return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_1";
      }
      
      public boolean getIsRepairable(ItemStack input, ItemStack repair)
      {
      if(repair.getItem() == DragonAdventure.dragoniteBlanche || repair.getItem() == DragonAdventure.dragoniteBlanche)
      {
      return true;
      }
      return false;
      }
      
      public void onArmorTick(World world, EntityPlayer player, ItemStack stack)
      {
      player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 210, 2));
      }
      }
      
      

      Petite précision : mes textures ( DragoniteBlanche_leyer_1 et DragoniteBlanche_leyer_2 ) ont était faites avec novaskin, juste au cas ou… 🙂

      Cordialement.

      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

        Il manque les .png dans la fonction getArmorTexture

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

          Merci infiniment ! C’est quand même fou de foirer des textures in game juste pour 3 lettres 😕

          Cordialement.

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

            Salut,

            Je suis désolé de vous déranger encore une foie mais j’aimerais créer plusieurs armures avec des effets ( si possible dans la même class ) mais je n’ais pas très bien compris comment il faut faire, quelqu’un peut-il m’aider ?

            Cordialement.

            1 réponse Dernière réponse Répondre Citer 0
            • DiangleD Hors-ligne
              Diangle
              dernière édition par robin4002

              @‘BlackPanda’:

              Salut,

              Je suis désolé de vous déranger encore une foie mais j’aimerais créer plusieurs armures avec des effets ( si possible dans la même class ) mais je n’ais pas très bien compris comment il faut faire, quelqu’un peut-il m’aider ?

              Cordialement.

              tien sa devrais marcher ^^

              
              public class NomDeTaClasse extends ItemArmor
              {
              private ItemArmor.ArmorMaterial material;
              {
              super(material, 0, type);
              this.material = material;
              this.setCreativeTab(Class.Tabs);
              }
              
              // ton rendu
              
              //ta fonction pour réparer l'item
              
              //la fonction de l'effet
              
              public void onArmorTick(World world, EntityPlayer player, ItemStack stack)
              {
              if(this.armorType == 0 && this.material == classDeTonArmoreMaterial.ArmoreMaterial)
              {
              player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 240, 0));
              }
              
              

              voilà ^^

              if(this.armorType == 0 && this.material == classDeTonArmoreMaterial.ArmoreMaterial)
              

              sa veut dire que si l’armure est un casque ET que il est de material quelque chose (exemple classPrincipale.armorBlack)

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

                Merci de ta réponse rapide, mais peut-tu plutôt m’aider par rapport a ma classe “Armures” s’il te plait ?
                Je voudrais rajouter encore 4 autres armures avec des effets différents.

                La voici :

                package fr.blackpandagaming.dragonadventure.common;
                
                import net.minecraft.entity.Entity;
                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.world.World;
                
                public class Armures extends ItemArmor
                {
                
                public Armures(ArmorMaterial material, int type)
                {
                super(material, 0, type);
                }
                
                //Armure en Dragonite blanche
                
                public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
                {
                if(stack.getItem() == DragonAdventure.pentalonDragoniteBlanche)
                {
                return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_2.png";
                }
                return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_1.png";
                }
                
                public boolean getIsRepairable1(ItemStack input, ItemStack repair)
                {
                if(repair.getItem() == DragonAdventure.dragoniteBlanche || repair.getItem() == DragonAdventure.dragoniteBlanche)
                {
                return true;
                }
                return false;
                }
                
                public void onArmorTick1(World world, EntityPlayer player, ItemStack stack)
                {
                player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 210, 2));
                }
                }
                
                1 réponse Dernière réponse Répondre Citer 0
                • DiangleD Hors-ligne
                  Diangle
                  dernière édition par

                  je ne comprend pas ajouter 4 autres ?

                  bon edit:
                  exemple pour ajouter d’autre armure avec d’autre effet tu doit faire cela :

                  
                  package fr.blackpandagaming.dragonadventure.common;
                  
                  import net.minecraft.entity.Entity;
                  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.world.World;
                  
                  public class Armures extends ItemArmor
                  {
                  private ItemArmor.ArmorMaterial material;
                  
                  public Armures(ItemArmor.ArmorMaterial material, int type)
                  {
                  super(material, 0, type);
                  this.material = material;
                  }
                  
                  //Armure en Dragonite blanche
                  
                  public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
                  {
                  if(stack.getItem() == DragonAdventure.pentalonDragoniteBlanche)
                  {
                  return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_2.png";
                  }
                  return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_1.png";
                  }
                  
                  public boolean getIsRepairable1(ItemStack input, ItemStack repair)
                  {
                  if(repair.getItem() == DragonAdventure.dragoniteBlanche || repair.getItem() == DragonAdventure.dragoniteBlanche)
                  {
                  return true;
                  }
                  return false;
                  }
                  
                  public void onArmorTick1(World world, EntityPlayer player, ItemStack stack)
                  {
                  if(this.material == ClassePrincipale.nomDuMaterial)
                  {
                  player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 210, 2));
                  }
                  if(this.material == ClassePrincipale.unAutreMaterial)
                  {
                  //de nouveau un effet
                  }
                  
                  //tu recommence les méthode a chaque fois :p
                  }
                  }
                  
                  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

                    Heu ?
                    Déjà si tu mets des 1 à la fin de des fonctions ça ne peut pas fonctionner.
                    Il faut faire comme ça :

                    
                    public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
                    {
                    if(stack.getItem() == DragonAdventure.pentalonDragoniteBlanche)
                    {
                    return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_2.png";
                    }
                    else if(stack.getItem() == DragonAdventure.casqueDragoniteBlanche || stack.getItem() == DragonAdventure.plastronDragoniteBlanche || stack.getItem() == DragonAdventure.bottesDragoniteBlanche)
                    {
                    return DragonAdventure.MODID + ":textures/models/armor/DragoniteBlanche_leyer_1.png";
                    }
                    else if(stack.getItem() == DragonAdventure.pentalon d une autre armure)
                    {
                    return DragonAdventure.MODID + ":textures/models/armor/autre armure_layer_2.png";
                    }
                    else if(stack.getItem() etc …
                    }
                    
                    public boolean getIsRepairable(ItemStack input, ItemStack repair)
                    {
                    if((input.getItem() == DragonAdventure.casqueDragoniteBlanche || input.getItem() == DragonAdventure.plastronDragoniteBlanche || input.getItem() == DragonAdventure.pentalonDragoniteBlanche || input.getItem() == DragonAdventure.bottesDragoniteBlanche) repair.getItem() == DragonAdventure.dragoniteBlanche)
                    {
                    return true;
                    }
                    else if(même chose avec les autres armures et le matériel de réparation qui va avec)
                    {
                    return true;
                    }
                    etc ...
                    return false;
                    }
                    
                    public void onArmorTick(World world, EntityPlayer player, ItemStack stack)
                    {
                    if(this == DragonAdventure.casqueDragoniteBlanche)
                    {
                    player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 210, 2));
                    }
                    else if(condition avec une autre armure)
                    {
                    //autre code
                    }
                    }
                    }
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • DiangleD Hors-ligne
                      Diangle
                      dernière édition par

                      merci, robin j’avais pas vue :D,
                      et là je pense que ton problème est résolue ^^.

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

                        Merci bien pour toutes ces explications mais si j’ai eu beaucoup de mal a les comprendre… ^^
                        C’est cool de votre part !

                        Cordialement.

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

                          Bonjour ! Peut-on faire en sorte qu’une armure protège plus d’un mob qu’un autre ?

                          Mes mods :

                          Agriculcraft

                          #L'âge ne fait pas le mod.(L'âge ne fait pas le mod.)

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

                            Oui, on peut.

                            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
                            • Fine33F Hors-ligne
                              Fine33
                              dernière édition par

                              Comment ? ^^

                              Mes mods :

                              Agriculcraft

                              #L'âge ne fait pas le mod.(L'âge ne fait pas le mod.)

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

                                Dans la méthode onArmorTick, tu check si l’entity qui t’attaque correspond au mob en question, si c’est le cas, tu augmentes la résistance de ton armure.

                                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
                                • Fine33F Hors-ligne
                                  Fine33
                                  dernière édition par

                                  En gros, c’est un

                                  if onEntityAttack = Entity.Zombie
                                  {
                                  Modmain.Armure = ArmorResistance + 5F
                                  }
                                  ``` ?

                                  Mes mods :

                                  Agriculcraft

                                  #L'âge ne fait pas le mod.(L'âge ne fait pas le mod.)

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

                                    Un truc comme cela, oui.

                                    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
                                    • robin4002R Hors-ligne
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                      dernière édition par

                                      Je dirai plutôt, lorsqu’une entité est attaqué (LivingHurtEvent) si la source des dégâts vient de l’entité voulu et que l’entity attaqué porte l’armure, tu réduis les dégâts.

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

                                        Et pour faire en sorte qu’on voie une forme comme quand on met une citrouille sur la tête, il faut avoir la texture de la forme et piquer un bout de code de la citrouille ? Si c’est ça, je vois pas quel bout de code c’est ! 😞

                                        Mes mods :

                                        Agriculcraft

                                        #L'âge ne fait pas le mod.(L'âge ne fait pas le mod.)

                                        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

                                          Non, faut le faire depuis un event : https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/main/event/RenderEvent.java#L31-L67

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

                                            Salut à tous,
                                            j’aimerais que quand le personnage porte toute l’armure et qu’il est frappé par un autre joueur, cet autre joueur soit téléporté entre 5 et 10 blocs (X et Y) plus loin. Le problème est que je ne sais pas comment récupérer les coordonnées du joueur attaquant et je ne sais pas comment lui assigner de nouvelles coordonnées. Pour l’instant j’ai fais ca :

                                            @SubscribeEvent
                                            public void onLivingHurt(LivingHurtEvent event)
                                            {
                                            ItemStack boots = event.entityLiving.getEquipmentInSlot(1);
                                            ItemStack leggings = event.entityLiving.getEquipmentInSlot(2);
                                            ItemStack chestPlate = event.entityLiving.getEquipmentInSlot(3);
                                            ItemStack helmet = event.entityLiving.getEquipmentInSlot(4);
                                            
                                            if(boots != null && boots.getItem() == MorePowerCraft.mysticBoots &&
                                            leggings != null && leggings.getItem() == MorePowerCraft.mysticLegs &&
                                            chestPlate != null && chestPlate.getItem() == MorePowerCraft.mysticBody &&
                                            helmet != null && helmet.getItem() == MorePowerCraft.mysticHelmet)
                                            {
                                            if(event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayerMP)
                                            {
                                            // Je ne sais pas quoi mettre…
                                            }
                                            }
                                            }
                                            

                                            Merci d’avance :rolleyes:

                                            PS : Quelle est la différence entre EntityPlayer, EntityPlayerMP et EntityPlayerSP ?

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 12
                                            • 13
                                            • 7 / 13
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB