Flax Spinner

Discussion in 'Archives' started by SMEGPOT, Nov 29, 2008.

Thread Status:
Not open for further replies.
Flax Spinner
  1. Unread #1 - Nov 29, 2008 at 5:12 AM
  2. SMEGPOT
    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2

    SMEGPOT Member

    Flax Spinner

    I need a decent flax spinner for RS Bot as the ones that i have don't work.
    INeed this is anyone has one i would be grateful.

    Thanks. ^_^
     
  3. Unread #2 - Nov 29, 2008 at 5:26 AM
  4. 811111111D
    Joined:
    Nov 23, 2008
    Posts:
    103
    Referrals:
    0
    Sythe Gold:
    0

    811111111D Active Member

    Flax Spinner

    i can send one if u can send me a working rsbot
     
  5. Unread #3 - Nov 29, 2008 at 5:55 AM
  6. SMEGPOT
    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2

    SMEGPOT Member

    Flax Spinner

    okay then well go on msn

    Thanks
     
  7. Unread #4 - Nov 29, 2008 at 5:58 AM
  8. 811111111D
    Joined:
    Nov 23, 2008
    Posts:
    103
    Referrals:
    0
    Sythe Gold:
    0

    811111111D Active Member

    Flax Spinner

    talkin now :)
     
  9. Unread #5 - Nov 29, 2008 at 6:12 AM
  10. wind woman1
    Joined:
    May 29, 2008
    Posts:
    466
    Referrals:
    1
    Sythe Gold:
    0

    wind woman1 Forum Addict
    Banned

    Flax Spinner

    have you got a good flax spinner? i want one
     
  11. Unread #6 - Nov 29, 2008 at 6:12 AM
  12. Beard
    Joined:
    Nov 7, 2008
    Posts:
    49
    Referrals:
    0
    Sythe Gold:
    0

    Beard Member

    Flax Spinner

    dont you idiot! i got on the rsbot webstite all the time.

    if you send him the Rsbot folder in the logs hell see everysingle runescape username and password youve entered.
     
  13. Unread #7 - Nov 29, 2008 at 6:59 AM
  14. SMEGPOT
    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2

    SMEGPOT Member

    Flax Spinner

    Still waiting on a flax spinner... Anyone ?
     
  15. Unread #8 - Nov 29, 2008 at 9:19 AM
  16. ' Nickovic!
    Joined:
    Sep 9, 2008
    Posts:
    427
    Referrals:
    0
    Sythe Gold:
    0

    ' Nickovic! Forum Addict

    Flax Spinner

    I TAKE NO CREDIT!
    Code:
    import java.awt.*;
    import java.util.ArrayList;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    import com.speljohan.rsbot.event.listeners.*;
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    
    public class LumbFlaxSpinner extends Script implements PaintListener,
    		ServerMessageListener {
    
    	boolean proggy = false;
    
    	long startTime = System.currentTimeMillis();
    	int stringsBanked = 0;
    	int bankFail = 0;
    
    	final int FLAX_ID = 1779;
    	final int BOW_STRING_ID = 1777;
    	final int DOOR_CLOSE_ID = 36844;
    	final int BOW_STRING_CHILD_ID = 17;
    	final int SPINNING_WHEEL_ID = 36970;
    	final int SPINNING_INTERFACE_ID = 459;
    	final int BANK_ID = 36786;
    
    	final Color BG = new Color(123, 123, 123, 100);
    	final Color GREEN = new Color(0, 255, 0, 255);
    	final Color RED = new Color(255, 0, 0, 255);
    
    	final RSTile DOOR_CLOSE_TILE = new RSTile(3207, 3214);
    	final RSTile STAIRCASE_TILE = new RSTile(3205, 3208);
    
    	public String getName() {
    		return "Lumby Flax Spinner";
    	}
    
    	public double getVersion() {
    		return 2.0;
    	}
    
    	public String getAuthor() {
    		return "Mike";
    	}
    
    	public String getScriptCategory() {
    		return "Mike's Scripts/Crafting";
    	}
    
    	public String getScriptDescription() {
    		return "<html>\n" + "<head></head>\n" + "<body>\n" + "<center>"
    				+ "<h2>"
    				+ getName()
    				+ "</h2>"
    				+ "</center>\n"
    				+ "<b>Author:</b> "
    				+ getAuthor()
    				+ "<br/>\n"
    				+ "<b>Version:</b> "
    				+ getVersion()
    				+ "<br/>\n"
    				+ "<br/>\n"
    				+ "<b>Starting Location:</b> Lumbridge Square OR Lumbridge Castle(any floor)<br/>"
    				+ "<b>Function:</b> Spins Flax."
    				+ "<br/>"
    				+ "<b>Version Notes:</b> "
    				+ "<ul>"
    				+ "<li>"
    				+ "<b>2.0:</b> Total Rewrite"
    				+ "<br>"
    				+ " - Runs In Lumbridge"
    				+ "<br>"
    				+ " - Includes DeathWalk"
    				+ "</li>"
    				+ "<li>"
    				+ "<b>1.0:</b> First Version"
    				+ "<br>"
    				+ " - Runs in Camelot"
    				+ "<br>"
    				+ " - Short Lived. Horrible script that just did the job."
    				+ "</li>" + "<li>" + "<b>0.*:</b> Beta Versions" + "</li>" +
    
    				"</ul>" + "</body>\n" + "</html>";
    	}
    
    	public boolean onStart(String[] args) {
    		bankFail = 0;
    		proggy = true;
    		startTime = System.currentTimeMillis();
    		stringsBanked = 0;
    		Bot.getEventManager().addListener(PaintListener.class, this);
    		Bot.getEventManager().addListener(ServerMessageListener.class, this);
    		return true;
    	}
    
    	public void logoutFor(int i) {}
    
    	public void onFinish() {
    		Bot.getEventManager().removeListener(PaintListener.class, this);
    		Bot.getEventManager().removeListener(ServerMessageListener.class, this);
    	}
    
    	public RSTile bankTile() {
    		return new RSTile(random(3208, 3209), random(3215, 3220));
    	}
    
    	public RSTile staircaseTile() {
    		return new RSTile(random(3205, 3207), random(3205, 3211));
    	}
    
    	public boolean isInSpinningRoom() {
    		RSTile myLocation = getMyPlayer().getLocation();
    		int myX = myLocation.getX();
    		int myY = myLocation.getY();
    
    		if (myX >= 3208 && myX <= 3212 && myY >= 3212 && myY <= 3217
    				&& getPlane() == 1) {
    			return true;
    		}
    
    		return false;
    	}
    
    	public boolean isInBank() {
    		RSTile myLocation = getMyPlayer().getLocation();
    		int myX = myLocation.getX();
    		int myY = myLocation.getY();
    
    		if (myX >= 3207 && myX <= 3210 && myY >= 3215 && myY <= 3220
    				&& getPlane() == 2) {
    			return true;
    		}
    
    		return false;
    	}
    
    	public RSTile spinningRoomTile() {
    		return new RSTile(random(3208, 3212), random(3214, 3212));
    	}
    
    	public RSTile outsideDoor() {
    		return new RSTile(random(3205, 3207), random(3212, 3216));
    	}
    
    	public boolean isDoorClosed() {
    		if (getPlane() == 1 && !isInSpinningRoom()) {
    			if (Calculations.canReach(spinningRoomTile(), true)) {
    				return false;
    			}
    		}
    		if (getPlane() == 1 && isInSpinningRoom()) {
    			if (Calculations.canReach(staircaseTile(), true)) {
    				return false;
    			}
    		}
    		log("door is closed");
    		return true;
    	}
    
    	public boolean walkToTile(RSTile tile) {
    		if (walkPathMM2(generatePath(tile), 17)) {
    			return true;
    		}
    
    		return false;
    	}
    
    	public int flaxCount() {
    		return getInventoryCount(FLAX_ID);
    	}
    
    	public int bowstringCount() {
    		return getInventoryCount(BOW_STRING_ID);
    	}
    
    	public int loop() {
    		if (getMyPlayer().isMoving()) {
    			return random(300, 500);
    		}
    		try {
    			int height = getPlane();
    			if (!RSInterface.getInterface(SPINNING_INTERFACE_ID).isValid()) {
    				if (flaxCount() == 0) {
    					atInterface(SPINNING_INTERFACE_ID, 12);
    				} else if (!bank.getInterface().isValid()) {
    					if (getEnergy() >= random(50, 99)) {
    						setRun(true);
    					}
    				}
    			}
    
    			if (getPlane() == 0 || distanceTo(new RSTile(3211, 3219)) > 20) {
    				deathWalk();
    			}
    			if (height == 1) { // flax level
    				if (flaxCount() > 0 || getMyPlayer().isInCombat()) {
    					if (!isInSpinningRoom()) {
    						if (isDoorClosed()) {
    							if (walkToTile(outsideDoor())) {
    								RSObject door = getObjectAt(DOOR_CLOSE_TILE);
    								if (door == null
    										|| door.getID() != DOOR_CLOSE_ID) {
    									return random(300, 500);
    								}
    								atDoor(door, "east", "Open");
    								return random(300, 500);
    							}
    						} else {
    							walkToTile(spinningRoomTile());
    						}
    					} else {
    						for (int i = 0; i <= 10; i++) {
    							if (getMyPlayer().getAnimation() != -1) {
    								return random(300, 500);
    							} else {
    								wait(random(100, 150));
    							}
    						}
    						if (flaxCount() == 0) {
    							return random(300, 500);
    						}
    						if (RSInterface.getInterface(SPINNING_INTERFACE_ID)
    								.isValid()) {
    							atInterface(SPINNING_INTERFACE_ID,
    									BOW_STRING_CHILD_ID, "all");
    							return random(300, 500);
    						}
    						RSObject spinner = findObject(SPINNING_WHEEL_ID);
    						if (spinner == null) {
    							return random(300, 500);
    						}
    						if (!atObject(spinner, "Spin Spinning Wheel")) {
    							turnToTile(spinner.getLocation());
    						}
    						return random(300, 500);
    					}
    				} else {
    					if (isDoorClosed()) {
    						RSObject door = getObjectAt(DOOR_CLOSE_TILE);
    						if (door == null || door.getID() != DOOR_CLOSE_ID) {
    							return random(300, 500);
    						}
    						atDoor(door, "east", "Open");
    						return random(300, 500);
    					}
    					if (!walkToTile(staircaseTile())) {
    						return random(300, 500);
    					}
    					if (!atTile(STAIRCASE_TILE, "Climb-up")) {
    						turnToTile(STAIRCASE_TILE);
    					}
    				}
    			}
    			if (height == 2) { // bank level
    				if (flaxCount() > 0) {
    					if (!walkToTile(staircaseTile())) {
    						return random(300, 500);
    					}
    					if (!atTile(STAIRCASE_TILE, "Climb-down")) {
    						turnToTile(STAIRCASE_TILE);
    					}
    				} else {
    					if (!isInBank()) {
    						walkToTile(bankTile());
    						return random(300, 500);
    					}
    					if (bank.getInterface().isValid()) {
    						int temp = bowstringCount();
    						if (bank.depositAllExcept(FLAX_ID)) {
    							stringsBanked += temp;
    							moveMouse(random(38, 74), random(92, 124));
    							if (!getTopText().contains("flax")) {
    								bankFail++;
    								if (bankFail >= 10) {
    									log("Banking failed. Possibly ran out of flax!");
    									return -1;
    								}
    								return random(300, 500);
    							}
    							clickMouse(false);
    							if (atMenu("Withdraw-All Flax")) {
    								bankFail = 0;
    								return random(500, 1000);
    							}
    						}
    						return random(300, 500);
    					}
    					RSObject banker = findObject(BANK_ID);
    					if (!atObject(banker, "Use-quickly")) {
    						turnToTile(banker.getLocation());
    					}
    				}
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    
    		return random(300, 500);
    	}
    
    	public void deathWalk() {
    		if (getPlane() != 0 && distanceTo(new RSTile(3211, 3219)) <= 20) {
    			return;
    		}
    		if (distanceTo(new RSTile(3211, 3219)) > 20) {
    			castSpell(1);
    		}
    	}
    
    	public void onRepaint(Graphics g) {
    		if (isLoggedIn() && proggy == true) {
    			long millis = System.currentTimeMillis() - startTime;
    			long seconds2 = millis / 1000;
    			long hours = millis / (1000 * 60 * 60);
    			millis -= hours * 1000 * 60 * 60;
    			long minutes = millis / (1000 * 60);
    			millis -= minutes * 1000 * 60;
    			long seconds = millis / 1000;
    			String hoursString = "";
    			String minutesString = "";
    			String secondsString = seconds + "";
    			String type = "seconds";
    			if (minutes > 0) {
    				minutesString = minutes + ":";
    				type = "minutes";
    			}
    			if (hours > 0) {
    				hoursString = hours + ":";
    				type = "hours";
    			}
    			if (minutesString.length() == 1) {
    				minutesString = "0" + minutesString;
    			}
    			if (hoursString.length() == 1) {
    				hoursString = "0" + hoursString;
    			}
    			if (secondsString.length() == 1) {
    				secondsString = "0" + secondsString;
    			}
    			int x = 18;
    			int y = 18;
    			g.setColor(BG);
    			g.fill3DRect(14, 25, 210, 165, true);
    			g.setColor(GREEN);
    			g.drawString(
    					getName() + " v" + getVersion() + " by " + getAuthor(), x,
    					y += 20);
    			g.drawString("Running for " + hoursString + minutesString
    					+ secondsString + " " + type + ".", x, y += 20);
    			g.setColor(RED);
    			g.drawString("Spun "
    					+ (stringsBanked + getInventoryCount(BOW_STRING_ID))
    					+ " flax.", x, y += 20);
    			if (seconds2 != 0) {
    				g.drawString("Averaging "
    						+ (stringsBanked + getInventoryCount(BOW_STRING_ID))
    						* 3600 / seconds2 + " strings per hour.", x, y += 20);
    			}
    
    		}
    	}
    
    	public void serverMessageRecieved(ServerMessageEvent e) {
    		String message = e.getMessage().toLowerCase();
    		if (message.contains("You need to wait another ")
    				&& message.contains(" to cast this spell.")) {
    			int num = Integer.parseInt(message.split(" ")[5]);
    			logoutFor(num * 1000 * 60 * 60);
    		}
    	}
    
    	public int getAngleToCoordinates(int x2, int y2) {
    		int x1 = getMyPlayer().getLocation().getX();
    		int y1 = getMyPlayer().getLocation().getY();
    		int x = x1 - x2;
    		int y = y1 - y2;
    		double angle = Math.toDegrees(Math.atan2(x, y));
    		if (x == 0 && y > 0) {
    			angle = 180;
    		}
    		if (x < 0 && y == 0) {
    			angle = 90;
    		}
    		if (x == 0 && y < 0) {
    			angle = 0;
    		}
    		if (x < 0 && y == 0) {
    			angle = 270;
    		}
    		if (x < 0 && y > 0) {
    			angle += 270;
    		}
    		if (x > 0 && y > 0) {
    			angle += 90;
    		}
    		if (x < 0 && y < 0) {
    			angle = Math.abs(angle) - 180;
    		}
    		if (x > 0 && y < 0) {
    			angle = Math.abs(angle) + 270;
    		}
    		if (angle < 0) {
    			angle = 360 + angle;
    		}
    		if (angle >= 360) {
    			angle -= 360;
    		}
    		return (int) angle;
    	}
    
    	public void turnToTile(RSTile tile) {
    		int angle = getAngleToCoordinates(tile.getX(), tile.getY());
    		angle = angle + random(-20, 20);
    		if (angle < 0) {
    			angle = 360 + angle;
    		}
    		if (angle >= 360) {
    			angle -= 360;
    		}
    		setCameraRotation2(angle);
    	}
    
    	public void setCameraRotation2(int degrees) {
    		// Made by aftermath. Was suggested into SVN and i just added it into
    		// here until somebody does the right thing
    		char left = 37;
    		char right = 39;
    		char whichDir = left;
    		int start = getCameraAngle();
    
    		if (start < 180) {
    			start += 360;
    		}
    		if (degrees < 180) {
    			degrees += 360;
    		}
    
    		if (degrees > start) {
    			if (degrees - 180 < start) {
    				whichDir = right;
    			}
    		} else if (start > degrees) {
    			if (start - 180 >= degrees) {
    				whichDir = right;
    			}
    		}
    		degrees %= 360;
    
    		Bot.getInputManager().pressKey(whichDir);
    		int timeWaited = 0;
    
    		while (getCameraAngle() > degrees + 5 || getCameraAngle() < degrees - 5) {
    			wait(10);
    			timeWaited += 10;
    			if (timeWaited > 500) {
    				int time = timeWaited - 500;
    
    				if (time == 0) {
    					Bot.getInputManager().pressKey(whichDir);
    				} else if (time % 40 == 0) {
    					Bot.getInputManager().pressKey(whichDir);
    				}
    			}
    		}
    		Bot.getInputManager().releaseKey(whichDir);
    	}
    
    	public RSTile[] generatePath(RSTile tile) {
    		return generatePath(tile.getX(), tile.getY());
    	}
    
    	public RSTile[] generatePath(int destinationX, int destinationY) { // Most
    		// credits
    		// go to
    		// aftermath...
    		// I
    		// asked
    		// for a
    		// theory
    		// and
    		// he
    		// gives
    		// me
    		// the
    		// whole
    		// method.
    		// ~Mike
    		int startX = getMyPlayer().getLocation().getX();
    		int startY = getMyPlayer().getLocation().getY();
    		double dx, dy;
    		ArrayList<RSTile> list = new ArrayList<RSTile>();
    
    		list.add(new RSTile(startX, startY));
    		while (Math.hypot(destinationY - startY, destinationX - startX) > 8) {
    			dx = destinationX - startX;
    			dy = destinationY - startY;
    			int gamble = random(14, 17);
    			while (Math.hypot(dx, dy) > gamble) {
    				dx *= .95;
    				dy *= .95;
    			}
    			startX += (int) dx;
    			startY += (int) dy;
    			list.add(new RSTile(startX, startY));
    		}
    		list.add(new RSTile(destinationX, destinationY));
    		return list.toArray(new RSTile[list.size()]);
    	}
    
    	public String getTopText() {
    		return getMenuItems().get(0).toLowerCase();
    	}
    
    	RSTile current2 = null;
    
    	public boolean walkPathMM2(RSTile[] path, int maxDist) {
    		try {
    			RSTile next = nextTile(path, maxDist);
    			if (next != null && !next.equals(current2)) {
    				walkTileMM(next);
    				current2 = next;
    				return false;
    			} else if (next != null && next.equals(current2)) {
    				return false;
    			}
    		} catch (Exception e) {
    			return false;
    		}
    		return true;
    	}
    
    	public RSTile nextTile2(RSTile[] path, int maxDist) {
    		RSTile cur = getMyPlayer().getLocation();
    		for (int i = path.length - 1; i >= 0; i--) {
    			if (distanceBetween(cur, path[i]) <= maxDist) {
    				return path[i];
    			}
    		}
    		return null;
    	}
    }
     
  17. Unread #9 - Nov 29, 2008 at 9:55 PM
  18. SMEGPOT
    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2

    SMEGPOT Member

    Flax Spinner

    What the F do i do with that, if you wouldn't mind adding me on IM and sending it over.... ? I'd be ever so grateful.


    Thanks Danny
     
  19. Unread #10 - Nov 29, 2008 at 10:07 PM
  20. ISell2You
    Joined:
    Nov 29, 2008
    Posts:
    141
    Referrals:
    0
    Sythe Gold:
    0

    ISell2You Active Member
    Banned

    Flax Spinner

    i will get my mate to make you one...
     
< selling Blessed spirit shield, adding paypal | Mage/range/str Pure For Habbo.ca/paypal >

Users viewing this thread
1 guest
Thread Status:
Not open for further replies.


 
 
Adblock breaks this site