Animer simplement un mob
-
Bonjour a tous !
Je vais vous apprendre a faire une animation simple pour un mob.Ce n’est pas un tutoriel pour faire un mob , donc si vous ne comprenez pas les codes , demandez de l’aide !
1) Prérequis
Les proxies
Les classe de votre mobPour faire court , je vous donnerai les miens , a savoir notre cher Liquid Ocelot :
Et la texture :
Liquid.java :
// Date: 20/07/2013 18:39:15 // Template version 1.1 // Java generated by Techne // Keep in mind that you still need to fill in some blanks // - ZeuX package mods.nono.MGSmod.client; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; public class Liquid extends ModelBase { //fields ModelRenderer head; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; ModelRenderer HairA; ModelRenderer HairD; ModelRenderer HairG; public Liquid() { textureWidth = 128; textureHeight = 128; head = new ModelRenderer(this, 0, 0); head.addBox(-4F, -8F, -4F, 8, 8, 8); head.setRotationPoint(0F, 0F, 0F); head.setTextureSize(128, 128); head.mirror = true; setRotation(head, 0F, 0F, 0F); body = new ModelRenderer(this, 16, 16); body.addBox(-4F, 0F, -2F, 8, 12, 4); body.setRotationPoint(0F, 0F, 0F); body.setTextureSize(128, 128); body.mirror = true; setRotation(body, 0F, 0F, 0F); rightarm = new ModelRenderer(this, 40, 16); rightarm.addBox(-3F, -2F, -2F, 4, 12, 4); rightarm.setRotationPoint(-5F, 2F, 0F); rightarm.setTextureSize(128, 128); rightarm.mirror = true; setRotation(rightarm, 0F, 0F, 0F); leftarm = new ModelRenderer(this, 40, 16); leftarm.addBox(-1F, -2F, -2F, 4, 12, 4); leftarm.setRotationPoint(5F, 2F, 0F); leftarm.setTextureSize(128, 128); leftarm.mirror = true; setRotation(leftarm, 0F, 0F, 0F); rightleg = new ModelRenderer(this, 0, 16); rightleg.addBox(-2F, 0F, -2F, 4, 12, 4); rightleg.setRotationPoint(-2F, 12F, 0F); rightleg.setTextureSize(128, 128); rightleg.mirror = true; setRotation(rightleg, 0F, 0F, 0F); leftleg = new ModelRenderer(this, 0, 16); leftleg.addBox(-2F, 0F, -2F, 4, 12, 4); leftleg.setRotationPoint(2F, 12F, 0F); leftleg.setTextureSize(128, 128); leftleg.mirror = true; setRotation(leftleg, 0F, 0F, 0F); HairA = new ModelRenderer(this, 0, 38); HairA.addBox(-4F, 0F, 0F, 8, 8, 1); HairA.setRotationPoint(0F, -3F, 3F); HairA.setTextureSize(128, 128); HairA.mirror = true; setRotation(HairA, 0.2094395F, 0F, 0F); HairD = new ModelRenderer(this, 0, 65); HairD.addBox(0F, 0F, 0F, 1, 7, 1); HairD.setRotationPoint(3F, -1F, -3F); HairD.setTextureSize(128, 128); HairD.mirror = true; setRotation(HairD, 0F, 0F, 0F); HairG = new ModelRenderer(this, 0, 65); HairG.addBox(0F, 0F, 0F, 1, 7, 1); HairG.setRotationPoint(-4F, -1F, -3F); HairG.setTextureSize(128, 128); HairG.mirror = true; setRotation(HairG, 0F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); head.render(f5); body.render(f5); rightarm.render(f5); leftarm.render(f5); rightleg.render(f5); leftleg.render(f5); HairA.render(f5); HairD.render(f5); HairG.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); } }
LiquidRender.java
package mods.nono.MGSmod.client; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; public class LiquidRender extends RenderLiving { private Liquid LiquidRender = new Liquid(); public LiquidRender(Liquid LiquidRender, float par2) { super(new Liquid(), 0.5F); } }
LiquidMob.Java
package mods.nono.MGSmod.common; import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.monster.EntityMob; import net.minecraft.world.World; public class LiquidMob extends EntityMob { public LiquidMob(World par1World) { super(par1World); this.texture = "/mods/nono/MGSmod/textures/mob/Liquid.png"; this.moveSpeed = 0.15F; } public int getMaxHealth() { return 100; } public int getAttackStrength(Entity par1Entity) { return 10; } public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.UNDEFINED; } }
A placer dans votre ClientProxy.java :
public void registerRenderEntity() { RenderingRegistry.registerEntityRenderingHandler(LiquidMob.class, new LiquidRender(new Liquid(), 0.5F)); }
Et dans votre classe principale , partie @Init :
EntityRegistry.registerGlobalEntityID(LiquidMob.class, "Liquid", EntityRegistry.findGlobalUniqueEntityId(), 74, 38); EntityRegistry.registerModEntity(LiquidMob.class, "Liquid", 6, this, 40, 1, true); LanguageRegistry.instance().addStringLocalization("entity.Liquid.name","Liquid Ocelot"); proxy.registerRenderEntity();
Vous pouvez tester , vous verrez que Liquid N’est pas animé , que c’est juste une planche.
2) L’animation
Dans votre classe Liquid.Java , rendez vous à cette ligne :
Code (java):
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Puis ajoutez :this.Membre.rotateAngleX
Ou Membre est à remplacer par le membre en question , ici on va le remplacer rightleg.
Vous pouvez changer X par Y ou par Z.
Ensuite , au bout de cette ligne , rajoutez := MathHelper.cos((180F / (float)Math.PI)) * -xF * f1;
Pour avoir une animation de balancement ( ? ) sinon :
= MathHelper.cos((180F / (float)y)) * -xF * f1;
Pour l’animation que d’un coté.
Remplacez X et Y par une valeur quelconque. ( pour X j’ai mis 3.8 )
Ensuite testez. Vous verrez que Liquid ne bouge qu’une seule jambe.
Refaites la même opération pour chacun des membres qui bougent !
Vous devriez avoir ça :super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1; this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1; this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1; this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
Testez. Vous verrez que le mouvement n’est pas naturel …
Enlevez tout simplement le - devant un membre inférieur ( les jambes ) et supérieur ( les bras ) :super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1; this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1; this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1; this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
Vous pouvez diminuer 3.8 ou l’augmenter si cela ne vous convient pas.
3) Copyright
le tuto + le model + la texture sont de moi
Libre a vous de le mettre sur n’importe quel site , du moment que vous me citez. -
Intéressant, je vais tester tout ça demain, j’ai pas trop le temps ce soir.
-
Très bon tutoriel. Moi qui ne comprenait pas trop le système d’animation.
-
Je valide.
-
Petit soucis : les liens d’images que tu fais sont 404. Penses à corriger cela.
-
Moi je les vois parfaitement ?
-
Essaie un autre hébergeur
Très bon tutoriel, malgré les images invisibles a nos yeux !
-
Idem. Le problème c’est que tu as utiliser les pièces jointes depuis minecraft-france, donc il faut être connecté sur minecraft-france pour les voir.
Réupload en pièce jointe ici ou sur un hébergeur comme imgur. -
Bonjour, très bon tuto"s" ! C’est peut être le seul qui marche sur tous ce que j’ai vu ^^
Cependant, je voudrais savoir comment serait-il possible de faire une animation sur block quand on clique dessus, un peu comme le coffre ?Merci d’avance.
-
http://www.minecraftforgefrance.fr/showthread.php?tid=375
(d’ailleurs tu me fais penser qu’il faut que je rédige la deuxième partie). -
Merci, je l’ai trouvé entre temps J’ai une question encore, j’ai peut être pas trop cherché, mais sur ce forum, est-il possible de poster un topic concernant notre mod ?
-
@‘JackCarterSmith’:
Merci, je l’ai trouvé entre temps J’ai une question encore, j’ai peut être pas trop cherché, mais sur ce forum, est-il possible de poster un topic concernant notre mod ?
-
Yo, sympa le tuto, mais est-ce normal que mon pied reste figé pendant la phase de déplacement et revienne a ça position initial après ce dernier ?
-
@‘UnknowOrigin’:
Yo, sympa le tuto, mais est-ce normal que mon pied reste figé pendant la phase de déplacement et revienne a ça position initial après ce dernier ?
tu as du te tromper a un endroit regarde bien ton code ^^.
-
Bonjour a tous j’ai suivie les étapes je pense comme il faut mais je n’arrive pas a faire bouger les ailes a mon mob (ailes droite et gauche) cela me torture pouvez vous me mettre sur la vois ?
public static class ModelDimorphodon extends ModelBase { ModelRenderer aile_gauche; ModelRenderer corps; ModelRenderer bras_sous_aile_droite; ModelRenderer bras_sous_aile_gauche; ModelRenderer cou; ModelRenderer tete; ModelRenderer queue; ModelRenderer queu; ModelRenderer jambe_droite; ModelRenderer jambe_gauche; ModelRenderer aile_droite; public ModelDimorphodon() { textureWidth = 64; textureHeight = 64; aile_gauche = new ModelRenderer(this, 1, 48); aile_gauche.addBox(0F, 0F, 0F, 12, 1, 7); aile_gauche.setRotationPoint(2F, 0F, 0F); aile_gauche.setTextureSize(64, 64); aile_gauche.mirror = true; setRotation(aile_gauche, 0F, 0F, 0F); corps = new ModelRenderer(this, 20, 35); corps.addBox(0F, 0F, 0F, 4, 4, 8); corps.setRotationPoint(-2F, -1F, 0F); corps.setTextureSize(64, 64); corps.mirror = true; setRotation(corps, 0F, 0F, 0F); bras_sous_aile_droite = new ModelRenderer(this, 41, 51); bras_sous_aile_droite.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_droite.setRotationPoint(-6F, 1.1F, 3F); bras_sous_aile_droite.setTextureSize(64, 64); bras_sous_aile_droite.mirror = true; setRotation(bras_sous_aile_droite, 0F, 0F, 0F); bras_sous_aile_gauche = new ModelRenderer(this, 13, 59); bras_sous_aile_gauche.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_gauche.setRotationPoint(2F, 1.1F, 3F); bras_sous_aile_gauche.setTextureSize(64, 64); bras_sous_aile_gauche.mirror = true; setRotation(bras_sous_aile_gauche, 0F, 0F, 0F); cou = new ModelRenderer(this, 26, 27); cou.addBox(0F, 0F, 0F, 2, 2, 4); cou.setRotationPoint(-1F, 0F, -4F); cou.setTextureSize(64, 64); cou.mirror = true; setRotation(cou, 0F, 0F, 0F); tete = new ModelRenderer(this, 24, 16); tete.addBox(0F, 0F, 0F, 3, 4, 5); tete.setRotationPoint(-1.5F, -1F, -9F); tete.setTextureSize(64, 64); tete.mirror = true; setRotation(tete, 0F, 0F, 0F); queue = new ModelRenderer(this, 35, 3); queue.addBox(0F, 0F, 0F, 3, 2, 3); queue.setRotationPoint(-1.5F, -1F, 8F); queue.setTextureSize(64, 64); queue.mirror = true; setRotation(queue, 0F, 0F, 0F); queu = new ModelRenderer(this, 16, 2); queu.addBox(0F, 0F, 0F, 1, 1, 7); queu.setRotationPoint(-0.5F, -1F, 11F); queu.setTextureSize(64, 64); queu.mirror = true; setRotation(queu, 0F, 0F, 0F); jambe_droite = new ModelRenderer(this, 43, 15); jambe_droite.addBox(0F, 0F, 0F, 1, 4, 1); jambe_droite.setRotationPoint(-2.3F, 3F, 5F); jambe_droite.setTextureSize(64, 64); jambe_droite.mirror = true; setRotation(jambe_droite, 1.047198F, -0.0174533F, 0F); jambe_gauche = new ModelRenderer(this, 17, 15); jambe_gauche.addBox(0F, 0F, 0F, 1, 4, 1); jambe_gauche.setRotationPoint(1.3F, 3F, 5F); jambe_gauche.setTextureSize(64, 64); jambe_gauche.mirror = true; setRotation(jambe_gauche, 1.047198F, 0F, 0F); aile_droite = new ModelRenderer(this, 25, 56); aile_droite.addBox(0F, 0F, 0F, 12, 1, 7); aile_droite.setRotationPoint(-14F, 0F, 0F); aile_droite.setTextureSize(64, 64); aile_droite.mirror = true; setRotation(aile_droite, 0F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); aile_gauche.render(f5); corps.render(f5); bras_sous_aile_droite.render(f5); bras_sous_aile_gauche.render(f5); cou.render(f5); tete.render(f5); queue.render(f5); queu.render(f5); jambe_droite.render(f5); jambe_gauche.render(f5); aile_droite.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity e) { super.setRotationAngles(f, f1, f2, f3, f4, f5, e); } } }
-
Ca ne me semble pas compliquer pourtant il est bien écrit
- L’animation :
Dans votre classe Liquid.Java , rendez vous à cette ligne :
Code (java):
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Puis ajoutez :
Code Java : (Tout sélectionner)
this.Membre.rotateAngleX
Ou Membre est à remplacer par le membre en question , ici on va le remplacer rightleg.
Vous pouvez changer X par Y ou par Z.
Ensuite , au bout de cette ligne , rajoutez :
Code Java : (Tout sélectionner)
= MathHelper.cos((180F / (float)Math.PI)) * -xF * f1;Pour avoir une animation de balancement ( ? ) sinon :
Code Java : (Tout sélectionner)
= MathHelper.cos((180F / (float)y)) * -xF * f1;Pour l’animation que d’un coté.
Remplacez X et Y par une valeur quelconque. ( pour X j’ai mis 3.8 )
Ensuite testez. Vous verrez que Liquid ne bouge qu’une seule jambe.
Refaites la même opération pour chacun des membres qui bougent !
Vous devriez avoir ça :Code Java : (Tout sélectionner)
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;Testez. Vous verrez que le mouvement n’est pas naturel …
Enlevez tout simplement le - devant un membre inférieur ( les jambes ) et supérieur ( les bras ) :Code Java : (Tout sélectionner)
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
Vous pouvez diminuer 3.8 ou l’augmenter si cela ne vous convient pas.Dans cette fonction
super.setRotationAngles(f, f1, f2, f3, f4, f5, e); } }
tu ajoute soit pour les déplacement de l’axe X: - this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
ou pour un déplacement de l’axe Y : this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
et un déplacement de l’axe Z : this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleZ = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;A toi ensuite de changer la valeur -3.8F par quelque chose qui te convient
Il me semble que la chauve souris c’est +1.0F quelque chose comme ca
–----------------------------------
N’hésite pas si je t’ai aider le petit bouton +/-
- L’animation :
-
Désoler de Re déranger mais cela ne marche pas je dois vraiment être stupide voici ma class :
import cpw.mods.fml.client.*; import cpw.mods.fml.client.registry.*; import cpw.mods.fml.common.*; import cpw.mods.fml.common.asm.*; import cpw.mods.fml.common.asm.transformers.*; import cpw.mods.fml.common.discovery.*; import cpw.mods.fml.common.discovery.asm.*; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.functions.*; import cpw.mods.fml.common.network.*; import cpw.mods.fml.common.registry.*; import cpw.mods.fml.common.toposort.*; import cpw.mods.fml.common.versioning.*; import cpw.mods.fml.relauncher.*; import cpw.mods.fml.server.*; import net.minecraft.block.*; import net.minecraft.block.material.*; import net.minecraft.client.*; import net.minecraft.client.audio.*; import net.minecraft.client.entity.*; import net.minecraft.client.gui.*; import net.minecraft.client.gui.achievement.*; import net.minecraft.client.gui.inventory.*; import net.minecraft.client.model.*; import net.minecraft.client.multiplayer.*; import net.minecraft.client.particle.*; import net.minecraft.client.renderer.*; import net.minecraft.client.renderer.culling.*; import net.minecraft.client.renderer.entity.*; import net.minecraft.client.renderer.tileentity.*; import net.minecraft.client.settings.*; import net.minecraft.command.*; import net.minecraft.crash.*; import net.minecraft.creativetab.*; import net.minecraft.dispenser.*; import net.minecraft.enchantment.*; import net.minecraft.entity.*; import net.minecraft.entity.ai.*; import net.minecraft.entity.boss.*; import net.minecraft.entity.effect.*; import net.minecraft.entity.item.*; import net.minecraft.entity.monster.*; import net.minecraft.entity.passive.*; import net.minecraft.entity.player.*; import net.minecraft.entity.projectile.*; import net.minecraft.inventory.*; import net.minecraft.item.*; import net.minecraft.item.crafting.*; import net.minecraft.nbt.*; import net.minecraft.network.*; import net.minecraft.network.rcon.*; import net.minecraft.pathfinding.*; import net.minecraft.potion.*; import net.minecraft.profiler.*; import net.minecraft.server.*; import net.minecraft.server.dedicated.*; import net.minecraft.server.gui.*; import net.minecraft.server.integrated.*; import net.minecraft.server.management.*; import net.minecraft.src.*; import net.minecraft.stats.*; import net.minecraft.tileentity.*; import net.minecraft.util.*; import net.minecraft.village.*; import net.minecraft.world.*; import net.minecraft.world.biome.*; import net.minecraft.world.chunk.*; import net.minecraft.world.chunk.storage.*; import net.minecraft.world.demo.*; import net.minecraft.world.gen.*; import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.layer.*; import net.minecraft.world.gen.structure.*; import net.minecraft.world.storage.*; import net.minecraftforge.classloading.*; import net.minecraftforge.client.*; import net.minecraftforge.client.event.*; import net.minecraftforge.client.event.sound.*; import net.minecraftforge.common.*; import net.minecraftforge.event.*; import net.minecraftforge.event.entity.*; import net.minecraftforge.event.entity.item.*; import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.minecart.*; import net.minecraftforge.event.entity.player.*; import net.minecraftforge.event.terraingen.*; import net.minecraftforge.event.world.*; import net.minecraftforge.oredict.*; import net.minecraftforge.transformers.*; import net.minecraft.init.*; import java.util.Random; @SuppressWarnings("unchecked") public class mcreator_dimorphodon { public static int mobid = 0; public Object instance; public void load(){} public void generateNether(World world, Random random, int chunkX, int chunkZ){} public void generateSurface(World world, Random random, int chunkX, int chunkZ){} public int addFuel(ItemStack fuel){ return 0; } public void registerRenderers(){ RenderingRegistry.registerEntityRenderingHandler(mcreator_dimorphodon.Entitydimorphodon.class, new RenderLiving(new mcreator_dimorphodon.ModelDimorphodon(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("Dimorphodon texture.png");}}); } public void serverLoad(FMLServerStartingEvent event){} public void preInit(FMLPreInitializationEvent event){ int entityID = EntityRegistry.findGlobalUniqueEntityId(); mobid = entityID; EntityRegistry.registerGlobalEntityID(mcreator_dimorphodon.Entitydimorphodon.class, "dimorphodon", entityID); EntityRegistry.registerModEntity(mcreator_dimorphodon.Entitydimorphodon.class, "dimorphodon", entityID, instance, 64, 1, true); EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, (255 << 16) + (255 << 8) + 0, (255 << 16) + (51 << 8) + 51)); DungeonHooks.addDungeonMob("dimorphodon", 180); } /*public Entity spawnEntity(int var1, World var2, double var3, double var5, double var7) { if(var1==mobid) return new mcreator_dimorphodon.Entitydimorphodon(var2); else return null; }*/ public static class Entitydimorphodon extends EntityFlying { World world = null; public Entitydimorphodon(World var1) { super(var1); world = var1; experienceValue = 5; this.isImmuneToFire = false; addRandomArmor(); } protected void applyEntityAttributes(){ super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(2.0D); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); if(this.getEntityAttribute(SharedMonsterAttributes.attackDamage)!=null)this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3D); } protected void addRandomArmor(){ } protected void dropRareDrop(int par1){ this.dropItem(Items.bone, 1); } public boolean isAIEnabled() { return false; } /** * Drop 0-2 items of this living's type */ protected void dropFewItems(boolean var1, int var2) { this.entityDropItem(new ItemStack(Items.feather), 0.0F); } /** * Returns the sound this mob makes while it's alive. */ protected String getLivingSound() { return ""; } /** * Returns the sound this mob makes when it is hurt. */ protected String getHurtSound() { return ""; } /** * Returns the sound this mob makes on death. */ protected String getDeathSound() { return ""; } public void onStruckByLightning(EntityLightningBolt entityLightningBolt){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; } protected void fall(float l){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; super.fall(l); } public void onCriticalHit(Entity entity) { int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; } public void onKillEntity(EntityLiving entityLiving){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; } public boolean interact(EntityPlayer entity){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; return true; } public String getEntityName(){ return "dimorphodon"; } } // Date: 02/09/2014 12:59:32 // Template version 1.1 // Java generated by Techne // Keep in mind that you still need to fill in some blanks // - ZeuX public static class ModelDimorphodon extends ModelBase { //fields ModelRenderer aile_gauche; ModelRenderer corps; ModelRenderer bras_sous_aile_droite; ModelRenderer bras_sous_aile_gauche; ModelRenderer cou; ModelRenderer tete; ModelRenderer queue; ModelRenderer queu; ModelRenderer jambe_droite; ModelRenderer jambe_gauche; ModelRenderer aile_droite; public ModelDimorphodon() { textureWidth = 64; textureHeight = 64; aile_gauche = new ModelRenderer(this, 1, 48); aile_gauche.addBox(0F, 0F, 0F, 12, 1, 7); aile_gauche.setRotationPoint(2F, 0F, 0F); aile_gauche.setTextureSize(64, 64); aile_gauche.mirror = true; setRotation(aile_gauche, 0F, 0F, 0F); corps = new ModelRenderer(this, 20, 35); corps.addBox(0F, 0F, 0F, 4, 4, 8); corps.setRotationPoint(-2F, -1F, 0F); corps.setTextureSize(64, 64); corps.mirror = true; setRotation(corps, 0F, 0F, 0F); bras_sous_aile_droite = new ModelRenderer(this, 41, 51); bras_sous_aile_droite.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_droite.setRotationPoint(-6F, 1.1F, 3F); bras_sous_aile_droite.setTextureSize(64, 64); bras_sous_aile_droite.mirror = true; setRotation(bras_sous_aile_droite, 0F, 0F, 0F); bras_sous_aile_gauche = new ModelRenderer(this, 13, 59); bras_sous_aile_gauche.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_gauche.setRotationPoint(2F, 1.1F, 3F); bras_sous_aile_gauche.setTextureSize(64, 64); bras_sous_aile_gauche.mirror = true; setRotation(bras_sous_aile_gauche, 0F, 0F, 0F); cou = new ModelRenderer(this, 26, 27); cou.addBox(0F, 0F, 0F, 2, 2, 4); cou.setRotationPoint(-1F, 0F, -4F); cou.setTextureSize(64, 64); cou.mirror = true; setRotation(cou, 0F, 0F, 0F); tete = new ModelRenderer(this, 24, 16); tete.addBox(0F, 0F, 0F, 3, 4, 5); tete.setRotationPoint(-1.5F, -1F, -9F); tete.setTextureSize(64, 64); tete.mirror = true; setRotation(tete, 0F, 0F, 0F); queue = new ModelRenderer(this, 35, 3); queue.addBox(0F, 0F, 0F, 3, 2, 3); queue.setRotationPoint(-1.5F, -1F, 8F); queue.setTextureSize(64, 64); queue.mirror = true; setRotation(queue, 0F, 0F, 0F); queu = new ModelRenderer(this, 16, 2); queu.addBox(0F, 0F, 0F, 1, 1, 7); queu.setRotationPoint(-0.5F, -1F, 11F); queu.setTextureSize(64, 64); queu.mirror = true; setRotation(queu, 0F, 0F, 0F); jambe_droite = new ModelRenderer(this, 43, 15); jambe_droite.addBox(0F, 0F, 0F, 1, 4, 1); jambe_droite.setRotationPoint(-2.3F, 3F, 5F); jambe_droite.setTextureSize(64, 64); jambe_droite.mirror = true; setRotation(jambe_droite, 1.047198F, -0.0174533F, 0F); jambe_gauche = new ModelRenderer(this, 17, 15); jambe_gauche.addBox(0F, 0F, 0F, 1, 4, 1); jambe_gauche.setRotationPoint(1.3F, 3F, 5F); jambe_gauche.setTextureSize(64, 64); jambe_gauche.mirror = true; setRotation(jambe_gauche, 1.047198F, 0F, 0F); aile_droite = new ModelRenderer(this, 25, 56); aile_droite.addBox(0F, 0F, 0F, 12, 1, 7); aile_droite.setRotationPoint(-14F, 0F, 0F); aile_droite.setTextureSize(64, 64); aile_droite.mirror = true; setRotation(aile_droite, 0F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); aile_gauche.render(f5); corps.render(f5); bras_sous_aile_droite.render(f5); bras_sous_aile_gauche.render(f5); cou.render(f5); tete.render(f5); queue.render(f5); queu.render(f5); jambe_droite.render(f5); jambe_gauche.render(f5); aile_droite.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity e) { super.setRotationAngles(f, f1, f2, f3, f4, f5, e); this.aile_droite.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.aile_gauche.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.tete.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.tete.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.tete.rotateAngleZ = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; } } }
-
Les balises, les balises mon petit … Car la c’est du viol d’œil
-
Désoler je me suis prit un avertissement pour cela mais je ne sais pas comme le faire pouvait vous m’expliquer que cela n’arrive plus
-
C’est pas compliqué. Si tu veux mettre du code java, tu mets : [java ] code ici [/java] (pas d’étoile dans les balises bien sûr). Si c’est pour u code qui est autre que java (ex : crash report, JSON….), tu mets [code] code ici [/code] (toujours sans les étoiles :p).