Créer un mob basique


  • Administrateurs

    C'est simple :

    
    public boolean getCanSpawnHere()
    
    

    est déjà défini dans EntityMob, voilà pourquoi il ne spawn pas. 🙂



  • @'elias54':

    C'est simple :

    
    public boolean getCanSpawnHere()
    
    

    est déjà défini dans EntityMob, voilà pourquoi il ne spawn pas. 🙂

    En faite il ne spawnait pas même sans cette ligne, je l'avait rajouté justement parce qu'il ne spawnait pas. Et même en l'enlevant juste là maintenant, pas de spawn naturels…


  • Administrateurs

    Je viens de tester à l'instant avec des mobs, et en effet ils ne spawnent pas, ce n'est pas normal, mais apparemment cela ne vient pas du tuto, mais d'un problème avec Forge


  • Administrateurs

    Tu as bien définie les biomes où ils doivent spawner?

    EntityRegistry.addSpawn(EntityAniZob.class, 1, 4, 4, EnumCreatureType.creature, BiomeGenBase.nomDuBiome);
    
    


  • @'Superloup10':

    Tu as bien définie les biomes où ils doivent spawner?

    EntityRegistry.addSpawn(EntityAniZob.class, 1, 4, 4, EnumCreatureType.creature, BiomeGenBase.nomDuBiome);
    
    

    Ils n'ont pas de biome défini, ils sont censé apparaître n'importe où n'importe quand.

    @'elias54':

    Je viens de tester à l'instant avec des mobs, et en effet ils ne spawnent pas, ce n'est pas normal, mais apparemment cela ne vient pas du tuto, mais d'un problème avec Forge

    Sa c'est dommage, car je ne sais pas si il y aura un jour une autre version pour la 1.6.4 (vu qu'ils bossent pour la 1.7.4 stable). 😞



  • Si tu ne définis pas de biomes, ils ne spawn pas partout, au contraire, ils ne spawn pas du tout.



  • @'kevin_68':

    Si tu ne définis pas de biomes, ils ne spawn pas partout, au contraire, ils ne spawn pas du tout.

    Donc est-ce qu'on peut faire un "partout" sans faire un à un tous les biomes ?

    Par contre j'avais fait que le mob en question spawn dans les plaines et ça marchait pas non plus (là j'aurai plus mon mod pour le week end par raison personnelle), donc… 😕



  • Si ça peut t'aider, je fais comme ça:

    
    for (int i = 0; i <= 22; i++)
    {
    if (i != 13 && i != 14)
    {
    EntityRegistry.addSpawn(EntityMob.class, 5, 4, 4, EnumCreatureType.monster, BiomeGenBase.biomeList*);
    }
    
    }
    
    

  • Administrateurs

    Pas bête comme idée totos51. Mais c'est moins optimisé, et si la JVM passe vite, des dysfonctionnement peuvent avoir lieu 😕



  • Bah pour le moment je m'en plains pas, cette méthode fonctionne sans soucis sur mon serveur ^^


  • Administrateurs

    Il ne devrait pas avoir de problème, mais ta méthode n'est pas compatible avec des mod qui ajoutent des biomes. Question de perfection, j'aurai fait comme ça :

    for (BiomeGenBase biome : BiomeGenBase.biomeList)
    {
    if (biome != null && !biome.equals(BiomeGenBase.biomeàexclure1) && !biome.equals(BiomeGenBase.biomeàexclure2))
    {
    EntityRegistry.addSpawn(EntityMob.class, 5, 4, 4, EnumCreatureType.monster, biome);
    }
    }
    


  • En faite, c'est sûrement un problème de rareté (et le BiomeGenBase, mais j'ai corrigé ça "à l'ancienne" (j'ai mis tous le biomes désirés un par un)), car j'ai réussi à trouver naturellement un des mobs que j'avais fait et qui spawn dans les plaines comme un animal. Donc et ben je suis content du coup (même si il spawn plus que prévu).

    EDIT : rectification : en mettant le EnumCreatureType sur monster sur le monstre que je voulais faire spawn, c'est nickel, même si je voudrait bien qu'il spawn de jour aussi mais bon, au moins ça marche. Donc : EnumCreatureType.creature ne semble pas marcher (du moins pour moi).



  • Salut, j'ai un petit problème avec l'affichage de la texture de mon mob 😕

    @'robin4002':

    Problème trouvé, c'était un problème dans le proxy, il faut bien mettre le classe du renderCustom et non de RenderLiving.

    Le problème venait du tutoriel, la ligne était erroné à un endroit, et juste à la fin.
    J'ai corrigé le tutoriel, désolé pour les heures passés à chercher à cause d'une erreur dans le tutoriel 😕

    J'ai suivit le tuto a la lettre (si je n'ai rien loupé, mais je ne pense pas) et rien, mon monstre est un rectangle blanc.

    Pourtant, mon chemin d'accès a la texture est bonne

    "bigshell", "textures/entity/ModelBouftonBlanc.png"
    

    Mon proxy

    RenderingRegistry.registerEntityRenderingHandler(EntityAniZob.class, new RenderAniZob(new ModelBoufton(), 0.5f));
    

    dans

    @Override
    public void registerRenderThings()
    

    Dans la base du mod

    public void initConfig(FMLPreInitializationEvent event) //Ce qui se passe avant l'initialisation
    {
    proxy.registerRender();
    proxy.registerTileEntityRender();
    }
    
    EntityRegistry.registerGlobalEntityID(EntityAniZob.class, "AniZob", EntityRegistry.findGlobalUniqueEntityId(), 24, 30);
    EntityRegistry.registerModEntity(EntityAniZob.class, "AniZob", 250, this, 40, 1, true);
    EntityRegistry.addSpawn(EntityAniZob.class, 1, 4, 4, EnumCreatureType.creature);
    LanguageRegistry.instance().addStringLocalization("entity.AniZob.name", "AniZob");
    

    Ce trouve dans le Load.

    Je n'ai rien d'anormal dans la console avant/apres/pose… Donc je suis largué^^

    Je n'ai surtout pas compris ce qu'a dit Robin 😕

    EDIT:

    Pfff, newbe que je suis... J'ai trouvé !

    Maintenant, rendez-vous dans votre ClientProxy, et mettez cette ligne dans une de vos méthodes :

    Code Java :
    RenderingRegistry.registerEntityRenderingHandler(EntityAnizob.class, new RenderAnizob(new ModelBiped(), 0.5F);

    Voila ce qui m'en enduit en erreur ! Je pense qu'il faudrai précisé que c'est dans une méthode spécifique et non n'importe la quelle… Genre "public void registerTileEntityRender()" je l'avais mise dans "public void registerRenderThings()" et ça ne marchait pas ^^


  • Administrateurs

    @'UnknowOrigin':

    Je pense qu'il faudrai précisé que c'est dans une méthode spécifique et non n'importe la quelle… Genre "public void registerTileEntityRender()" je l'avais mise dans "public void registerRenderThings()" et ça ne marchait pas ^^

    La ligne peut aller dans les deux méthodes, il suffit juste qu'elle soit déclaré dans la classe principale (proxy.laMethode(); (en passant par le common proxy))



  • J'ai suivi le tuto à la lettre mais pourtant, mon mob n’apparaît pas, même en utilisant un œuf.

    Mon ClientProxy

    @Override
    public void registerRender()
    {RenderingRegistry.registerEntityRenderingHandler(EntityCerf.class, new RenderCerf(new ModelCerf(), 0.5f));
    
    }
    

    Dans la base du mod

    @EventHandler
    public void load(FMLInitializationEvent event)
    {EntityRegistry.registerGlobalEntityID(EntityCerf.class, "Cerf", EntityRegistry.findGlobalUniqueEntityId(), 24, 30);
    EntityRegistry.registerModEntity(EntityCerf.class, "Cerf", 250, this, 40, 1, true);
    EntityRegistry.addSpawn(EntityCerf.class, 1, 4, 4, EnumCreatureType.creature);
    LanguageRegistry.instance().addStringLocalization("entity.CerfEntity.name", "Cerf");
    }
    

    Et je n'ai absolument aucun message d'erreurs 😕


  • Administrateurs

    Creuse un trou et essaye de faire spawner ton entitée dedans, si elle n'apparaît pas, fais un F3 + B, en jeu, pour faire apparaître la hitbox de l'entitée.

    Ensuite, ton entitée ne peut pas spawner naturellement, car tu n'as spécifié aucun biome.


  • Administrateurs

    @'Superloup10':

    Ensuite, ton entitée ne peut pas spawner naturellement, car tu n'as spécifié aucun biome.

    Depuis la 1.6 c'est le cas en effet.



  • J'ai essayé avec les hitbox activée, et nom même avec l’œuf rien ne spawn 😕
    J'avais déjà essayé en spécifiant un biome pour voir si cela venait d'un problème avec l’œuf, mais sans aucuns résultats


  • Administrateurs

    Si tu codes en 1.6, as-tu vérifié que tu aie mis @NetworkMod ?



  • Oui je l'ai mis : @NetworkMod(clientSideRequired = true, serverSideRequired = false)
    Est ce que le problème peux venir de l' Entity et du Render du mob ? Si il faut je copie le code


Log in to reply