Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hello ^__^

I want to make a BlockShrub folder with different drops :)

If i have a blackberry and blueberry Shrub the one drops blackberrys the other blueberrys :D

u know what i mean? xD

LG Tsiumi :D

 

  • Author

Here is my code:

public ArrayList<ItemStack> getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
{
        ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
        
        for(int i = 0; 0 < world.rand.nextInt(3); i++)
           ret.add(new ItemStack(GW2.garlic, 1, damageDropped(metadata)));       	
        for(int i = 0; 0 < world.rand.nextInt(3); i++)
           ret.add(new ItemStack(GW2.vanillaBean, 1, damageDropped(metadata)));
        for(int i = 0; 0 < world.rand.nextInt(3); i++)
            ret.add(new ItemStack(GW2.oreganoLeaf, 1, damageDropped(metadata)));  
        for(int i = 0; 0 < world.rand.nextInt(3); i++)
            ret.add(new ItemStack(GW2.bayLeaf, 1, damageDropped(metadata)));

return ret;

But the Items drops at the same time :(

i want one Item drops with a chance like Gravel but with the same chance and 4 Items!

  • Author

Not every time.... like Gravel sometimes it drops gravel sometimes it drops flint!

 

Now, this probably won't work, because I'm tired and to be perfectly honest don't want to sit and test it all evening, but try this:

 

public int idDropped(int par1, Random rand, int par2){
	if(par2 > 3){
		par2 = 3;
	}
	if((40 - par2 * 3) == 0){
		return Item.diamond.itemID;
	}
	if((40 - par2 * 3) == 10){
		return Item.ingotGold.itemID;
	}
	if((40 - par2 * 3) == 20){
		return Item.ingotIron.itemID;
	}
	else return this.blockID;
}

 

Obviously, changing the items being dropped.

 

If anyone with a more inclination and knowledge has any better (or working, accordingly) ideas, please correct me.

  • Author

It says a error:

else return rand.nextint(40 - par2 * 3) == 30 ? this.blockID;

Or even

 

change:

public int idDropped(int par1, Random rand, int par2){
	if(par2 > 3){
		par2 = 3;
	}
	if((40 - par2 * 3) == 0){
		return Item.diamond.itemID;
	}
	if((40 - par2 * 3) == 10){
		return Item.ingotGold.itemID;
	}
	if((40 - par2 * 3) == 20){
		return Item.ingotIron.itemID;
	}
	else return this.blockID;
}

 

to:

 

public int idDropped(intpar1, Random rand, int par2) {
if(par2 > 3){
par2 = 3;
}
if((40 - par2 * 3) == 0{
return Item.diamond.itemID;
}
if((40 - par2 * 3) == 10 {
return Item.ingotGold.itemID;
}
else return random.nextint(40 - par2 * 3) == 30 ? Item.ingotIron.itemID : Item.stick.itemID;
}

  • Author

2 Errors:

public int idDropped(int par1, Random rand, int par2) {

if(par2 > 3){

par2 = 3;

}

if((40 - par2 * 3) == 0{

return Item.diamond.itemID;

}

if((40 - par2 * 3) == 10 {

return Item.ingotGold.itemID;

}

else return rand.nextInt(40 - par2 * 3) == 30 ? Item.ingotIron.itemID : Item.stick.itemID;

}

  • Author

It's only drop the Items/Blocks in:

else return rand.nextInt(40 - par2 * 3) == 30 ? Item.ingotIron.itemID : Item.stick.itemID;
}

Need help D:

As far as i can understand from what you want, is that you want 1 block (that has 2 varieties) to drop different items according to their variety. And you want them to drop random quantities aswell?

 

I have made a file which is used for about 20 different blocks and for everyblock it drops the right one, so i used:

@Override
public int idDropped(int par1, Random random, int par2)
{
      return this.blockID
{

 

if you even wanted random quanities you could use this method:

@Override
public int quantityDropped(Random par1random)
{
    return par1random.nextInt(5);
}

 

  • Author

I mean...

The block have 4 drops, but if i destroy the block its drop 1 item....

like gravel if i destroy gravel its drop gravel or flint....

but i want it with 4 items and the same chance

public static int[] drops = new int[]{id1,id2,id3,id4};

@Override
public int idDropped(int par1, Random random, int par2)
{
      return this.drops[random.nextInt(drops.length)];
}

Replace id1,id2 etc, with the id you want.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.