• 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

Générer une structure

La génération & les dimensions
1.7.x
21
67
29.3k
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.
  • robin4002
    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 11 févr. 2015, 17:42

    world.setBlockState(new BlockPos(x, y, z), Blocks.cobbleStone.getDefaultBlockState());

    1 réponse Dernière réponse Répondre Citer 0
    • darkvince37
      darkvince37 dernière édition par 11 févr. 2015, 17:50

      Merci sa marche voilà ce que j’ai mis

      ​ public boolean generate(World worldIn, Random random, int x, int y, int z)
          {
              if (!worldIn.isRemote)
                      {
              worldIn.setBlockState(new BlockPos(x, y, z), Blocks.cobblestone.getDefaultState());
              return true;
              }
              return false;
              }
      1 réponse Dernière réponse Répondre Citer 0
      • SCAREX
        SCAREX dernière édition par 11 févr. 2015, 17:54

        J’avais oublié de préciser que c’était une fonction.

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        1 réponse Dernière réponse Répondre Citer 0
        • darkvince37
          darkvince37 dernière édition par 12 févr. 2015, 15:14

          J’ai un autre truc c’est que quand je mais 1 sa m’en mais partout quand meme je voudrai en avoir 10 max dans un monds mais sa marche pas

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 12 févr. 2015, 17:31

            ? J’ai rien compris

            1 réponse Dernière réponse Répondre Citer 0
            • darkvince37
              darkvince37 dernière édition par 12 févr. 2015, 18:38

              C’est bon j’ai trouver,

              int x1 = x + random.nextInt(16);

              int y1 = 75;
              int z1 = z + random.nextInt(16);
              for (int i = 0; i < 1; i++)

              if (random.nextInt(900) == 0)
                       WorldGenZombie.generate(world, random, x1, y1, z1); }

              Mais je voudrai ajouter dans un biome spécial mais le code ne marche pas

              1 réponse Dernière réponse Répondre Citer 0
              • Yorwan
                Yorwan dernière édition par 24 févr. 2015, 16:53

                bonjour j’aimerais créer une structure “complexe” c’est a dire composé de plusieurs structure qui puisse s’ajouter indépendamment à la manière d’un village de pnj comment faire

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREX
                  SCAREX dernière édition par 25 févr. 2015, 18:56

                  @‘Asmath’:

                  bonjour j’aimerais créer une structure “complexe” c’est a dire composé de plusieurs structure qui puisse s’ajouter indépendamment à la manière d’un village de pnj comment faire

                  Regarde dans les classes du jeu

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

                  1 réponse Dernière réponse Répondre Citer 0
                  • Deleted
                    Deleted dernière édition par 10 janv. 2016, 11:27

                    Désolé du UP
                    Comment on pourrait faire en sorte de ne générer qu’une seule fois la structure, ou alors de baisser énormément sa fréquence, car même avec une boucle for int i = 1, sa ne fait pas grand chose.

                    1 réponse Dernière réponse Répondre Citer 0
                    • SCAREX
                      SCAREX dernière édition par 10 janv. 2016, 13:11

                      c’est vrai qu’une boucle for int i = 1 c’est très utile…. La fonction generate est appelée une fois par chunk il me semble donc il faut rajouter une condition avec un random, après pour ce qui est de le générer qu’une seule fois, regarde la génération des strongholds, ça devrait aider car ceux-ci ne sont générés qu’un certain nombre de fois

                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                      Pas de demandes de support par MP ni par skype SVP.
                      Je n'accepte sur skype que l…

                      1 réponse Dernière réponse Répondre Citer 0
                      • Ama
                        Ama dernière édition par 10 janv. 2016, 18:40

                        il faut étendrr ta classe de MapGenStructure et sauvegarder sa génération dans les nbt tags aussi il me semble

                        Si je t'ai filé un coup de main n'oublie pas le + / -
                        Par contre évite les demandes d'aides en MP, tu sera sympa'

                        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                        1 réponse Dernière réponse Répondre Citer 0
                        • R
                          Raphmaster6 dernière édition par 3 oct. 2016, 16:56

                          J’aimerais savoir comment créer un Item qui permet de générer une structure, est-ce possible et si oui, pouvez-vous me donner quelques pistes ou un tutoriel ?

                          1 réponse Dernière réponse Répondre Citer 0
                          • SCAREX
                            SCAREX dernière édition par 20 oct. 2016, 10:27

                            Tu as juste à créer un item et ré-écrire la fonction onItemUse (je suis plus trop sûr du nom) ou onItemRightClick et générer ta structure dans cette fonction

                            Site web contenant mes scripts : http://SCAREXgaming.github.io

                            Pas de demandes de support par MP ni par skype SVP.
                            Je n'accepte sur skype que l…

                            1 réponse Dernière réponse Répondre Citer 0
                            • Deleted
                              Deleted dernière édition par 19 avr. 2017, 17:38

                              Bonsoir, je crois qu’il m’arrive les problèmes les + improbables, je ne vois aucune autres solutions.
                              Je viens de créer un WorldGenerator, mais désormais impossible de générer une nouvelle map, car j’obtiens 1% par minutes, et rien dans la console. Du coup, je viens de relier mon code, sûrement une erreur que je n’ai pas vu, une boucle trop gourmande ou autre chose d’insensé, je ne sais pas.
                              Mon IWorldGenerator :

                              public class CustomWorldGenerator implements IWorldGenerator
                              {
                              public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
                              {
                              if(world.provider.getDimension() == 0)
                              {
                              this.generateSurface(world, random, chunkX * 16, chunkZ * 16);
                              }
                              }
                              private void generateSurface(World world, Random random, int i, int j)
                              {
                              int x1 = i + random.nextInt(16);
                              int y1 = random.nextInt(128);
                              int z1 = j + random.nextInt(16);
                              for (int i0 = 0; i < 10; i++) // Il vaut mieux mettre une valeur élevée
                              {
                              (new WorldGenTotem()).generate(world, random, new BlockPos(x1, y1, z1));
                              }
                              }
                              }

                              Et ma classe WorldGenerator :

                              public class WorldGenTotem extends WorldGenerator
                              {
                              @Override
                              public boolean generate(World world, Random random, BlockPos pos)
                              {
                              if (!world.isRemote)
                              {
                              world.setBlockState(pos, Blocks.COBBLESTONE.getDefaultState());
                              world.setBlockState(pos.up(), Blocks.COBBLESTONE.getDefaultState());
                              world.setBlockState(pos.up(2), Blocks.SPONGE.getDefaultState());
                              EntityCreeper creeper = new EntityCreeper(world);
                              creeper.setPosition(pos.getX(), pos.getY() + 3, pos.getZ());
                              world.spawnEntityInWorld(creeper);
                              return true;
                              }
                              return false;
                              }
                              }

                              Et mon IWorldGenerator est enregistré dans ma méthode init, à la fin. Je suis loin d’avoir fini ma pyramide…
                              Merci d’avance !

                              PS = Si je retire l’enregistrement de mon IWorldGenerator, le problème disparaît, et la génération de carte redevient fluide !

                              1 réponse Dernière réponse Répondre Citer 0
                              • LeBossMax2
                                LeBossMax2 dernière édition par 19 avr. 2017, 18:17

                                Salut, dans ton IWorldGenerator , tu as une boucle mais tu t’est trompé entre i et i0. Donc si i est négatif, ça prends beaucoup de temps à parcourir la boucle.

                                1 réponse Dernière réponse Répondre Citer 0
                                • Deleted
                                  Deleted dernière édition par 19 avr. 2017, 19:07

                                  Merci beaucoup, problème résolu, comme quoi la moindre petite erreur dans une boucle peut fausser toute la génération.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Deleted
                                    Deleted dernière édition par 20 avr. 2017, 14:46

                                    Rebonjour, une idée pourquoi ce code me génère plusieurs fois ma structure, alors que ça ne devrait pas être le cas ?

                                    private void generateSurface(World world, Random random, int i, int j)
                                    {
                                    if(world.isRemote)
                                    return;
                                    int x1 = i + random.nextInt(16);
                                    int y1 = 70;
                                    int z1 = j + random.nextInt(16);
                                    if(world.getBiome(new BlockPos(x1, y1, z1)) == Biomes.DESERT && counter == 0)
                                    {
                                    if((new CREEPSWorldGenPyramid()).generate(world, random, new BlockPos(x1, y1, z1)));
                                    {
                                    System.out.println("xCoord = " + x1);
                                    System.out.println("zCoord = " + z1);
                                    counter = 1;
                                    System.out.println("counter : " + counter);
                                    }
                                    }
                                    }

                                    J’ai pas essayé avec un boolean, mais à mon avis ce serait le même résultat.
                                    La variable counter est initialisée + haut dans ma classe IWorldGenerator.
                                    Voici les logs de la console :

                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:36]: yCoord = 70
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 63
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 62
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 61
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:36]: yCoord = 70
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 69
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 68
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 67
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 66
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:36]: yCoord = 70
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 70
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:36]: yCoord = 70
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 69
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:36]: yCoord = 70
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.CREEPSWorldGenPyramid:generate:42]: minYCoord = 70
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:38]: xCoord = -233
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:40]: zCoord = -149
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:43]: counter : 1
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:38]: xCoord = -235
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:40]: zCoord = -132
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:43]: counter : 1
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:38]: xCoord = -242
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:40]: zCoord = -141
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:43]: counter : 1
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:38]: xCoord = -254
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:40]: zCoord = -121
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:43]: counter : 1
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:38]: xCoord = -245
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:40]: zCoord = -100
                                    [16:33:38] [Server thread/INFO] [STDOUT/]: [fr.plaigon.morecreepsandweirdos.common.worldgen.MCAWGenerator:generateSurface:43]: counter : 1

                                    Merci d’avance !

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • Sorax
                                      Sorax dernière édition par 20 avr. 2017, 15:38

                                      Tu n’appelles pas cette méthode dans une boucle de taille 5 ?

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • Deleted
                                        Deleted dernière édition par 20 avr. 2017, 15:44

                                        Non, voici ma classe entière ?

                                        public class MCAWGenerator implements IWorldGenerator
                                        {
                                        private byte counter = 0;
                                        public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
                                        {
                                        if(world.provider.getDimension() == 0)
                                        {
                                        this.generateSurface(world, random, chunkX * 16, chunkZ * 16);
                                        }
                                        }
                                        private void generateSurface(World world, Random random, int i, int j)
                                        {
                                        if(world.isRemote)
                                        return;
                                        int x1 = i + random.nextInt(16);
                                        int y1 = 70;
                                        int z1 = j + random.nextInt(16);
                                        if(world.getBiome(new BlockPos(x1, y1, z1)) == Biomes.DESERT && counter == 0)
                                        {
                                        if((new CREEPSWorldGenPyramid()).generate(world, random, new BlockPos(x1, y1, z1)));
                                        {
                                        System.out.println("xCoord = " + x1);
                                        System.out.println("zCoord = " + z1);
                                        counter = 1;
                                        }
                                        }
                                        }
                                        }
                                        1 réponse Dernière réponse Répondre Citer 0
                                        • Sorax
                                          Sorax dernière édition par 20 avr. 2017, 16:20

                                          Il y a peut-être un truc que je ne vois pas, mais pour moi il a deux chose qui peuvent causer ça :

                                          • MCAWGenerator est instancier plusieurs fois et à chaque fois la méthode generate est appelée, si c’est le cas et que ça viens de toi, c’est facile à corriger sinon c’est que ça viens de Forge.
                                          • MCAWGenerator est instancier une fois mais la génération du monde est multi threadé et la méthode generate est appelé plusieurs fois, auquel cas, t’as variable counter n’est pas partagé et il faut la synchroniser.
                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 3 / 4
                                          41 sur 67
                                          • Premier message
                                            41/67
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB