MFF

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

    Plusieurs questions

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    11 Messages 3 Publieurs 2.1k 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.
    • Benjamin LoisonB Hors-ligne
      Benjamin Loison
      dernière édition par

      “Est ce que mes question sont-elle possible ?”

      N’oublies jamais que tout est possible ^^ ! (à condition d’être déterminé)

      Pour ta première question:

      Si j’étais toi je regarderai les fonctions de Block.class de ta version de Minecraft, soit tu y trouveras directement ce dont tu as besoin ou un event appeller à chaque tick, à chaque tick tu peux checker si le joueur interragit avec le bloc 😉

      Pour ta seconde question:

      Euh si j’ai bien compris ta demande est plutôt simple

      “Je voudrais faire en sorte de pouvoir changer mon bloc de bedrock en bloc “block1” seulement quand l’enclume a était enlever .
      Faire en sorte que si l’encule est encore sur mon bloc de bedrock l’event au dessus est alors impossible.”

      if(world.getBlock(x, y + 1, z) != Block.anvil)
      //tonCodeDeTonEvent
      

      >! Développeur de Altis-Life (Arma III) sur Minecraft !
      >! Site web     : https://lemnoslife.com

      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

        Pour les délais sur le clic droit, il y a la nourriture, l’arc, etc …
        Suffit de s’inspirer du code. (setItemInUse / onItemUse / etc …).

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

          @‘Benjamin Loison’:

          “Est ce que mes question sont-elle possible ?”

          N’oublies jamais que tout est possible ^^ ! (à condition d’être déterminé)

          Pour ta première question:

          Si j’étais toi je regarderai les fonctions de Block.class de ta version de Minecraft, soit tu y trouveras directement ce dont tu as besoin ou un event appeller à chaque tick, à chaque tick tu peux checker si le joueur interragit avec le bloc 😉

          Pour ta seconde question:

          Euh si j’ai bien compris ta demande est plutôt simple

          “Je voudrais faire en sorte de pouvoir changer mon bloc de bedrock en bloc “block1” seulement quand l’enclume a était enlever .
          Faire en sorte que si l’encule est encore sur mon bloc de bedrock l’event au dessus est alors impossible.”

          if(world.getBlock(x, y + 1, z) != Block.anvil)
             //tonCodeDeTonEvent
          

          Salut !

          D’accord merci, j’avais pas du tout pensés au if(world.getblock…) ^^

          Merci robin je vais essayer ça

          Merci à vous deux 🙂

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

            Re,

            Alors merci benjamin j’ai réussis a faire se que je voulais.

            Robin, pour le onitemuse setiteminuse etc… Comment je peux faire ? car moi c’est par un event que je fais la modification du bloc pas avec la classe de l’item.

            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

              Faut le faire depuis la classe.
              Je ne vois rien qui te l’empêche si ?

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

                Non rien,

                Alors j’ai fais ça:

                
                package com.CSC.net.item;
                
                import com.CSC.net.block.CSCBlocks;
                
                import net.minecraft.block.state.IBlockState;
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.init.Blocks;
                import net.minecraft.item.EnumAction;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                import net.minecraft.util.BlockPos;
                import net.minecraft.util.ChatComponentText;
                import net.minecraft.util.EnumChatFormatting;
                import net.minecraft.util.EnumFacing;
                import net.minecraft.world.World;
                import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
                
                public class balai extends Item {
                
                    public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
                    {
                    if(!worldIn.isRemote) {
                if(stack != null && stack.getItem() == CSCItems.balai) {
                IBlockState state = worldIn.getBlockState(pos);
                if(state.getBlock() == Blocks.bedrock && worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() != Blocks.anvil) {
                if(stack.getItemUseAction() == EnumAction.BOW)
                worldIn.setBlockState(new BlockPos(pos.getX(), pos.getY(), pos.getZ()), CSCBlocks.block1.getDefaultState());
                }
                
                else if(worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() == Blocks.anvil)
                {
                playerIn.addChatMessage(new ChatComponentText("Vous ne pouvez pas néttoyez ce bloc car il y a une poubelle dessus, enlevez d'abord la poubelle avant de néttoyer ce bloc !"));
                }
                else
                {
                playerIn.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Action impossible."));
                }
                
                }
                }
                
                        return false;
                    }
                
                    public EnumAction getItemUseAction(ItemStack stack)
                    {
                        return EnumAction.BOW;
                    }
                
                }
                
                

                Mais toujours pas de cooldown je clique une fois le bloc se change direct .

                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 int getMaxItemUseDuration(ItemStack stack)
                      {
                          return 32; // durée
                      }
                  
                      public EnumAction getItemUseAction(ItemStack stack)
                      {
                          return EnumAction.EAT; // type d'animation
                      }
                  
                      public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
                      {
                          playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn)); // met l'item en utilisation
                          return itemStackIn;
                      }
                  
                      public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
                      {
                          // ton action à la fin du temps
                  
                          return stack;
                      }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • GabsG Hors-ligne
                    Gabs
                    dernière édition par

                    Y’a pas blockpos du coup j’ai fais comme ça mais ça marche pas:

                    
                    package com.CSC.net.item;
                    
                    import com.CSC.net.block.CSCBlocks;
                    
                    import net.minecraft.block.state.IBlockState;
                    import net.minecraft.entity.player.EntityPlayer;
                    import net.minecraft.init.Blocks;
                    import net.minecraft.item.EnumAction;
                    import net.minecraft.item.Item;
                    import net.minecraft.item.ItemStack;
                    import net.minecraft.util.BlockPos;
                    import net.minecraft.util.ChatComponentText;
                    import net.minecraft.util.EnumChatFormatting;
                    import net.minecraft.util.EnumFacing;
                    import net.minecraft.world.World;
                    import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
                    
                    public class balai extends Item {
                    
                    private BlockPos pos2;
                    
                        public int getMaxItemUseDuration(ItemStack stack)
                        {
                            return 32; // durée
                        }
                    
                        public EnumAction getItemUseAction(ItemStack stack)
                        {
                            return EnumAction.BOW; // type d'animation
                        }
                    
                        public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
                        {
                        pos2 = pos;
                            return false;
                        }
                    
                        public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
                        {
                            playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn)); // met l'item en utilisation
                            return itemStackIn;
                        }
                    
                        public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
                        {
                        if(!worldIn.isRemote) {
                    if(stack != null && stack.getItem() == CSCItems.balai) {
                    BlockPos pos = pos2;
                    IBlockState state = worldIn.getBlockState(pos);
                    if(state.getBlock() == CSCBlocks.block_sale && worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() != Blocks.anvil) {
                    if(stack.getItemUseAction() == EnumAction.BOW)
                    worldIn.setBlockState(new BlockPos(pos.getX(), pos.getY(), pos.getZ()), CSCBlocks.block_propre.getDefaultState());
                    }
                    else if(worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() == Blocks.anvil)
                    {
                    playerIn.addChatMessage(new ChatComponentText("Vous ne pouvez pas néttoyez ce bloc car il y a une poubelle dessus, enlevez d'abord la poubelle avant de néttoyer ce bloc !"));
                    }
                    else
                    {
                    playerIn.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Action impossible."));
                    }
                    }
                        }
                    
                            return stack;
                        }
                    
                    }
                    
                    
                    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

                      Non, ça ne risque pas de fonctionner …
                      Pour savoir où le curseur pointe il faut faire un traceRay

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

                        @‘robin4002’:

                        Non, ça ne risque pas de fonctionner …
                        Pour savoir où le curseur pointe il faut faire un traceRay

                        merci !

                        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