Créer une armure
-
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.
-
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 !

-
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
-
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 ?
-
EntityPlayer -> Un joueur, que ce soit côté client ou serveur
EntityPlayerMP -> classe extends EntityPlayer, le joueur côté serveur, permet d’accéder à des fonctions disponible que côté serveur. Mais ducoup ça fonctionne que côté serveur.
EntityPlayerSP -> Même chose mais pour le client.Pour le // Je ne sais pas quoi mettre… :
int x = (int)((event.source.getEntity().posX + event.source.getEntity().worldObj.rand.nextInt(5) + 5) * Math.pow(-1, (double)rand.nextInt(1)); int z = (int)((event.source.getEntity().posZ + event.source.getEntity().worldObj.rand.nextInt(5) + 5) * Math.pow(-1, (double)rand.nextInt(1)); int y = (int)(event.source.getEntity().posY); while(!event.source.getEntity().worldObj.isAirBlock(x, y, z) { y ++; } event.source.getEntity().setPositionAndUpdate(x, y, z);Code fait à la main, j’ai pas vérifier, tu me dira si c’est bon ou pas.
-
@‘robin4002’:
EntityPlayer -> Un joueur, que ce soit côté client ou serveur
EntityPlayerMP -> classe extends EntityPlayer, le joueur côté serveur, permet d’accéder à des fonctions disponible que côté serveur. Mais ducoup ça fonctionne que côté serveur.
EntityPlayerSP -> Même chose mais pour le client.Pour le // Je ne sais pas quoi mettre… :
int x = (int)((event.source.getEntity().posX + event.source.getEntity().worldObj.rand.nextInt(5) + 5) * Math.pow(-1, (double)rand.nextInt(1)); int z = (int)((event.source.getEntity().posZ + event.source.getEntity().worldObj.rand.nextInt(5) + 5) * Math.pow(-1, (double)rand.nextInt(1)); int y = (int)(event.source.getEntity().posY); while(!event.source.getEntity().worldObj.isAirBlock(x, y, z) { y ++; } event.source.getEntity().setPositionAndUpdate(x, y, z);Code fait à la main, j’ai pas vérifier, tu me dira si c’est bon ou pas.
Merci pour ta réponse rapide

J’ai une erreur “rand cannot be resolved” ici :
-
Remplace rand par event.source.getEntity().worldObj.rand et setPositionAndUpdate par setPosition.
-
@‘robin4002’:
Remplace rand par event.source.getEntity().worldObj.rand et setPositionAndUpdate par setPosition.
Ca marche nickel !
Merci beaucoup
-
Salut,
Pour ceux qui auraient besoin d’aide sur les layers d’armures, il y a ce super lien (en anglais)
-
Pour info, si vous modifiez la vitesse d’un joueur (en tout cas pour moi) et que ce dernier vole (par exemple en créa), ça vous envoie à panplume, du coup il faut ajouter une condition pour savoir si le joueur est au sol ou non.
if(this.armorType == 2 && player.onGround) -
Bonjour de mon coté j’ai un problème de texture, j’ai appelez mister isador à la rescousse mais même ce dernier n’as pas trouvez le problème, je peux lancez le jeux (sa crash pas exploit lol)
je peux équipez la chose, mais aucune texturedonc je me tourne vers vous (on ce tourne car isador est avec moi sur le coup ^^)
voila la chose en détail
public static Item helmetMK1, bodyMK1, legMK1, bootsMK1;helmetMK1 = new helmetMK1(armorTuto, 0).setUnlocalizedName("helmetTuto").setTextureName(c_drone + ":Mk_I.1.png"); bodyMK1 = new bodyMK1(armorTuto, 1).setUnlocalizedName("chestPlateTuto").setTextureName(c_drone + ":Mk_I.1.png"); legMK1 = new legMK1(armorTuto, 2).setUnlocalizedName("leggingsTuto").setTextureName(c_drone + ":Mk_I.2.png"); bootsMK1 = new bootsMK1(armorTuto, 3).setUnlocalizedName("bootsTuto").setTextureName(c_drone + ":Mk_I.2.png");GameRegistry.registerItem(helmetMK1, "item_tuto_helmet"); GameRegistry.registerItem(bodyMK1, "item_tuto_chestplate"); GameRegistry.registerItem(legMK1, "item_tuto_leggings"); GameRegistry.registerItem(bootsMK1, "item_tuto_boots");package fr.celestiafrance.c_drone.common; import net.minecraft.entity.Entity; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; public class helmetMK1 extends ItemArmor { public helmetMK1(ArmorMaterial material, int type) { super(material, 0, type); } public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { if (slot == 0) { return c_drone.c_drone + ":textures/armor/Mk_I.png"; } return c_drone.c_drone + ":textures/armor/Mk_I2.png"; } }ou est ma connerie …
-
Tu peux donner l’erreur dans les log (ou venir sur skype)
-
j’ai ça dans les logs
Failed to load texture: fr.celestiafrance.c_drone.common.c_dronecreativetabs@46df794e:textures/armor/Mk_I.png
java.io.FileNotFoundException: fr.celestiafrance.c_drone.common.c_dronecreativetabs@46df794e:textures/armor/Mk_I.png
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:71) ~[SimpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.SimpleTexture.loadTexture(SimpleTexture.java:35) ~[SimpleTexture.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.bindTexture(TextureManager.java:45) [TextureManager.class:?]
at net.minecraft.client.renderer.entity.Render.bindTexture(Render.java:62) [Render.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.shouldRenderPass(RenderPlayer.java:74) [RenderPlayer.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.shouldRenderPass(RenderPlayer.java:516) [RenderPlayer.class:?]
at net.minecraft.client.renderer.entity.RendererLivingEntity.doRender(RendererLivingEntity.java:173) [RendererLivingEntity.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.doRender(RenderPlayer.java:171) [RenderPlayer.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.doRender(RenderPlayer.java:564) [RenderPlayer.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300) [RenderManager.class:?]
at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:283) [RenderManager.class:?]
at net.minecraft.client.gui.inventory.GuiInventory.func_147046_a(GuiInventory.java:116) [GuiInventory.class:?]
at net.minecraft.client.gui.inventory.GuiContainerCreative.drawGuiContainerBackgroundLayer(GuiContainerCreative.java:838) [GuiContainerCreative.class:?]
at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:97) [GuiContainer.class:?]
at net.minecraft.client.renderer.InventoryEffectRenderer.drawScreen(InventoryEffectRenderer.java:44) [InventoryEffectRenderer.class:?]
at net.minecraft.client.gui.inventory.GuiContainerCreative.drawScreen(GuiContainerCreative.java:672) [GuiContainerCreative.class:?]
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1143) [EntityRenderer.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1023) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:910) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_05]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_05]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_05]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_05]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?] -
c_drone.c_drone ?
-
modtuto+modID
nom du mod + nom de la classe ? -
Rien compris x)
Envoie ta classe principale entière. -
c’est bon problème réglé

diangle, m’as filez un coup de main ^^



