• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Génération minerais

1.7.x
1.7.10
4
19
577
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • OverSquid
    OverSquid dernière édition par OverSquid 18 févr. 2019, 00:10 18 févr. 2019, 00:09

    Bonjour, j’ai suivi ce tuto mais il semble que cela ne fonctionne pas pour moi :
    https://www.minecraftforgefrance.fr/topic/618/générer-des-minerais/11

    Pourtant je n’ai pas d’erreurs indiquées :

    package com.hypala.hypalacore.common;
    import java.util.Random;
    import cpw.mods.fml.common.IWorldGenerator;
    import net.minecraft.block.Block;
    import net.minecraft.item.Item;
    import net.minecraft.world.World;
    import net.minecraft.world.chunk.IChunkProvider;
    import net.minecraft.world.gen.feature.WorldGenMinable;
    public class WorldGeneration implements IWorldGenerator
    {
    private int x;
    private int z;
    @Override
    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
    {
    {
    switch(world.provider.dimensionId)
    {
    case 0:
    generateSurface(world, random, chunkX * 16, chunkZ * 16);
    break;
    }
    }
    }
    private void generateSurface(World world, Random random, int i, int j)
    {
    this.addOreSpawn(HypalaCore.aithiaOre, 0, 0001, world, random, x, z, 16, 16, 6, 50, 3, 20);
    }
    private void addOreSpawn(Block aithiaOre, int metadata, int i, World world, Random random, int x2, int z2, int maxX, int maxZ, int maxVeinSize, int chancesToSpawn, int minY, int maxY)
    {
    assert maxY > minY : "La position Y maximum doit être supérieure à la position Y minimum.";
    assert maxX > 0 && maxX <= 16 : "X doit se trouver entre 0 et 16.";
    assert minY > 0 : "La position Y minimum doit être supérieure à 0.";
    assert maxY < 256 && maxY > 0 : "La position Y maximum doit se trouver entre 0 et 256.";
    assert maxZ > 0 && maxZ <= 16 : "Z doit se trouver entre 0 et 16.";
    for(int i1 = 0; i1 < chancesToSpawn; i1++)
    {
    int posY = random.nextInt(128);
    if((posY <= maxY) && (posY >= minY))
    {
    }
    }
    }
    }

    Merci pour votre aide et votre temps je vient de débuter et je ne suis pas familier avec le java

    1 réponse Dernière réponse Répondre Citer 0
    • SpyMan
      SpyMan dernière édition par SpyMan 18 févr. 2019, 03:33 18 févr. 2019, 03:29

      yo, ton code est incomplet tu as grillé des etapes x) deplus tes 2 variables x et y en private au dessus sont inutile

      private void addOreSpawn(Block aithiaOre, int metadata, int i, World world, Random random, int x2, int z2, int maxX, int maxZ, int maxVeinSize, int chancesToSpawn, int minY, int maxY)
      {
      assert maxY > minY : "La position Y maximum doit être supérieure à la position Y minimum.";
      assert maxX > 0 && maxX <= 16 : "X doit se trouver entre 0 et 16.";
      assert minY > 0 : "La position Y minimum doit être supérieure à 0.";
      assert maxY < 256 && maxY > 0 : "La position Y maximum doit se trouver entre 0 et 256.";
      assert maxZ > 0 && maxZ <= 16 : "Z doit se trouver entre 0 et 16.";
      for(int i1 = 0; i1 < chancesToSpawn; i1++)
      {
      int posY = random.nextInt(128);
      if((posY <= maxY) && (posY >= minY))
      {
      // I think something is missing here x)
      }
      }
      }

      en voyant ce code tu ne crois pas que il manque quelque chose pour dire a minecraft de posé tel block a tel endroit ?

      OverSquid 1 réponse Dernière réponse 18 févr. 2019, 14:11 Répondre Citer 0
      • ZunF1x
        ZunF1x dernière édition par 18 févr. 2019, 06:56

        Tien pour t’aider voici ce tutoriel

        OverSquid 1 réponse Dernière réponse 18 févr. 2019, 14:20 Répondre Citer 0
        • OverSquid
          OverSquid @SpyMan dernière édition par OverSquid 18 févr. 2019, 14:18 18 févr. 2019, 14:11

          @SpyMan Oui effectivement, c’est bien ce code à mettre ?

          (new WorldGenMinable(block, metadata, maxVeinSize, target)).generate(world, random, blockXPos + random.nextInt(16), posY, blockZPos + random.nextInt(16)); 
          

          Le problème c’est que lorsque je met ce code et que je retire les variables x et y j’ai des erreurs :

          4b81187b-0e5a-42b8-b593-8422acd8a62b-image.png

          Edit: J’ai également des erreurs avec ce code où il me demande de remplacer le i en i1 :

          for(int i = 0; i < chancesToSpawn; i++)
          
          1 réponse Dernière réponse Répondre Citer 0
          • OverSquid
            OverSquid @ZunF1x dernière édition par 18 févr. 2019, 14:20

            @Askipie Le tutoriel que tu me donne je l’ai déjà vu mais ce n’est pas la même technique que dans le tutoriel que j’ai utilisé

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 18 févr. 2019, 18:21

              Et surtout la qualité des tutoriels de checconio est vraiment … très moyenne.
              Tous les problèmes que tu as sont juste des soucis de nommage de paramètre.

              Dans la définition de la fonction generateSurface i et j devrait être x et z.

              Dans la fonction addOreSpawn, aithiaOre devrait être Block.
              Et le reste c’est le même genre de problème.

              1 réponse Dernière réponse Répondre Citer 0
              • OverSquid
                OverSquid dernière édition par OverSquid 18 févr. 2019, 20:51 18 févr. 2019, 20:50

                J’ai réussi à régler quelques erreurs mais il en reste deux :

                59a2be97-5321-41a6-9436-8c34c052b43f-image.png

                Une où la variable i qui définit le taux de spawn n’est pas acceptée car il me dit que cette variable existe déjà mais si je remplace i par une autre lettre j’ai toujours l’erreur

                Et une ou cette ligne de code pose problème :

                (new WorldGenMinable(aithiaOre, metadata, maxVeinSize, target)).generate(world, random, blockXPos + random.nextInt(16), posY, blockZPos + random.nextInt(16));
                

                Ce sont : target , blockXPos et posYblockZPos qui causent problèmes, je ne sais pas quoi mettre au deux derniers mais au target lorsque je met stone comme le reste du code l’erreur persiste

                1 réponse Dernière réponse Répondre Citer 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 18 févr. 2019, 20:54

                  Tu as au moins suivis correctement le tutoriel ?

                  Ta déclaration de ta fonction addOreSpawn devrait être comme ça :
                  public void addOreSpawn(Block block, int metadata, Block target, World world, Random random, int blockXPos, int blockZPos, int maxX, int maxZ, int maxVeinSize, int chancesToSpawn, int minY, int maxY)

                  Et la ligne où tu l’appel devrait être :
                  this.addOreSpawn(HypalaCore.aithiaOre, 0, Blocks.stone, world, random, x, z, 16, 16, 6, 50, 3, 20);

                  OverSquid 1 réponse Dernière réponse 18 févr. 2019, 21:01 Répondre Citer 0
                  • OverSquid
                    OverSquid @robin4002 dernière édition par OverSquid 18 févr. 2019, 21:01 18 févr. 2019, 21:01

                    J’avais fait comme ça avant et j’avais une erreur lorsque je fesait comme ça, je viens de le refaire et j’ai toujours une erreur :

                    cfbacbfd-a1ae-4116-a887-5cd62f7f1e04-image.png

                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 18 févr. 2019, 21:05

                      Vires ce 0001 qui n’a aucun sens et mets Blocks.stone comme je l’ai indiqué.

                      OverSquid 1 réponse Dernière réponse 18 févr. 2019, 21:07 Répondre Citer 0
                      • OverSquid
                        OverSquid @robin4002 dernière édition par 18 févr. 2019, 21:07

                        Ce message a été supprimé !
                        1 réponse Dernière réponse Répondre Citer 0
                        • OverSquid
                          OverSquid dernière édition par 18 févr. 2019, 21:09

                          C’est bon j’ai mis le code, j’ai du relancer eclipse car ça ne voulait pas s’actualiser et ça marche, saurais tu ou mettre le code pour rajouter des blocs à générer ?

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 18 févr. 2019, 21:16

                            Toujours dans la fonction generateSurface, il suffit de mettre un nouvel appel à la fonction addOreSpawn.

                            OverSquid 1 réponse Dernière réponse 18 févr. 2019, 21:16 Répondre Citer 0
                            • OverSquid
                              OverSquid @robin4002 dernière édition par 18 févr. 2019, 21:16

                              @robin4002 Ok je vais tester ça merci de ton aide

                              1 réponse Dernière réponse Répondre Citer 0
                              • OverSquid
                                OverSquid dernière édition par 18 févr. 2019, 21:40

                                @robin4002 J’aurais juste une dernière question : peut on mettre des pourcentages dans le taux de spawn car j’essaye mais ça ne semble pas fonctionner

                                1 réponse Dernière réponse Répondre Citer 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 18 févr. 2019, 22:11

                                  Non, tu ne peux pas mettre un pourcentage comme argument de fonction.

                                  Si tu veux descendre plus bas que un, il faut ajouter un random.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • OverSquid
                                    OverSquid dernière édition par 18 févr. 2019, 22:12

                                    C’est à dire ?

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • robin4002
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002 18 févr. 2019, 23:04 18 févr. 2019, 23:03

                                      if(random.nextInt(2) == 0) -> génère un nombre entre 0 et 2 (exclut) donc soit 1 soit 0. Un if comme cela donne une chance sur deux (ou encore 50% de chance).
                                      if(random.nextInt(3) == 0) -> génère un nombre entre 0 et 3 (exclut) donc soit 2, soit 1 soit 0. Un if comme cela donne une chance sur trois (ou encore 33,33333 % de chance).

                                      etc.

                                      C’est de la simple logique.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • OverSquid
                                        OverSquid dernière édition par 18 févr. 2019, 23:04

                                        Ok merci

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • 1 / 1
                                        19 sur 19
                                        • Premier message
                                          19/19
                                          Dernier message
                                        Design by Woryk
                                        Contact / Mentions Légales

                                        MINECRAFT FORGE FRANCE © 2018

                                        Powered by NodeBB