Créer une armure
-
helmet = 0, chestplate = 1, leggings = 2, boots = 3.
Seul ton casque est bon, les autres tu as mit les mauvais nombres (dans la classe principale).
Et pour l’enclume, voir un message plus haut. -
j’ai tout fais sa marche sauf que je voi pas la texture … help me please
-
Code de ton armure ? Emplacement des fichiers png ?
-
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.
-
Il manque les .png dans la fonction getArmorTexture
-
Merci infiniment ! C’est quand même fou de foirer des textures in game juste pour 3 lettres

Cordialement.
-
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.
-
@‘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)
-
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)); } } -
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 } } -
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 } } } -
merci, robin j’avais pas vue :D,
et là je pense que ton problème est résolue ^^. -
Merci bien pour toutes ces explications mais si j’ai eu beaucoup de mal a les comprendre… ^^
C’est cool de votre part !Cordialement.
-
Bonjour ! Peut-on faire en sorte qu’une armure protège plus d’un mob qu’un autre ?
-
Oui, on peut.
-
Comment ? ^^
-
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.
-
En gros, c’est un
if onEntityAttack = Entity.Zombie { Modmain.Armure = ArmorResistance + 5F } ``` ? -
Un truc comme cela, oui.
-
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.
