MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Scanner les blocks allentour

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    44 Messages 4 Publieurs 8.7k Vues 1 Watching
    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.
    • AlbanninouA Hors-ligne
      Albanninou
      dernière édition par

      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
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        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
        • AlbanninouA Hors-ligne
          Albanninou
          dernière édition par

          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
          • AlbanninouA Hors-ligne
            Albanninou
            dernière édition par

            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
            • SCAREXS Hors-ligne
              SCAREX
              dernière édition par

              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
              • AlbanninouA Hors-ligne
                Albanninou
                dernière édition par

                c’est a dire pour le tileEntity ?

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREXS Hors-ligne
                  SCAREX
                  dernière édition par

                  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
                  • AlbanninouA Hors-ligne
                    Albanninou
                    dernière édition par

                    d’accord mais le updateEntity je dois le metre dans quelle class ?

                    1 réponse Dernière réponse Répondre Citer 0
                    • SCAREXS Hors-ligne
                      SCAREX
                      dernière édition par

                      TileEntity, je l’ai dit dans les messages précédents.

                      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
                      • AlbanninouA Hors-ligne
                        Albanninou
                        dernière édition par

                        un problème se pose comment je récupère les coordonne de mon bloc du coup . (question con mais je suis pas doué en programmation minecraft)

                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002R Hors-ligne
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                          dernière édition par

                          Regardes dans la classe TileEntity, tu as directement les variables contenant les coordonnées (x/y/zCoord il me semble)

                          1 réponse Dernière réponse Répondre Citer 0
                          • 1
                          • 2
                          • 3
                          • 2 / 3
                          • Premier message
                            Dernier message
                          Design by Woryk
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB