Créer un mob basique
-
Ben après faut juste pas mettre la ligne GameRegistry.addBiome car ton biome spawnera dans l’overworld… ya juste à l’initialiser et c’est tout, pis après tu mets en sorte que les mobs spawnent dans le biome spécifique.
-
Ok, n’empêche vivement un tutoriel sur les biomes et les dimensions.
-
Les tutoriels vont tarder, avec la 1.7 qui va tout chambouler, on va devoir tout refaire, donc pas trop envie de commencer maintenant
-
Surtout que c’est au niveau des biomes et des dimensions que les modifications seront les plus longues, c’est bien ça?
-
Plutôt vers la génération de structure, donc globalement génération; donc oui.
-
pfff je surlutte xd !!
déjà, merci bcp pour ton tuto ! il m’a bien servi
je l’ai suivi, avec les corrections nécessaire précédemment cité j’y suis arrivé !! :)=du coup, plein de confiance en moi, j’ai poursuivi avec un model perso … lequel j’ai pas trop mal réussi !!
les divers partie des pattes partes toutes du même point de rotation (enfin av gauche, av droite, ar, etc )
le voici, le voila ;
malheureusement, voici ce que ça donne ig …
on dirait que les rotation “d’origine” ne sont pas respecté …
de plus j’ai une erreur ds le fichiers exporté en java par techne !!
sur les rotations justement tiens !!!tout en bas y’a cette trucmuche de fonction de mm…
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5) { super.setRotationAngles(f, f1, f2, f3, f4, f5); }
et il me donne 3 solutions :
- add argument to match (il rajoute super.setRotationAngles(f, f1, f2, f3, f4, f5, null);)
- change méthode setrotation angle (il enlève le entity de cette méthode dans modelbase)
- créer une nouvelle méthode dans modelbase …
mais quoi que je fasse mon mob est toujours buggué ::
si vous avez une piste, jsuis prenneur …
ah ca a pas fonctionné les pieces jointes !!
alors voila :
ModelReplicateur.java// Date: 26/09/2013 00:40:38 // Template version 1.1 // Java generated by Techne // Keep in mind that you still need to fill in some blanks // - ZeuX package atlantis.mob; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class ModelReplicateur extends ModelBase { //fields ModelRenderer corpdessus0g; ModelRenderer corpdessusg; ModelRenderer corpdessus1g; ModelRenderer corpdessus3g; ModelRenderer corpdessus4; ModelRenderer corpdessus5; ModelRenderer corpdessus6; ModelRenderer ailegauche; ModelRenderer corpdessus3d; ModelRenderer corpdessus1d; ModelRenderer corpdessusd; ModelRenderer corpdessus0d; ModelRenderer ailedroite; ModelRenderer patteavgauchearticu; ModelRenderer patteavgauchecuisse; ModelRenderer patteavgaucheartimollet; ModelRenderer patteavgauchemollet; ModelRenderer patteavgauchepied; ModelRenderer patteavdroitearti; ModelRenderer patteavdroitecuisse; ModelRenderer patteavdroiteartimollet; ModelRenderer patteavdroitemollet; ModelRenderer patteavdroiteepied; ModelRenderer queue1; ModelRenderer queue2; ModelRenderer patteargauchearti; ModelRenderer patteardroitearti; ModelRenderer patteardroitecuisse; ModelRenderer patteardroiteartimollet; ModelRenderer patteardroitemollet; ModelRenderer patteardroitepied; ModelRenderer patteargauchecuisse; ModelRenderer patteargaucheartimollet; ModelRenderer patteargauchemollet; ModelRenderer patteargauchepied; public ModelReplicateur() { textureWidth = 128; textureHeight = 64; corpdessus0g = new ModelRenderer(this, 0, 30); corpdessus0g.addBox(-2F, -1F, -3.9F, 13, 1, 1); corpdessus0g.setRotationPoint(0F, 19F, -7F); corpdessus0g.setTextureSize(128, 64); corpdessus0g.mirror = true; setRotation(corpdessus0g, 0F, -1.58F, -0.1F); corpdessusg = new ModelRenderer(this, 0, 24); corpdessusg.addBox(-1.5F, -1.1F, -3.1F, 12, 1, 1); corpdessusg.setRotationPoint(0F, 19F, -7F); corpdessusg.setTextureSize(128, 64); corpdessusg.mirror = true; setRotation(corpdessusg, 0.0174533F, -1.58F, -0.1F); corpdessus1g = new ModelRenderer(this, 0, 22); corpdessus1g.addBox(-1F, -1.2F, -2.3F, 11, 1, 1); corpdessus1g.setRotationPoint(0F, 19F, -7F); corpdessus1g.setTextureSize(128, 64); corpdessus1g.mirror = true; setRotation(corpdessus1g, 0F, -1.58F, -0.1F); corpdessus3g = new ModelRenderer(this, 0, 18); corpdessus3g.addBox(-0.5F, -1.6F, -1.5F, 10, 1, 1); corpdessus3g.setRotationPoint(0F, 19F, -7F); corpdessus3g.setTextureSize(128, 64); corpdessus3g.mirror = true; setRotation(corpdessus3g, 0F, -1.58F, -0.1F); corpdessus4 = new ModelRenderer(this, 0, 13); corpdessus4.addBox(0F, 0F, -1F, 9, 1, 2); corpdessus4.setRotationPoint(0F, 17F, -7F); corpdessus4.setTextureSize(128, 64); corpdessus4.mirror = true; setRotation(corpdessus4, 0F, -1.58F, -0.1F); corpdessus5 = new ModelRenderer(this, 0, 11); corpdessus5.addBox(0F, 0.5F, -0.5F, 8, 1, 1); corpdessus5.setRotationPoint(0F, 16F, -7F); corpdessus5.setTextureSize(128, 64); corpdessus5.mirror = true; setRotation(corpdessus5, 0F, -1.58F, -0.1F); corpdessus6 = new ModelRenderer(this, 0, 10); corpdessus6.addBox(0F, -1F, 0F, 8, 1, 0); corpdessus6.setRotationPoint(0F, 17F, -7F); corpdessus6.setTextureSize(128, 64); corpdessus6.mirror = true; setRotation(corpdessus6, 0F, -1.58F, -0.1F); ailegauche = new ModelRenderer(this, 21, 6); ailegauche.addBox(0F, 0F, -1.5F, 9, 1, 2); ailegauche.setRotationPoint(4F, 18F, -1F); ailegauche.setTextureSize(128, 64); ailegauche.mirror = true; setRotation(ailegauche, -0.1F, -1.68F, -3.5F); corpdessus3d = new ModelRenderer(this, 0, 16); corpdessus3d.addBox(-0.5F, -1.6F, 0.5F, 10, 1, 1); corpdessus3d.setRotationPoint(0F, 19F, -7F); corpdessus3d.setTextureSize(128, 64); corpdessus3d.mirror = true; setRotation(corpdessus3d, 0F, -1.58F, -0.1F); corpdessus1d = new ModelRenderer(this, 0, 20); corpdessus1d.addBox(-1F, -1.2F, 1F, 11, 1, 1); corpdessus1d.setRotationPoint(0F, 19F, -7F); corpdessus1d.setTextureSize(128, 64); corpdessus1d.mirror = true; setRotation(corpdessus1d, 0F, -1.58F, -0.1F); corpdessusd = new ModelRenderer(this, 0, 26); corpdessusd.addBox(-1.5F, -1.1F, 1.8F, 12, 1, 1); corpdessusd.setRotationPoint(0F, 19F, -7F); corpdessusd.setTextureSize(128, 64); corpdessusd.mirror = true; setRotation(corpdessusd, 0.0174533F, -1.58F, -0.1F); corpdessus0d = new ModelRenderer(this, 0, 28); corpdessus0d.addBox(-2F, -1F, 2.6F, 13, 1, 1); corpdessus0d.setRotationPoint(0F, 19F, -7F); corpdessus0d.setTextureSize(128, 64); corpdessus0d.mirror = true; setRotation(corpdessus0d, 0F, -1.58F, -0.1F); ailedroite = new ModelRenderer(this, 21, 9); ailedroite.addBox(0F, 0F, -0.6F, 9, 1, 2); ailedroite.setRotationPoint(-4F, 18F, -1F); ailedroite.setTextureSize(128, 64); ailedroite.mirror = true; setRotation(ailedroite, 0.1F, -1.5F, -3.5F); patteavgauchearticu = new ModelRenderer(this, 34, 13); patteavgauchearticu.addBox(0F, 0F, 0F, 3, 1, 1); patteavgauchearticu.setRotationPoint(2F, 19F, -8F); patteavgauchearticu.setTextureSize(128, 64); patteavgauchearticu.mirror = true; setRotation(patteavgauchearticu, 0F, 1.58F, 0F); patteavgauchecuisse = new ModelRenderer(this, 35, 16); patteavgauchecuisse.addBox(0.2F, 2.2F, 0F, 5, 1, 1); patteavgauchecuisse.setRotationPoint(2F, 19F, -8F); patteavgauchecuisse.setTextureSize(128, 64); patteavgauchecuisse.mirror = true; setRotation(patteavgauchecuisse, 0F, 1.58F, -1.2F); patteavgaucheartimollet = new ModelRenderer(this, 34, 19); patteavgaucheartimollet.addBox(4F, -4F, 0F, 2, 1, 1); patteavgaucheartimollet.setRotationPoint(2F, 19F, -8F); patteavgaucheartimollet.setTextureSize(128, 64); patteavgaucheartimollet.mirror = true; setRotation(patteavgaucheartimollet, 0F, 1.58F, 0F); patteavgauchemollet = new ModelRenderer(this, 34, 22); patteavgauchemollet.addBox(6F, -2.5F, 0F, 1, 6, 1); patteavgauchemollet.setRotationPoint(2F, 19F, -8F); patteavgauchemollet.setTextureSize(128, 64); patteavgauchemollet.mirror = true; setRotation(patteavgauchemollet, 0F, 1.58F, -0.2F); patteavgauchepied = new ModelRenderer(this, 34, 30); patteavgauchepied.addBox(6.6F, 1F, 0F, 1, 1, 1); patteavgauchepied.setRotationPoint(2F, 19F, -8F); patteavgauchepied.setTextureSize(128, 64); patteavgauchepied.mirror = true; setRotation(patteavgauchepied, 0F, 1.58F, 0.1F); patteavdroitearti = new ModelRenderer(this, 25, 13); patteavdroitearti.addBox(0F, 0F, -1F, 3, 1, 1); patteavdroitearti.setRotationPoint(-1.6F, 19F, -8F); patteavdroitearti.setTextureSize(128, 64); patteavdroitearti.mirror = true; setRotation(patteavdroitearti, 0F, 1.58F, 0F); patteavdroitecuisse = new ModelRenderer(this, 23, 16); patteavdroitecuisse.addBox(0.2F, 2.2F, -1F, 5, 1, 1); patteavdroitecuisse.setRotationPoint(-1.6F, 19F, -8F); patteavdroitecuisse.setTextureSize(128, 64); patteavdroitecuisse.mirror = true; setRotation(patteavdroitecuisse, 0F, 1.58F, -1.2F); patteavdroiteartimollet = new ModelRenderer(this, 27, 19); patteavdroiteartimollet.addBox(4F, -4F, -1F, 2, 1, 1); patteavdroiteartimollet.setRotationPoint(-1.6F, 19F, -8F); patteavdroiteartimollet.setTextureSize(128, 64); patteavdroiteartimollet.mirror = true; setRotation(patteavdroiteartimollet, 0F, 1.58F, 0F); patteavdroitemollet = new ModelRenderer(this, 29, 22); patteavdroitemollet.addBox(6F, -2.5F, -1F, 1, 6, 1); patteavdroitemollet.setRotationPoint(-1.6F, 19F, -8F); patteavdroitemollet.setTextureSize(128, 64); patteavdroitemollet.mirror = true; setRotation(patteavdroitemollet, 0F, 1.58F, -0.2F); patteavdroiteepied = new ModelRenderer(this, 29, 30); patteavdroiteepied.addBox(6.6F, 1F, -1F, 1, 1, 1); patteavdroiteepied.setRotationPoint(-1.6F, 19F, -8F); patteavdroiteepied.setTextureSize(128, 64); patteavdroiteepied.mirror = true; setRotation(patteavdroiteepied, 0F, 1.58F, 0.1F); queue1 = new ModelRenderer(this, 0, 6); queue1.addBox(-1F, 0F, -2F, 2, 1, 3); queue1.setRotationPoint(0F, 17F, 2F); queue1.setTextureSize(128, 64); queue1.mirror = true; setRotation(queue1, -0.3F, 0F, 0F); queue2 = new ModelRenderer(this, 10, 6); queue2.addBox(-0.5F, 0F, -1.5F, 1, 1, 3); queue2.setRotationPoint(0F, 17F, 2F); queue2.setTextureSize(128, 64); queue2.mirror = true; setRotation(queue2, -0.3F, 0F, 0F); patteargauchearti = new ModelRenderer(this, 57, 22); patteargauchearti.addBox(0F, 0F, 0F, 3, 1, 1); patteargauchearti.setRotationPoint(3F, 18F, 0F); patteargauchearti.setTextureSize(128, 64); patteargauchearti.mirror = true; setRotation(patteargauchearti, 0F, 0.3F, 0.1F); patteardroitearti = new ModelRenderer(this, 42, 22); patteardroitearti.addBox(-3F, 0F, 0F, 3, 1, 1); patteardroitearti.setRotationPoint(-3F, 18F, 0F); patteardroitearti.setTextureSize(128, 64); patteardroitearti.mirror = true; setRotation(patteardroitearti, 0F, -0.3F, -0.1F); patteardroitecuisse = new ModelRenderer(this, 42, 24); patteardroitecuisse.addBox(-6.1F, 2.1F, 0F, 6, 1, 1); patteardroitecuisse.setRotationPoint(-3F, 18F, 0F); patteardroitecuisse.setTextureSize(128, 64); patteardroitecuisse.mirror = true; setRotation(patteardroitecuisse, 0F, -0.3F, 1.1F); patteardroiteartimollet = new ModelRenderer(this, 42, 26); patteardroiteartimollet.addBox(-7.3F, -5F, 0F, 3, 1, 1); patteardroiteartimollet.setRotationPoint(-3F, 18F, 0F); patteardroiteartimollet.setTextureSize(128, 64); patteardroiteartimollet.mirror = true; setRotation(patteardroiteartimollet, 0F, -0.3F, -0.1F); patteardroitemollet = new ModelRenderer(this, 42, 28); patteardroitemollet.addBox(-8.5F, -8.5F, 0F, 6, 1, 1); patteardroitemollet.setRotationPoint(-3F, 18F, 0F); patteardroitemollet.setTextureSize(128, 64); patteardroitemollet.mirror = true; setRotation(patteardroitemollet, 0F, -0.3F, -0.8F); patteardroitepied = new ModelRenderer(this, 42, 30); patteardroitepied.addBox(-3.7F, 10.5F, 0F, 3, 1, 1); patteardroitepied.setRotationPoint(-3F, 18F, 0F); patteardroitepied.setTextureSize(128, 64); patteardroitepied.mirror = true; setRotation(patteardroitepied, 0F, -0.3F, 89.7F); patteargauchecuisse = new ModelRenderer(this, 57, 24); patteargauchecuisse.addBox(0.1F, 2.1F, 0F, 6, 1, 1); patteargauchecuisse.setRotationPoint(3F, 18F, 0F); patteargauchecuisse.setTextureSize(128, 64); patteargauchecuisse.mirror = true; setRotation(patteargauchecuisse, 0F, 0.3F, -1.1F); patteargaucheartimollet = new ModelRenderer(this, 57, 26); patteargaucheartimollet.addBox(4.3F, -5F, 0F, 3, 1, 1); patteargaucheartimollet.setRotationPoint(3F, 18F, 0F); patteargaucheartimollet.setTextureSize(128, 64); patteargaucheartimollet.mirror = true; setRotation(patteargaucheartimollet, 0F, 0.3F, 0.1F); patteargauchemollet = new ModelRenderer(this, 57, 28); patteargauchemollet.addBox(2.5F, -8.5F, 0F, 6, 1, 1); patteargauchemollet.setRotationPoint(3F, 18F, 0F); patteargauchemollet.setTextureSize(128, 64); patteargauchemollet.mirror = true; setRotation(patteargauchemollet, 0F, 0.3F, 0.8F); patteargauchepied = new ModelRenderer(this, 57, 30); patteargauchepied.addBox(0.6F, 10.5F, 0F, 3, 1, 1); patteargauchepied.setRotationPoint(3F, 18F, 0F); patteargauchepied.setTextureSize(128, 64); patteargauchepied.mirror = true; setRotation(patteargauchepied, 0F, 0.3F, -89.7F); } 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); corpdessus0g.render(f5); corpdessusg.render(f5); corpdessus1g.render(f5); corpdessus3g.render(f5); corpdessus4.render(f5); corpdessus5.render(f5); corpdessus6.render(f5); ailegauche.render(f5); corpdessus3d.render(f5); corpdessus1d.render(f5); corpdessusd.render(f5); corpdessus0d.render(f5); ailedroite.render(f5); patteavgauchearticu.render(f5); patteavgauchecuisse.render(f5); patteavgaucheartimollet.render(f5); patteavgauchemollet.render(f5); patteavgauchepied.render(f5); patteavdroitearti.render(f5); patteavdroitecuisse.render(f5); patteavdroiteartimollet.render(f5); patteavdroitemollet.render(f5); patteavdroiteepied.render(f5); queue1.render(f5); queue2.render(f5); patteargauchearti.render(f5); patteardroitearti.render(f5); patteardroitecuisse.render(f5); patteardroiteartimollet.render(f5); patteardroitemollet.render(f5); patteardroitepied.render(f5); patteargauchecuisse.render(f5); patteargaucheartimollet.render(f5); patteargauchemollet.render(f5); patteargauchepied.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) { super.setRotationAngles(f, f1, f2, f3, f4, f5); } }
RenderReplicateur
package atlantis.mob; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class RenderReplicateur extends RenderLiving { protected static final ResourceLocation texture = new ResourceLocation("atlantis:textures/entity/replicateur.png"); public RenderReplicateur(ModelReplicateur modelReplicateur, float tailleOmbre) { super(modelReplicateur, tailleOmbre); } protected ResourceLocation getReplicateurTextures(EntityReplicateur anizob) { return texture; } protected ResourceLocation getEntityTexture(Entity par1Entity) { return this.getReplicateurTextures((EntityReplicateur)par1Entity); } }
EntityReplicateur
package atlantis.mob; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.world.World; public class EntityReplicateur extends EntityCreature { public EntityReplicateur(World par1World) { super(par1World); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(40D); } }
je vous joins mes sourcinnette …
si vous trouvez, jvous paye une bierre tiens ! ou même un pack -
Tu rajoutes le paramètre null. Et sinon remplace les balises code par java( [java][/java], sans les *).
-
Non, pas bon de mettre en null, comme ça c’est mieux :
package atlantis.mob; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class ModelReplicateur extends ModelBase { //fields ModelRenderer corpdessus0g; ModelRenderer corpdessusg; ModelRenderer corpdessus1g; ModelRenderer corpdessus3g; ModelRenderer corpdessus4; ModelRenderer corpdessus5; ModelRenderer corpdessus6; ModelRenderer ailegauche; ModelRenderer corpdessus3d; ModelRenderer corpdessus1d; ModelRenderer corpdessusd; ModelRenderer corpdessus0d; ModelRenderer ailedroite; ModelRenderer patteavgauchearticu; ModelRenderer patteavgauchecuisse; ModelRenderer patteavgaucheartimollet; ModelRenderer patteavgauchemollet; ModelRenderer patteavgauchepied; ModelRenderer patteavdroitearti; ModelRenderer patteavdroitecuisse; ModelRenderer patteavdroiteartimollet; ModelRenderer patteavdroitemollet; ModelRenderer patteavdroiteepied; ModelRenderer queue1; ModelRenderer queue2; ModelRenderer patteargauchearti; ModelRenderer patteardroitearti; ModelRenderer patteardroitecuisse; ModelRenderer patteardroiteartimollet; ModelRenderer patteardroitemollet; ModelRenderer patteardroitepied; ModelRenderer patteargauchecuisse; ModelRenderer patteargaucheartimollet; ModelRenderer patteargauchemollet; ModelRenderer patteargauchepied; public ModelReplicateur() { textureWidth = 128; textureHeight = 64; corpdessus0g = new ModelRenderer(this, 0, 30); corpdessus0g.addBox(-2F, -1F, -3.9F, 13, 1, 1); corpdessus0g.setRotationPoint(0F, 19F, -7F); corpdessus0g.setTextureSize(128, 64); corpdessus0g.mirror = true; setRotation(corpdessus0g, 0F, -1.58F, -0.1F); corpdessusg = new ModelRenderer(this, 0, 24); corpdessusg.addBox(-1.5F, -1.1F, -3.1F, 12, 1, 1); corpdessusg.setRotationPoint(0F, 19F, -7F); corpdessusg.setTextureSize(128, 64); corpdessusg.mirror = true; setRotation(corpdessusg, 0.0174533F, -1.58F, -0.1F); corpdessus1g = new ModelRenderer(this, 0, 22); corpdessus1g.addBox(-1F, -1.2F, -2.3F, 11, 1, 1); corpdessus1g.setRotationPoint(0F, 19F, -7F); corpdessus1g.setTextureSize(128, 64); corpdessus1g.mirror = true; setRotation(corpdessus1g, 0F, -1.58F, -0.1F); corpdessus3g = new ModelRenderer(this, 0, 18); corpdessus3g.addBox(-0.5F, -1.6F, -1.5F, 10, 1, 1); corpdessus3g.setRotationPoint(0F, 19F, -7F); corpdessus3g.setTextureSize(128, 64); corpdessus3g.mirror = true; setRotation(corpdessus3g, 0F, -1.58F, -0.1F); corpdessus4 = new ModelRenderer(this, 0, 13); corpdessus4.addBox(0F, 0F, -1F, 9, 1, 2); corpdessus4.setRotationPoint(0F, 17F, -7F); corpdessus4.setTextureSize(128, 64); corpdessus4.mirror = true; setRotation(corpdessus4, 0F, -1.58F, -0.1F); corpdessus5 = new ModelRenderer(this, 0, 11); corpdessus5.addBox(0F, 0.5F, -0.5F, 8, 1, 1); corpdessus5.setRotationPoint(0F, 16F, -7F); corpdessus5.setTextureSize(128, 64); corpdessus5.mirror = true; setRotation(corpdessus5, 0F, -1.58F, -0.1F); corpdessus6 = new ModelRenderer(this, 0, 10); corpdessus6.addBox(0F, -1F, 0F, 8, 1, 0); corpdessus6.setRotationPoint(0F, 17F, -7F); corpdessus6.setTextureSize(128, 64); corpdessus6.mirror = true; setRotation(corpdessus6, 0F, -1.58F, -0.1F); ailegauche = new ModelRenderer(this, 21, 6); ailegauche.addBox(0F, 0F, -1.5F, 9, 1, 2); ailegauche.setRotationPoint(4F, 18F, -1F); ailegauche.setTextureSize(128, 64); ailegauche.mirror = true; setRotation(ailegauche, -0.1F, -1.68F, -3.5F); corpdessus3d = new ModelRenderer(this, 0, 16); corpdessus3d.addBox(-0.5F, -1.6F, 0.5F, 10, 1, 1); corpdessus3d.setRotationPoint(0F, 19F, -7F); corpdessus3d.setTextureSize(128, 64); corpdessus3d.mirror = true; setRotation(corpdessus3d, 0F, -1.58F, -0.1F); corpdessus1d = new ModelRenderer(this, 0, 20); corpdessus1d.addBox(-1F, -1.2F, 1F, 11, 1, 1); corpdessus1d.setRotationPoint(0F, 19F, -7F); corpdessus1d.setTextureSize(128, 64); corpdessus1d.mirror = true; setRotation(corpdessus1d, 0F, -1.58F, -0.1F); corpdessusd = new ModelRenderer(this, 0, 26); corpdessusd.addBox(-1.5F, -1.1F, 1.8F, 12, 1, 1); corpdessusd.setRotationPoint(0F, 19F, -7F); corpdessusd.setTextureSize(128, 64); corpdessusd.mirror = true; setRotation(corpdessusd, 0.0174533F, -1.58F, -0.1F); corpdessus0d = new ModelRenderer(this, 0, 28); corpdessus0d.addBox(-2F, -1F, 2.6F, 13, 1, 1); corpdessus0d.setRotationPoint(0F, 19F, -7F); corpdessus0d.setTextureSize(128, 64); corpdessus0d.mirror = true; setRotation(corpdessus0d, 0F, -1.58F, -0.1F); ailedroite = new ModelRenderer(this, 21, 9); ailedroite.addBox(0F, 0F, -0.6F, 9, 1, 2); ailedroite.setRotationPoint(-4F, 18F, -1F); ailedroite.setTextureSize(128, 64); ailedroite.mirror = true; setRotation(ailedroite, 0.1F, -1.5F, -3.5F); patteavgauchearticu = new ModelRenderer(this, 34, 13); patteavgauchearticu.addBox(0F, 0F, 0F, 3, 1, 1); patteavgauchearticu.setRotationPoint(2F, 19F, -8F); patteavgauchearticu.setTextureSize(128, 64); patteavgauchearticu.mirror = true; setRotation(patteavgauchearticu, 0F, 1.58F, 0F); patteavgauchecuisse = new ModelRenderer(this, 35, 16); patteavgauchecuisse.addBox(0.2F, 2.2F, 0F, 5, 1, 1); patteavgauchecuisse.setRotationPoint(2F, 19F, -8F); patteavgauchecuisse.setTextureSize(128, 64); patteavgauchecuisse.mirror = true; setRotation(patteavgauchecuisse, 0F, 1.58F, -1.2F); patteavgaucheartimollet = new ModelRenderer(this, 34, 19); patteavgaucheartimollet.addBox(4F, -4F, 0F, 2, 1, 1); patteavgaucheartimollet.setRotationPoint(2F, 19F, -8F); patteavgaucheartimollet.setTextureSize(128, 64); patteavgaucheartimollet.mirror = true; setRotation(patteavgaucheartimollet, 0F, 1.58F, 0F); patteavgauchemollet = new ModelRenderer(this, 34, 22); patteavgauchemollet.addBox(6F, -2.5F, 0F, 1, 6, 1); patteavgauchemollet.setRotationPoint(2F, 19F, -8F); patteavgauchemollet.setTextureSize(128, 64); patteavgauchemollet.mirror = true; setRotation(patteavgauchemollet, 0F, 1.58F, -0.2F); patteavgauchepied = new ModelRenderer(this, 34, 30); patteavgauchepied.addBox(6.6F, 1F, 0F, 1, 1, 1); patteavgauchepied.setRotationPoint(2F, 19F, -8F); patteavgauchepied.setTextureSize(128, 64); patteavgauchepied.mirror = true; setRotation(patteavgauchepied, 0F, 1.58F, 0.1F); patteavdroitearti = new ModelRenderer(this, 25, 13); patteavdroitearti.addBox(0F, 0F, -1F, 3, 1, 1); patteavdroitearti.setRotationPoint(-1.6F, 19F, -8F); patteavdroitearti.setTextureSize(128, 64); patteavdroitearti.mirror = true; setRotation(patteavdroitearti, 0F, 1.58F, 0F); patteavdroitecuisse = new ModelRenderer(this, 23, 16); patteavdroitecuisse.addBox(0.2F, 2.2F, -1F, 5, 1, 1); patteavdroitecuisse.setRotationPoint(-1.6F, 19F, -8F); patteavdroitecuisse.setTextureSize(128, 64); patteavdroitecuisse.mirror = true; setRotation(patteavdroitecuisse, 0F, 1.58F, -1.2F); patteavdroiteartimollet = new ModelRenderer(this, 27, 19); patteavdroiteartimollet.addBox(4F, -4F, -1F, 2, 1, 1); patteavdroiteartimollet.setRotationPoint(-1.6F, 19F, -8F); patteavdroiteartimollet.setTextureSize(128, 64); patteavdroiteartimollet.mirror = true; setRotation(patteavdroiteartimollet, 0F, 1.58F, 0F); patteavdroitemollet = new ModelRenderer(this, 29, 22); patteavdroitemollet.addBox(6F, -2.5F, -1F, 1, 6, 1); patteavdroitemollet.setRotationPoint(-1.6F, 19F, -8F); patteavdroitemollet.setTextureSize(128, 64); patteavdroitemollet.mirror = true; setRotation(patteavdroitemollet, 0F, 1.58F, -0.2F); patteavdroiteepied = new ModelRenderer(this, 29, 30); patteavdroiteepied.addBox(6.6F, 1F, -1F, 1, 1, 1); patteavdroiteepied.setRotationPoint(-1.6F, 19F, -8F); patteavdroiteepied.setTextureSize(128, 64); patteavdroiteepied.mirror = true; setRotation(patteavdroiteepied, 0F, 1.58F, 0.1F); queue1 = new ModelRenderer(this, 0, 6); queue1.addBox(-1F, 0F, -2F, 2, 1, 3); queue1.setRotationPoint(0F, 17F, 2F); queue1.setTextureSize(128, 64); queue1.mirror = true; setRotation(queue1, -0.3F, 0F, 0F); queue2 = new ModelRenderer(this, 10, 6); queue2.addBox(-0.5F, 0F, -1.5F, 1, 1, 3); queue2.setRotationPoint(0F, 17F, 2F); queue2.setTextureSize(128, 64); queue2.mirror = true; setRotation(queue2, -0.3F, 0F, 0F); patteargauchearti = new ModelRenderer(this, 57, 22); patteargauchearti.addBox(0F, 0F, 0F, 3, 1, 1); patteargauchearti.setRotationPoint(3F, 18F, 0F); patteargauchearti.setTextureSize(128, 64); patteargauchearti.mirror = true; setRotation(patteargauchearti, 0F, 0.3F, 0.1F); patteardroitearti = new ModelRenderer(this, 42, 22); patteardroitearti.addBox(-3F, 0F, 0F, 3, 1, 1); patteardroitearti.setRotationPoint(-3F, 18F, 0F); patteardroitearti.setTextureSize(128, 64); patteardroitearti.mirror = true; setRotation(patteardroitearti, 0F, -0.3F, -0.1F); patteardroitecuisse = new ModelRenderer(this, 42, 24); patteardroitecuisse.addBox(-6.1F, 2.1F, 0F, 6, 1, 1); patteardroitecuisse.setRotationPoint(-3F, 18F, 0F); patteardroitecuisse.setTextureSize(128, 64); patteardroitecuisse.mirror = true; setRotation(patteardroitecuisse, 0F, -0.3F, 1.1F); patteardroiteartimollet = new ModelRenderer(this, 42, 26); patteardroiteartimollet.addBox(-7.3F, -5F, 0F, 3, 1, 1); patteardroiteartimollet.setRotationPoint(-3F, 18F, 0F); patteardroiteartimollet.setTextureSize(128, 64); patteardroiteartimollet.mirror = true; setRotation(patteardroiteartimollet, 0F, -0.3F, -0.1F); patteardroitemollet = new ModelRenderer(this, 42, 28); patteardroitemollet.addBox(-8.5F, -8.5F, 0F, 6, 1, 1); patteardroitemollet.setRotationPoint(-3F, 18F, 0F); patteardroitemollet.setTextureSize(128, 64); patteardroitemollet.mirror = true; setRotation(patteardroitemollet, 0F, -0.3F, -0.8F); patteardroitepied = new ModelRenderer(this, 42, 30); patteardroitepied.addBox(-3.7F, 10.5F, 0F, 3, 1, 1); patteardroitepied.setRotationPoint(-3F, 18F, 0F); patteardroitepied.setTextureSize(128, 64); patteardroitepied.mirror = true; setRotation(patteardroitepied, 0F, -0.3F, 89.7F); patteargauchecuisse = new ModelRenderer(this, 57, 24); patteargauchecuisse.addBox(0.1F, 2.1F, 0F, 6, 1, 1); patteargauchecuisse.setRotationPoint(3F, 18F, 0F); patteargauchecuisse.setTextureSize(128, 64); patteargauchecuisse.mirror = true; setRotation(patteargauchecuisse, 0F, 0.3F, -1.1F); patteargaucheartimollet = new ModelRenderer(this, 57, 26); patteargaucheartimollet.addBox(4.3F, -5F, 0F, 3, 1, 1); patteargaucheartimollet.setRotationPoint(3F, 18F, 0F); patteargaucheartimollet.setTextureSize(128, 64); patteargaucheartimollet.mirror = true; setRotation(patteargaucheartimollet, 0F, 0.3F, 0.1F); patteargauchemollet = new ModelRenderer(this, 57, 28); patteargauchemollet.addBox(2.5F, -8.5F, 0F, 6, 1, 1); patteargauchemollet.setRotationPoint(3F, 18F, 0F); patteargauchemollet.setTextureSize(128, 64); patteargauchemollet.mirror = true; setRotation(patteargauchemollet, 0F, 0.3F, 0.8F); patteargauchepied = new ModelRenderer(this, 57, 30); patteargauchepied.addBox(0.6F, 10.5F, 0F, 3, 1, 1); patteargauchepied.setRotationPoint(3F, 18F, 0F); patteargauchepied.setTextureSize(128, 64); patteargauchepied.mirror = true; setRotation(patteargauchepied, 0F, 0.3F, -89.7F); } 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); corpdessus0g.render(f5); corpdessusg.render(f5); corpdessus1g.render(f5); corpdessus3g.render(f5); corpdessus4.render(f5); corpdessus5.render(f5); corpdessus6.render(f5); ailegauche.render(f5); corpdessus3d.render(f5); corpdessus1d.render(f5); corpdessusd.render(f5); corpdessus0d.render(f5); ailedroite.render(f5); patteavgauchearticu.render(f5); patteavgauchecuisse.render(f5); patteavgaucheartimollet.render(f5); patteavgauchemollet.render(f5); patteavgauchepied.render(f5); patteavdroitearti.render(f5); patteavdroitecuisse.render(f5); patteavdroiteartimollet.render(f5); patteavdroitemollet.render(f5); patteavdroiteepied.render(f5); queue1.render(f5); queue2.render(f5); patteargauchearti.render(f5); patteardroitearti.render(f5); patteardroitecuisse.render(f5); patteardroiteartimollet.render(f5); patteardroitemollet.render(f5); patteardroitepied.render(f5); patteargauchecuisse.render(f5); patteargaucheartimollet.render(f5); patteargauchemollet.render(f5); patteargauchepied.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); } }
(j’ai rajouté le paramètre entity)
-
mes rotation ne sont quand même pas bonne
je crois que je suis bon pour refaire mon modèle…merci a vous quand même
-
Salut, moi j’ai suivi le tuto mais impossible d’afficher mon entitée, je l’avais deja modé en 1.5.2 mais en 1.6.2, impossible !
Le message d’erreur :2013-09-26 21:31:02 [INFO] [STDERR] java.lang.reflect.InvocationTargetException 2013-09-26 21:31:02 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2013-09-26 21:31:02 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 2013-09-26 21:31:02 [INFO] [STDERR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 2013-09-26 21:31:02 [INFO] [STDERR] at java.lang.reflect.Constructor.newInstance(Unknown Source) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.entity.EntityList.createEntityByID(EntityList.java:205) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.item.ItemMonsterPlacer.spawnCreature(ItemMonsterPlacer.java:175) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.item.ItemMonsterPlacer.onItemUse(ItemMonsterPlacer.java:81) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:152) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:429) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:554) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2013-09-26 21:31:02 [INFO] [STDERR] Caused by: java.lang.NullPointerException 2013-09-26 21:31:02 [INFO] [STDERR] at Assabody.mod.EntityPenguin.func_110147_ax(EntityPenguin.java:30) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:187) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.entity.EntityLiving.<init>(EntityLiving.java:81) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.entity.EntityCreature.<init>(EntityCreature.java:40) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.entity.EntityAgeable.<init>(EntityAgeable.java:16) 2013-09-26 21:31:02 [INFO] [STDERR] at net.minecraft.entity.passive.EntityAnimal.<init>(EntityAnimal.java:31) 2013-09-26 21:31:02 [INFO] [STDERR] at Assabody.mod.EntityPenguin.<init>(EntityPenguin.java:21) 2013-09-26 21:31:02 [INFO] [STDERR] … 20 more 2013-09-26 21:31:02 [WARNING] [Minecraft-Server] Skipping Entity with id 3 2013-09-26 21:31:03 [INFO] [Minecraft-Server] Saving and pausing game… 2013-09-26 21:31:03 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld 2013-09-26 21:31:04 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether 2013-09-26 21:31:04 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End 2013-09-26 21:31:08 [INFO] [Minecraft-Server] Stopping server 2013-09-26 21:31:08 [INFO] [Minecraft-Server] Saving players 2013-09-26 21:31:08 [INFO] [Minecraft-Server] Player140 left the game 2013-09-26 21:31:08 [INFO] [Minecraft-Server] Saving worlds 2013-09-26 21:31:08 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld 2013-09-26 21:31:08 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether 2013-09-26 21:31:08 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End 2013-09-26 21:31:08 [INFO] [ForgeModLoader] Unloading dimension 0 2013-09-26 21:31:08 [INFO] [ForgeModLoader] Unloading dimension -1 2013-09-26 21:31:08 [INFO] [ForgeModLoader] Unloading dimension 1 2013-09-26 21:31:09 [INFO] [Minecraft-Client] Stopping! 2013-09-26 21:31:09 [INFO] [STDOUT] 2013-09-26 21:31:09 [INFO] [STDOUT] SoundSystem shutting down… 2013-09-26 21:31:09 [INFO] [STDOUT] Author: Paul Lamb, www.paulscode.com 2013-09-26 21:31:09 [INFO] [STDOUT]
RenderPenguin :
package Assabody.mod; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.passive.EntityCow; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class RenderPenguin extends RenderLiving { public RenderPenguin(ModelBase par1ModelBase, float par2) { super(par1ModelBase, par2); } public void renderCow(EntityPenguin par1EntityCow, double par2, double par4, double par6, float par8, float par9) { super.doRenderLiving(par1EntityCow, par2, par4, par6, par8, par9); } public void doRenderLiving(EntityLiving par1EntityLiving, double par2, double par4, double par6, float par8, float par9) { this.renderCow((EntityPenguin)par1EntityLiving, par2, par4, par6, par8, par9); } public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) { this.renderCow((EntityPenguin)par1Entity, par2, par4, par6, par8, par9); } @Override protected ResourceLocation func_110775_a(Entity entity) { // TODO Auto-generated method stub return null; } }
EntityPenguin
package Assabody.mod; import net.minecraft.entity.*; import net.minecraft.entity.ai.EntityAIControlledByPlayer; import net.minecraft.entity.ai.EntityAIFollowParent; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAIMate; import net.minecraft.entity.ai.EntityAIPanic; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAITempt; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.world.World; public class EntityPenguin extends EntityAnimal{ public EntityPenguin(World world) { super(world); } @Override protected void func_110147_ax() { super.func_110147_ax(); this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(40D); //this.func_110148_a(SharedMonsterAttributes.field_111265_b).func_111128_a(40.0D);? // SI J'ENLEVE LES //, IL YA UNE ERREUR this.func_110148_a(SharedMonsterAttributes.field_111263_d).func_111128_a(0.69999); this.func_110148_a(SharedMonsterAttributes.field_111264_e).func_111128_a(8.0D); } @Override public EntityAgeable createChild(EntityAgeable entityageable) { // TODO Auto-generated method stub return null; } }
Declaration dans la classe principale :
EntityRegistry.registerGlobalEntityID(EntityPenguin.class, "Penguin", EntityRegistry.findGlobalUniqueEntityId(), 250, 30); EntityRegistry.registerModEntity(EntityPenguin.class, "Penguin", 800, this, 40, 10, true); EntityRegistry.addSpawn(EntityPenguin.class, 1, 4, 4, EnumCreatureType.creature); LanguageRegistry.instance().addStringLocalization("Penguin", "Penguin");
Client Proxy
RenderingRegistry.registerEntityRenderingHandler(EntityPenguin.class, new RenderPenguin(new ModelPenguin(), 0.5F));
Si y a quelqu’un qui puisse m’aider, sa serais super
Merci</init></init></init></init></init></init>
-
Tu as quel version de Forge? Si tu as la dernière version, changes-les .func_XXXX et les fields_XXXX. Et pense à mettre une texture à ton mob.
-
Mon Forge est version 804 et j’ai mis une texture dans le dossier
\mcp\src\minecraft\assets\assabody-mod\Penguin.png et je l’ai déclaré avec le bon nom -
Mets à jour forge pour commencer, il est mieux d’utiliser un build supérieur à 849.
Tu as un null pointer exception (NPE), il me semble que certaines personnes ont déjà eu le même problème, regarde les premières pages. -
Bonjour, après avoir suivi ton tuto qui m’a été très utile, je crée alors mon entité. Seul problème : Quand je veux faire spawner mon entité avec un oeuf voilà ce que ça me dis :
2013-10-03 15:33:44 [INFO] [STDOUT] Setting up custom skins 2013-10-03 15:33:49 [INFO] [STDERR] java.lang.reflect.InvocationTargetException 2013-10-03 15:33:49 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2013-10-03 15:33:49 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 2013-10-03 15:33:49 [INFO] [STDERR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 2013-10-03 15:33:49 [INFO] [STDERR] at java.lang.reflect.Constructor.newInstance(Unknown Source) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.entity.EntityList.createEntityByID(EntityList.java:205) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.item.ItemMonsterPlacer.spawnCreature(ItemMonsterPlacer.java:175) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.item.ItemMonsterPlacer.onItemUse(ItemMonsterPlacer.java:81) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:152) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:429) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:554) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2013-10-03 15:33:49 [INFO] [STDERR] Caused by: java.lang.NullPointerException 2013-10-03 15:33:49 [INFO] [STDERR] at fr.MrBlockTNT.MoHumans.EntityMiner.applyEntityAttributes(EntityMiner.java:25) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:193) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.entity.EntityLiving.<init>(EntityLiving.java:85) 2013-10-03 15:33:49 [INFO] [STDERR] at net.minecraft.entity.EntityCreature.<init>(EntityCreature.java:40) 2013-10-03 15:33:49 [INFO] [STDERR] at fr.MrBlockTNT.MoHumans.EntityMiner.<init>(EntityMiner.java:13) 2013-10-03 15:33:49 [INFO] [STDERR] … 20 more 2013-10-03 15:33:49 [WARNING] [Minecraft-Server] Skipping Entity with id 3 2013-10-03 15:33:50 [INFO] [Minecraft-Server] Saving and pausing game… 2013-10-03 15:33:50 [INFO] [Minecraft-Server] Saving chunks for level 'test'/Overworld 2013-10-03 15:33:50 [INFO] [Minecraft-Server] Saving chunks for level 'test'/Nether 2013-10-03 15:33:50 [INFO] [Minecraft-Server] Saving chunks for level 'test'/The End
Mon code :
ModMoHumans2 :package fr.MrBlockTNT.MoHumans; import net.minecraft.entity.EnumCreatureType; import MrBlockTNT.Proxy.CommonProxy; 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.network.NetworkMod; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = "ModMoHumans2", name = "Mo'Humans 2", version = "1.0.0") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class ModMoHumans { @SidedProxy(clientSide = "MrBlockTNT.Proxy.ClientProxy", serverSide = "MrBlockTNT.Proxy.CommonProxy") public static CommonProxy proxy; @Instance("ModMoHumans2") public static ModMoHumans instance; @EventHandler public void PreInit(FMLPreInitializationEvent event) { } @EventHandler public void Init(FMLInitializationEvent event) { proxy.registerRender(); EntityRegistry.registerGlobalEntityID(EntityMiner.class, "Miner", EntityRegistry.findGlobalUniqueEntityId(), 0x6A7372, 0x78807F); EntityRegistry.registerModEntity(EntityMiner.class, "Miner", 500, this, 40, 1, true); EntityRegistry.addSpawn(EntityMiner.class, 1, 1, 2, EnumCreatureType.ambient); LanguageRegistry.instance().addStringLocalization("entity.Miner.name", "Miner"); } @EventHandler public void PostInit(FMLPostInitializationEvent event) { } }
ClientProxy :
package MrBlockTNT.Proxy; import cpw.mods.fml.client.registry.RenderingRegistry; import fr.MrBlockTNT.MoHumans.EntityMiner; import fr.MrBlockTNT.MoHumans.RenderMiner; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.MinecraftForgeClient; public class ClientProxy extends CommonProxy { @Override public void registerRender() { RenderingRegistry.registerEntityRenderingHandler(EntityMiner.class, new RenderMiner(new ModelBiped(), 0.5F)); } }
EntityMiner :
package fr.MrBlockTNT.MoHumans; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.world.World; public class EntityMiner extends EntityCreature { public EntityMiner(World par1World) { super(par1World); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(40D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(40.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.699999988079071D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(8.0D); } }
RenderMiner :
package fr.MrBlockTNT.MoHumans; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class RenderMiner extends RenderBiped { protected static final ResourceLocation minerTexture = new ResourceLocation("ModMoHumans2:mob/Mineur.png"); public RenderMiner(ModelBiped base, float tailleOmbre) { super(base, tailleOmbre); } protected ResourceLocation getMinerTextures(EntityMiner miner) { return minerTexture; } protected ResourceLocation getEntityTexture(Entity par1Entity) { return this.getMinerTextures((EntityMiner)par1Entity); } }
Peut-on m’aider ? Merci.
PS : Désolé si le code prends la moitié de la page x) et le fait que le code soit désorganisé (les tabulations ont été enlevées quand j’ai posté le code x) )</init></init></init></init>
-
Merci d’utiliser les balises
Sinon, tu peux retirer la ligne
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(8.0D)?;
car ta classe est extends EntityCreature donc ton mob n’attaque pas et si tu lui définit une force d’attaque ça renvoie à un NPE.
-
Ah oui merci, sinon pour les balises je savais pas m’en servir x).
Maintenant ça marche, mais les textures sont buguées (le skin est noir et les bras violets).
C’est peut-être du au fait que j’ai voulu qu’il y ai 2 skins possibles :protected static final ResourceLocation minerTexture = new ResourceLocation(“ModMoHumans2:mob/mineur.png”);
L’erreur pour les textures est (encore désolé pour les balises, si on pouvait m’expliquer x)
2013-10-03 18:45:38 [WARNING] [Minecraft-Client] Failed to load texture: modmohumans2:mob/assassin.png
java.io.FileNotFoundException: modmohumans2:mob/assassin.png
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67)
at net.minecraft.client.renderer.texture.SimpleTexture.loadTexture(SimpleTexture.java:31)
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:84)
at net.minecraft.client.renderer.texture.TextureManager.bindTexture(TextureManager.java:41)
at net.minecraft.client.renderer.entity.Render.bindTexture(Render.java:53)
at net.minecraft.client.renderer.entity.Render.bindEntityTexture(Render.java:48)
at net.minecraft.client.renderer.entity.RendererLivingEntity.renderModel(RendererLivingEntity.java:295)
at net.minecraft.client.renderer.entity.RendererLivingEntity.doRenderLiving(RendererLivingEntity.java:155)
at net.minecraft.client.renderer.entity.RenderLiving.doRenderLiving(RenderLiving.java:28)
at net.minecraft.client.renderer.entity.RenderBiped.doRenderLiving(RenderBiped.java:194)
at net.minecraft.client.renderer.entity.RenderBiped.doRender(RenderBiped.java:376)
at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:312)
at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:281)
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:524)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1160)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1006)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:944)
at net.minecraft.client.Minecraft.run(Minecraft.java:836)
at net.minecraft.client.main.Main.main(Main.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:57)
at net.minecraft.launchwrapper.Launch.main(Launch.java:18)–-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EDIT :
Je pense qu’il y a quelques bug avec l’attribut “attackDamage” car je veux m’en servir pour un mob agressif et j’ai le même bug que pour le mineur.Est-ce que si je ne met pas l’attribut à “attackDamage” le mob aura la valeur d’attaque par défaut ?
-
this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(40.0D)?;
La plus part des crash en sont la cause, donc vire-le.
-
@‘MrBlockTNT’:
Ah oui merci, sinon pour les balises je savais pas m’en servir x).
Maintenant ça marche, mais les textures sont buguées (le skin est noir et les bras violets).
C’est peut-être du au fait que j’ai voulu qu’il y ai 2 skins possibles :protected static final ResourceLocation minerTexture = new ResourceLocation(“ModMoHumans2:mob/mineur.png”);
Et j’arrive toujours pas à mettre les balises.
–---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EDIT :
Je pense qu’il y a quelques bug avec l’attribut “attackDamage” car je veux m’en servir pour un mob agressif et j’ai le même bug que pour le mineur.[size=xx-large
PAS DE MAJUSCULES DANS LES MODID]
-> modmohumans2Et pour le code java, tu écris :
[java]le code ici [java] avec un / avant java sur le deuxième. -
Ok merci tout le monde je teste tout de suite
EDIT :
Le followRange ne change rien par rapport au attackDamage, donc ça bugue toujours et les textures buguent encore -
Ou as-tu placé les textures ?
En passant, utilise plutôt :protected static final ResourceLocation minerTexture = new ResourceLocation("modmohumans2", "mob/mineur.png");