Mob incompréhensible
-
mon nouveau code:
package fr.oeilomega.wozcontent.common; import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAIAvoidEntity; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAIMoveThroughVillage; import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.passive.EntityChicken; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.passive.EntityPig; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class wozzombie extends EntityMob { public wozzombie(World world) { super(world); this.getNavigator().setBreakDoors(true); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(4, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(5, new EntityAIMoveThroughVillage(this, 1.0D, false)); this.tasks.addTask(6, new EntityAIWander(this, 1.0D)); this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 0.0F)); this.tasks.addTask(7, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); } public void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(1D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.1D); } protected boolean isAIEnabled() { return true; } }et pour robin:
new renderwozzombie(new Modelwozombie(), 0.5F));The constructor renderwozzombie(Modelwozombie, float) is undefined
-
envoie ta classe renderwozzombie
(d’ailleurs ta classe devrait être nommé RenderWozzombie pour respecter la convention Java). -
package fr.oeilomega.wozcontent.proxy; import fr.oeilomega.wozcontent.common.wozcontent; import fr.oeilomega.wozcontent.common.wozzombie; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class renderwozzombie extends RenderBiped { public final ResourceLocation texture = new ResourceLocation(wozcontent.MODID, "textures/entity/wozzombie1.png"); public renderwozzombie(ModelBiped model, float shadow) { super(model, shadow); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getwozzombieTexture((wozzombie)living); } private ResourceLocation getwozzombieTexture(wozzombie wozzombie) { return texture; } }Et voila !
-
Si ton modèle n’est pas extends ModelBiped, il faut que tu change le code de ton rendu, il faut faire un rendu extends RenderLiving
-
Je viens de le faire et il y a aucune amélioration…
-
Renvoie ta classe après modification.
-
le model:
package fr.oeilomega.wozcontent.client; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class Modelwozombie extends ModelBase { //fields ModelRenderer head; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; public Modelwozombie() { textureWidth = 64; textureHeight = 32; head = new ModelRenderer(this, 0, 0); head.addBox(-4F, -8F, -4F, 8, 8, 8); head.setRotationPoint(0F, 0F, 0F); head.setTextureSize(64, 32); 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(64, 32); 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(64, 32); 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(64, 32); 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(64, 32); 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(64, 32); leftleg.mirror = true; setRotation(leftleg, 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); } 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); } }Le rendu:
package fr.oeilomega.wozcontent.proxy; import fr.oeilomega.wozcontent.common.wozcontent; import fr.oeilomega.wozcontent.common.wozzombie; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class renderwozzombie extends RenderLiving { public final ResourceLocation texture = new ResourceLocation(wozcontent.MODID, "textures/entity/wozzombie1.png"); public renderwozzombie(ModelBiped model, float shadow) { super(model, shadow); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobTutorielTexture((wozzombie)living); } private ResourceLocation getMobTutorielTexture(wozzombie wozzombie) { return texture; } @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { // TODO Auto-generated method stub return null; } } -
Remplace
public renderwozzombie(ModelBiped model, float shadow)par
public renderwozzombie(ModelBase model, float shadow)
-
OK, y’a plus d’erreurs mais le model apparait pas
-
j’up quand même
-
bon…
-
Problème toujours présent

-
sa sert a rien de spammer si on ne sait pas il te reste qu’à résoudre par toi meme
-
Remplace
public renderwozzombie(ModelBase model, float shadow)
Par
public renderwozzombie(ModelBiped model, float shadow)Et met
extends ModelBiped
À la place de
extends ModelBase
…? -
Non, sinon son rendu va foirer puisque son modèle n’est pas un biped.
Fait un zip de ton dossier src et envoie-le. -
Voila le lien !
-
J’ai téléchargé mes sources et j’ai regardé.
Déjà pour ton problème, je ne le rencontre pas. Le mob est bien super lent, et il m’attaque bien correctement …Ensuite pour le rendu : Pourquoi ne pas avoir prit ModelBiped alors que tu aurai pu ? Et le problème venait du fait que la méthode registerRender du client proxy n’était pas la même que dans CommonProxy, et surtout elle n’était pas appelé dans la classe principale.
Aussi, les mobs et les recettes sont sensés être dans init, j’ai changé ça.
J’ai aussi modifié le nom de certaines classes pour respecté la convention Java, et j’ai formaté le code. -
Je suis curieux de savoir qui DL les sources…x)
EDIT: remarque pour utiliser le modbsur un serveur, faut avoir mon autorisation et celle du graphiste x)
-
C’est moi qui l’ai redl plusieurs fois, le forum a des problèmes avec les pièces jointes.
http://dl.mcnanotech.fr/robin4002/mods/Sources/src-Oeilomega.zip -
Ah okay
EDIT: ok, il est bon maintenant, faut que je lui fasse lever les bras comme un zombie…Mhhh…
Me faut également les stats du zombie, je les trouverais dans la classe forge non ?EDIT 2: ok, tout est quasi bon, me manque les stats et…J’arrive pas à faire une animation de jambe correcte…
package fr.oeilomega.wozcontent.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 Modelwozombie extends ModelBase { // fields ModelRenderer head; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; public Modelwozombie() { textureWidth = 64; textureHeight = 32; head = new ModelRenderer(this, 0, 0); head.addBox(-4F, -8F, -4F, 8, 8, 8); head.setRotationPoint(0F, 0F, 0F); head.setTextureSize(64, 32); 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(64, 32); 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(64, 32); 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(64, 32); 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(64, 32); 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(64, 32); leftleg.mirror = true; setRotation(leftleg, 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); } 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); float var8 = MathHelper.sin(this.onGround * (float)Math.PI); float var9 = MathHelper.sin((1.0F - (1.0F - this.onGround) * (1.0F - this.onGround)) * (float)Math.PI); this.rightarm.rotateAngleZ = 0.0F; this.leftarm.rotateAngleZ = 0.0F; this.rightarm.rotateAngleY = -(0.1F - var8 * 0.6F); this.leftarm.rotateAngleY = 0.1F - var8 * 0.6F; this.rightarm.rotateAngleX = -((float)Math.PI / 2F); this.leftarm.rotateAngleX = -((float)Math.PI / 2F); this.rightarm.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; this.leftarm.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; this.rightarm.rotateAngleZ += MathHelper.cos(f3 * 0.09F) * 0.05F + 0.05F; this.leftarm.rotateAngleZ -= MathHelper.cos(f3 * 0.09F) * 0.05F + 0.05F; this.rightarm.rotateAngleX += MathHelper.sin(f3 * 0.067F) * 0.05F; this.leftarm.rotateAngleX -= MathHelper.sin(f3 * 0.067F) * 0.05F; this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1; this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1; } }