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

    Résolu Mob Spawner

    1.7.x
    1.7.x
    5
    14
    2726
    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.
    • bin4r1s
      bin4r1s dernière édition par

      Bonjour/Bonsoir. J’ai créé une structure où un mob spawner doit apparaître mais, alors que j’ai modifié ses “données”, il reste à l’entité du cochon.

      WorldGenDungeonRoomSmall.java (partie du mob spawner)

      
      world.setBlock(x + 4, y + 1, z + 4, Block.getBlockById(52));
      Entity entity;
      switch(rand.nextInt(7))
      {
      case 1:
             entity = new EntityZombie(world);
      break;
             case 2:
      entity = new EntitySkeleton(world);
      break;
      case 3:
      entity = new EntityWitch(world);
      break;
      case 4:
      entity = new EntitySpider(world);
      break;
      case 5:
      entity = new EntityCreeper(world);
      break;
      case 6:
      entity = new EntityEnderman(world);
      break;
      case 7:
      entity = new EntityCaveSpider(world);
      break;
      default:
      entity = new EntityZombie(world);
      break; // Nécessaire ?
      }
      TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getTileEntity(x + 4, y + 1, z + 4);
      tileentitymobspawner.func_145881_a().func_98265_a(entity);
      NBTTagCompound nbt = new NBTTagCompound();
      tileentitymobspawner.writeToNBT(nbt);
      nbt.setShort("minSpawnDelay",(short)50);
      nbt.setShort("maxSpawnDelay",(short)200);
      tileentitymobspawner.readFromNBT(nbt);
      

      Pouvez-vous m’aider ?

      Mes mods:

      • New Ores
      • More Dragons
      1 réponse Dernière réponse Répondre Citer 0
      • isador
        isador Moddeurs confirmés Modérateurs dernière édition par

        world.setBlock(x + 4, y + 1, z + 4, Block.getBlockById(52));
        Entity entity;
        
        entity = new TonEntity(world);
        
        TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getTileEntity(x + 4, y + 1, z + 4);
        tileentitymobspawner.func_145881_a().func_98265_a(entity);
        NBTTagCompound nbt = new NBTTagCompound();
        tileentitymobspawner.writeToNBT(nbt);
        nbt.setShort("minSpawnDelay",(short)50);
        nbt.setShort("maxSpawnDelay",(short)200);
        tileentitymobspawner.readFromNBT(nbt);
        

        je pense qu’il te faut mettre ca dans ton bloc spawner mais je ne suis sur de rien

        1 réponse Dernière réponse Répondre Citer 0
        • bin4r1s
          bin4r1s dernière édition par

          Si c’est retirer le switch, je ne vois pas ce que ça changerai, et après test, rien à changé.

          Mes mods:

          • New Ores
          • More Dragons
          1 réponse Dernière réponse Répondre Citer 0
          • isador
            isador Moddeurs confirmés Modérateurs dernière édition par

            bha la je sais pas je pensais que juste le retirer ca marcherai…

            1 réponse Dernière réponse Répondre Citer 0
            • bin4r1s
              bin4r1s dernière édition par

              Logiquement comme le switch assigne une valeur à entity différente de EntityPig, ça ne pose pas de problème.

              Mes mods:

              • New Ores
              • More Dragons
              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                world.markBlockForUpdate(x + 4, y + 1, z + 4) pour signaler que le bloc a été changé à la fin non ?
                Et à ta place je ferai le tileentitymobspawner.func_145881_a().func_98265_a(entity); après les autres fonctions nbt.

                1 réponse Dernière réponse Répondre Citer 0
                • bin4r1s
                  bin4r1s dernière édition par

                  
                  world.setBlock(x + 4, y + 1, z + 4, Block.getBlockById(52));
                  Entity entity;
                  switch(rand.nextInt(7))
                  {
                  case 1:
                  entity = new EntityZombie(world);
                  break;
                  case 2:
                  entity = new EntitySkeleton(world);
                  break;
                  case 3:
                  entity = new EntityWitch(world);
                  break;
                  case 4:
                  entity = new EntitySpider(world);
                  break;
                  case 5:
                  entity = new EntityCreeper(world);
                  break;
                  case 6:
                  entity = new EntityEnderman(world);
                  break;
                  case 7:
                  entity = new EntityCaveSpider(world);
                  break;
                  default:
                  entity = new EntityZombie(world);
                  break;
                  }
                  TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getTileEntity(x + 4, y + 1, z + 4);
                  NBTTagCompound nbt = new NBTTagCompound();
                  tileentitymobspawner.writeToNBT(nbt);
                  nbt.setShort("minSpawnDelay",(short)50);
                  nbt.setShort("maxSpawnDelay",(short)200);
                  tileentitymobspawner.readFromNBT(nbt);
                  tileentitymobspawner.func_145881_a().func_98265_a(entity);
                  world.markBlockForUpdate(x + 4, y + 1, x + 4);
                  
                  

                  ça ne marche pas 😞

                  Mes mods:

                  • New Ores
                  • More Dragons
                  1 réponse Dernière réponse Répondre Citer 0
                  • isador
                    isador Moddeurs confirmés Modérateurs dernière édition par

                    essaie de trouver des mod qui rajoute des mobSpawner, ou sinon le mod avec les souls shard

                    1 réponse Dernière réponse Répondre Citer 0
                    • gagoi
                      gagoi dernière édition par

                      D’après ton code tu écrit des nbt avant de les paramétrés. Je n’y connais rien en nbt :p. Mais d’un point de vue logique, il faudrait lire, puis paramétrer, et enfin écrire.

                      1 réponse Dernière réponse Répondre Citer 0
                      • bin4r1s
                        bin4r1s dernière édition par

                        @gagoi
                        J’avais remarqué mais comme je suivais un tuto, je me suis dit que c’était peut-être normal (mais ça ne change rien après test).

                        @isador34
                        Je cherche.

                        EDIT : J’ai beau chercher, les fonctions que je trouve dans les autres mods sont bizarres/différentes des miennes. Par exemple une fonction prend un String en argument à la place d’une entité (fonction de je ne trouve pas dans forge). Malgré avoir testé à peu près chacune d’entre-elles, je ne trouve pas. Pouvez-vous m’aider ?

                        Mes mods:

                        • New Ores
                        • More Dragons
                        1 réponse Dernière réponse Répondre Citer 0
                        • bin4r1s
                          bin4r1s dernière édition par

                          UP, help !

                          Mes mods:

                          • New Ores
                          • More Dragons
                          1 réponse Dernière réponse Répondre Citer 0
                          • bin4r1s
                            bin4r1s dernière édition par

                            Up, une idée ? 😞

                            Mes mods:

                            • New Ores
                            • More Dragons
                            1 réponse Dernière réponse Répondre Citer 0
                            • pulgan
                              pulgan dernière édition par

                              Utilise les codes des mobs spawner des donjons vanilla il doivent avoir la solution
                              Si le problème est résolu change la balise

                              1 réponse Dernière réponse Répondre Citer 0
                              • bin4r1s
                                bin4r1s dernière édition par

                                Après une trèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèès longue pause, j’ai finalement trouvé la solution :

                                
                                world.setBlock(x + 4, y + 1, z + 4, Blocks.mob_spawner, 0, 2);
                                
                                TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getTileEntity(x + 4, y + 1, z + 4);
                                if (tileentitymobspawner != null)
                                {
                                             tileentitymobspawner.func_145881_a().setEntityName(this.pickMobSpawner(rand));
                                }
                                else
                                {
                                            System.err.println("Failed to fetch mob spawner entity at (" + (x + 4) + ", " + (y + 1) + ", " + (z + 4) + ")");
                                }
                                

                                Sujet résolu.

                                Mes mods:

                                • New Ores
                                • More Dragons
                                1 réponse Dernière réponse Répondre Citer 0
                                • 1 / 1
                                • Premier message
                                  Dernier message
                                Design by Woryk
                                Contact / Mentions Légales

                                MINECRAFT FORGE FRANCE © 2018

                                Powered by NodeBB