Posted June 21, 201312 yr im trying to get my custom gun to reload but everything ive tried doesn't work the closest ive come is to get it to work once but then it doesn't do it again here is the base code for my item: package militarycraft.item; import militarycraft.entites.EntityMusketRound; import militarycraft.main.MainRegistry; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ArrowLooseEvent; import net.minecraftforge.event.entity.player.ArrowNockEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class Musket extends Item { @SideOnly(Side.CLIENT) private Icon[] iconArray; public Musket(int par1) { super(par1); this.maxStackSize = 1; this.setMaxDamage(384); this.setCreativeTab(CreativeTabs.tabCombat); } @SideOnly(Side.CLIENT) /** * Returns True is the item is renderer in full 3D when hold. */ public boolean isFull3D() { return true; } /** * called when the player releases the use item button. Args: itemstack, * world, entityplayer, itemInUseCount */ public void onPlayerStoppedUsing(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4) { int j = this.getMaxItemUseDuration(par1ItemStack) - par4; ArrowLooseEvent event = new ArrowLooseEvent(par3EntityPlayer, par1ItemStack, j); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled()) { return; } j = event.charge; boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0; if (flag || par3EntityPlayer.inventory.hasItem(MainRegistry.MusketRound.itemID)) { float f = (float) j / 20.0F; f = (f * f + f * 2.0F) / 3.0F; if ((double) f < 0.1D) { return; } if (f > 1.0F) { f = 1.0F; } EntityMusketRound EntityMusketRound = new EntityMusketRound(par2World, par3EntityPlayer, f * 2.0F); if (f == 1.0F) { EntityMusketRound.setIsCritical(true); } int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, par1ItemStack); if (k > 0) { EntityMusketRound.setDamage(EntityMusketRound.getDamage() + (double) k * 0.5D + 0.5D); } int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, par1ItemStack); if (l > 0) { EntityMusketRound.setKnockbackStrength(l); } if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, par1ItemStack) > 0) { EntityMusketRound.setFire(100); } par1ItemStack.damageItem(1, par3EntityPlayer); par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F); if (flag) { EntityMusketRound.canBePickedUp = 2; } else { par3EntityPlayer.inventory.consumeInventoryItem(MainRegistry.MusketRound.itemID); } if (!par2World.isRemote) { par2World.spawnEntityInWorld(EntityMusketRound); } } } public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { return par1ItemStack; } /** * How long it takes to use or consume an item */ public int getMaxItemUseDuration(ItemStack par1ItemStack) { return 72000; } /** * returns the action that specifies what animation to play when the items * is being used */ public EnumAction getItemUseAction(ItemStack par1ItemStack) { return EnumAction.bow; } public static void reload() { } public static boolean canShoot = false; public static int reloading = 0; public static boolean isLoaded = false; public boolean hasShot = false; public static int ticks; /** * Called whenever this item is equipped and the right mouse button is * pressed. Args: itemStack, world, entityPlayer */ /** * Called whenever this item is equipped and the right mouse button is * pressed. Args: itemStack, world, entityPlayer */ /** * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer */ public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { ArrowNockEvent event = new ArrowNockEvent(par3EntityPlayer, par1ItemStack); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled()) { return event.result; } if (par3EntityPlayer.capabilities.isCreativeMode || par3EntityPlayer.inventory.hasItem(MainRegistry.MusketRound.itemID)) { par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack)); } return par1ItemStack; } /** * Return the enchantability factor of the item, most of the time is based * on material. */ public int getItemEnchantability() { return 1; } } My youtube channel for forge tutorials: http://www.youtube.com/user/TheGrovesyProject101?feature=mhee if i helped please press thank you
June 22, 201312 yr Ok cool idea to make something like a reload system which also add alot of thigs for the detecting. First of all. Delete all Code! A bow in a gun = Thats not god. Make it like that: when you rightclick (and he can shoot) than he shood instandly! Like the old vanilla bow. And when the weapon is not loaded than he starts to refuel them. You can do this in 1 function or 2 functions^^" how you want to do it but delete the bow. Thats not good. Also enchantments are not good on weapons. Make differend kind of Munition. Which have differend effects. i hope that helps you a little bit^^
June 22, 201312 yr Ok cool idea to make something like a reload system which also add alot of thigs for the detecting. First of all. Delete all Code! A bow in a gun = Thats not god. Make it like that: when you rightclick (and he can shoot) than he shood instandly! Like the old vanilla bow. And when the weapon is not loaded than he starts to refuel them. You can do this in 1 function or 2 functions^^" how you want to do it but delete the bow. Thats not good. Also enchantments are not good on weapons. Make differend kind of Munition. Which have differend effects. i hope that helps you a little bit^^ We're here to help people, not comment on what they are or should be trying to make. @OP: I don't see any "reloading" code... BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 25, 201312 yr Author bump My youtube channel for forge tutorials: http://www.youtube.com/user/TheGrovesyProject101?feature=mhee if i helped please press thank you
June 25, 201312 yr bump What do you mean exactly by "reload"? BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 26, 201312 yr he means when you shoot he uses the gun and makes the gun empty. Than you have to refill it (with whatever he uses). And i know we are here to help people but that bow code will make it harder to code^^. Thats why i said this!
June 26, 201312 yr he means when you shoot he uses the gun and makes the gun empty. Than you have to refill it (with whatever he uses). And i know we are here to help people but that bow code will make it harder to code^^. Thats why i said this! You were giving him suggestions for his mod as well. Which he did not ask for. But it is true that, if that is his intention, the bow code will not work. BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 26, 201312 yr Author yeah just so the player has to reload the gun but the reason i kept the bow code is so the player could aim down the sights My youtube channel for forge tutorials: http://www.youtube.com/user/TheGrovesyProject101?feature=mhee if i helped please press thank you
June 26, 201312 yr I think the answer he wants is: make a KeyHandler, bind a key and when that key is pressed (like R for reload) check what item the player has in its hand and call some reload function on it if its a gun or wtv you're trying to do. how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution-
June 26, 201312 yr I think the answer he wants is: make a KeyHandler, bind a key and when that key is pressed (like R for reload) check what item the player has in its hand and call some reload function on it if its a gun or wtv you're trying to do. True. But I'd need to see some sort of "cartridge" code in the first place. BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 27, 201312 yr Why not sneakRightClick. Only a idea but rightClick for shooting and then just sneak and reload it. Its easier to make and less work^^"
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.