Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Bloc qui Infecte

    Sans suite
    1.7.10
    4
    13
    2194
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Fraiden last edited by

      Bonjour ou bonsoir

      Je veux créer un bloc qui peut infecté un autre bloc précis, par exemple un bloc de stone.
      J’ai cherché dans la classe de la vigne mais étant encore pas très fort en code java j’ai pas trouvé :s

      Vraiment **merci à ceux qui m’aideront !  **

      1 Reply Last reply Reply Quote 0
      • SCAREX
        SCAREX last edited by

        C’est à dire ? Tu veux faire un block qui se répand ?

        1 Reply Last reply Reply Quote 0
        • F
          Fraiden last edited by

          @‘SCAREX’:

          C’est à dire ? Tu veux faire un block qui se répand ?

          oui, qui remplace d’autre bloc spécifique  😉

          1 Reply Last reply Reply Quote 0
          • SCAREX
            SCAREX last edited by

            Tout ce fait dans la fonction updateTick, mais si tu veux comprendre le code il te faut apprendre le java d’abord

            1 Reply Last reply Reply Quote 0
            • F
              Fraiden last edited by

              @‘SCAREX’:

              Tout ce fait dans la fonction updateTick, mais si tu veux comprendre le code il te faut apprendre le java d’abord

              Je maîtrise les bases, tu peux m’expliqué je veux apprendre !

              1 Reply Last reply Reply Quote 0
              • SCAREX
                SCAREX last edited by

                Y’a pas grand chose à apprendre, il faut regarder le code de minecraft ou crée son propre code

                1 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                  Tu ajoutes la fonction updateTick dans ton bloc (il faut aussi mettre dans le constructeur this.setTickRandomly(true); ) et dans cette fonction tu check si les blocs autours sont de la stone (world.getBlock(x + 1, y, z) == Blocks.stone, (à faire aussi pour y + 1, z + 1, x - 1, y - 1 et z -1) et si c’est le cas tu fais un world.setBlock(x + 1, y, z, ClassePrincipale.tonBlock)

                  1 Reply Last reply Reply Quote 0
                  • F
                    Fraiden last edited by

                    @‘robin4002’:

                    Tu ajoutes la fonction updateTick dans ton bloc (il faut aussi mettre dans le constructeur this.setTickRandomly(true); ) et dans cette fonction tu check si les blocs autours sont de la stone (world.getBlock(x + 1, y, z) == Blocks.stone, (à faire aussi pour y + 1, z + 1, x - 1, y - 1 et z -1) et si c’est le cas tu fais un world.setBlock(x + 1, y, z, ClassePrincipale.tonBlock)

                    Comment on fait la fonction updateTick ?

                    this.setTickRandomly(true);
                    
                    (world.getBlock(x+1, y,z)) == Blocks.stone
                    (world.getBlock(x, y+1,z)) == Blocks.stone
                    (world.getBlock(x, y,z+1)) == Blocks.stone
                    (world.getBlock(x-1, y,z)) == Blocks.stone
                    (world.getBlock(x, y-1,z)) == Blocks.stone
                    (world.getBlock(x, y,z-1)) == Blocks.stone;
                    
                    World.setBlock(x+1, y, z, RadioActivity.irradiatedstone);
                    
                    1 Reply Last reply Reply Quote 0
                    • AymericRed
                      AymericRed last edited by

                      Ctrl+space dans la classe de ton bloc, puis tu prends updateTick.

                      1 Reply Last reply Reply Quote 0
                      • F
                        Fraiden last edited by

                        @‘AymericRed’:

                        Ctrl+space dans la classe de ton bloc, puis tu prends updateTick.

                        Cela ne fonctionne pas  😕

                         this.setTickRandomly(true);
                        
                             updateTick(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, p_149674_5_);
                        
                                   (world.getBlock(x+1, y,z)) == Blocks.stone
                                   (world.getBlock(x, y+1,z)) == Blocks.stone        
                                   (world.getBlock(x, y,z+1)) == Blocks.stone
                                   (world.getBlock(x-1, y,z)) == Blocks.stone        
                                   (world.getBlock(x, y-1,z)) == Blocks.stone
                                   (world.getBlock(x, y,z-1)) == Blocks.stone;        
                        
                        World.setBlock(x+1, y, z, RadioActivity.irradiatedstone);
                        
                        1 Reply Last reply Reply Quote 0
                        • robin4002
                          robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                          ça devrais plutôt ressembler à ça :

                             @Override
                             public void updateTick(World world, int x, int y, int z, Random rand)
                             {
                                 if(world.getBlock(x + 1, y, z) == Blocks.stone)
                                 {
                                     world.setBlock(x + 1, y, z, RadioActivity.irradiatedstone);
                                 }
                                 if(world.getBlock(x - 1, y, z) == Blocks.stone)
                                 {
                                     world.setBlock(x - 1, y, z, RadioActivity.irradiatedstone);
                                 }
                                 //etc …
                             }
                          

                          Par contre comme ceci il va infecter les 6 côtés en même temps.
                          Si tu veux éviter ça, il suffit d’utiliser un petit random + un switch :

                             @Override
                             public void updateTick(World world, int x, int y, int z, Random rand)
                             {
                                 switch(rand.nextInt(6))
                                 {
                                     case 0:
                                         if(world.getBlock(x + 1, y, z) == Blocks.stone)
                                         {
                                             world.setBlock(x + 1, y, z, RadioActivity.irradiatedstone);
                                         }
                                         break;
                                     case 1:
                                         if(world.getBlock(x - 1, y, z) == Blocks.stone)
                                         {
                                             world.setBlock(x - 1, y, z, RadioActivity.irradiatedstone);
                                         }
                                         break;
                                     case 2:
                                         //etc ..rand jusqu'à case 5
                                 }
                             }
                          
                          1 Reply Last reply Reply Quote 0
                          • F
                            Fraiden last edited by

                            Je comprends pas cela fonctionne pas en jeu 😕

                            1 Reply Last reply Reply Quote 0
                            • robin4002
                              robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                              Envoies le code complet de ton bloc.

                              1 Reply Last reply Reply Quote 0
                              • 1 / 1
                              • First post
                                Last post
                              Design by Woryk
                              Contact / Mentions Légales / Faire un don

                              MINECRAFT FORGE FRANCE © 2018

                              Powered by NodeBB