• 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 Scanner les blocks allentour

1.7.x
1.7.10
4
44
8.2k
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.
  • Albanninou
    Albanninou dernière édition par 8 juil. 2015, 17:38

    public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_){
    }

    es-que sa équivaut a sa ?

    public void updateTick(World world, int x, int y, int z, Random rand){
    }

    Avec world , x , y , z pour la position de mon bloc ?

    1 réponse Dernière réponse Répondre Citer 0
    • SCAREX
      SCAREX dernière édition par 8 juil. 2015, 17:45

      Ve sont des noms de variables, tu peux mettre tout ce que tu veux. Mais c’est mieux de respecter la convention java.

      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
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 8 juil. 2015, 17:48

        On pourrait même mettre :
        public void updateTick(World world, int robinEstUnAdminTresPuissant, int ScarexCodeTresBien, int albanninouAEncoreBesoinDaide, Random rand){
        ça serait la même chose.
        Bon en général on met plutôt des noms de variable qui vont avec la situation.

        1 réponse Dernière réponse Répondre Citer 0
        • Albanninou
          Albanninou dernière édition par 8 juil. 2015, 17:48

          la question est pas si je peut les renommer mais si elle correspond bien a sa (si c’est bien les coordonnés de mon block)

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 8 juil. 2015, 17:51

            Oui c’est ça. En général quand tu as world et 3 int après c’est toujours world, x, y, z

            1 réponse Dernière réponse Répondre Citer 0
            • Albanninou
              Albanninou dernière édition par 8 juil. 2015, 17:57

              et le rand c’est quoi ?

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 8 juil. 2015, 18:00

                Une instance de Random.

                1 réponse Dernière réponse Répondre Citer 0
                • Albanninou
                  Albanninou dernière édition par 8 juil. 2015, 18:32

                  Du coup j’ai fait sa :

                  public void updateTick(World world, int x, int y, int z, Random rand){
                  Block block;
                  Material Materiaux;
                  for(int a = x -4;a!=8;a++){
                  for(int b = y -4;b!=8;b++){
                  for(int c = z-4;c!=8;c++){
                  block = world.getBlock(a,b,c);
                  Materiaux = block.getMaterial();
                  if(Materiaux == Material.plants){
                  // fonction pour faire poussez la plante
                  }
                  }
                  }
                  }
                  }

                  mais je ne trouve pas la méthode pour faire pousser la plante

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 8 juil. 2015, 18:45

                    Regarde ce que fait le bonne meal quand on fait un clic droit (ItemDye)

                    1 réponse Dernière réponse Répondre Citer 0
                    • Albanninou
                      Albanninou dernière édition par 8 juil. 2015, 18:53

                      j’y comprend rien –’ pour quoi ils on pas écrit comme tout le monde (en anglais bien sur ) parce que leur func_2656287_8 c’est du charabia incompréhensible

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 8 juil. 2015, 19:10

                        ​        if (block instanceof IGrowable)
                               {
                                   IGrowable igrowable = (IGrowable)block;
                                   if (igrowable.func_149851_a(world, a, b, c, world.isRemote))
                                   {
                                       if (!world.isRemote)
                                       {
                                           if (igrowable.func_149852_a(world, world.rand, a, b, c))
                                           {
                                               igrowable.func_149853_b(world, world.rand, a, b, c);
                                           }
                                       }
                                   }
                               }

                        Les func_xxxx c’est parce que les noms de fonctions n’ont pas été traduites.

                        1 réponse Dernière réponse Répondre Citer 0
                        • Albanninou
                          Albanninou dernière édition par 8 juil. 2015, 19:46

                          D’accord un grand merci je test sa dessuite

                          1 réponse Dernière réponse Répondre Citer 0
                          • Albanninou
                            Albanninou dernière édition par 8 juil. 2015, 19:53

                            c’est possible de faire une pause sans créer un tread ?

                            1 réponse Dernière réponse Répondre Citer 0
                            • Albanninou
                              Albanninou dernière édition par 8 juil. 2015, 19:55

                              j’ai un problème je viens de me rendre compte que sa tick pas –’
                              voila le code :

                              package com.Albanninou.Testmod.Blocks;
                              import java.util.Random;
                              import com.Albanninou.Testmod.CreativeTab;
                              import com.Albanninou.Testmod.Blocks.TileEntity.TileEntityLampOfGrowth;
                              import com.Albanninou.Testmod.Items.DropOfBlood;
                              import com.Albanninou.Testmod.Items.Luminite;
                              import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                              import cpw.mods.fml.common.registry.GameRegistry;
                              import net.minecraft.block.Block;
                              import net.minecraft.block.IGrowable;
                              import net.minecraft.block.material.Material;
                              import net.minecraft.init.Blocks;
                              import net.minecraft.init.Items;
                              import net.minecraft.item.ItemStack;
                              import net.minecraft.tileentity.TileEntity;
                              import net.minecraft.world.World;
                              public class LampForGrowth extends Block {
                              public static Block LampForGrowth;
                              private int a = 8;
                              protected LampForGrowth(Material material) {
                              super(material);
                              setTickRandomly(true);
                              }
                              public static void Registery() {
                              LampForGrowth = new LampForGrowth(Material.glass).setBlockName("LampForGrowth")
                              .setBlockTextureName("TestMod:LampForGrowth").setCreativeTab(CreativeTab.CreativeTabs).setHardness(3.0f)
                              .setLightLevel(1.0f);
                              GameRegistry.registerBlock(LampForGrowth, "LampForGrowth");
                              GameRegistry.addRecipe(new ItemStack(LampForGrowth, 1), new Object[] { "AXZ", "XYX", "ZXA", 'X',
                              Luminite.Luminite, 'Y', Items.iron_ingot, 'A', DropOfBlood.DropOfBlood, 'Z', Items.bone });
                              GameRegistry.addRecipe(new ItemStack(LampForGrowth, 1), new Object[] { "AXZ", "XYX", "ZXA", 'X',
                              Luminite.Luminite, 'Y', Items.iron_ingot, 'Z', DropOfBlood.DropOfBlood, 'A', Items.bone });
                              }
                              @Override
                              public TileEntity createTileEntity(World world, int metadata) {
                              return new TileEntityLampOfGrowth(world);
                              }
                              @Override
                              public boolean hasTileEntity(int metadata) {
                              return true;
                              }
                              public void updateTick(World world, int x, int y, int z, Random rand) {
                                     System.out.println("tick");
                              Block block;
                              Material Materiaux;
                              if (a == 8) {
                              System.out.println("On rentre dans la boucle");
                              for (a = x - 4; a != 8; a++) {
                              for (int c = z - 4; c != 8; c++) {
                              block = world.getBlock(a, y, c);
                              Materiaux = block.getMaterial();
                              if (Materiaux == Material.plants) {
                              // fonction pour faire poussez la plante
                              if (block instanceof IGrowable)
                                     {
                                         IGrowable igrowable = (IGrowable)block;
                                         if (igrowable.func_149851_a(world, a, y, c, world.isRemote))
                                         {
                                             if (!world.isRemote)
                                             {
                                                 if (igrowable.func_149852_a(world, world.rand, a, y, c))
                                                 {
                                                     igrowable.func_149853_b(world, world.rand, a, y, c);
                                                 }
                                             }
                                         }
                                     }
                              }
                              }
                              }
                              }
                              }
                              }
                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 8 juil. 2015, 19:58

                                Pourtant ça devrait, tu as le setTickRandomly(true);
                                Ajoute
                                @Override au dessus de updateTick

                                1 réponse Dernière réponse Répondre Citer 0
                                • Albanninou
                                  Albanninou dernière édition par 8 juil. 2015, 20:06

                                  je viens d’essailler , vous été d’accord que je devrait avoir écrit tick dans la console a chaque vois que sa tick (désoler pour le jeu de mot). Mais la sa écrit jamais tick pour temps le bloc est poser juste devant moi

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Albanninou
                                    Albanninou dernière édition par 8 juil. 2015, 20:08

                                    j’ai attendus plus longtemps , sa tick au bout de 5 min par contre sa fait crash minecraft (les mob bouge plus et impossible de rentrer dans un coffre)

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • SCAREX
                                      SCAREX dernière édition par 8 juil. 2015, 20:10

                                      Si tu as une tileEntity, utilise la fonction updateEntity de la tileEntity plutôt.

                                      Pour le tick : tu dois avoir une boucle infinie quelque part.

                                      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
                                      • Albanninou
                                        Albanninou dernière édition par 8 juil. 2015, 20:14

                                        c’est a dire pour le tileEntity ?

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • SCAREX
                                          SCAREX dernière édition par 8 juil. 2015, 20:23

                                          Ré-écris une fonction qui s’appelle updateEntity (plus trop sûr du nom, fait alt + shift + s puis “override/implement methods” pour trouver la bonne). Par contre, ton algorithme n’est pas bon du tout, je te conseille de créer un int qui va s’ajouter à ceux des coordonnées au lieu d’initilaiser ce int à la valeur des coordonnées, exemple :
                                          (tu utilises une valeur dans ton block, ce qui n’est pas à faire)

                                          for (a = x - 4; a != 8; a++) {
                                          for (int c = z - 4; c != 8; c++) {
                                          block = world.getBlock(a, y, c);
                                          // patati patata
                                          }

                                          devient :

                                          for (int i = -4; i <= 8; i++) {
                                          block = world.getBlock(x + i, y + j, z + k);
                                          // patati patata
                                          }

                                          çà évite de s’embrouiller.

                                          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
                                          • 1
                                          • 2
                                          • 3
                                          • 2 / 3
                                          21 sur 44
                                          • Premier message
                                            21/44
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB