Thread: [PI] Mining skill doesn't work

Page 1 of 2 12 LastLast
Results 1 to 10 of 18
  1. #1 [PI] Mining skill doesn't work 
    Registered Member
    Join Date
    Oct 2014
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Hi,

    I'm a beginner and downloaded a PI source. For some reason i can't train mining, as i can't mine anything.
    When i click a rock, nothing seems to happen.

    Any help would be appreciated.

    Here's the code in "Mining.java".

    Code:
    package game.skill;
    
    import engine.event.Event;
    import engine.event.EventContainer;
    import engine.event.EventManager;
    import engine.util.Misc;
    import game.Client;
    import game.player.PlayerHandler;
    
    /*
     * Project Insanity - Evolved v.3
     * Mining.java
     */
    
    public class Mining {
    
    	private final Client c;
    
    	public final int[][] Pick_Settings = {
    			{1265, 1, 1, 6753}, //Bronze
    			{1267, 1, 2, 6754}, //Iron
    			{1269, 6, 3, 6755}, //Steel
    			{1271, 31, 5, 6756}, //Addy
    			{1273, 21, 4, 6757}, //Mithril
    			{1275, 41, 6, 6752}, //Rune
    			{15259, 61, 7, 12188}, //Dragon
    			{13661, 41, 7, 10222} //Adze
    	};
    
    	public final int[][] Rock_Settings = {
    			{2091, 1, 18, 3, 436}, //Copper
    			{2095, 1, 18, 3, 438}, //Tin
    			{2093, 15, 35, 7, 440}, //Iron
    			{2097, 30, 50, 38, 453}, //Coal
    			{2103, 55, 80, 155, 447}, //Mithril
    			{2105, 70, 95, 315, 449}, //Addy
    			{2107, 85, 125, 970, 451}, //Rune
    			{2090, 1, 18, 3, 436}, //Copper
    			{2094, 1, 18, 3, 438}, //Tin
    			{2092, 15, 35, 7, 440}, //Iron
    			{2096, 30, 50, 38, 453}, //Coal
    			{2102, 55, 80, 155, 447}, //Mithril
    			{2104, 70, 95, 315, 449}, //Addy
    			{2106, 85, 125, 970, 451}, //Rune
    			{2100, 20, 40, 78, 442}, //Silver
    			{2101, 20, 40, 78, 442}, //Silver
    			{2098, 40, 65, 78, 444}, //Gold
    			{2099, 40, 65, 78, 444} //Gold
    	};
    
    	int a = -1;
    
    	public Mining(final Client c) {
    		this.c = c;
    	}
    
    	public int getTimer(final int b, final int c, final int level) {
    		final double timer = (Rock_Settings[b][1]  * 2 + 20 + Misc.random(20))-(Pick_Settings[c][2] * (Pick_Settings[c][2] * 0.75) + level);
    		if (timer < 2.0) {
    			return 2;
    		} else {
    			return (int)timer;
    		}
    	}
    
    	public void mineRock(final int respawnTime, final int x, final int y, final int type, final int i) {
    		new Object();
    		for (int t = 0; t < PlayerHandler.players.length; t++) {
    			if (PlayerHandler.players[t] != null) {
    				if (PlayerHandler.players[t].rockX == x && PlayerHandler.players[t].rockY == y) {
    					PlayerHandler.players[t].isMining = false;
    					PlayerHandler.players[t].startAnimation(65535);
    					PlayerHandler.players[t].rockX = 0;
    					PlayerHandler.players[t].rockY = 0;
    				}
    			}
    		}
    	}
    
    	public void startMining(final int j, final int x, final int y, final int type) {
    		if (c.isMining) {
    			return;
    		}
    		if (c.mining) {
    			return;
    		}
    		final int miningLevel = c.playerLevel[c.playerMining] ;
    		a = -1;
    		c.turnPlayerTo(x, y);
    		if (Rock_Settings[j][1] > miningLevel) {
    			c.sendMessage("You need a Mining level of " + Rock_Settings[j][1] + " to mine this rock.");
    			return;
    		}
    		for (int i = 0; i < Pick_Settings.length; i++) {
    			if (c.getItems().playerHasItem(Pick_Settings[i][0]) || c.playerEquipment[c.playerWeapon] == Pick_Settings[i][0]) {
    				if (Pick_Settings[i][1] <= miningLevel) {
    					a = i;
    				}
    			}
    		}
    		if (a == -1) {
    			c.sendMessage("You need a pickaxe to mine this rock.");
    			return;
    		}
    		if (c.getItems().freeSlots() < 1) {
    			c.sendMessage("You do not have enough inventory slots to do that.");
    			return;
    		}
    		c.startAnimation(Pick_Settings[a][3]);
    		c.isMining = true;
    		c.rockX = x;
    		c.rockY = y;
    		c.mining = true;
    		EventManager.getSingleton().addEvent(new Event() {
    			@Override
    			public void execute(final EventContainer e) {
    				if (!c.isMining) {
    					e.stop();
    					c.startAnimation(65535);
    					return;
    				}
    				if (c.isMining) {
    					c.getItems().addItem(Rock_Settings[j][4], 1);
    					c.getPA().addSkillXP(Rock_Settings[j][2], c.playerMining);
    				}
    				if (c.getItems().freeSlots() < 1) {
    					c.sendMessage("You have ran out of inventory slots.");
    					e.stop();
    				}
    				mineRock(Rock_Settings[j][3], x, y, type, Rock_Settings[j][0]);
    				c.isMining = false;
    				e.stop();
    			}
    			@SuppressWarnings("unused")
    			public void stop() {
    				c.getPA().removeAllWindows();
    				c.startAnimation(65535);
    				c.isMining = false;
    				c.rockX = 0;
    				c.rockY = 0;
    				c.mining = false;
    				return;
    			}
    		}, getTimer(j, a, miningLevel));
    	}
    
    }
    Reply With Quote  
     

  2. #2  
    Registered Member
    Andys1814's Avatar
    Join Date
    Feb 2013
    Posts
    974
    Thanks given
    688
    Thanks received
    455
    Rep Power
    727
    Did you declare it in object click or whatever it is.
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    Oct 2014
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by Trystan View Post
    Did you declare it in object click or whatever it is.
    Uhm, could that be in ObjectManager?
    Reply With Quote  
     

  4. #4  
    Taking all OSGP donations at this time

    Deri's Avatar
    Join Date
    Apr 2014
    Age
    30
    Posts
    381
    Thanks given
    274
    Thanks received
    251
    Rep Power
    5000
    Quote Originally Posted by batsen View Post
    Uhm, could that be in ObjectManager?
    More likely in ActionHandler where object clicks are handled.
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    Mar 2015
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    in clickobject.java would be under the firstclick method

    Code:
    case ####:
    Mining.startMining(c);
    break;
    -------------------------------------------------------------------

    If that doesn't work then you could go ahead and look in actionhandler and search for
    firstClickObject
    and below it add

    Code:
    		if (Mining.miningRocks(c, objectType)) {
    			Mining.attemptData(c, objectType, obX, obY);
    			return;
    		}

    Please thank me or rep me if this helped. Good luck mate
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    Oct 2014
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by Derivative View Post
    More likely in ActionHandler where object clicks are handled.
    This is what i have in ActionHandler.java for mining:
    Code:
    // Mining Rocks
    		case 2091:
    			c.getMining().startMining(0, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2095:
    			c.getMining().startMining(1, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2093:
    			c.getMining().startMining(2, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2097:
    			c.getMining().startMining(3, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2103:
    			c.getMining().startMining(4, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2105:
    			c.getMining().startMining(5, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2107:
    			c.getMining().startMining(6, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2090:
    			c.getMining().startMining(7, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2094:
    			c.getMining().startMining(8, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2092:
    			c.getMining().startMining(9, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2096:
    			c.getMining().startMining(10, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2102:
    			c.getMining().startMining(11, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2104:
    			c.getMining().startMining(12, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2106:
    			c.getMining().startMining(13, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2100:
    			c.getMining().startMining(14, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2101:
    			c.getMining().startMining(15, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2098:
    			c.getMining().startMining(16, c.objectX, c.objectY, c.clickObjectType);
    		break;
    		case 2099:
    			c.getMining().startMining(17, c.objectX, c.objectY, c.clickObjectType);
    		break;
    And this is what's in my Mining.java:
    Code:
    public Mining(final Client c) {
    		this.c = c;
    	}
    
    	public int getTimer(final int b, final int c, final int level) {
    		final double timer = (Rock_Settings[b][1]  * 2 + 20 + Misc.random(20))-(Pick_Settings[c][2] * (Pick_Settings[c][2] * 0.75) + level);
    		if (timer < 2.0) {
    			return 2;
    		} else {
    			return (int)timer;
    		}
    	}
    
    	public void mineRock(final int respawnTime, final int x, final int y, final int type, final int i) {
    		new Object();
    		for (int t = 0; t < PlayerHandler.players.length; t++) {
    			if (PlayerHandler.players[t] != null) {
    				if (PlayerHandler.players[t].rockX == x && PlayerHandler.players[t].rockY == y) {
    					PlayerHandler.players[t].isMining = false;
    					PlayerHandler.players[t].startAnimation(65535);
    					PlayerHandler.players[t].rockX = 0;
    					PlayerHandler.players[t].rockY = 0;
    				}
    			}
    		}
    	}
    
    	public void startMining(final int j, final int x, final int y, final int type) {
    		if (c.isMining) {
    			return;
    		}
    		if (c.mining) {
    			return;
    		}
    		final int miningLevel = c.playerLevel[c.playerMining] ;
    		a = -1;
    		c.turnPlayerTo(x, y);
    		if (Rock_Settings[j][1] > miningLevel) {
    			c.sendMessage("You need a Mining level of " + Rock_Settings[j][1] + " to mine this rock.");
    			return;
    		}
    		for (int i = 0; i < Pick_Settings.length; i++) {
    			if (c.getItems().playerHasItem(Pick_Settings[i][0]) || c.playerEquipment[c.playerWeapon] == Pick_Settings[i][0]) {
    				if (Pick_Settings[i][1] <= miningLevel) {
    					a = i;
    				}
    			}
    		}
    		if (a == -1) {
    			c.sendMessage("You need a pickaxe to mine this rock.");
    			return;
    		}
    		if (c.getItems().freeSlots() < 1) {
    			c.sendMessage("You do not have enough inventory slots to do that.");
    			return;
    		}
    		c.startAnimation(Pick_Settings[a][3]);
    		c.isMining = true;
    		c.rockX = x;
    		c.rockY = y;
    		c.mining = true;
    		EventManager.getSingleton().addEvent(new Event() {
    			@Override
    			public void execute(final EventContainer e) {
    				if (!c.isMining) {
    					e.stop();
    					c.startAnimation(65535);
    					return;
    				}
    				if (c.isMining) {
    					c.getItems().addItem(Rock_Settings[j][4], 1);
    					c.getPA().addSkillXP(Rock_Settings[j][2], c.playerMining);
    				}
    				if (c.getItems().freeSlots() < 1) {
    					c.sendMessage("You have ran out of inventory slots.");
    					e.stop();
    				}
    				mineRock(Rock_Settings[j][3], x, y, type, Rock_Settings[j][0]);
    				c.isMining = false;
    				e.stop();
    			}
    			@SuppressWarnings("unused")
    			public void stop() {
    				c.getPA().removeAllWindows();
    				c.startAnimation(65535);
    				c.isMining = false;
    				c.rockX = 0;
    				c.rockY = 0;
    				c.mining = false;
    				return;
    			}
    		}, getTimer(j, a, miningLevel));
    	}
    
    }
    Reply With Quote  
     

  7. #7  
    Taking all OSGP donations at this time

    Deri's Avatar
    Join Date
    Apr 2014
    Age
    30
    Posts
    381
    Thanks given
    274
    Thanks received
    251
    Rep Power
    5000
    Correct rock ids for your revision?
    Reply With Quote  
     

  8. #8  
    Registered Member
    Join Date
    Oct 2014
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by Derivative View Post
    Correct rock ids for your revision?
    Yes, i've checked them.
    Reply With Quote  
     

  9. #9  
    Taking all OSGP donations at this time

    Deri's Avatar
    Join Date
    Apr 2014
    Age
    30
    Posts
    381
    Thanks given
    274
    Thanks received
    251
    Rep Power
    5000
    Code:
    if (c.isMining) {
    return;
    }
    if (c.mining) {
    return;
    }
    Try removing that and see if it works
    Reply With Quote  
     

  10. #10  
    Registered Member
    Join Date
    Oct 2014
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Try removing that and see if it works
    I tried, it didn't..

    Thanks for trying to help me tho
    Reply With Quote  
     

Page 1 of 2 12 LastLast

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: 14
    Last Post: 06-11-2013, 01:33 AM
  2. [PI]Mining Skill
    By Glenn in forum Requests
    Replies: 3
    Last Post: 06-04-2011, 07:34 AM
  3. [PI] Mute command doesn't work
    By Beanerrr in forum Help
    Replies: 13
    Last Post: 02-13-2011, 10:54 PM
  4. [PI] Object click doesn't work?
    By jordan641 in forum Requests
    Replies: 1
    Last Post: 11-05-2010, 02:56 AM
  5. [PI] My client doesn't work need help
    By fabalisto in forum Help
    Replies: 4
    Last Post: 09-29-2010, 08:30 PM
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •