Non résolu Mon mob ne spawn pas dans le biome que je veut. (1.12.2)
-
Bonjour/ bonsoir
Comme indiquer dans le titre mon mon mob ne spawn pas dans le biome que je veut(d’ailleurs il ne spawn pas tout cour sauf avec l’œuf) pouvez vous m’aider svp pour qu’il spawn correctement (et au passage si vous pouvez me monter comment on modifie son drop se serais top.) Merci d’avance. -
Personne ne sait
-
Bonsoir,
Tu as utilisé quelle fonction pour enregistrer ton mob et ajouter le spawn ?
-
Voila ce que j’ais fait pour faire spawn mon mon dans la classe que j’ais créer
{ @SubscribeEvent public void LivingSpawnEvent(EntityScorpion e) { }
}
Mais apprès je ne sais pas l’initialiser car quand j’essai d’importer init il me conseille d’importer preinit
-
Ce n’est pas du tout comme cela que ça fonctionne.
à l’endroit ou tu enregistres ton entity, tu as normalement un objet EntityEntryBuilder c’est dans ce dernier qu’il faut utiliser la fonction .spawn pour indiquer les biomes. -
Je n’y suis pas arriver. Je crois avois fait ce que fous m’aver dis mais je suis pas sur (les mob c’est pa mon point fort ) Masi je cois avoir quand meme bien importer la fonction .spawn
-
Envoies ton code où tu enregistre ton entité.
-
je pence que ce n’est toujours pa sa mais bon: voici le code:
{ @SubscribeEvent public static void LivingSpawnEvent(Spawn e) { Spawn EntityScopion,BiomePlains; }
}
et dans les import il y a bien sa
import net.minecraftforge.fml.common.registry.EntityEntryBuilder.Spawn -
Bon je répète ma question présente, à quel endroit tu as enregistré ton entité ?
-
Ce message a été supprimé ! -
public class EntityInit { public static void registerEntities() { registerEntity("scorpion", EntityScorpion.class, 111, 30, 16757283, 13391906); } private static void registerEntity(String name, Class<? extends Entity> entity, int id, int range, int color1, int color2) { EntityRegistry.registerModEntity(new ResourceLocation(Reference.MODID + ":" + name), entity, name, id, Main.instance, range, 1, true, color1, color2); }
Voila ou j’ais enregistrer mon Entiter
-
Il faut utiliser la fonction
EntityRegistry.addSpawn(EntityScopion.class, <weight>, <min>, <max>, EnumCreatureType.MONSTER, <liste des biomes>);
Ou sinon, enregistrer l’entité avec les événements de registre, pour la fonction
.spawn
:@SubscribeEvent public static void registerEntities(RegistryEvent.Register<EntityEntry> e) { Collection<Biome> allBiome = ForgeRegistries.BIOMES.getValuesCollection(); EntityEntry entry = EntityEntryBuilder.create() .entity(EntityScorpion.class) .id(new ResourceLocation(Reference.MODID + ":" + "scorpion"), 111) .name("scorpion") .egg(16757283, 13391906) .tracker(30, 1, true) .spawn(EnumCreatureType.MONSTER, 100, 2, 5, allBiome) .build(); e.getRegistry().register(entry); }
Et si tu passes par cette méthode, plus besoin du EntityRegistry.registerModEntity
-
j’ais fait quelque adaptation au code mais sa ne marche toujours pas.
Avec votre méthode sa fessais crash mon jeu et je ne pouvais meme pas faire spawn l’entier . Mais avec mes adaptation sa ne marche toujours pas non plus.
pouvais vois une fois de plus m’aider. voila les adaptation (je me suis base sur votre méthode):{ public static void registerEntities() { registerEntity("scorpion", EntityScorpion.class, 111, 50, 16765255, 1672485); Collection<Biome> allBiome = ForgeRegistries.BIOMES.getValuesCollection(); EntityRegistry.addSpawn(EntityScorpion.class, 100, 2, 5, EnumCreatureType.MONSTER, allBiome); } private static void registerEntity(String name, Class<? extends Entity> entity, int id, int range, int color1, int color2) { EntityRegistry.registerModEntity(new ResourceLocation(Reference.MODID + ":" + name), entity, name, id, Main.instance, range, 1, true, color1, color2); } }
-
Le problème là c’est qu’il ne spawn toujours pas ?
Tu avais quoi comme rapport de crash avec mon code ?
-
voila le rapport de crash avec votre méthode crash-2021-07-31_11.37.25-client.txt
d’apprêt les log sa dis qu’il y a un problème avec ma classe RegisterEntities et RegistryHandler . Mais j’était persuader que sa ne venez pas de la, j’ais donc supprimer le code que vous m’aver donner et me suis inspirer de lui.
Mais sa ne marche toujours pas.
Si vous voulez on pourrais voc. Je suis sur que le problème et très con sa ne prendra que 5 min a résoudre.
(Voilà mon discord si vous voulez voc svp: luigi31#0615)Problème détailler :
apparemment dans preinit le mob ne voulais pas se preinitialiser il y avait une erreur en permanence. J’avait également supprimer pour voir l’erreur dans preinit mais comme je m’en doutais le mob ne spawner pas et l’œuf n’etait meme plus la(si vous pouvez voc demain a environ 14h00 je vois montrerez). -
Je ne suis pas dispo pour du vocal demain, désolé.
Il y avait quoi à la ligne 30 de EntityInit.java quand tu avais essayé mon code ? -
y avait rien. pourquoi? ton code ne va pas jusqu’à la ligne 30
-
Le rapport de crash mentionne la ligne 30 de EntityInit.java comme étant à l’origine du crash, il avait forcement une ligne 30 …
-
Non c’est impossible a mon avis l’erreur ne se situ pas la
car mon ancient code était :package com.draco.test.init; import com.draco.test.Main; import com.draco.test.objects.entity.EntityScorpion; import com.draco.test.util.Reference; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.common.registry.EntityRegistry; public class EntityInit { public static void registerEntities() { registerEntity("scorpion", EntityScorpion.class, 111, 50, 16765255, 1672485); } private static void registerEntity(String name, Class<? extends Entity> entity, int id, int range, int color1, int color2) { EntityRegistry.registerModEntity(new ResourceLocation(Reference.MODID + ":" + name), entity, name, id, Main.instance, range, 1, true, color1, color2); } }
Et comme vous pouvez le voir il n’y a pas de ligne 30.
Et c’est pareil pour l’autre code(le votre):@SubscribeEvent public static void registerEntities(RegistryEvent.Register<EntityEntry> e) { Collection<Biome> allBiome = ForgeRegistries.BIOMES.getValuesCollection(); EntityEntry entry = EntityEntryBuilder.create() .entity(EntityScorpion.class) .id(new ResourceLocation(Reference.MODID + ":" + "scorpion"), 111) .name("scorpion") .egg(16757283, 13391906) .tracker(30, 1, true) .spawn(EnumCreatureType.MONSTER, 100, 2, 5, allBiome) .build(); e.getRegistry().register(entry); }
il n’y a pas non plus de ligne 30
-