MFF

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

    Mob attiré vers un bloc

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    18 Messages 4 Publieurs 2.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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      Salut,
      Voici la classe d’ia que tu souhaitais ? Je te l’ai un peu commenté, si tu as des questions, n’hésite pas :

      
      import net.minecraft.block.Block;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.ai.EntityAIBase;
      
      public class EntityAIMoveToCustomBlock extends EntityAIBase
      {
      private EntityLiving livingEntity;
      private double xPosition;
      private double yPosition;
      private double zPosition;
      private double speed;
      private Block targetBlockType;
      private int radiusDetection;
      
      public EntityAIMoveToCustomBlock(EntityLiving p_i1648_1_, double p_i1648_2_, Block targetBlockType, int radiusDetection)
      {
      this.livingEntity = p_i1648_1_;
      this.speed = p_i1648_2_;
      this.targetBlockType = targetBlockType;
      this.radiusDetection = radiusDetection;
      this.setMutexBits(1);
      }
      
      /**
      * Returns whether the EntityAIBase should begin execution.
      */
      public boolean shouldExecute()
      {
      for(int xOffset = -radiusDetection; xOffset < radiusDetection; xOffset++)//On remonte l'axe des X
      {
      for(int zOffset = -radiusDetection; zOffset < radiusDetection; zOffset++)//On remonte l'axe des Z
      {
      if(livingEntity.worldObj.getBlock((int)livingEntity.posX + xOffset, (int)livingEntity.posY, (int)livingEntity.posZ + zOffset) == targetBlockType)//Si le block situé à un couple spécifique de coordonnées (précédemment remontées via les for loops), correspond à ton block recherché
      {
      //Alors on affecte au couple de positions que l'entity va devoir suivre
      this.xPosition = livingEntity.posX + xOffset;
      this.yPosition = livingEntity.posY;
      this.zPosition = livingEntity.posZ + zOffset;
      return true;
      }
      }
      }
      return false;
      }
      
      /**
      * Returns whether an in-progress EntityAIBase should continue executing
      */
      public boolean continueExecuting()
      {
      return !this.livingEntity.getNavigator().noPath();//On continue tant que l'entity a un PathNavigate d'instancié
      }
      
      /**
      * Execute a one shot task or start executing a continuous task
      */
      public void startExecuting()
      {
      this.livingEntity.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed);//On la fait se déplacer si shouldExecute a renvoyé true, donc si le couple de positions a forcément été reset à de bonnes valeurs
      }
      }
      
      

      Ton constructeur devrait donc désormais ressembler à ceci :

      
      public Constructeur(World world) {
      super(world);
      this.tasks.addTask(0, new EntityAIMoveToCustomBlock(this, 2.0D, ClashOfClan.blockElixir, 9));
      }
      
      
      1 réponse Dernière réponse Répondre Citer 2
      • D Hors-ligne
        death_xXX
        dernière édition par

        @‘Plaigon’:

        Salut,
        Voici la classe d’ia que tu souhaitais ? Je te l’ai un peu commenté, si tu as des questions, n’hésite pas :

        
        import net.minecraft.block.Block;
        import net.minecraft.entity.EntityLiving;
        import net.minecraft.entity.ai.EntityAIBase;
        
        public class EntityAIMoveToCustomBlock extends EntityAIBase
        {
           private EntityLiving livingEntity;
           private double xPosition;
           private double yPosition;
           private double zPosition;
           private double speed;
           private Block targetBlockType;
           private int radiusDetection;
        
           public EntityAIMoveToCustomBlock(EntityLiving p_i1648_1_, double p_i1648_2_, Block targetBlockType, int radiusDetection)
           {
               this.livingEntity = p_i1648_1_;
               this.speed = p_i1648_2_;
               this.targetBlockType = targetBlockType;
               this.radiusDetection = radiusDetection;
               this.setMutexBits(1);
           }
        
           /**
            * Returns whether the EntityAIBase should begin execution.
            */
           public boolean shouldExecute()
           {
               for(int xOffset = -radiusDetection; xOffset < radiusDetection; xOffset++)//On remonte l'axe des X
               {
                for(int zOffset = -radiusDetection; zOffset < radiusDetection; zOffset++)//On remonte l'axe des Z
                {
                if(livingEntity.worldObj.getBlock((int)livingEntity.posX + xOffset, (int)livingEntity.posY, (int)livingEntity.posZ + zOffset) == targetBlockType)//Si le block situé à un couple spécifique de coordonnées (précédemment remontées via les for loops), correspond à ton block recherché
                {
                //Alors on affecte au couple de positions que l'entity va devoir suivre
                        this.xPosition = livingEntity.posX + xOffset;
                        this.yPosition = livingEntity.posY;
                        this.zPosition = livingEntity.posZ + zOffset;
                           return true;
                }
                }
               }
               return false;
           }
        
           /**
            * Returns whether an in-progress EntityAIBase should continue executing
            */
           public boolean continueExecuting()
           {
               return !this.livingEntity.getNavigator().noPath();//On continue tant que l'entity a un PathNavigate d'instancié
           }
        
           /**
            * Execute a one shot task or start executing a continuous task
            */
           public void startExecuting()
           {
               this.livingEntity.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed);//On la fait se déplacer si shouldExecute a renvoyé true, donc si le couple de positions a forcément été reset à de bonnes valeurs
           }
        }
        
        

        Ton constructeur devrait donc désormais ressembler à ceci :

        
        public Constructeur(World world) {
        super(world);
                       this.tasks.addTask(0, new EntityAIMoveToCustomBlock(this, 2.0D, ClashOfClan.blockElixir, 9));
        }
        
        

        Merci je viens de voir je n’ai qu’une seule chose a te dire merci beaucoup et pour les question non c’est bon tes commentaires me permettent de tout comprendre


        J’ai creer un nouveau block (blockTarget) donc j’ai remplacer “this.tasks.addTask(0, new EntityAIMoveToCustomBlock(this, 2.0D, ClashOfClan.blockElixir, 9));” par “this.tasks.addTask(0, new EntityAIMoveToCustomBlock(this, 2.0D, ClashOfClan.blockTarget, 9));” mais ça ne marche pas et meme en laissant avec le premier block ça ne marche pas non plus (mais je n’ai pas d’erreur)

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

          Tu as bien mis ton bloc dans un rayon de 9 blocs autour de l’entité et à la même hauteur ? Car le code que plaigon t’as donné ne prend pas en compte le bloc si il n’a pas la même coordonnée “y” que l’entité.

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

            En effet, je n’ai pas pris en compte la hauteur. Il suffirait donc de rajouter une for loop, avec un int yOffset, bref c’est le même principe.

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

              Oui j’ai bien mis le bloc a la meme hauteur et dans un rayon de 9

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

                J’ai testé chez moi, tout marchait nikel. File entièrement la classe de ton entité, peut-être que le problème vient d’autre part. Essaie sinon de debug la task pour voir si le startExecuting est bien appelé…

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

                  @‘Plaigon’:

                  J’ai testé chez moi, tout marchait nikel. File entièrement la classe de ton entité, peut-être que le problème vient d’autre part. Essaie sinon de debug la task pour voir si le startExecuting est bien appelé…

                  Ok j’essaye

                  EDIT : Rien n’est appelé, pourrais tu m’envoyer tes fichier peut être que j’ai oublié quelque chose

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

                    Envoie plutôt ta classe Entity, je vais comparé avec la mienne.
                    As-tu également pensé à override cette méthode ?

                    
                    @Override
                    protected boolean isAIEnabled()
                    {
                    return true;
                    }
                    
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • D Hors-ligne
                      death_xXX
                      dernière édition par

                      @‘Plaigon’:

                      Envoie plutôt ta classe Entity, je vais comparé avec la mienne.
                      As-tu également pensé à override cette méthode ?

                      
                      @Override
                         protected boolean isAIEnabled()
                         {
                             return true;
                         }
                      
                      

                      La classe de mon entité :

                      package fr.clashofclan.common;
                      
                      import net.minecraft.block.Block;
                      import net.minecraft.entity.Entity;
                      import net.minecraft.entity.EntityCreature;
                      import net.minecraft.entity.SharedMonsterAttributes;
                      import net.minecraft.init.Blocks;
                      import net.minecraft.world.World;
                      import net.minecraftforge.event.entity.EntityEvent;
                      
                      public class Barbare extends EntityCreature{
                      public Barbare(World world) {
                      super(world);
                      this.tasks.addTask(0, new EntityAIMoveToCustomBlock(this, 2.0D, ClashOfClan.blockTarget, 20)); //Pour bouger
                      }
                      
                      public void applyEntityAttributes() {
                      super.applyEntityAttributes();
                      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D);
                      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D);
                      }
                      
                      public Entity getEntityToAttack() {
                      return null;
                      }
                      
                      @Override
                      protected boolean isAIEnabled()
                      {
                      return true;
                      }
                      }
                      
                      

                      P.S. J’ai rajouté ce que tu as dis dans ton dernier post et maintenant il ne bouge plus  :s

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

                        Rajoute une tâche pour wander.

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

                          @‘Plaigon’:

                          Rajoute une tâche pour wander.

                          Desolé je ne comprend pas  😐

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

                            Alors ?

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

                              Faut pas marquer le sujet comme résolu si il n’y est pas u_u
                              Il t’a conseillé d’ajouter l’ “EntityAIWander” à la liste “tasks” de ton entitée, afin que celle-ci erre (de déplace d’elle même).

                              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                                @‘AymericRed’:

                                Faut pas marquer le sujet comme résolu si il n’y est pas u_u
                                Il t’a conseillé d’ajouter l’ “EntityAIWander” à la liste “tasks” de ton entitée, afin que celle-ci erre (de déplace d’elle même).

                                1° Merci j’avais pas compris je vais essayer
                                2° j’ai pas fait exprès de le marquer en resolu o_o
                                3° je viens d’essayer et il bouge un peu une fois et apres plus rien il reste figé

                                P.S. J’arrive pas a le mettre en non resolu
                                P.S.2 maintenant l’entite bouge des que je pose le block mais il fait des tours ( il bouge en rond) et il a une vitesse affolante alors que je l’ai mis a 0.8D

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

                                  File ta classe entière, on va jamais s’en sortir sinon…

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

                                    @‘Plaigon’:

                                    File ta classe entière, on va jamais s’en sortir sinon…

                                    :::

                                    package fr.clashofclan.common;
                                    
                                    import java.awt.Color;
                                    
                                    import cpw.mods.fml.common.Mod;
                                    import cpw.mods.fml.common.Mod.EventHandler;
                                    import cpw.mods.fml.common.Mod.Instance;
                                    import cpw.mods.fml.common.SidedProxy;
                                    import cpw.mods.fml.common.event.FMLInitializationEvent;
                                    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                                    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                                    import cpw.mods.fml.common.registry.EntityRegistry;
                                    import cpw.mods.fml.common.registry.GameRegistry;
                                    import fr.clashofclan.proxy.CommonProxy;
                                    import net.minecraft.block.Block;
                                    import net.minecraft.block.material.Material;
                                    import net.minecraft.creativetab.CreativeTabs;
                                    
                                    @Mod(modid = "clashofclan", name = "Clash Of Clan", version = "1.0.0")
                                    
                                    public class ClashOfClan {
                                    @Instance("clashofclan")
                                    public static ClashOfClan instance;
                                    public static final String MODID = "clashofclan";
                                    
                                    @SidedProxy(clientSide = "fr.clashofclan.proxy.ClientProxy", serverSide = "fr.clashofclan.proxy.CommonProxy")
                                    public static CommonProxy proxy;
                                    
                                    public static Block blockOr, blockElixir, blockTarget;
                                    
                                    @EventHandler
                                    public void preInit(FMLPreInitializationEvent event)
                                    {
                                    blockOr = new BlockOr().setBlockName("BlockOr").setCreativeTab(CreativeTabs.tabBlock);
                                    GameRegistry.registerBlock(blockOr, ItemBlockOr.class, "BlockOr");
                                    blockElixir = new BlockElixir().setBlockName("BlockElixir").setCreativeTab(CreativeTabs.tabBlock);
                                    GameRegistry.registerBlock(blockElixir, ItemBlockElixir.class, "BlockElixir");
                                    blockTarget = new BlockTarget().setBlockName("BlockTarget").setBlockTextureName("clashofclan:BlockTarget").setCreativeTab(CreativeTabs.tabBlock);
                                    GameRegistry.registerBlock(blockTarget, "BlockTarget");
                                    }
                                    
                                    @EventHandler
                                    public void init(FMLInitializationEvent event)
                                    {
                                    proxy.registerRender();
                                    // Mob : Constructeur
                                    EntityRegistry.registerGlobalEntityID(Constructeur.class, "Constructeur", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB());
                                    EntityRegistry.registerModEntity(Constructeur.class, "Constructeur", 420, this.instance, 40, 1, true);
                                    // Mob : Barbare
                                    EntityRegistry.registerGlobalEntityID(Barbare.class, "Barbare", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB());
                                    EntityRegistry.registerModEntity(Barbare.class, "Barbare", 421, this.instance, 40, 1, true);
                                    // Mob : Archer
                                    EntityRegistry.registerGlobalEntityID(Archer.class, "Archer", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB());
                                    EntityRegistry.registerModEntity(Archer.class, "Archer", 422, this.instance, 40, 1, true);
                                    // Mob : Chevaucheurcochon
                                    EntityRegistry.registerGlobalEntityID(Chevaucheurcochon.class, "Chevaucheurcochon", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB());
                                    EntityRegistry.registerModEntity(Chevaucheurcochon.class, "Chevaucheurcochon", 423, this.instance, 40, 1, true);
                                    }
                                    
                                    @EventHandler
                                    public void postInit(FMLPostInitializationEvent event)
                                    {
                                    
                                    }
                                    
                                    }
                                    
                                    

                                    ::::::

                                    package fr.clashofclan.proxy;
                                    
                                    import cpw.mods.fml.client.registry.RenderingRegistry;
                                    import fr.clashofclan.client.RenderArcher;
                                    import fr.clashofclan.client.RenderBarbare;
                                    import fr.clashofclan.client.RenderChevaucheurcochon;
                                    import fr.clashofclan.client.RenderConstructeur;
                                    import fr.clashofclan.common.Archer;
                                    import fr.clashofclan.common.Barbare;
                                    import fr.clashofclan.common.Chevaucheurcochon;
                                    import fr.clashofclan.common.Constructeur;
                                    import net.minecraft.client.model.ModelBiped;
                                    
                                    public class ClientProxy extends CommonProxy
                                    {
                                    @Override
                                    public void registerRender()
                                    {
                                    System.out.println("méthode côté client");
                                    RenderingRegistry.registerEntityRenderingHandler(Constructeur.class, new RenderConstructeur(new ModelBiped(), 0.5F));
                                    RenderingRegistry.registerEntityRenderingHandler(Archer.class, new RenderArcher(new ModelBiped(), 0.5F));
                                    RenderingRegistry.registerEntityRenderingHandler(Barbare.class, new RenderBarbare(new ModelBiped(), 0.5F));
                                    RenderingRegistry.registerEntityRenderingHandler(Chevaucheurcochon.class, new RenderChevaucheurcochon(new ModelBiped(), 0.5F));
                                    }
                                    }
                                    

                                    ::::::

                                    package fr.clashofclan.common;
                                    
                                    import net.minecraft.block.Block;
                                    import net.minecraft.entity.Entity;
                                    import net.minecraft.entity.EntityCreature;
                                    import net.minecraft.entity.SharedMonsterAttributes;
                                    import net.minecraft.entity.ai.EntityAIWander;
                                    import net.minecraft.init.Blocks;
                                    import net.minecraft.world.World;
                                    import net.minecraftforge.event.entity.EntityEvent;
                                    
                                    public class Archer extends EntityCreature{
                                    
                                    public Archer(World world) {
                                    super(world);
                                    this.tasks.addTask(0, new EntityAIMoveToCustomBlock(this, 0.5D, ClashOfClan.blockTarget, 9));
                                    this.tasks.addTask(1, new EntityAIWander(this, 1.0D));
                                    }
                                    
                                    public void applyEntityAttributes() {
                                    super.applyEntityAttributes();
                                    this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D);
                                    this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D);
                                    }
                                    
                                    public Entity getEntityToAttack() {
                                    return null;
                                    }
                                    @Override
                                    protected boolean isAIEnabled()
                                    {
                                    return true;
                                    }
                                    }
                                    
                                    

                                    ::::::

                                    package fr.clashofclan.client;
                                    
                                    import fr.clashofclan.common.Archer;
                                    import fr.clashofclan.common.ClashOfClan;
                                    import net.minecraft.client.model.ModelBiped;
                                    import net.minecraft.client.renderer.entity.RenderBiped;
                                    import net.minecraft.entity.EntityLiving;
                                    import net.minecraft.util.ResourceLocation;
                                    
                                    public class RenderArcher extends RenderBiped {
                                    
                                    public final ResourceLocation texture = new ResourceLocation(ClashOfClan.MODID, "textures/entity/Archer.png");
                                    
                                    public RenderArcher(ModelBiped model, float shadow)
                                    {
                                    super(model, shadow);
                                    }
                                    protected ResourceLocation getEntityTexture(EntityLiving living)
                                    {
                                    return this.getArcherTexture((Archer)living);
                                    }
                                    
                                    private ResourceLocation getArcherTexture(Archer Archer)
                                    {
                                    return texture;
                                    }
                                    }
                                    

                                    ::::::

                                    package fr.clashofclan.common;
                                    
                                    import net.minecraft.block.Block;
                                    import net.minecraft.entity.EntityLiving;
                                    import net.minecraft.entity.ai.EntityAIBase;
                                    
                                    public class EntityAIMoveToCustomBlock extends EntityAIBase
                                    {
                                    private EntityLiving livingEntity;
                                    private double xPosition;
                                    private double yPosition;
                                    private double zPosition;
                                    private double speed;
                                    private Block targetBlockType;
                                    private int radiusDetection;
                                    
                                    public EntityAIMoveToCustomBlock(EntityLiving p_i1648_1_, double p_i1648_2_, Block targetBlockType, int radiusDetection)
                                    {
                                    this.livingEntity = p_i1648_1_;
                                    this.speed = p_i1648_2_;
                                    this.targetBlockType = targetBlockType;
                                    this.radiusDetection = radiusDetection;
                                    this.setMutexBits(1);
                                    }
                                    
                                    /**
                                    * Returns whether the EntityAIBase should begin execution.
                                    */
                                    public boolean shouldExecute()
                                    {
                                    for(int xOffset = -radiusDetection; xOffset < radiusDetection; xOffset++)//On remonte l'axe des X
                                    {
                                    for(int yOffset = -radiusDetection; yOffset < radiusDetection; yOffset++)//On remonte l'axe des Y
                                    {
                                    for(int zOffset = -radiusDetection; zOffset < radiusDetection; zOffset++)//On remonte l'axe des Z
                                    {
                                    if(livingEntity.worldObj.getBlock((int)livingEntity.posX + xOffset, (int)livingEntity.posY, (int)livingEntity.posZ + zOffset) == targetBlockType)//Si le block situé à un couple spécifique de coordonnées (précédemment remontées via les for loops), correspond à ton block recherché
                                    {
                                    //Alors on affecte au couple de positions que l'entity va devoir suivre
                                    this.xPosition = livingEntity.posX + xOffset;
                                    this.yPosition = livingEntity.posY + yOffset;
                                    this.zPosition = livingEntity.posZ + zOffset;
                                    return true;
                                    }
                                    }
                                    }
                                    }
                                    return false;
                                    }
                                    
                                    /**
                                    * Returns whether an in-progress EntityAIBase should continue executing
                                    */
                                    public boolean continueExecuting()
                                    {
                                    return !this.livingEntity.getNavigator().noPath();//On continue tant que l'entity a un PathNavigate d'instancié
                                    }
                                    
                                    /**
                                    * Execute a one shot task or start executing a continuous task
                                    */
                                    public void startExecuting()
                                    {
                                    this.livingEntity.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed);//On la fait se déplacer si shouldExecute a renvoyé true, donc si le couple de positions a forcément été reset à de bonnes valeurs
                                    }
                                    
                                    public void resetTask()
                                    {
                                    super.resetTask();
                                    }
                                    
                                    public void updateTask()
                                    {
                                    this.livingEntity.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed);
                                    }
                                    }
                                    

                                    ::::::

                                    package fr.clashofclan.common;
                                    
                                    import java.util.List;
                                    import net.minecraft.block.Block;
                                    import net.minecraft.block.material.Material;
                                    import net.minecraft.client.renderer.texture.IIconRegister;
                                    import net.minecraft.creativetab.CreativeTabs;
                                    import net.minecraft.item.Item;
                                    import net.minecraft.item.ItemStack;
                                    import net.minecraft.util.IIcon;
                                    
                                    public class BlockTarget extends Block
                                    {
                                    protected BlockTarget()
                                    {
                                    super(Material.rock);
                                    }
                                    }
                                    
                                    

                                    :::
                                    Voila je crois qu’il y a tous

                                    EDIT: Finalement j’ai reussi j’ai maj les codes pour ce qui les veulent

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

                                      Vous avez trouvé l’erreur(s) ?

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

                                      MINECRAFT FORGE FRANCE © 2024

                                      Powered by NodeBB