• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Problème HarvestDropsEvent

    1.7.x
    1.7.10
    3
    5
    575
    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.
    • Ghyla
      Ghyla dernière édition par Ghyla

      Bonjour, j’ai rencontré un problème que je n’arrive pas à corriger.
      J’essaye de faire en sorte que le bloc de stone de Minecraft vanilla drop des particules de minerais mais avec des chance de drop différentes selon celles ci. Mais le problème c’est qu’il y a seulement les particules de charbon, de cuivre et d’étain qui drop (les trois premières).
      Voici mon code :

          @SubscribeEvent
          public void onDrops(BlockEvent.HarvestDropsEvent event)
          {
          if(event.block == Blocks.stone)
          {
          event.drops.add(new ItemStack(ItemMod.coal_particle, 1));
          event.drops.add(new ItemStack(ItemMod.copper_particle, 1));
          event.drops.add(new ItemStack(ItemMod.tin_particle, 1));
          event.dropChance = 0.5F;
          }
          else if(event.block == Blocks.stone){
          event.drops.add(new ItemStack(ItemMod.iron_particle, 1));
          event.drops.add(new ItemStack(ItemMod.redstone_particle, 1));
          event.dropChance = 0.1F;
          }
          else if(event.block == Blocks.stone){
          event.drops.add(new ItemStack(ItemMod.silver_particle, 1));
          event.drops.add(new ItemStack(ItemMod.gold_particle, 1));
          event.dropChance = 0.05F;
          }
          else if(event.block == Blocks.stone) {
          event.drops.add(new ItemStack(ItemMod.diamond_particle, 1));
          event.drops.add(new ItemStack(ItemMod.emerald_particle, 1));
          event.dropChance = 0.01F;
          }
          }
      

      Si quelqu’un pouvait m’aider s’il vous plait je le remercie.

      1 réponse Dernière réponse Répondre Citer 0
      • A
        Azerty dernière édition par Azerty

        Salut. Si uniquement fonctionne les trois premiers drops c’est parce que ta condition et toujours la même. Si c’est un block de stone fais cela … siNON (si c’est un block de stone) fais cela … . Jamais la seconde condition (et celles d’après) ne seront exécuté (J’espère que j’ai bien expliqué). Et pour event.dropChance = …; je pense qu’il vaut mieux utiliser le setter de la classe HarvestDropsEvent (event.setDropChance(0.5f);). J’espère t’avoir un peu aider.

        PS : Désolé pour les fautes d’orthographe.

        1 réponse Dernière réponse Répondre Citer 0
        • Ghyla
          Ghyla dernière édition par

          Est ce que tu pourrais me montrer comment l’utiliser s’il te plait ? J’ai cherché mais je bloque (je ne le trouve même pas).

          Wind_Blade 1 réponse Dernière réponse Répondre Citer 0
          • Wind_Blade
            Wind_Blade @Ghyla dernière édition par Wind_Blade

            @ghyla a dit dans Problème HarvestDropsEvent :

            Est ce que tu pourrais me montrer comment l’utiliser s’il te plait ? J’ai cherché mais je bloque (je ne le trouve même pas).

            Pour faire simple tu fait, si le block casser est un block de stone tu fait ça sinon tu fait ça, le sinon n’est exuster qui si le si n’est pas positif, en gros ça restera toujours bloquer au premier.
            Dans cette situation utilise plutôt la class Random
            Exemple :

            @SubscribeEvent
                public void onDrops(BlockEvent.HarvestDropsEvent event)
                {
                if(event.block == Blocks.stone)
                {
                	    int rand = new Random().nextInt(4);
                        if(rand == 0){
            		    event.drops.add(new ItemStack(ItemMod.coal_particle, 1));
            		    event.drops.add(new ItemStack(ItemMod.copper_particle, 1));
            		    event.drops.add(new ItemStack(ItemMod.tin_particle, 1));
            		    event.dropChance = 0.5F;
            	    }
            	    else if(rand == 1){
            		    event.drops.add(new ItemStack(ItemMod.iron_particle, 1));
            		    event.drops.add(new ItemStack(ItemMod.redstone_particle, 1));
            		    event.dropChance = 0.1F;
            	    }
            	    else if(rand == 2){
            		    event.drops.add(new ItemStack(ItemMod.silver_particle, 1));
            		    event.drops.add(new ItemStack(ItemMod.gold_particle, 1));
            		    event.dropChance = 0.05F;
            	    }
            	    else if(rand == 3) {
            		    event.drops.add(new ItemStack(ItemMod.diamond_particle, 1));
            		    event.drops.add(new ItemStack(ItemMod.emerald_particle, 1));
            		    event.dropChance = 0.01F;
            	    }
                }
            1 réponse Dernière réponse Répondre Citer 1
            • Ghyla
              Ghyla dernière édition par

              Merci ! 😄

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

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB