Thread: Buttons problem with smelting

Results 1 to 10 of 10
  1. #1 Buttons problem with smelting 
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    alright i got the interface open but i need set the attribute so i can get this to work, i can't seem to call smelt appropiately

    heres the object option, where it says
    Code:
    Smelt smelt = Smelt.forId(smelt.getId());
    thats where the error is under smelt.getId i can't seem to call it right


    Code:
    if(obj.getDefinition() != null) {
    			Smelt smelt = Smelt.forId(smelt.getId());
    			if(obj.getDefinition().getName().toLowerCase().contains("furnace")) {
    				player.getActionSender().sendChatboxInterface(311);
    				player.getActionSender().sendInterfaceModel(311, 4, 125, 2349);//Bronze bar.
    				player.getActionSender().sendInterfaceModel(311, 5, 125, 9467);//Blurite bar.
    				player.getActionSender().sendInterfaceModel(311, 6, 125, 2351);//Iron bar.
    				player.getActionSender().sendInterfaceModel(311, 7, 125, 2355);//Silver
    				player.getActionSender().sendInterfaceModel(311, 8, 125, 2353);//Steel bar.
    				player.getActionSender().sendInterfaceModel(311, 9, 125, 2357);//Gold bar.
    				player.getActionSender().sendInterfaceModel(311, 10, 125, 2359);//Mithril bar.
    				player.getActionSender().sendInterfaceModel(311, 11, 125, 2361);//Adamant bar.
    				player.getActionSender().sendInterfaceModel(311, 12, 125, 2363);//Rune bar
    				player.setInterfaceAttribute("smelting_type", Smelt);
    				
    			}
    		
    		}
    here's the class i posted in pastebin aswell so it's easier to read http://pastebin.com/uTfqbJhZ


    Code:
    package org.rs2server.rs2.model.skills;
    
    import java.util.HashMap;
    
    import java.util.Map;
    
    import org.rs2server.rs2.action.impl.ProductionAction;
    import org.rs2server.rs2.model.Animation;
    import org.rs2server.rs2.model.Graphic;
    import org.rs2server.rs2.model.Item;
    import org.rs2server.rs2.model.Mob;
    import org.rs2server.rs2.model.Skills;
    
    public class Smelting extends ProductionAction {
    	
    	
    	/**
    	 * The amount of times to produce this item.
    	 */
    	private int productionCount;
    	
    	private int smeltIndex;
    	
    	/**
    	 * The ingredient type.
    	 */
    	private Smelt smelt;
    	
    	public Smelting(Mob mob, int productionCount, int smeltIndex, Smelt smelt) {
    		super(mob);
    		this.productionCount = productionCount;
    		this.smeltIndex = smeltIndex;
    		this.smelt = smelt;
    	}
    	
    	
    	public enum Smelt {
    		//Regret the way I did this but whatever 
    		//BARS(1, 436, new Item(438, 1), 2349, 1, 25);
    		//Reward -- 1st req -- 2nd req -- amount for 2nd -- level -- exp
    		BARS(1, new int[] {2349, 9467, 2351, 2353, 2355, 2357, 2359, 2361, 2363}, new int[] {436, 668, 440, 442, 440, 444, 447, 449, 451}, 
    				new int[] {438, 453, 440, 442, 453, 444, 453, 453, 453}, new int[] {1, 1, 0, 0, 2, 0, 4, 6, 8}, new int[] {1, 8, 15, 20, 30, 40, 50, 70, 85},
    				new double[]{10, 10, 10, 10, 10, 10, 10, 10, 10});
    		
    		private int index;
    
    		/**
    		 * The bar.
    		 */
    		private int[] itemId;
    
    		/**
    		 * The first item.
    		 */
    		private int[] firstItem;
    		
    		/**
    		 * The 2nd item.
    		 */
    		private int[] secondItem;
    
    		/**
    		 * The amount for secondary.
    		 */
    		private int[] amount;
    		
    		/**
    		 * The level.
    		 */
    		private int[] level;
    		
    		/**
    		 * The experience.
    		 */
    		private double[] exp;
    
    	
    		private static Map<Integer, Smelt> ores = new HashMap<>();
    
    	
    		public static Smelt forId(int item) {
    			return ores.get(item);
    		}
    
    		/**
    		 * Populates the map.
    		 */
    		static {
    			for (Smelt ore : Smelt.values()) {
    				ores.put(ore.index, ore);
    			}
    		}
    
    		private Smelt(int index, int[] itemId, int[] firstItem, int[] secondItem, int[] amount, int[] level, double[] exp) {
    			this.index = index;
    			this.itemId = itemId;
    			this.firstItem = firstItem;
    			this.secondItem = secondItem;
    			this.amount = amount;
    			this.level = level;
    			this.exp = exp;
    		}
    
    		/**
    		 * Gets the index.
    		 * 
    		 * @return The index.
    		 */
    		public int getIndex() {
    			return index;
    		}
    		
    		/**
    		 * Gets the bar id.
    		 * 
    		 * @return The id.
    		 */
    		public int[] getId() {
    			return itemId;
    		}
    
    		public int[] getFirst() {
    			return firstItem;
    		}
    		/**
    		 * Gets the second requried id.
    		 * 
    		 * @return The required id.
    		 */
    		public int[] getSecond() {
    			return secondItem;
    		}
    
    		/**
    		 * Gets the required level.
    		 * 
    		 * @return The required level.
    		 */
    		public int[] getRequiredLevel() {
    			return level;
    		}
    
    		/**
    		 * Gets the reward.
    		 * 
    		 * @return The reward.
    		 */
    		public int[] getAmount() {
    			return amount;
    		}
    
    		/**
    		 * Gets the exp.
    		 * 
    		 * @return The exp.
    		 */
    		public double[] getExperience() {
    			return exp;
    		}
    
    	}
    	
    	@Override
    	public boolean canProduce() {
    		return true;
    	}
    
    	@Override
    	public Animation getAnimation() {
    		return Animation.create(363);
    	}
    
    	@Override
    	public Item[] getConsumedItems() {
    		return new Item[] { new Item(smelt.getFirst()[smeltIndex]), new Item(smelt.getSecond()[smeltIndex], smelt.getAmount()[smeltIndex])};
    		}
    	
    	@Override
    	public int getCycleCount() {
    		return 4;
    	}
    
    	@Override
    	public double getExperience() {
    			return smelt.getExperience()[smeltIndex];
    	}
    
    	@Override
    	public Graphic getGraphic() {
    		return null;
    	}
    
    	@Override
    	public String getLevelTooLowMessage() {
    		return "You need a " + Skills.SKILL_NAME[getSkill()] + " level of " + getRequiredLevel() + " to smelt these ores.";
    	}
    
    	@Override
    	public int getProductionCount() {
    		return productionCount;
    	}
    
    	@Override
    	public int getRequiredLevel() {
    		return smelt.getRequiredLevel()[smeltIndex];
    	}
    
    	@Override
    	public Item[] getRewards() {
    			return new Item[] { new Item(smelt.getId()[smeltIndex]) };
    	}
    
    	@Override
    	public int getSkill() {
    		return Skills.SMITHING;
    	}
    
    	@Override
    	public String getSuccessfulProductionMessage() {
    			return "You smelt the ores into a bar";
    	}
    
    }

    and here's the buttons maybe theres a better way; but i'm trying to call te interface attribute here
    Code:
    player.getActionQueue().addAction(new Smelting(player, productionCount, smeltIndex, (Smelt) player.getInterfaceAttribute("smelt_type")));
    here's the button

    Code:
    	case 311:
    				int smeltIndex = -1;
    				int productionCount = -1;
    				switch(button) {
    				case 16:
    				case 6:
    				case 5:
    				case 4:
    					smeltIndex = 0;
    					break;
    				case 11:
    				case 10:
    				case 9:
    				case 8:
    					smeltIndex = 1;
    					break;
    				}
    				switch(button) {
    				case 16:
    				case 11:
    					productionCount = 1;
    					break;
    				case 6:
    				case 10:
    					productionCount = 5;
    					break;
    				case 5:
    				case 9:
    					productionCount = 10;
    					break;
    				case 4:
    				case 8:
    					//player.getInterfaceState().openEnterAmountInterface(303, logIndex, -1);
    					//player.setInterfaceAttribute("fletching_index", logIndex);
    					break;
    				}
    				if(productionCount != -1) {
    					player.getActionQueue().addAction(new Smelting(player, productionCount, smeltIndex, (Smelt) player.getInterfaceAttribute("smelt_type")));
    					player.getActionSender().removeChatboxInterface();
    				}
    				break;
    Reply With Quote  
     

  2. #2  
    Registered Member
    vovik ukr's Avatar
    Join Date
    Aug 2010
    Posts
    1,240
    Thanks given
    136
    Thanks received
    187
    Rep Power
    278
    reading code is like reading Japanese if it's not in notepad++ or eclipse
    Reply With Quote  
     

  3. #3  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    Quote Originally Posted by vovik ukr View Post
    reading code is like reading Japanese if it's not in notepad++ or eclipse
    i feel ya.
    Reply With Quote  
     

  4. #4  
    Registered Member
    vovik ukr's Avatar
    Join Date
    Aug 2010
    Posts
    1,240
    Thanks given
    136
    Thanks received
    187
    Rep Power
    278
    Quote Originally Posted by Andrew View Post
    i feel ya.
    feel me more baby
    Reply With Quote  
     

  5. Thankful users:


  6. #5  
    Registered Member
    hacker's Avatar
    Join Date
    Jun 2013
    Posts
    1,409
    Thanks given
    576
    Thanks received
    580
    Rep Power
    5000
    Erm Smelting.Smelt = smelt Smelting.Smelt.forId(smelt.getId()); ? Sorry I don't understand error and I'm on my phone
    Reply With Quote  
     

  7. #6  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    its smelt may not be initialized
    Reply With Quote  
     

  8. #7  
    Community Veteran

    mige5's Avatar
    Join Date
    Aug 2008
    Posts
    5,528
    Thanks given
    573
    Thanks received
    1,410
    Rep Power
    2114
    Code:
    Smelt smelt = Smelt.forId(smelt.getId());
    ^also why do u define smelt as something, and then dont use it anywhere...?
    Number of page #1 releases with most views & posts: (Updated: 2023)
    RS2 server section: 1
    RS2 client section: 2
    Reply With Quote  
     

  9. #8  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    Quote Originally Posted by mige5 View Post
    Code:
    Smelt smelt = Smelt.forId(smelt.getId());
    ^also why do u define smelt as something, and then dont use it anywhere...?
    Code:
    player.setInterfaceAttribute("smelting_type", smelt);
    i'm setting the InterfaceAttribute to call the buttons for the ProductionAction, i think at least im doing it right, but im not positive thats why posted everything
    Reply With Quote  
     

  10. #9  
    Community Veteran

    mige5's Avatar
    Join Date
    Aug 2008
    Posts
    5,528
    Thanks given
    573
    Thanks received
    1,410
    Rep Power
    2114
    Quote Originally Posted by Andrew View Post
    Code:
    player.setInterfaceAttribute("smelting_type", smelt);
    i'm setting the InterfaceAttribute to call the buttons for the ProductionAction, i think at least im doing it right, but im not positive thats why posted everything
    in the first post the code is this:
    Code:
    player.setInterfaceAttribute("smelting_type", Smelt);
    u know java is Case-sensitive?
    Number of page #1 releases with most views & posts: (Updated: 2023)
    RS2 server section: 1
    RS2 client section: 2
    Reply With Quote  
     

  11. #10  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    Quote Originally Posted by mige5 View Post
    in the first post the code is this:
    Code:
    player.setInterfaceAttribute("smelting_type", Smelt);
    u know java is Case-sensitive?
    yes i fixed that, however i still have the same error
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 7
    Last Post: 02-25-2011, 07:29 PM
  2. Replies: 3
    Last Post: 02-16-2011, 12:58 PM
  3. Problem with smelting
    By Vegito in forum Help
    Replies: 0
    Last Post: 02-07-2009, 04:19 PM
  4. Problem with search button.
    By Hooligan in forum Complaints
    Replies: 7
    Last Post: 01-09-2009, 06:08 PM
  5. Replies: 10
    Last Post: 08-31-2007, 10:41 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •