Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    SOLVED Problème HarvestDropsEvent

    1.7.x
    1.7.10
    3
    5
    360
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Ghyla
      Ghyla last edited by 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 Reply Last reply Reply Quote 0
      • A
        Azerty last edited by 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 Reply Last reply Reply Quote 0
        • Ghyla
          Ghyla last edited by

          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 Reply Last reply Reply Quote 0
          • Wind_Blade
            Wind_Blade @Ghyla last edited by 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 Reply Last reply Reply Quote 1
            • Ghyla
              Ghyla last edited by

              Merci ! 😄

              1 Reply Last reply Reply Quote 0
              • 1 / 1
              • First post
                Last post
              Design by Woryk
              Contact / Mentions Légales / Faire un don

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB