Résolu [SEMI TUTO] Création de mon mob hostile: spawn, attaque etc.
-
J’ai pas bien compris ton problème de saut, tu veux qu’il se déplace en sautant où juste qu’il saute pour passer des blocks ?
-
Pour passer des blocks uniquement. Car la si je me mets en hauteur il peut pas m’attaquer, donc ça sert à rien x).
Et le second problème c’est qu’ils finissent par disparaitre.
Y’a pas une commande pour qu’ils ne disparaissent pas ou pour leur donner un nom comme une étiquette? -
Pour le jump, je regarde ça demain (si quelqu’un n’a pas déjà répondu).
Pour le despawn, mets tout simplement ça dans ton entité :@Override public boolean canDespawn() { return false; }
-
[font=Ubuntu, sans-serifParce que Plaigon m’a dit de faire un truc qui a fait quelque chose à mon codage et du coup y’a plus rien qui marche je sais pas pourquoi. ]
Attends ! Moi je te propose juste des solutions et tu vas me dire que c’est de ma faute si plus rien ne marche dans ton semblant de “code” ?! Moi j’ai surtout envie de te dire D’APPRENDRE A CODER, car pour le moment tout ce que je vois dans ton code reste des lignes que tu as copié-coller (pas gênant, si ce n’était que cela…), SANS EN COMPRENDRE LE SENS…Un mob qui attaque ? C’est pas compliqué, tu l’extends EntityMob, point ! Ensuite (si déjà tu arrives à faire cela) il sera capable TOUT SEUL (c’est-à-dire sans la moindre IA à rajouter) de sauter afin de franchir des blocks…Après si malgré tout cela ça ne marche toujours pas, c’est qu’il faut debug afin de voir où est le problème…
Renvoies ton code, je vais faire des tests chez moi. Tu es en quelle version déjà ? La balise devrait pouvoir l’indiquer sans qu’on ait à chercher à travers les 5 pages du topic (au cas où ça serait indiqué)…
En parlant de ce titre, il faudrait VRAIMENT éditer, car “Création de mon mob”, désolé mais ça n’indique en aucun cas le(s) problème(s) que tu as recontré(s)…A la base t’était parti sur les fréquences de spawn et maintenant on se retrouve avec ton mob qui ne souhaite pas attaquer, ni sauter…Tu vois si quelqu’un a le même soucis que toi, ça m’étonnerait fortement qu’il mette la main sur ce post… -
Bonjour,
encore désolé pour hier j’avais vraiment eu une sale journée, et à force d’accumuler de nouveaux problèmes j’ai pété un câble.
Ce n’est pas contre vous, encore désolé (en plus ça arrive genre méga rarement ^^')Code:```java
package Entity;import fr.minecraftforgefrance.modzoic.common.Modzoic;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
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.EntityIronGolem;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.monster.EntityPigZombie;
import net.minecraft.entity.passive.EntityChicken;
import net.minecraft.entity.passive.EntityCow;
import net.minecraft.entity.passive.EntityHorse;
import net.minecraft.entity.passive.EntityOcelot;
import net.minecraft.entity.passive.EntityPig;
import net.minecraft.entity.passive.EntityRabbit;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.pathfinding.PathNavigateGround;
import net.minecraft.world.World;public class Entityclass extends EntityMob
{
public Entityclass(World world)
{
super(world);
((PathNavigateGround)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(5, new EntityAIMoveTowardsRestriction(this, 1.0D));
this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
this.tasks.addTask(8, new EntityAILookIdle(this));
this.setSize(2, 3);
this.applyEntityAI();
}public void applyEntityAttributes()
{
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(62D);
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(9D);
this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(2D);
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.36D);
this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(120D);
}protected void applyEntityAI()
{
this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));
}public void dropFewItems(boolean b, int looting)
{
this.dropItem(Modzoic.meatEpanterias, 6);
}protected String getLivingSound()
{
return “:Nanuqscarnotausaurus_living_1.ogg”;
}
}```java package Handlers; import java.util.Random; import fr.minecraftforgefrance.modzoic.common.Modzoic; import net.minecraft.entity.EntityList; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.fml.common.registry.EntityRegistry; public class EntityHandler { public static void RegisterMonster(Class entityClass, String name) { int entityID = EntityRegistry.findGlobalUniqueEntityId(); long x = name.hashCode(); Random random = new Random(x); int mainColor = random.nextInt() * 16777215; int subColor = random.nextInt() * 16777215; EntityRegistry.registerGlobalEntityID(entityClass, name, entityID); EntityRegistry.addSpawn(entityClass, 70, 1, 3, EnumCreatureType.CREATURE, BiomeGenBase.forest, BiomeGenBase.beach, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills ,BiomeGenBase.coldBeach ,BiomeGenBase.coldTaiga ,BiomeGenBase.coldTaigaHills ,BiomeGenBase.desert ,BiomeGenBase.desertHills ,BiomeGenBase.extremeHills ,BiomeGenBase.forestHills ,BiomeGenBase.frozenRiver ,BiomeGenBase.iceMountains ,BiomeGenBase.icePlains ,BiomeGenBase.jungle ,BiomeGenBase.jungleEdge ,BiomeGenBase.jungleHills ,BiomeGenBase.megaTaiga ,BiomeGenBase.megaTaigaHills ,BiomeGenBase.mesa ,BiomeGenBase.mesaPlateau ,BiomeGenBase.mesaPlateau_F ,BiomeGenBase.plains ,BiomeGenBase.roofedForest ,BiomeGenBase.savanna ,BiomeGenBase.savannaPlateau ,BiomeGenBase.taigaHills ,BiomeGenBase.taiga ,BiomeGenBase.stoneBeach); EntityRegistry.registerModEntity(entityClass, name, entityID, Modzoic.instance, 64, 1, true); EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, mainColor, subColor)); } }
(le reste n’a pas changé, voir page 2-3)
-
Up! Je ne sais toujours pas comment faire pour que mon mob saute.
Si vous avez des idées, ce serait génial! -
Normalement rien ne l’empèche de sauter Après moi j’avais eu des problèmes avec ça un moment (il sautait, mais difficilement), je ne les ais plus, si je me rappelle bien, je n’avais rien changé (je me demande si c’était pas parce qu’il essayait d’aller à plusieurs endroits en même temps (donc pb d’AI), mais je vois pas ce qui pourrait te causer ce problème.
-
Toutes façons ses AI ne sont pas activées, car normalemement la méthode isAIEnbaled devrait retourner true dans la classe de ton Entity. Puisque de base elle est sur false…Par-conséquent en tout logique aucune de tes AI inscrites ne devraient être prises en compte.
-
Je pense que soit cette méthode n’est pas utilisée, où une des classes EntityMob/Creature l’override car le zombie (ou tout autre mob) n’ont pas ça dans leur classe, j’ai moi-même fait un mob sans ça (après ça peut dépendre de la version mais en 1.8 et en 1.8.9 c’est comme ça).
-
Ah ok je pensais que cette méthode présente en 1.7 figurait aussi en 1.8 et +
Autant pour moi et merci de me l’avoir signalé -
Du coup toujours pas d’idée? C’est peut-être spécifique à la 1.8.8, faudrait le signaler en IA ou quelque chose comme ça qu’il peut sauter. Car après je sais que certains mod 1.8.8 rencontre les mêmes bug, mais comment les résoudre eux doivent le savoir et pas moi. (exemple de l’Indominus Rex dans JurassiCraft qui semble ne pas pouvoir sauter de blocks, en tout cas sur mon minecraft avec la version que j’ai téléchargé.)
-
Une bonne idée déjà ça serait de passer en 1.8.9.
Il n’y a presque aucune différence de code entre ces des versions, mais la 1.8.9 contient des correctifs de bug que la 1.8.8 n’a pas. -
Certes, mais j’ai tout fait en 1.8.8… Du coup je fais comment pour changer de version?
-
C’est expliqué dans le tuto d’installation du workspace (ici).
-
Je suis passé en 1.8.9.
Ils ne sautent toujours pas, et ne s’écarte jamais de leur point de spawn dans un rayon de 10 cubes maintenant, donc si je m’éloigne ils ne me suivent pas, en tout cas pour ceux qui spawnent naturellement (peut-être parce que ce sont des “créatures”?). -
UP. J’aimerai vraiment résoudre le problème, c’est le truc le plus important pour le mod, tout le reste est terminé.
-
Tu peux renvoyé la class actuelle de ton entitée ?
Et ré-expliquer, ce que tu veux que ton entitée fasse. -
J’aimerai que mon entité:
*spawn naturellement le jour et pourquoi pas la nuit aussi
*Attaque le joueur et les autres entités vanilla pacifique (+golem et loup)
*Puisse sauter un bloc s’il en a envie pour pouvoir se déplacer normalement
*N’est pas de bug, genre reste à une distance de 10 cubes autour de son spawn même s’il me voit (cela ne me le fait que lorsqu’il spawn naturellement).Merci d’avance (Je rappelle que je suis en 1.8.9 maintenant)
Et sinon il n’arrive pas à faire du bruit malgré mes efforts.
Entity class
package Entity; import fr.minecraftforgefrance.modzoic.common.Modzoic; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIAttackOnCollide; 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.EntityIronGolem; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.monster.EntityPigZombie; import net.minecraft.entity.passive.EntityChicken; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.passive.EntityPig; import net.minecraft.entity.passive.EntityRabbit; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.pathfinding.PathNavigateGround; import net.minecraft.world.World; public class Entityclass extends EntityMob { public Entityclass(World world) { super(world); ((PathNavigateGround)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(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.setSize(2, 3); this.applyEntityAI(); } public void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(62D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(9D); this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(2D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.36D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(120D); } protected void applyEntityAI() { this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true)); } public void dropFewItems(boolean b, int looting) { this.dropItem(Modzoic.meatEpanterias, 6); } protected String getLivingSound() { return "carnotausaurus_living_1.ogg"; } @Override public boolean canDespawn() { return false; } }
Classe principale (Modzoic)
package fr.minecraftforgefrance.modzoic.common; import organisation.dinomeat; import Entity.Entityclass; import Handlers.EntityHandler; import fr.minecraftforgefrance.modzoic.proxy.CommonProxy; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.GameRegistry; import organisation.dinomeat; @Mod(modid = "modzoic", name = "Modzoic", version = "1.0.0") public class Modzoic { @Instance("modzoic") public static Modzoic instance; @SidedProxy(clientSide = "fr.minecraftforgefrance.modzoic.proxy.ClientProxy", serverSide = "fr.minecraftforgefrance.modzoic.proxy.CommonProxy") public static CommonProxy proxy; public static Item meatEpanterias; @EventHandler public void preInit(FMLPreInitializationEvent event) { meatEpanterias = new MeatEpanterias(10, 0.5F, true).setCreativeTab(CreativeTabs.tabFood); GameRegistry.registerItem(meatEpanterias, "meatEpanterias"); dinomeat.init(); dinomeat.register(); EntityHandler.RegisterMonster(Entityclass.class, "Nanuqsaurus"); } @EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }
Client Proxy:
package fr.minecraftforgefrance.modzoic.proxy; import Entity.Entityclass; import Models.modelModzoic; import Render.RenderModzoic; import fr.minecraftforgefrance.modzoic.common.MeatEpanterias; import fr.minecraftforgefrance.modzoic.common.Modzoic; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraftforge.fml.client.registry.RenderingRegistry; import organisation.dinomeat; import net.minecraft.client.renderer.entity.RenderItem; public class ClientProxy extends CommonProxy { @Override public void registerRender() { RenderItem registerMesher = Minecraft.getMinecraft().getRenderItem(); registerMesher.getItemModelMesher().register(Modzoic.meatEpanterias, 0, new ModelResourceLocation("modzoic" + ":meatEpanterias", "inventory")); dinomeat.registerRender(); RenderingRegistry.registerEntityRenderingHandler(Entityclass.class, new RenderModzoic(Minecraft.getMinecraft().getRenderManager(), new modelModzoic(), 2F)); } }
Common Proxy:
package fr.minecraftforgefrance.modzoic.proxy; public class CommonProxy { public void registerRender() { } }
Entity Handler:
package Handlers; import java.util.Random; import fr.minecraftforgefrance.modzoic.common.Modzoic; import net.minecraft.entity.EntityList; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.fml.common.registry.EntityRegistry; public class EntityHandler { public static void RegisterMonster(Class entityClass, String name) { int entityID = EntityRegistry.findGlobalUniqueEntityId(); long x = name.hashCode(); Random random = new Random(x); int mainColor = random.nextInt() * 16777215; int subColor = random.nextInt() * 16777215; EntityRegistry.registerGlobalEntityID(entityClass, name, entityID); EntityRegistry.addSpawn(entityClass, 70, 1, 3, EnumCreatureType.CREATURE, BiomeGenBase.forest, BiomeGenBase.beach, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills ,BiomeGenBase.coldBeach ,BiomeGenBase.coldTaiga ,BiomeGenBase.coldTaigaHills ,BiomeGenBase.desert ,BiomeGenBase.desertHills ,BiomeGenBase.extremeHills ,BiomeGenBase.forestHills ,BiomeGenBase.frozenRiver ,BiomeGenBase.iceMountains ,BiomeGenBase.icePlains ,BiomeGenBase.jungle ,BiomeGenBase.jungleEdge ,BiomeGenBase.jungleHills ,BiomeGenBase.megaTaiga ,BiomeGenBase.megaTaigaHills ,BiomeGenBase.mesa ,BiomeGenBase.mesaPlateau ,BiomeGenBase.mesaPlateau_F ,BiomeGenBase.plains ,BiomeGenBase.roofedForest ,BiomeGenBase.savanna ,BiomeGenBase.savannaPlateau ,BiomeGenBase.taigaHills ,BiomeGenBase.taiga ,BiomeGenBase.stoneBeach); EntityRegistry.registerModEntity(entityClass, name, entityID, Modzoic.instance, 64, 1, true); EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, mainColor, subColor)); } }
Model Modzoic:
package Models; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; public class modelModzoic extends ModelBase { //fields ModelRenderer Pied_droit; ModelRenderer Griffe_droite_3; ModelRenderer Pied_gauche; ModelRenderer Griffe_droite_2; ModelRenderer Griffe_droite_1; ModelRenderer Griffe_gauche_1; ModelRenderer Griffe_gauche_3; ModelRenderer Griffe_gauche_2; ModelRenderer Jambe_gauche_2; ModelRenderer Jambe_droite_2; ModelRenderer Jambe_droite_1; ModelRenderer Jambe_gauche_1; ModelRenderer Cuisse_gauche; ModelRenderer Cuisse_droite; ModelRenderer Corps_central; ModelRenderer Queue_1; ModelRenderer Queue_2; ModelRenderer Queue_3; ModelRenderer Queue_4; ModelRenderer Queue_5; ModelRenderer Queue_6; ModelRenderer Queue_7; ModelRenderer Queue_8; ModelRenderer Avant_1; ModelRenderer Avant_2; ModelRenderer Patte_droite_1; ModelRenderer Patte_gauche_1; ModelRenderer Patte_droite_2; ModelRenderer Patte_gauche_2; ModelRenderer Cou; ModelRenderer Machoire_basse; ModelRenderer Machoire_haute; ModelRenderer Crane_1; ModelRenderer Crane_2; ModelRenderer Sourcils_droite; ModelRenderer Sourcils_gauche; ModelRenderer Epine_6; ModelRenderer Epine_5; ModelRenderer Epine_4; ModelRenderer Epine_7; ModelRenderer Epine_3; ModelRenderer Epine_2; ModelRenderer Epine_1; ModelRenderer Epine_8; ModelRenderer Epine_9; ModelRenderer Epine_10; ModelRenderer Epine_11; ModelRenderer Epine_12; ModelRenderer Epine_13; public modelModzoic() { textureWidth = 256; textureHeight = 128; Pied_droit = new ModelRenderer(this, 155, 96); Pied_droit.addBox(-2F, 0F, -5F, 4, 3, 8); Pied_droit.setRotationPoint(-8F, 21F, 2F); Pied_droit.setTextureSize(256, 128); Pied_droit.mirror = true; setRotation(Pied_droit, 0F, 0F, 0F); Griffe_droite_3 = new ModelRenderer(this, 180, 100); Griffe_droite_3.addBox(-4F, 0F, 0F, 0, 3, 1); Griffe_droite_3.setRotationPoint(-5F, 21F, -3F); Griffe_droite_3.setTextureSize(256, 128); Griffe_droite_3.mirror = true; setRotation(Griffe_droite_3, -0.7435722F, 0F, 0F); Pied_gauche = new ModelRenderer(this, 155, 96); Pied_gauche.addBox(-2F, 0F, -5F, 4, 3, 8); Pied_gauche.setRotationPoint(8F, 21F, 2F); Pied_gauche.setTextureSize(256, 128); Pied_gauche.mirror = true; setRotation(Pied_gauche, 0F, 0F, 0F); Griffe_droite_2 = new ModelRenderer(this, 180, 100); Griffe_droite_2.addBox(4F, 0F, 0F, 0, 3, 1); Griffe_droite_2.setRotationPoint(-12F, 21F, -3F); Griffe_droite_2.setTextureSize(256, 128); Griffe_droite_2.mirror = true; setRotation(Griffe_droite_2, -0.7435722F, 0F, 0F); Griffe_droite_1 = new ModelRenderer(this, 180, 100); Griffe_droite_1.addBox(3F, 0F, 0F, 0, 3, 1); Griffe_droite_1.setRotationPoint(-10F, 21F, -3F); Griffe_droite_1.setTextureSize(256, 128); Griffe_droite_1.mirror = true; setRotation(Griffe_droite_1, -0.7435722F, 0F, 0F); Griffe_gauche_1 = new ModelRenderer(this, 180, 100); Griffe_gauche_1.addBox(4F, 0F, 0F, 0, 3, 1); Griffe_gauche_1.setRotationPoint(3F, 21F, -3F); Griffe_gauche_1.setTextureSize(256, 128); Griffe_gauche_1.mirror = true; setRotation(Griffe_gauche_1, -0.7435722F, 0F, 0F); Griffe_gauche_3 = new ModelRenderer(this, 180, 100); Griffe_gauche_3.addBox(4F, 0F, 0F, 0, 3, 1); Griffe_gauche_3.setRotationPoint(5F, 21F, -3F); Griffe_gauche_3.setTextureSize(256, 128); Griffe_gauche_3.mirror = true; setRotation(Griffe_gauche_3, -0.7435722F, 0F, 0F); Griffe_gauche_2 = new ModelRenderer(this, 180, 100); Griffe_gauche_2.addBox(4F, 0F, 0F, 0, 3, 1); Griffe_gauche_2.setRotationPoint(4F, 21F, -3F); Griffe_gauche_2.setTextureSize(256, 128); Griffe_gauche_2.mirror = true; setRotation(Griffe_gauche_2, -0.7435722F, 0F, 0F); Jambe_gauche_2 = new ModelRenderer(this, 121, 94); Jambe_gauche_2.addBox(-2F, 0F, -1F, 4, 9, 4); Jambe_gauche_2.setRotationPoint(8F, 5.7F, 1.6F); Jambe_gauche_2.setTextureSize(256, 128); Jambe_gauche_2.mirror = true; setRotation(Jambe_gauche_2, 0.3316126F, 0F, 0F); Jambe_droite_2 = new ModelRenderer(this, 121, 94); Jambe_droite_2.addBox(-2F, 0F, -1F, 4, 9, 4); Jambe_droite_2.setRotationPoint(-8F, 5.7F, 1.6F); Jambe_droite_2.setTextureSize(256, 128); Jambe_droite_2.mirror = true; setRotation(Jambe_droite_2, 0.3316126F, 0F, 0F); Jambe_droite_1 = new ModelRenderer(this, 140, 96); Jambe_droite_1.addBox(-2F, 0F, -2F, 4, 9, 3); Jambe_droite_1.setRotationPoint(-8F, 13F, 6F); Jambe_droite_1.setTextureSize(256, 128); Jambe_droite_1.mirror = true; setRotation(Jambe_droite_1, -0.3316126F, 0F, 0F); Jambe_gauche_1 = new ModelRenderer(this, 140, 96); Jambe_gauche_1.addBox(-2F, 0F, -2F, 4, 9, 3); Jambe_gauche_1.setRotationPoint(8F, 13F, 6F); Jambe_gauche_1.setTextureSize(256, 128); Jambe_gauche_1.mirror = true; setRotation(Jambe_gauche_1, -0.3316126F, 0F, 0F); Cuisse_gauche = new ModelRenderer(this, 101, 93); Cuisse_gauche.addBox(0F, -2.466667F, -1F, 4, 9, 5); Cuisse_gauche.setRotationPoint(6F, 0.3F, 3.8F); Cuisse_gauche.setTextureSize(256, 128); Cuisse_gauche.mirror = true; setRotation(Cuisse_gauche, -0.3316126F, 0F, 0F); Cuisse_droite = new ModelRenderer(this, 101, 93); Cuisse_droite.addBox(-4F, -2.5F, -2F, 4, 9, 5); Cuisse_droite.setRotationPoint(-6F, 0.3F, 4.8F); Cuisse_droite.setTextureSize(256, 128); Cuisse_droite.mirror = true; setRotation(Cuisse_droite, -0.3316126F, 0F, 0F); Corps_central = new ModelRenderer(this, 95, 33); Corps_central.addBox(-6F, 0F, 0F, 14, 15, 14); Corps_central.setRotationPoint(-1F, -6F, -4F); Corps_central.setTextureSize(256, 128); Corps_central.mirror = true; setRotation(Corps_central, -0.0523599F, 0F, 0F); Queue_1 = new ModelRenderer(this, 2, 0); Queue_1.addBox(0F, 0F, 0F, 12, 13, 9); Queue_1.setRotationPoint(-6F, -4F, 8F); Queue_1.setTextureSize(256, 128); Queue_1.mirror = true; setRotation(Queue_1, 0.0174533F, 0F, 0F); Queue_2 = new ModelRenderer(this, 46, 0); Queue_2.addBox(-6F, -6F, 0F, 10, 11, 9); Queue_2.setRotationPoint(1F, 2.5F, 16F); Queue_2.setTextureSize(256, 128); Queue_2.mirror = true; setRotation(Queue_2, 0.0698132F, 0F, 0F); Queue_3 = new ModelRenderer(this, 86, 0); Queue_3.addBox(-5F, -3F, 0F, 8, 10, 9); Queue_3.setRotationPoint(1F, -0.5F, 24F); Queue_3.setTextureSize(256, 128); Queue_3.mirror = true; setRotation(Queue_3, 0.0872665F, 0F, 0F); Queue_4 = new ModelRenderer(this, 121, 0); Queue_4.addBox(-4F, -3F, 0F, 6, 9, 8); Queue_4.setRotationPoint(1F, -0.5F, 32F); Queue_4.setTextureSize(256, 128); Queue_4.mirror = true; setRotation(Queue_4, 0.1047198F, 0F, 0F); Queue_5 = new ModelRenderer(this, 150, 0); Queue_5.addBox(-2F, -3F, 0F, 5, 8, 8); Queue_5.setRotationPoint(-0.5F, -1F, 39F); Queue_5.setTextureSize(256, 128); Queue_5.mirror = true; setRotation(Queue_5, 0.0698132F, 0F, 0F); Queue_6 = new ModelRenderer(this, 177, 0); Queue_6.addBox(-2F, -2F, 0F, 4, 7, 8); Queue_6.setRotationPoint(0F, -2.5F, 46F); Queue_6.setTextureSize(256, 128); Queue_6.mirror = true; setRotation(Queue_6, 0.0523599F, 0F, 0F); Queue_7 = new ModelRenderer(this, 202, 0); Queue_7.addBox(-1F, -0.5F, 0F, 3, 6, 9); Queue_7.setRotationPoint(-0.5F, -4F, 53F); Queue_7.setTextureSize(256, 128); Queue_7.mirror = true; setRotation(Queue_7, 0.0349066F, 0F, 0F); Queue_8 = new ModelRenderer(this, 228, 0); Queue_8.addBox(-1F, 0F, 0F, 2, 5, 10); Queue_8.setRotationPoint(0F, -4.466667F, 61F); Queue_8.setTextureSize(256, 128); Queue_8.mirror = true; setRotation(Queue_8, -0.0174533F, 0F, 0F); Avant_1 = new ModelRenderer(this, 53, 38); Avant_1.addBox(-6F, -5F, -14F, 12, 13, 8); Avant_1.setRotationPoint(0F, 0.1333333F, 2F); Avant_1.setTextureSize(256, 128); Avant_1.mirror = true; setRotation(Avant_1, -0.0872665F, 0F, 0F); Avant_2 = new ModelRenderer(this, 11, 39); Avant_2.addBox(0F, 0F, 0F, 10, 12, 10); Avant_2.setRotationPoint(-5F, -10F, -15F); Avant_2.setTextureSize(256, 128); Avant_2.mirror = true; setRotation(Avant_2, -0.4886922F, 0F, 0F); Patte_droite_1 = new ModelRenderer(this, 28, 64); Patte_droite_1.addBox(-1F, 0F, -1F, 1, 3, 2); Patte_droite_1.setRotationPoint(-3F, 1F, -18F); Patte_droite_1.setTextureSize(256, 128); Patte_droite_1.mirror = true; setRotation(Patte_droite_1, -0.4712389F, 0F, 0F); Patte_gauche_1 = new ModelRenderer(this, 28, 64); Patte_gauche_1.addBox(0F, 0F, -1F, 1, 3, 2); Patte_gauche_1.setRotationPoint(3F, 1F, -18F); Patte_gauche_1.setTextureSize(256, 128); Patte_gauche_1.mirror = true; setRotation(Patte_gauche_1, -0.4712389F, 0F, 0F); Patte_droite_2 = new ModelRenderer(this, 30, 70); Patte_droite_2.addBox(0F, 0F, 0F, 1, 2, 1); Patte_droite_2.setRotationPoint(-4F, 3.3F, -20.4F); Patte_droite_2.setTextureSize(256, 128); Patte_droite_2.mirror = true; setRotation(Patte_droite_2, 0.1745329F, 0F, 0F); Patte_gauche_2 = new ModelRenderer(this, 30, 70); Patte_gauche_2.addBox(0F, 0F, 0F, 1, 2, 1); Patte_gauche_2.setRotationPoint(3F, 3.3F, -20.4F); Patte_gauche_2.setTextureSize(256, 128); Patte_gauche_2.mirror = true; setRotation(Patte_gauche_2, 0.1745329F, 0F, 0F); Cou = new ModelRenderer(this, 223, 44); Cou.addBox(0F, 0F, 0F, 8, 10, 8); Cou.setRotationPoint(-4F, -9F, -25F); Cou.setTextureSize(256, 128); Cou.mirror = true; setRotation(Cou, 0.7504916F, 0F, 0F); Machoire_basse = new ModelRenderer(this, 158, 52); Machoire_basse.addBox(-4F, 0F, 0F, 7, 12, 3); Machoire_basse.setRotationPoint(0.5F, -10.1F, -27.4F); Machoire_basse.setTextureSize(256, 128); Machoire_basse.mirror = true; setRotation(Machoire_basse, -1.605703F, 0F, 0F); Machoire_haute = new ModelRenderer(this, 153, 30); Machoire_haute.addBox(0F, 0F, 0F, 8, 13, 7); Machoire_haute.setRotationPoint(-4F, -17F, -27F); Machoire_haute.setTextureSize(256, 128); Machoire_haute.mirror = true; setRotation(Machoire_haute, -1.518436F, 0F, 0F); Crane_1 = new ModelRenderer(this, 187, 43); Crane_1.addBox(0F, 0F, 0F, 8, 10, 9); Crane_1.setRotationPoint(-4F, -17F, -29F); Crane_1.setTextureSize(256, 128); Crane_1.mirror = true; setRotation(Crane_1, 0F, 0F, 0F); Crane_2 = new ModelRenderer(this, 215, 31); Crane_2.addBox(0F, 0F, 0F, 8, 6, 2); Crane_2.setRotationPoint(-4F, -16.3F, -22F); Crane_2.setTextureSize(256, 128); Crane_2.mirror = true; setRotation(Crane_2, 0.3316126F, 0F, 0F); Sourcils_droite = new ModelRenderer(this, 200, 25); Sourcils_droite.addBox(0F, 0F, 0F, 1, 2, 5); Sourcils_droite.setRotationPoint(-4.1F, -17F, -28F); Sourcils_droite.setTextureSize(256, 128); Sourcils_droite.mirror = true; setRotation(Sourcils_droite, 0.2268928F, 0F, 0F); Sourcils_gauche = new ModelRenderer(this, 200, 25); Sourcils_gauche.addBox(0F, 0F, 0F, 1, 2, 5); Sourcils_gauche.setRotationPoint(3.1F, -17F, -28F); Sourcils_gauche.setTextureSize(256, 128); Sourcils_gauche.mirror = true; setRotation(Sourcils_gauche, 0.2268928F, 0F, 0F); Epine_6 = new ModelRenderer(this, 200, 100); Epine_6.addBox(0F, 0F, 0F, 0, 3, 4); Epine_6.setRotationPoint(0F, -5F, 0F); Epine_6.setTextureSize(256, 128); Epine_6.mirror = true; setRotation(Epine_6, 0.5235988F, 0F, 0F); Epine_5 = new ModelRenderer(this, 200, 100); Epine_5.addBox(0F, 0F, 0F, 0, 3, 4); Epine_5.setRotationPoint(0F, -5F, -4F); Epine_5.setTextureSize(256, 128); Epine_5.mirror = true; setRotation(Epine_5, 0.5235988F, 0F, 0F); Epine_4 = new ModelRenderer(this, 200, 100); Epine_4.addBox(0F, 0F, 0F, 0, 3, 4); Epine_4.setRotationPoint(0F, -5F, -8F); Epine_4.setTextureSize(256, 128); Epine_4.mirror = true; setRotation(Epine_4, 0.5235988F, 0F, 0F); Epine_7 = new ModelRenderer(this, 200, 100); Epine_7.addBox(0F, 0F, 0F, 0, 3, 4); Epine_7.setRotationPoint(0F, -4.5F, 4F); Epine_7.setTextureSize(256, 128); Epine_7.mirror = true; setRotation(Epine_7, 0.5235988F, 0F, 0F); Epine_3 = new ModelRenderer(this, 200, 100); Epine_3.addBox(0F, 0F, 0F, 0, 3, 4); Epine_3.setRotationPoint(0F, -8F, -12F); Epine_3.setTextureSize(256, 128); Epine_3.mirror = true; setRotation(Epine_3, 0.0698132F, 0F, 0F); Epine_2 = new ModelRenderer(this, 200, 100); Epine_2.addBox(0F, 0F, 0F, 0, 3, 4); Epine_2.setRotationPoint(0F, -9.5F, -16F); Epine_2.setTextureSize(256, 128); Epine_2.mirror = true; setRotation(Epine_2, 0.1745329F, 0F, 0F); Epine_1 = new ModelRenderer(this, 200, 100); Epine_1.addBox(0F, 0F, 0F, 0, 3, 4); Epine_1.setRotationPoint(0F, -13F, -19F); Epine_1.setTextureSize(256, 128); Epine_1.mirror = true; setRotation(Epine_1, -0.1919862F, 0F, 0F); Epine_8 = new ModelRenderer(this, 200, 100); Epine_8.addBox(0F, 0F, 0F, 0, 3, 4); Epine_8.setRotationPoint(0F, -3F, 8F); Epine_8.setTextureSize(256, 128); Epine_8.mirror = true; setRotation(Epine_8, 0.6108652F, 0F, 0F); Epine_9 = new ModelRenderer(this, 200, 100); Epine_9.addBox(0F, 0F, 0F, 0, 3, 4); Epine_9.setRotationPoint(0F, -3F, 12F); Epine_9.setTextureSize(256, 128); Epine_9.mirror = true; setRotation(Epine_9, 0.5759587F, 0F, 0F); Epine_10 = new ModelRenderer(this, 200, 100); Epine_10.addBox(0F, 0F, 0F, 0, 3, 4); Epine_10.setRotationPoint(0F, -2F, 16F); Epine_10.setTextureSize(256, 128); Epine_10.mirror = true; setRotation(Epine_10, 0.715585F, 0F, 0F); Epine_11 = new ModelRenderer(this, 200, 100); Epine_11.addBox(0F, 0F, 0F, 0, 3, 4); Epine_11.setRotationPoint(0F, -2F, 20F); Epine_11.setTextureSize(256, 128); Epine_11.mirror = true; setRotation(Epine_11, 0.7853982F, 0F, 0F); Epine_12 = new ModelRenderer(this, 200, 100); Epine_12.addBox(0F, 0F, 0F, 0, 3, 4); Epine_12.setRotationPoint(0F, -2F, 24F); Epine_12.setTextureSize(256, 128); Epine_12.mirror = true; setRotation(Epine_12, 0.7853982F, 0F, 0F); Epine_13 = new ModelRenderer(this, 200, 100); Epine_13.addBox(0F, 0F, 0F, 0, 3, 4); Epine_13.setRotationPoint(0F, -2F, 28F); Epine_13.setTextureSize(256, 128); Epine_13.mirror = true; setRotation(Epine_13, 0.8726646F, 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); Pied_droit.render(f5); Griffe_droite_3.render(f5); Pied_gauche.render(f5); Griffe_droite_2.render(f5); Griffe_droite_1.render(f5); Griffe_gauche_1.render(f5); Griffe_gauche_3.render(f5); Griffe_gauche_2.render(f5); Jambe_gauche_2.render(f5); Jambe_droite_2.render(f5); Jambe_droite_1.render(f5); Jambe_gauche_1.render(f5); Cuisse_gauche.render(f5); Cuisse_droite.render(f5); Corps_central.render(f5); Queue_1.render(f5); Queue_2.render(f5); Queue_3.render(f5); Queue_4.render(f5); Queue_5.render(f5); Queue_6.render(f5); Queue_7.render(f5); Queue_8.render(f5); Avant_1.render(f5); Avant_2.render(f5); Patte_droite_1.render(f5); Patte_gauche_1.render(f5); Patte_droite_2.render(f5); Patte_gauche_2.render(f5); Cou.render(f5); Machoire_basse.render(f5); Machoire_haute.render(f5); Crane_1.render(f5); Crane_2.render(f5); Sourcils_droite.render(f5); Sourcils_gauche.render(f5); Epine_6.render(f5); Epine_5.render(f5); Epine_4.render(f5); Epine_7.render(f5); Epine_3.render(f5); Epine_2.render(f5); Epine_1.render(f5); Epine_8.render(f5); Epine_9.render(f5); Epine_10.render(f5); Epine_11.render(f5); Epine_12.render(f5); Epine_13.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); } }
Render Modzoic:
package Render; import Entity.Entityclass; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class RenderModzoic extends RenderLiving { public RenderModzoic(RenderManager render, ModelBase model, float x) { super(render, model, x); } private ResourceLocation texture = new ResourceLocation("modzoic" + ":textures/mobs/dino8.png"); public void renderModzoic(Entityclass entity, double x, double y, double z, float v, float b) { super.doRender(entity, x, y, z, v, b); } public void doRenderLiving(EntityLiving entity, double x, double y, double z, float v, float b) { renderModzoic((Entityclass) entity, x, y, z, v, b); } public void doRendering(Entity entity, double x, double y, double z, float v, float b) { renderModzoic((Entityclass) entity, x, y, z, v, b); } @Override protected ResourceLocation getEntityTexture(Entity entity) { return texture; } }
N’hésitez pas pour d’autres questions!
-
protected String getLivingSound() { return "carnotausaurus_living_1.ogg"; }
mets ça à la place :
protected String getLivingSound() { return "modzoic" + ":carnotausaurus_living"; }
Ensuite tu dois faire un sounds.json qui ressemble à ça : https://github.com/elias54/FakeOres/blob/master/resources/assets/fakeores/sounds.json
-
Comme ça? Et ensuite?
Et après le son c’est pas trop urgent c’est plus le saut, car tant que le mob ne saute pas il est à peu près inutilisable.