Posted September 14, 201312 yr Ive been attempting this for the last 2 1/2 hours and have yet get this working. I was wondering if anyone knew how to get a mob to drop items with metadata. my entity code note the ItemHandler.urotark has 16 metadatas with urotark being 0 package kakarotvg.omega.entity.mobs; import kakarotvg.omega.Reference; import kakarotvg.omega.handlers.item.ItemHandler; import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class EntityAnnihilator extends EntityMob { public EntityAnnihilator(World par1World) { super(par1World); this.setSize(0.9F, 0.9F); this.getNavigator().setAvoidsWater(false); this.tasks.addTask(0, new EntityAISwimming(this)); // sets the movement speed this.tasks.addTask(6, new EntityAIWander(this, 0.25D)); this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); // gets the mob to attack the player this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 0.25D, false)); this.tasks.addTask(3, new EntityAIAttackOnCollide(this, EntityVillager.class, 0.25D, true)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, 0, false)); } public int getMaxHealth() { return 20; } public int getAttackStrength() { return 4; } public static int getArmorValue() { return 4; } public boolean isAIEnabled() { return true; } protected String getLivingSound() { return Reference.MOD_ID + ":" + "mob.annihilator.say"; } /** * Returns the sound this mob makes when it is hurt. */ protected String getHurtSound() { return Reference.MOD_ID + ":" + "mob.annihilator.hurt"; } /** * Returns the sound this mob makes on death. */ protected String getDeathSound() { return Reference.MOD_ID + ":" + "mob.annihilator.death"; } protected int getDropItemId() { return ItemHandler.urotark.itemID; } } if (You.likescoding == false){ You.goaway; }
September 14, 201312 yr Create a new class, doesn't extend or implement anything. in it put @ForgeSubscribe public void onEntityDrop(LivingDropsEvent event) { if(event.entity instanceof EntityZombie) { event.entity.entityDropItem(new ItemStack(Item.dyePowder, 1, 7), 0.0F); } } Replace EntityZombie with your entity Keep the Float as 0.0 in your main mod class in the preinit add: MinecraftForge.EVENT_BUS.register(new ModLivingDropsEvent()); With "ModLivingDropsEvent()" being the class previously made. Legend of Zelda Mod[updated September 20th to 3.1.1] Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0] Fancy Cheeses[updated May 8th to 0.5.0]
September 14, 201312 yr You can override: protected void dropFewItems(boolean par1, int par2) and drop the ItemStack yourself, as well.
September 14, 201312 yr Author Create a new class, doesn't extend or implement anything. in it put @ForgeSubscribe public void onEntityDrop(LivingDropsEvent event) { if(event.entity instanceof EntityZombie) { event.entity.entityDropItem(new ItemStack(Item.dyePowder, 1, 7), 0.0F); } } Replace EntityZombie with your entity Keep the Float as 0.0 in your main mod class in the preinit add: MinecraftForge.EVENT_BUS.register(new ModLivingDropsEvent()); With "ModLivingDropsEvent()" being the class previously made. Thank you that worked if (You.likescoding == false){ You.goaway; }
September 14, 201312 yr Create a new class, doesn't extend or implement anything. in it put @ForgeSubscribe public void onEntityDrop(LivingDropsEvent event) { if(event.entity instanceof EntityZombie) { event.entity.entityDropItem(new ItemStack(Item.dyePowder, 1, 7), 0.0F); } } Replace EntityZombie with your entity Keep the Float as 0.0 in your main mod class in the preinit add: MinecraftForge.EVENT_BUS.register(new ModLivingDropsEvent()); With "ModLivingDropsEvent()" being the class previously made. Thank you that worked No problem Legend of Zelda Mod[updated September 20th to 3.1.1] Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0] Fancy Cheeses[updated May 8th to 0.5.0]
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.