Adblock breaks this site

Flax Spinner

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

Thread Status:
Not open for further replies.
  1. SMEGPOT

    SMEGPOT Member

    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2
    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. ^_^
     
  2. 811111111D

    811111111D Active Member

    Joined:
    Nov 23, 2008
    Posts:
    103
    Referrals:
    0
    Sythe Gold:
    0
    Flax Spinner

    i can send one if u can send me a working rsbot
     
  3. SMEGPOT

    SMEGPOT Member

    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2
    Flax Spinner

    okay then well go on msn

    Thanks
     
  4. 811111111D

    811111111D Active Member

    Joined:
    Nov 23, 2008
    Posts:
    103
    Referrals:
    0
    Sythe Gold:
    0
    Flax Spinner

    talkin now :)
     
  5. wind woman1

    wind woman1 Forum Addict
    Banned

    Joined:
    May 29, 2008
    Posts:
    466
    Referrals:
    1
    Sythe Gold:
    0
    Flax Spinner

    have you got a good flax spinner? i want one
     
  6. Beard

    Beard Member

    Joined:
    Nov 7, 2008
    Posts:
    49
    Referrals:
    0
    Sythe Gold:
    0
    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.
     
  7. SMEGPOT

    SMEGPOT Member

    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2
    Flax Spinner

    Still waiting on a flax spinner... Anyone ?
     
  8. ' Nickovic!

    ' Nickovic! Forum Addict

    Joined:
    Sep 9, 2008
    Posts:
    427
    Referrals:
    0
    Sythe Gold:
    0
    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;
    	}
    }
     
  9. SMEGPOT

    SMEGPOT Member

    Joined:
    Nov 29, 2008
    Posts:
    72
    Referrals:
    1
    Sythe Gold:
    2
    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
     
  10. ISell2You

    ISell2You Active Member
    Banned

    Joined:
    Nov 29, 2008
    Posts:
    141
    Referrals:
    0
    Sythe Gold:
    0
    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 >
Thread Status:
Not open for further replies.


 
 
Adblock breaks this site