Tribot - Flax Spinner Script

Discussion in 'RuneScape 2007 Cheating' started by MindTricks, Mar 29, 2013.

Tribot - Flax Spinner Script
  1. Unread #1 - Mar 29, 2013 at 11:55 AM
  2. MindTricks
    Joined:
    Mar 29, 2013
    Posts:
    2
    Referrals:
    0
    Sythe Gold:
    0

    MindTricks Newcomer

    Tribot - Flax Spinner Script

    I know the website is down, but I still have my bot open. Does anyone have this script for me?
     
  3. Unread #2 - Mar 29, 2013 at 6:15 PM
  4. YoHoJo
    Joined:
    Sep 4, 2005
    Posts:
    6,379
    Referrals:
    15
    Sythe Gold:
    2,625
    St. Patrick's Day 2013 Christmas 2015 Halloween 2014 Lawrence Easter 2013 Heidy Halloween 2013

    YoHoJo Hero
    Scar Programmers $25 USD Donor New

    Tribot - Flax Spinner Script

    Unless you search tricot and see a thread with the source /direct download you're just going to have to be patient and wait.
     
  5. Unread #3 - Mar 29, 2013 at 7:59 PM
  6. Leixner
    Joined:
    Jan 27, 2007
    Posts:
    154
    Referrals:
    0
    Sythe Gold:
    0

    Leixner Active Member

    Tribot - Flax Spinner Script

    Cant run a new script without starting the client anyways.
    So it would be quite useless!
     
  7. Unread #4 - Mar 30, 2013 at 11:18 PM
  8. rexyiscool
    Joined:
    Nov 26, 2008
    Posts:
    590
    Referrals:
    1
    Sythe Gold:
    1

    rexyiscool Forum Addict

    Tribot - Flax Spinner Script

    I dont think either of the scripts work tbh.
     
  9. Unread #5 - Mar 31, 2013 at 12:10 AM
  10. nich
    Joined:
    Oct 12, 2009
    Posts:
    71
    Referrals:
    0
    Sythe Gold:
    16

    nich Member

    Tribot - Flax Spinner Script

    JJ made a rather good flax spinner in his tutorial. I don't remember if he put it up for downloadlike he said, but if he didn't you can take an hour and copy everything he does assuming you are willing to go and download Eclipse
     
  11. Unread #6 - Mar 31, 2013 at 7:39 AM
  12. RuneScapeJJ
    Joined:
    Aug 14, 2011
    Posts:
    1,522
    Referrals:
    1
    Sythe Gold:
    0
    Potamus

    RuneScapeJJ Guru
    $25 USD Donor New

    Tribot - Flax Spinner Script

    I got a few clients loaded up now, will now increase stability. But here is the source of v1:

    Code:
    package scripts;
    
    import java.awt.Color;
    import java.awt.Graphics;
    
    import org.tribot.api.DynamicClicking;
    import org.tribot.api.General;
    import org.tribot.api.Timing;
    import org.tribot.api.input.Keyboard;
    import org.tribot.api.input.Mouse;
    import org.tribot.api.types.colour.Tolerance;
    import org.tribot.api2007.Banking;
    import org.tribot.api2007.Interfaces;
    import org.tribot.api2007.Inventory;
    import org.tribot.api2007.Objects;
    import org.tribot.api2007.Player;
    import org.tribot.api2007.Screen;
    import org.tribot.api2007.Skills;
    import org.tribot.api2007.Walking;
    import org.tribot.api2007.types.RSInterfaceChild;
    import org.tribot.api2007.types.RSItem;
    import org.tribot.api2007.types.RSObject;
    import org.tribot.api2007.types.RSTile;
    import org.tribot.script.Script;
    import org.tribot.script.ScriptManifest;
    import org.tribot.script.interfaces.Painting;
    
    @ScriptManifest(authors = { "J J" }, category = "Money making", name = "JJ's Flax 07")
    public class JJsFlax07 extends Script implements Painting {
    
    	private final RSTile BANK_TILE = new RSTile(3208, 3220, 2),
    					     STAIRS_BANK_TILE = new RSTile(3205, 3209, 2),
    					     STAIRS_SPIN_WHEEL_TILE = new RSTile(3205, 3209, 1),
    					     SPIN_TILE = new RSTile(3209, 3213, 1),
    					     DOOR_TILE = new RSTile(3207, 3214, 1);
    	private final int FLAX_ID = 1779,
    					  CLOSED_DOOR_ID = 1536,
    					  SPINNING_WHEEL_ID = 2644,
    					  STAIRS_COOK_ID = 1738,
    					  STAIRS_WHEEL_ID = 1739,
    					  STAIRS_BANK_ID = 1740,
    					  CRAFTING_ANIMATION_ID = 894,
    					  BOW_STRING_ID = 1777,
    					  START_XP = Skills.getXP("Crafting");
    	private final int[] STAIRS_IDS = {STAIRS_COOK_ID, STAIRS_WHEEL_ID};
    	private final long START_TIME = System.currentTimeMillis();
    	
    	private State SCRIPT_STATE = getState();
    	private int CURRENT_XP = START_XP;
    	
    	@Override
    	public void onPaint(Graphics g) {
    		long timeRan = System.currentTimeMillis()-START_TIME;
    		int xpGained = CURRENT_XP-START_XP;
    		double multiplier = timeRan / 3600000D;
    		int xpPerHour = (int) (xpGained / multiplier);
    		int bsMade = xpGained / 15;
    		int bsPerHour = (int) (bsMade / multiplier);
    
    		g.setColor(new Color(60, 60, 60));
    		g.fillRect(5, 55, 190, 185);
    	
    		g.setColor(Color.WHITE);
    		g.drawString("JJ's Flax 2007", 10, 70);
    		g.drawString("Running for: " + Timing.msToString(timeRan), 10, 90);
    		g.drawString("State: " + SCRIPT_STATE, 10, 110);
    		
    		g.drawString("Xp gained: " + xpGained + " (" + xpPerHour + "/h)", 10, 140);
    		g.drawString("Bowstring made: " + bsMade + " (" + bsPerHour + "/h)", 10, 160);
    	
    		g.drawString("Flax interface: " + haveFlaxInterface(), 10, 190);
    		g.drawString("Type interface: " + haveAmountInterface(), 10, 210);
    		g.drawString("Is door closed? " + isDoorClosed(), 10, 230);
    	}
    	
    	
    	public enum State {
    		SELECT_FLAX, TYPE_AMOUNT, CRAFTING, WHEEL_TO_STAIRS,
    		CLIMB_STAIRS, STAIRS_TO_BANK, OPEN_BANK, 
    		DEPOSIT_BOW_STRING, WITHDRAW_FLAX, BANK_TO_STAIRS, 
    		STAIRS_TO_WHEEL, OPEN_DOOR, USE_SPIN_WHEEL,
    		WALK_TO_DOOR, DEPOSIT_JUNK;
    	}
    	
    	private State getState(){
    		if(haveFlax()){
    			if(atBank()){
    				return State.BANK_TO_STAIRS;
    			}else{
    				if(atSpinWheel()){
    					if(haveFlaxInterface()){
    						return State.SELECT_FLAX;
    					}else{
    						if(haveAmountInterface()){
    							return State.TYPE_AMOUNT;
    						}else{
    							if(areCrafting()){
    								return State.CRAFTING;
    							}else{
    								return State.USE_SPIN_WHEEL;
    							}
    						}
    					}
    				}else{
    					if(Player.getPosition().getPlane() != 1){
    						if(atStairs()){
    							return State.CLIMB_STAIRS;
    						}else{
    							return State.BANK_TO_STAIRS;
    						}
    					}else{
    						if(isDoorClosed()){
    							if(atDoor()){
    								return State.OPEN_DOOR;
    							}else{
    								return State.WALK_TO_DOOR;
    							}
    						}else{
    							return State.STAIRS_TO_WHEEL;
    						}
    					}
    				}
    			}
    		}else{
    			if(Player.getPosition().getPlane() != 2){
    				if(atStairs()){
    					return State.CLIMB_STAIRS;
    				}else{
    					if(isDoorClosed()){
    						if(atDoor()){
    							return State.OPEN_DOOR;
    						}else{
    							return State.WALK_TO_DOOR;
    						}
    					}else{
    						return State.WHEEL_TO_STAIRS;
    					}
    				}
    			}else{
    				if(Banking.isBankScreenOpen()){
    					if(haveBowstring()){
    						return State.DEPOSIT_BOW_STRING;
    					}else{
    						if(Inventory.getAll().length == 0){
    							return State.WITHDRAW_FLAX;
    						}else{
    							return State.DEPOSIT_JUNK;
    						}
    					}
    				}else{
    					if(atBank()){
    						return State.OPEN_BANK;
    					}else{
    						return State.STAIRS_TO_BANK;
    					}
    				}
    			}
    		}
    	}
    	
    	private boolean withdrawFlax(){
    		if(Banking.isBankScreenOpen()){
    			RSItem[] flax = Banking.find(FLAX_ID);
    			if(flax != null && flax.length > 0 && flax[0].click("Withdraw All")){
    				sleep(400, 800);
    				long t = System.currentTimeMillis();
    				while(Timing.timeFromMark(t) < General.random(2000, 3000)){
    					if(haveFlax()){
    						return true;
    					}
    					sleep(50, 150);
    				}
    			}
    		}
    		return false;
    	}
    	
    	private boolean depositBowstring(){
    		if(Banking.isBankScreenOpen()){
    			RSItem[] string = Inventory.find(BOW_STRING_ID);
    			if(string != null && string.length > 0 && string[0].click("Store All")){
    				sleep(400, 800);
    				long t = System.currentTimeMillis();
    				while(Timing.timeFromMark(t) < General.random(2000, 3000)){
    					if(!haveBowstring()){
    						return true;
    					}
    					sleep(50, 150);
    				}
    			}
    		}
    		return false;
    	}
    	
    	private boolean depositJunk(){
    		if(Banking.isBankScreenOpen()){
    			RSItem[] all = Inventory.getAll();
    			if(all != null && all.length > 0 && all[0].click("Store All")){
    				long t = System.currentTimeMillis();
    				while(Timing.timeFromMark(t) < General.random(2000, 3000)){
    					if(Inventory.getAll().length < all.length){
    						return true;
    					}
    					sleep(50, 150);
    				}
    			}
    		}
    		return false;
    	}
    	
    	private void waitUntilIdle(RSTile tile){
    		long t = System.currentTimeMillis();
    		
    		while(Timing.timeFromMark(t) < General.random(400, 800)){
    			sleep(40, 80);
    			
    			if(Player.isMoving() || Player.getAnimation() != -1){
    				t = System.currentTimeMillis();
    				continue;
    			}
    			
    			sleep(40, 80);
    			
    			if(Player.getPosition().distanceTo(tile) == 0){
    				break;
    			}
    		}
    	}
    	
    	private boolean atStairs(){
    		RSTile myPos = Player.getPosition();
    		return myPos.distanceTo(STAIRS_BANK_TILE) < 3;
    	}
    	
    	private boolean walkToTile(RSTile tile){
    		if(Walking.walkTo(tile)){
    			waitUntilIdle(tile);
    			return true;
    		}
    		return false;
    	}
    	
    	private boolean walkToStairs(){
    		int plane = Player.getPosition().getPlane();
    		if(plane == 1){
    			// At spinning wheel
    			return walkToTile(STAIRS_SPIN_WHEEL_TILE);
    		}else if(plane == 2){
    			// At bank
    			return walkToTile(STAIRS_BANK_TILE);
    		}
    		return false;
    	}
    	
    	private boolean walkToBank(){
    		return walkToTile(BANK_TILE);
    	}
    	
    	private boolean walkToDoor(){
    		return walkToTile(DOOR_TILE);
    	}
    	
    	private boolean walkToWheel(){
    		return walkToTile(SPIN_TILE);
    	}
    	
    	private boolean climbStairs(){
    		int plane = Player.getPosition().getPlane();
    		if(plane == 2){
    			// Down
    			RSObject[] stairs = Objects.findNearest(10, STAIRS_BANK_ID);
    			if(stairs != null && stairs.length > 0 && DynamicClicking.clickRSObject(stairs[0], "down")){
    				waitUntilIdle(stairs[0].getPosition());
    				return true;
    			}
    		}else{
    			// Up
    			RSObject[] stairs = Objects.findNearest(10, STAIRS_IDS);
    			if(stairs != null && stairs.length > 0 && DynamicClicking.clickRSObject(stairs[0], "up")){
    				waitUntilIdle(stairs[0].getPosition());
    				return true;
    			}
    		}
    		return false;
    	}
    	
    	private boolean atDoor(){
    		RSTile myPos = Player.getPosition();
    		return myPos.distanceTo(DOOR_TILE) < 3;
    	}
    	
    	private boolean openDoor(){
    		RSObject[] door = Objects.findNearest(15, CLOSED_DOOR_ID);
    		if(door != null && door.length > 0){
    			if(DynamicClicking.clickRSObject(door[0], "Open")){
    				waitUntilIdle(door[0].getPosition());
    				return true;
    			}
    		}
    		return false;
    	}
    	
    	private boolean spinWheel(){
    		RSObject[] wheel = Objects.findNearest(10, SPINNING_WHEEL_ID);
    		if(wheel != null && wheel.length > 0){
    			if(DynamicClicking.clickRSObject(wheel[0], "Spin")){
    				waitUntilIdle(wheel[0].getPosition());
    				return true;
    			}
    		}
    		return false;
    	}
    	
    	private boolean spinFlax(){
    		RSInterfaceChild flax = Interfaces.get(459, 91);
    		if(flax != null && !flax.isHidden() && flax.click("X")){
    			println("Selected X");
    
    			long t = System.currentTimeMillis();
    			while(Timing.timeFromMark(t) < General.random(1500, 2000)){
    				if(haveAmountInterface()){
    					return true;
    				}
    				sleep(50, 150);
    			}		
    		}
    		return false;
    	}
    	
    	private boolean haveFlaxInterface(){
    		RSInterfaceChild flax = Interfaces.get(459, 91);
    		return flax != null && !flax.isHidden();
    	}
    	
    	private boolean haveAmountInterface(){
    		RSInterfaceChild amount = Interfaces.get(548, 94);
    		if(amount != null && !amount.isHidden()){
    			String txt = amount.getText();
    			if(txt != null && txt.equals("*")){
    				Color c = Screen.getColorAt(259, 428);
    				Color b = new Color(0, 0, 128);
    				return org.tribot.api.Screen.coloursMatch(b, c, new Tolerance(10));
    			}
    		}
    		return false;
    	}
    	
    	private boolean typeAmount(){
    		if(haveAmountInterface()){
    			Keyboard.typeSend("33");
    			return true;
    		}
    		return false;
    	}
    	
    	private boolean areCrafting(){
    		long t = System.currentTimeMillis();
    		while(Timing.timeFromMark(t) < General.random(1200, 1800)){
    			if(Player.getAnimation() == CRAFTING_ANIMATION_ID){
    				return true;
    			}
    			sleep(50, 100);
    		}
    		return false;
    	}
    	
    	private boolean isDoorClosed(){
    		RSObject[] doors = Objects.findNearest(15, CLOSED_DOOR_ID);
    		if(doors != null && doors.length > 0)
    			for(RSObject door : doors)
    				if(door.getPosition().getY() < 3220)
    					return true;
    		return false;
    	}
    	
    	private boolean haveFlax(){
    		RSItem[] flax = Inventory.find(FLAX_ID);
    		return flax != null && flax.length > 0;
    	}
    	
    	private boolean haveBowstring(){
    		RSItem[] string = Inventory.find(BOW_STRING_ID);
    		return string != null && string.length > 0;
    	}
    	
    	private boolean atBank(){
    		RSTile myPos = Player.getPosition();
    		return myPos.distanceTo(BANK_TILE) < 2;
    	}
    	
    	private boolean atSpinWheel(){
    		RSTile myPos = Player.getPosition();
    		return myPos.distanceTo(SPIN_TILE) < 2;
    	}
    	
    	@Override
    	public void run() {
    		println("Script has been started");
    		Mouse.setSpeed(General.random(130, 150));
    		
    		while(true){
    			SCRIPT_STATE = getState();
    			CURRENT_XP = Skills.getXP("Crafting");
    			
    			switch(SCRIPT_STATE){
    				case BANK_TO_STAIRS:
    					walkToStairs();
    					break;
    					
    				case CLIMB_STAIRS:
    					climbStairs();
    					break;
    					
    				case CRAFTING:
    					sleep(200, 400);
    					break;
    					
    				case DEPOSIT_BOW_STRING:
    					depositBowstring();
    					break;
    					
    				case OPEN_BANK:
    					Banking.openBankBanker();
    					break;
    					
    				case OPEN_DOOR:
    					openDoor();
    					break;
    					
    				case SELECT_FLAX:
    					spinFlax();
    					break;
    					
    				case STAIRS_TO_BANK:
    					walkToBank();
    					break;
    					
    				case STAIRS_TO_WHEEL:
    					walkToWheel();
    					break;
    					
    				case TYPE_AMOUNT:
    					typeAmount();
    					break;
    					
    				case USE_SPIN_WHEEL:
    					spinWheel();
    					break;
    					
    				case WHEEL_TO_STAIRS:
    					walkToStairs();
    					break;
    					
    				case WITHDRAW_FLAX:
    					withdrawFlax();
    					break;
    					
    				case WALK_TO_DOOR:
    					walkToDoor();
    					break;
    				
    				case DEPOSIT_JUNK:
    					depositJunk();
    					break;
    			}
    			
    			sleep(40, 80);			
    		}
    	}
    }
    
     
  13. Unread #7 - Mar 31, 2013 at 7:41 AM
  14. weedandrs
    Joined:
    Mar 25, 2013
    Posts:
    53
    Referrals:
    0
    Sythe Gold:
    0

    weedandrs Member

    Tribot - Flax Spinner Script

    btw people you can start new scripts without re-loading a new client. I upgraded from yugochopper v6 to yugochopper v9 yesterday while the set is up. I haven't closed my clients since monday. Three running right now. Without closing my client i also upgraded the catherby fisher.
     
< Any 07 autofighter bot? | Bots? >

Users viewing this thread
1 guest


 
 
Adblock breaks this site