MFF

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

    Probleme résolu + explication a bush à XP

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    118 Messages 5 Publieurs 16.3k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Les textures du metadata 0, 2, et 3 sont identiques.
      Il n’y a que le 1 qui est différent.
      Pas étonnant que tu ai l’impression que ça revient à 0 …

      Et tu avais le mauvais flag (1 au lieu de 3) pour le setBlock, du-coup le bloc n’était pas actualisé.

      package fr.xperiaonline.xperiamod.common;
      
      import java.util.List;
      import java.util.Random;
      
      import javax.swing.Icon;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      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.entity.player.EntityPlayer;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.IIcon;
      import net.minecraft.world.World;
      
      public class BlockModBush extends Block
      {
      public static String[] subBlock = new String[] {"block1", "block2"};
      public IIcon[] iconArray = new IIcon[subBlock.length];
      
      protected BlockModBush()
      
      {
      super(Material.rock);
      this.setTickRandomly(true);
      }
      
      public void updateTick(World world, int x, int y, int z, Random rand)
      {
      if(world.getBlockMetadata(x, y, z) < 2)
      {
      world.setBlock(x, y, z, this, world.getBlockMetadata(x, y, z) + 1, 3);
      }
      }
      
      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
      {
      if(world.getBlockMetadata(x, y, z) == 3)
      {
      world.setBlock(x, y, z, this, 0, 3);
      this.dropBlockAsItem(world, x, y, z, new ItemStack(Items.diamond));
      }
      return false;
      }
      
      public int tickRate(World world)
      {
      return 1;
      }
      
      public int damageDropped(int metadata)
      {
      return metadata;
      }
      
      public void getSubBlocks(Item item, CreativeTabs tabs, List list)
      {
      for(int i = 0; i < subBlock.length; i++)
      {
      list.add(new ItemStack(item, 1, i));
      }
      }
      
      public void registerBlockIcons(IIconRegister iconRegister)
      {
      for(int i = 0; i < subBlock.length; i++)
      {
      this.iconArray* = iconRegister.registerIcon("xperiamod:" + subBlock*);
      }
      }
      
      public IIcon getIcon(int side, int metadata)
      {
      if(metadata >= 0 && metadata < subBlock.length)
      {
      return this.iconArray[metadata];
      }
      return this.iconArray[0];
      }
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • YukiShuY Hors-ligne
        YukiShu
        dernière édition par

        Et donc pour faire en sorte que je puisse récupérer un item en faisant un clic droit dessus a la 2 eme metadata je doit faire quoi ?

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

          if(world.getBlockMetadata(x, y, z) == 1)
          {
          world.setBlock(x, y, z, this, 0, 3);
          this.dropBlockAsItem(world, x, y, z, new ItemStack(Items.diamond));
          }
          

          ?

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

            Deuxième ou troisième ?
            Dans le code que je t’ai donné si tu fais un clic droit sur le bloc lorsque son metadata est 3 il revient à 0 et drop un diamant.

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

              Non 3 eme désolé mais ça marche pas… 🙂

              ADIT : Si ça marche mais pas avec la texture de ma 3 eme metadata
              Je vais voir si je peux y changer quelque chose avec la texture 🙂

              Mais c’est bizard malgré tout.

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

                Oublie pas que le 0 est aussi un metadata possible

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

                  Okay ; donc j’ai rajouté une texture

                   public static String[] subBlock = new String[] {"block0", "block1","block2"};
                  

                  J’ai ajouter le “block0”.
                  J’ai actuellement mes 3 block avec 
                  -la première texture qui est celle ci pour “block0”:

                  -la deuxieme texture qui est celle ci pour “block1”:

                  • et pour finir la troisieme texture qui est celle ci pour “block2”:

                  sauf que j’ai beau faire clic droit dans chacun des stades d’évolution de la texture mais je ne drop rien.
                  Pourtant le code comprend bien que je dois cliquer parce que la texture bloque a la 3 eme.

                  Des idées pour résoudre ça ?

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

                    Dans onBlockActivated rajoute ça : System.out.println(world.getBlockMetadata(x, y, z)); qui va afficher le metadata correspondant lorsque tu cliques pour vérifier que ton block a le bon metadata

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

                      EDIT : C’est bon ça drop maintenant donc sa change de texture.
                      Mais le probleme c’est que ça continue de drop apres le changement de metadata. 
                      Alors que se n’est pas désiré 🙂

                      package fr.xperiaonline.xperiamod.common;
                      
                      import java.util.List;
                      import java.util.Random;
                      
                      import javax.swing.Icon;
                      
                      import cpw.mods.fml.relauncher.Side;
                      import cpw.mods.fml.relauncher.SideOnly;
                      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.entity.player.EntityPlayer;
                      import net.minecraft.init.Items;
                      import net.minecraft.item.Item;
                      import net.minecraft.item.ItemStack;
                      import net.minecraft.util.IIcon;
                      import net.minecraft.world.World;
                      
                      public class BlockModBush extends Block
                      {
                         public static String[] subBlock = new String[] {"block0","block1","block2"};
                         public IIcon[] iconArray = new IIcon[subBlock.length];
                      
                         protected BlockModBush()
                      
                         {
                             super(Material.rock);
                             this.setTickRandomly(true);
                         }
                      
                         public void updateTick(World world, int x, int y, int z, Random rand)
                         {
                             if(world.getBlockMetadata(x, y, z) < 2)
                             {
                                 world.setBlock(x, y, z, this, world.getBlockMetadata(x, y, z) + 1, 3);
                             }
                         }
                      
                         public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                         {
                      
                             if(world.getBlockMetadata(x, y, z) == 3)
                             System.out.println(world.getBlockMetadata(x, y, z));
                      
                             {
                                 world.setBlock(x, y, z, this, 0, 3);
                                 this.dropBlockAsItem(world, x, y, z, new ItemStack(Items.experience_bottle));
                             }
                             return false;
                         }
                      
                         public int tickRate(World world)
                         {
                             return 1;
                         }
                      
                         public int damageDropped(int metadata)
                         {
                             return metadata;
                         }
                      
                         public void getSubBlocks(Item item, CreativeTabs tabs, List list)
                         {
                             for(int i = 0; i < subBlock.length; i++)
                             {
                                 list.add(new ItemStack(item, 1, i));
                             }
                         }
                      
                         public void registerBlockIcons(IIconRegister iconRegister)
                         {
                             for(int i = 0; i < subBlock.length; i++)
                             {
                                 this.iconArray* = iconRegister.registerIcon("xperiamod:" + subBlock*);
                             }
                         }
                      
                         public IIcon getIcon(int side, int metadata)
                         {
                             if(metadata >= 0 && metadata < subBlock.length)
                             {
                                 return this.iconArray[metadata];
                             }
                             return this.iconArray[0];
                         }
                      }
                      

                      Mon code est t’il bon ?

                      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

                        
                        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                        {
                        if(world.getBlockMetadata(x, y, z) == 2)
                        {
                        world.setBlock(x, y, z, this, 0, 3);
                        this.dropBlockAsItem(world, x, y, z, new ItemStack(Items.experience_bottle));
                        }
                        return false;
                        }
                        

                        Il faut faire comme ça.
                        Actuellement ton dropBlockAsItem et le setBlock ne sont pas dans la condition, tu as mit System.out.println(world.getBlockMetadata(x, y, z)); à l’intérieur de la condition.

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

                          Merci beaucoup !

                          ça marche impeccable !
                          EDIT : par contre désormais j’ai 3 blocs dans l’inventaire ça veux dire que quand on va miner on va recupere 2 block different dépendra de la metadata.
                          Moyen de ne faire en sorte que le block une fois casser soit dropper a l’etat metadata 0 ?

                          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

                            Enlève ces deux fonctions :

                            public int damageDropped(int metadata)
                            {
                            return metadata;
                            }
                            
                            public void getSubBlocks(Item item, CreativeTabs tabs, List list)
                            {
                            for(int i = 0; i < subBlock.length; i++)
                            {
                            list.add(new ItemStack(item, 1, i));
                            }
                            }
                            

                            Tu peux aussi retirer l’item bloc.

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

                              Merci beaucoup !

                              Et sinon pour créer un item qui peux giver de l’experience.

                              J’ai trouver ça se matin :

                              
                              public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                              
                                {
                              
                              event.player.addPotionEffect(new PotionEffect(id, temps, level));
                              
                                     if (!player.capabilities.isCreativeMode)
                              
                                     {
                              
                                         –stack.stackSize;
                              
                                     }
                              
                              return stack;
                              
                              }
                              
                              

                              Je doit utiliser ça et faire quoi exactement ? 
                              J’ai regarder ton tuto sur faire tes item basique 😉

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

                                player.experience ou player.experienceLevel, ensuite tout dépend de ce que tu veux faire

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

                                  J’aimerais que apres un clic droit sur l’item qu’il soit consommer et donne un certain taux d’xp au joueur.

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

                                    Tu as juste à faire player.experience += XPSSupplementaire dans ta fonction.

                                    Le code que robin t’as demandé de supprimer va permettre juste de ne pas récupérer le block avec le metadata et d’afficher seulement le block avec le metadata 0 en créatif

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

                                      oui je n’ai pas été assez patient 😄
                                      J’ai reediter

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

                                        Voila ! Mais petit problème au niveau de :

                                        player.addExperience += 1;

                                        player est en rouge.

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

                                          Où est le problème ?

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

                                            J’ai ecris ça dans la class de mon item

                                            package fr.xperiaonline.xperiamod.common;
                                            
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.world.World;
                                            
                                            public class ItemXpDust
                                            
                                            {
                                            
                                               public void onItemRightClick(World world, EntityPlayer player)
                                            
                                               {
                                            player.addExperience(5);
                                               }
                                            }
                                            
                                            

                                            Mais ça ne fait rien en jeux enfin j’ai l’item. Mais sa ne me donne pas d’xp

                                            Je suis tellement mauvais xd

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB