Probleme de Loot random



  • Bonjour, depuis peu je dev et je me heurte a un probleme : je veux faire un random ore mais quand je fais une fonction pour random ca ne fonctionne pas. quelqun peut il m'aider ? ```
    code_text

    
    import com.extremium.mod.init.ItemMod;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.init.Items;
    import net.minecraft.item.Item;
    
    public class RandomOre extends Block
    {
    
        public RandomOre(Material p_i45394_1_)
        {
            super(p_i45394_1_);
        }
    
        public Item RandomDrop(int metadata, Random random, int fortune)
        {
            int drop = random.nextInt(0);
            
            if (drop == 0)
            {
            return ItemMod.extremium_axe;
            }
        }
        
    }


  • il fallait rajouter retur null; a chaque fonction merci



  • Utilise la méthode quantityDropped :

    @Override
        public int quantityDropped(int meta, int fortune, Random random)
        {
            int drop = random.nextInt(10); //dans ce cas, il y aura une chance sur 9 de drop le loot
            
            if (drop == 0)
            {
                 return 1;
            }
            else {
                 return 0;
            }
        }
    

    Mais dans ce cas, il faut que tu définisse le loot avec getItemDropped

    @Override
        public Item getItemDropped(int meta, Random random, int fortune)
        {
            return ItemMod.extremium_axe;
        }
    

    Je n'ai pas verifié mais ca devrait marcher.



  • @Infinite a dit dans Probleme de Loot random :

    @Override public int quantityDropped(int meta, int fortune, Random random) { int drop = random.nextInt(10); //dans ce cas, il y aura une chance sur 9 de drop le loot if (drop == 0) { return 1; } else { return 0; } }

    Merci mais j'ai toujours une erreur aux ligne public int et public item

    Le code :

    
    public Item getItemDropped(int metadata, Random random, int fortune)
       {
           int drop = random.nextInt(2);
           
           if (drop == 0)
           {
               return ItemMod.extreme_core;
           }
           
           else if (drop == 2)
           {
               return ItemMod.extremium_ingot;
           }
           
           else if (drop == 1)
           {
               return ItemMod.extremium_spoon;
           }
       }
       
       @Override
       public int quantityDropped(int meta, int fortune, Random random)
       {
           int drop = random.nextInt(2);
           
           if (drop == 0)
           {
                return 1;
           }
           else if (drop == 1)
           {
                return 2;
           }
           else if (drop == 2)
           {
                return 3;
           }
    

    lerreur dit : this method musts return a result of type int/item
    et overrides net.minecraft.block.Block.quantityDropped/getItemDropped



  • il fallait rajouter retur null; a chaque fonction merci


Log in to reply