Spawning d'un mob



  • J'ai créer un mob qui ne spawnent pas (de jour comme de nuit). Je précise que je n'était pas en peaceful et que j'avais inspecté le biome beach. Voici un extrait de code (dans la classe principal de mon mod).

    @EventHandler
    public void init(FMLInitializationEvent event)
    {
    
    //Promethean
    EntityRegistry.registerGlobalEntityID(EntityPromethean.class, "mobPromethean",
    EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB());
    EntityRegistry.registerModEntity(EntityPromethean.class, "mobPromethean", 420, this.instance, 80, 1, true);
    EntityRegistry.addSpawn(EntityPromethean.class, 75, 1, 4, EnumCreatureType.monster, BiomeGenBase.swampland);
    EntityRegistry.addSpawn(EntityPromethean.class, 50, 1, 2, EnumCreatureType.monster, BiomeGenBase.beach);
    
    proxy.registerRender();
    }
    

    PS: y a t-il moyen de faire une mob qui spawnent le jour et la nuit et qui attaque à vue?


  • Administrateurs

    Pourquoi 2 addSpawn? 1 seul suffit. L'araignée attaque à vue la nuit.



  • Les deux addSpawn(…) sont là pour des biomes et probabilités différentes.

    Pour le spawn de jour, cela dépend de la classe mère de ton entité, par exemple: extends EntityMob fera qu'il ne spawn que si la luminosité est faible.



  • J'espère qu'il y aura une réponse, j'ai le même problème mais je vais attendre avant de poster un sujet


  • Administrateurs

    Normalement ça se règle dans la classe du mod, il y a une fonction canSpawnHere ou quelque chose comme ça.



  • @'robin4002':

    Normalement ça se règle dans la classe du mod, il y a une fonction canSpawnHere ou quelque chose comme ça.

    Pourquoi dans la class du mod plutôt dans celle de l'entity concernée regarder la spider ou sinon je viens de décompilez rapidement ce code c'est ça qu'il faudrait :

    
    public boolean bi()
    {
    if (this.p.a(getClass()) >= 15)
    {
    return false;
    }
    
    int i = ih.c(this.t);
    int j = ih.c(this.D.b);
    int k = ih.c(this.v);
    int l = this.p.a(i, j - 1, k);
    return (this.p.b(this.D)) && (this.p.a(this, this.D).size() == 0) && (this.p.l(i, j, k) > 8) && (!this.p.d(this.D));
    }
    
    

    La fonction ci-dessus est décompilée depuis jd-gui pour avec des valeurs à laisser si voulez que votre mob spawn le jour.
    Vous avez juste à trouver et à remplacer quelque nom comme celui du boolean b (), mais ça avec des recherches google ou dans le .java de l'araignée c'est réglé

    Bonne chance ^^


  • Administrateurs

    Heu oui, je voulais dire classe du mob x)