Résolu Les Armures
-
Bonjour,
Est ce que quelqu’un serais me dire comment faire pour ajouter plus de protection qu’une armure en diamant j’ai déjà réaliser mon code.
L’amure est déjà présent en jeux, il ne reste plus qu’a ajouter les protections plus forte que le diamants ce que je ne sais pas réalisée.
Je vais vous demander au passage comment faire pour y mettre qu’elle peut recevoir autant de coup avant de casser pour chaque pièce et pour terminer une dernières choses comment afficher les coeurs pour montrez ce qu’elle protège.Voila mon armures à présent :
package fr.topycraft.ModPackTopyCraft.items; import fr.topycraft.ModPackTopyCraft.ModPackTopyCraft; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.init.SoundEvents; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.EnumHelper; public class TopyduimArmor extends ItemArmor{ public static final ArmorMaterial material = EnumHelper.addArmorMaterial("topyduimarmure", ModPackTopyCraft.MODID + ":topyduimarmure", 500, new int[]{4, 6, 7, 3}, 17, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F); static { material.customCraftingMaterial = ModPackTopyCraftItems.LINGOTDETOPYDUIM; } public TopyduimArmor(EntityEquipmentSlot chest) { super(material, 0, chest); } @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { if(slot == EntityEquipmentSlot.LEGS) return ModPackTopyCraft.MODID + ":textures/models/armor/topyduim_layer_2.png"; return ModPackTopyCraft.MODID + ":textures/models/armor/topyduim_layer_1.png"; } }
Bonne journée, Galwed
-
C’est ça qui détermine les résistances normalement
“new int[]{4, 6, 7, 3}” Dans l’ordre des slots
-
@‘Galwed’:
Est ce que quelqu’un serais me dire comment faire pour ajouter plus de protection qu’une armure en diamant j’ai déjà réaliser mon code.
[…]et pour terminer une dernières choses comment afficher les coeurs pour montrez ce qu’elle protège.Pour afficher plus de 20 d’armures sur le gui :
@SubscribeEvent public void onDrawArmor(RenderGameOverlayEvent.Post event) { Minecraft mc = Minecraft.getMinecraft(); if(event.type == RenderGameOverlayEvent.ElementType.ARMOR) { GL11.glEnable(GL11.GL_BLEND); int left = event.resolution.getScaledWidth() / 2 - 91; int top = event.resolution.getScaledHeight() - GuiIngameForge.left_height; int level = ForgeHooks.getTotalArmorValue(mc.thePlayer) - 20; for (int i = 1; level > 0 && i < 20; i += 2) { if (i < level) { mc.ingameGUI.drawTexturedModalRect(left, top, 34, 9, 9, 9); } else if (i == level) { mc.ingameGUI.drawTexturedModalRect(left, top, 25, 9, 9, 9); } else if (i > level) { mc.ingameGUI.drawTexturedModalRect(left, top, 16, 9, 9, 9); } left += 8; } GuiIngameForge.left_height += 10; GL11.glDisable(GL11.GL_BLEND); } }
(c’est un event -> https://www.minecraftforgefrance.fr/showthread.php?tid=716)
@‘Galwed’:
Je vais vous demander au passage comment faire pour y mettre qu’elle peut recevoir autant de coup avant de casser pour chaque pièce
Ça parcontre ça va être complexe : le système qui endommage les armures de minecraft n’endommage pas toutes les pièces de la même façon en fonction de la source de dégâts. Les enclumes endommage plus le casque, les dégâts de chute plus les bottes, etc.
-
Avec ISpecialArmor tu peux mieux gérer les dégâts sur les armures
-
Alors, j’ai ta réponse à ton problème, je vais tout faire dans l’ordre pour que ça soit claire.
:::
package fr.DjCtavia.modtrash.item; import fr.DjCtavia.modtrash.ModTrash; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.init.SoundEvents; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.*; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.fml.common.registry.GameRegistry; /** * Created by Mr. Dj on 01/04/2017. */ public class ModItems { public static itemNewArmor maNouvelleArmure; public static ItemArmor.ArmorMaterial monNouveauMaterielArmure = EnumHelper.addArmorMaterial("NomDuMateriel","textureName", 50, new int[]{4, 7, 9, 4}, 30, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 2.0F);[/font] public static void preInit() { maNouvelleArmure = new itemNewArmor("newArmor", monNouveauMaterielArmure, 2, EntityEquipmentSlot.LEGS); registerItems(); } public static void registerItems() { GameRegistry.register(maNouvelleArmure, new ResourceLocation(ModTrash.MODID, "master_armor")); } public static void registerRenders() { registerRender(maNouvelleArmure); } public static void registerRender(Item item) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(ModTrash.MODID + ":" + item.getUnlocalizedName().substring(5), "inventory")); } }
:::
:::
// (Nom du Matériel, Nom de la texture utilisés [On s'en fou un peu], Durabilité exemple dans l'autre spoiler, la protection avec [Pieds, Jambes, Plastron, Casque], le son de l'item, la toughness correspond à la résistance des coups reçus plus on a de pièce d'équiepement plus la résistance est forte. public static ArmorMaterial addArmorMaterial(String name, String textureName, int durability, int[] reductionAmounts, int enchantability, SoundEvent soundOnEquip, float toughness)[/font] // (UnlocalizedName, Matériel utilisé, le type de rendu 0 = tissu / 1 = chaine / 2 = Fer / 3 = Diamant / 4 = Or, le slot utilisé par l'armure. itemNewArmor("newArmor", monMateriel, 2, EntityEquipmentSlot.LEGS);
:::
:::
La durabilité d’une armure est toujours multiplié par un int fixe donné par défaut dans minecraft.
- Casque = 13 x Durabilité
- Plastron = 15 x Durabilité
- Jambières = 16 x Durabilité
- Bottes = 11 x Durabilité
Donc, si je mets 33 durabilité comme le diamant, pour les jambières j’aurais 528 de durabilité théorique.
:::
:::
package fr.DjCtavia.modtrash.item; import fr.DjCtavia.modtrash.ModTrash; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemArmor; /** * Created by Mr. Dj on 11/04/2017. */ public class itemNewArmor extends ItemArmor { public itemNewArmor(String unlocalizedName,ItemArmor.ArmorMaterial materialIn, int renderIndexIn, EntityEquipmentSlot equipmentSlotIn) { super(materialIn, renderIndexIn, equipmentSlotIn); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(ModTrash.tabModtrash); } }
:::
-
Merci à tous j’ai réussi !