Thread: What's wrong with this?

Results 1 to 5 of 5
  1. #1 What's wrong with this? 
    Extreme Donator


    Join Date
    Oct 2006
    Posts
    1,370
    Thanks given
    64
    Thanks received
    197
    Rep Power
    426
    Code:
    	public void startMining(final Client c, final int objid) {
    		final Ores m = Ores.forId(objid);
    		if (m != null) {
    			if (canMineOre(c, objid)) {
    				final Pickaxe p = Pickaxe.forId(getPick(c));
    				if (canUsePickaxe(c, getPick(c))) {
    					final int reqTicks = getGoodAmountOfTicks(c, objid);
    					c.startAnimation(p.getAnim());
    					World.getWorld().submit(new Tick(30) {
    						@Override
    						public void execute() {
    							int cycle = 0;
    							cycle += 1;
    							if (Misc.random(25) == 17) {
    								c.getItems().addItem(RANDOM_GEMS[(int)(RANDOM_GEMS.length * Math.random())], 1);
    								c.sendMessage("You find a gem!");
    							}
    							if (cycle == reqTicks) {
    								c.getItems().addItem(m.getItemId(), 1);
    								c.getPA().addSkillXP(m.getXpAmount(), c.playerMining);
    								c.getPA().refreshSkill(c.playerMining);
    								c.sendMessage("You mine a ore.");
    								c.getPA().resetAnimation();
    								this.stop();
    							}
    							c.getPA().resetAnimation();
    							this.stop();
    						}
    					});
    				} else {
    					c.sendMessage("You must have a mining level of "+p.getReq()+" to use this pickaxe.");
    				}
    			} else {
    				c.sendMessage("You need a mining level of "+m.getLevelReq()+" to mine this ore.");
    			}
    		}
    	}
    It does start the animation, however, it doesn't mine... I don't know what's wrong.


    ~flow@hacking . rs
    Reply With Quote  
     

  2. #2  
    What's wrong with this?



    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    30
    Posts
    16,307
    Thanks given
    7,215
    Thanks received
    12,308
    Rep Power
    5000
    World.getWorld().submit(new Tick(30) {

    30 ticks = 30 * 0.6seconds = 18 seconds... that's an awfully long wait time for each ore...

    Attached image
    Reply With Quote  
     

  3. #3  
    Are you really awesome?
    Aaron's Avatar
    Join Date
    May 2011
    Age
    30
    Posts
    663
    Thanks given
    14
    Thanks received
    110
    Rep Power
    0
    Should be like 13 ticks
    Reply With Quote  
     

  4. #4  
    Extreme Donator


    Join Date
    Oct 2006
    Posts
    1,370
    Thanks given
    64
    Thanks received
    197
    Rep Power
    426
    Doesn't work... it'll start the animation but won't add the ore..


    ~flow@hacking . rs
    Reply With Quote  
     

  5. #5  
    Extreme Donator


    Join Date
    Oct 2006
    Posts
    1,370
    Thanks given
    64
    Thanks received
    197
    Rep Power
    426
    My whole mining class:

    Code:
    package server.model.players.skills;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import server.World;
    import server.model.players.Client;
    import server.tick.Tick;
    import server.util.Misc;
    
    public class Mining {
    	private Client c;
    	
    	private int cycle = 0;
    
    	public Mining(Client c) {
    		this.c = c;
    	}
    
    	public final int[] VALID_PICKAXES = {1265, 1267, 1269, 1273, 1271, 1275, 15259};
    	private final int[] RANDOM_GEMS = {1623,1621,1619,1617,1631};
    
    	private enum Pickaxe {
    
    		Bronze(1265, 1, 625, 1.0),
    		Iron(1267, 1, 626, 1.05),
    		Steel(1269, 6, 627, 1.1),
    		Mithril(1273, 21, 628, 1.2),
    		Adamant(1271, 31, 629, 1.25),
    		Rune(1275, 41, 624, 1.3),
    		Dragon(15259, 61, 12188, 1.50);
    
    		private int id, req, anim;
    		private double speed;
    
    		private Pickaxe(int id, int req, int anim, double speed) {
    			this.id = id;
    			this.req = req;
    			this.anim = anim;
    			this.speed = speed;
    		}
    
    		public int getId() {
    			return id;
    		}
    		public int getReq(){
    			return req;
    		}
    
    		public int getAnim(){
    			return anim;
    		}
    
    		public double getSpeed() {
    			return speed;
    		}
    
    		private static final Map<Integer, Pickaxe> p = new HashMap<Integer, Pickaxe>();
    
    		public static Pickaxe forId(int id) {
    			return p.get(id);
    		}
    
    		static {
    			for (Pickaxe paxe : Pickaxe.values()) {
    				p.put(paxe.getId(), paxe);
    			}
    		}
    	}
    
    	private enum Ores {
    
    		Copper(31081, 1, 175, 436, 3),
    		Tin(31077, 1, 175, 438, 3),
    		Iron(31073, 15, 350, 440, 4),
    		Coal(31068, 30, 500, 453, 5),
    		Gold(31065, 40, 650, 444, 5),
    		Mithril(31086, 50, 800, 447, 7),
    		Adamantite(31083, 70, 950, 449, 10),
    		Adamantite2(31085, 70, 950, 449, 10),
    		Runite(14859, 85, 1250, 451, 15);
    
    
    		private int objid, itemid, req, xp, ticks;
    
    		private Ores(int objid, int req, int xp, int itemid, int ticks) {
    			this.objid = objid;
    			this.req = req;
    			this.xp = xp;
    			this.itemid = itemid;
    			this.ticks = ticks;
    		}
    
    		public int getObjId() {
    			return objid;
    		}
    		public int getLevelReq(){
    			return req;
    		}
    
    		public int getXpAmount(){
    			return xp;
    		}
    
    		public int getItemId(){
    			return itemid;
    		}
    
    		public int getTicks() {
    			return ticks;
    		}
    
    		private static final Map<Integer, Ores> miningores = new HashMap<Integer, Ores>();
    
    		public static Ores forId(int id) {
    			return miningores.get(id);
    		}
    
    		static {
    			for (Ores ore : Ores.values()) {
    				miningores.put(ore.getObjId(), ore);
    			}
    		}
    	}
    
    	public boolean canUsePickaxe(Client c, int itemid) {
    		Pickaxe p = Pickaxe.forId(itemid);
    		return c.playerLevel[c.playerMining] >= p.getReq();
    	}
    
    	public boolean weaponIsPickaxe(Client c) {
    		for (int i : VALID_PICKAXES) {
    			return c.playerEquipment[c.playerWeapon] == i;
    		}
    		return false;
    	}
    
    	public boolean playerHasPickaxeInInventory(Client c) {
    		for (int i : VALID_PICKAXES) {
    			return c.getItems().playerHasItem(i);
    		}
    		return false;
    	}
    
    	public boolean playerHasPickaxe(Client c) {
    		return weaponIsPickaxe(c) || playerHasPickaxeInInventory(c);
    	}
    
    	public int getPick(Client c) {
    		for (int j = VALID_PICKAXES.length - 1; j >= 0; j--) {
    			if (c.playerEquipment[c.playerWeapon] == VALID_PICKAXES[j]) {
    				return VALID_PICKAXES[j];
    			}		
    		}
    		for (int i = 0; i < c.playerItems.length; i++) {
    			for (int j = VALID_PICKAXES.length - 1; j >= 0; j--) {
    				if (c.playerItems[i] == VALID_PICKAXES[j] + 1) {
    					return VALID_PICKAXES[j];
    				}
    			}		
    		}
    		return - 1;
    	}
    
    	public boolean canMineOre(Client c, int objid) {
    		Ores m = Ores.forId(objid);
    		return c.playerLevel[c.playerMining] >= m.getLevelReq();
    	}
    
    	public int getExperience(Client c, int objid) {
    		Ores m = Ores.forId(objid);
    		return m.getXpAmount();
    	}
    
    	public int getItem(Client c, int objid) {
    		Ores m = Ores.forId(objid);
    		return m.getItemId();
    	}
    
    	public int getAnimation(Client c, int itemid) {
    		Pickaxe p = Pickaxe.forId(itemid);
    		return p.getAnim();
    	}
    
    	public boolean useInventory(Client c) {
    		return weaponIsPickaxe(c) ? false : true;
    	}
    
    	public int getGoodAmountOfTicks(Client c, int objid) {
    		Ores m = Ores.forId(objid);
    		return (m.getTicks() + Misc.random(m.getTicks()));
    	}
    
    	public void startMining(final Client c, final int objid) {
    		final Ores m = Ores.forId(objid);
    		if (m != null) {
    			if (canMineOre(c, objid)) {
    				final Pickaxe p = Pickaxe.forId(getPick(c));
    				if (canUsePickaxe(c, getPick(c))) {
    					c.startAnimation(p.getAnim());
    					World.getWorld().submit(new Tick(2) {
    						@Override
    						public void execute() {
    							cycle++;
    							if (Misc.random(25) == 17) {
    								c.getItems().addItem(RANDOM_GEMS[(int)(RANDOM_GEMS.length * Math.random())], 1);
    								c.sendMessage("You find a gem!");
    							}
    							if (cycle == m.getTicks()) {
    								c.getItems().addItem(m.getItemId(), 1);
    								c.getPA().addSkillXP(m.getXpAmount(), c.playerMining);
    								c.getPA().refreshSkill(c.playerMining);
    								c.sendMessage("You mine a ore.");
    								c.getPA().resetAnimation();
    								this.stop();
    							}
    							c.getPA().resetAnimation();
    							this.stop();
    						}
    					});
    				} else {
    					c.sendMessage("You must have a mining level of "+p.getReq()+" to use this pickaxe.");
    				}
    			} else {
    				c.sendMessage("You need a mining level of "+m.getLevelReq()+" to mine this ore.");
    			}
    		}
    	}
    }


    ~flow@hacking . rs
    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. ...what is wrong with this?
    By failz in forum Help
    Replies: 1
    Last Post: 10-02-2010, 10:52 AM
  2. What did i do wrong?
    By poopoohead in forum Help
    Replies: 10
    Last Post: 01-28-2010, 04:40 AM
  3. Replies: 19
    Last Post: 01-22-2010, 10:57 AM
  4. wtf is wrong
    By Gluon in forum Forum Related Help
    Replies: 6
    Last Post: 03-01-2009, 04:45 PM
  5. wtf is wrong
    By C.T in forum Help
    Replies: 5
    Last Post: 11-03-2008, 02:24 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
  •