Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ardougne Nature Chest

Featured Replies

>>>DOWNLOAD<<<

 

Requires 28 thieving.

60k gp an hour.

5k exp an hour.

 

Start here, beside the north chest.

rDPMVft.png

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;

import org.osbot.rs07.api.map.Position;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.api.ui.Tab;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;


@ScriptManifest(name = "Chest Thief", author = "Reminiscence", version = 1.0, info = "Steals nature runes.", logo = "") 
public class chestThief extends Script {

	String state;
	long startTime;

	@Override
	public void onStart() {
		experienceTracker.start(Skill.THIEVING);
		state = "initializing";
		startTime = System.currentTimeMillis();
	}

	public void AntiBan() throws InterruptedException {
		switch (random(1, 50)) {
		case 1:
			camera.movePitch(100 + (random(1, 70)));
			break;
		case 2:
			camera.movePitch(100 + (random(1, 70)));
			break;
		case 3:
			tabs.open(Tab.SKILLS);
			mouse.getMouse().move(random(682, 730), random(304, 322));
			sleep(random(200, 450));
			break;
		case 4:
			tabs.open(Tab.ATTACK);
			break;
		case 5:
			tabs.open(Tab.QUEST);
			break;
		case 6:
			camera.movePitch(50 + random(1, 70));
			break;
		case 7:
			camera.moveYaw(150 + (random(30, 70)));
			break;
		case 8:
			tabs.open(Tab.SKILLS);
			mouse.getMouse().move(random(682, 730), random(304, 322));
			sleep(random(200, 450));
			break;
		case 9:
			tabs.open(Tab.SKILLS);
			mouse.getMouse().move(random(682, 730), random(304, 322));
			sleep(random(200, 450));

			break;
		case 10:
			mouse.moveOutsideScreen();
			sleep(random(5000, 10000));
			break;
		}
		sleep(random(700, 1800));
		tabs.open(Tab.INVENTORY);
	}

	@Override
	public void onExit() {
		log("exp gained: "+ experienceTracker.getGainedXP(Skill.THIEVING));
	}


	@Override
	public int onLoop() throws InterruptedException {
		AntiBan();

		if (players.myPlayer().getX() != 2672 || players.myPlayer().getY() != 3301){
			state = "Walking to spot";
			walking.webWalk(new Position(2672, 3301, 1), new Position(2672, 3301, 1));
		}
		if (objects.closest("Chest") != null && !inventory.isFull()) {
			state = "checking for traps";
			objects.closest("Chest").interact("Search for traps");
			sleep(random(13000, 15500));
			state = "Sleeping";
		}

		return 600; 
	}

	public String format(long time) {
		StringBuilder string = new StringBuilder();

		long totalSeconds = time / 1000L;
		long totalMinutes = totalSeconds / 60L;
		long totalHours = totalMinutes / 60L;

		int seconds = (int)totalSeconds % 60;
		int minutes = (int)totalMinutes % 60;
		int hours = (int)totalHours % 24;

		if (hours > 0) {
			string.append(hours + "h ");
		}
		if (minutes > 0) {
			string.append(minutes + "m ");
		}
		string.append(seconds +"s");

		return string.toString();
	}

	@Override
	public void onPaint(Graphics2D g) {
		final Font font1 = new Font("Arial", 0, 12);
		final Color color1 = new Color(255, 255, 255, 255);

		g.setFont(font1);
		g.setColor(color1);

		g.drawString("State: " + state, 8, 260);
		g.drawString("EXP Gained: " + experienceTracker.getGainedXP(Skill.THIEVING), 8, 275);
		g.drawString("EXP/Hour: " + experienceTracker.getGainedXPPerHour(Skill.THIEVING), 8, 290);
		g.drawString("Levels gained: " + experienceTracker.getGainedLevels(Skill.THIEVING), 8, 305);
		g.drawString("EXP to lvl: " + skills.experienceToLevel(Skill.THIEVING) , 8, 320);
		g.drawString("Runtime: " + format((System.currentTimeMillis()-startTime)), 8, 335);
	}


}
  • Author

Nice idea mate wink.png

thank you

was going through the rs wiki for money making methods and figured i'd make something really quick to test the exp/hour and profit/hour lol

 

I guess it could certainly be a different place to train thieving.

tbh 60k gp/hour and 5,200 exp/hour isn't all that great lol

definitely doesn't seem to be a well known spot though, so the ban rate is likely to be low

MFW checking quest tab, attack tab + random skills

MFW those long sleeps

MFW no 1 game tick loops and checks for animation

 

MFW ANTIBAN()

 

5591421910_9f4b2f07ea.jpg

 

 

Apart from that good job

I'm not sure if this is the case with that specific building which contains the chest but if you check for and x and y coordinates but not z and your player ends up standing on those exact coordinates but on ground floor the bot will get stuck. I generally compare the whole position of an object as that's 100% accurate and will not produce such bugs. The following code should work:

if (myPosition() != new Position(2672, 3301, 1)) {
	state = "Walking to spot";
	walking.webWalk(new Position(2672, 3301, 1));
}
  • Author

cool bro

i'm beyond out of things to do other than toy with loudpacks

http://osbot.org/forum/topic/83628-ardounge-chest-thiever/

 

MFW checking quest tab, attack tab + random skills

MFW those long sleeps

MFW no 1 game tick loops and checks for animation

 

MFW ANTIBAN()

 

5591421910_9f4b2f07ea.jpg

 

 

Apart from that good job

people bitch about a lack of antiban, even tho it's practically placebo

because you have to wait about 8 seconds for the chest items to respawn as well as clicking on it and disarming trap

it is one game tick loop tho, and there really isn't a reason to check for animations

ty tho

 

 

@token, there are two chests near eachother, one doesn't work and one does

making sure i'm positioned right beside the proper one

also, there's no way to be in that position even if on a different height level, so it isn't necessary to check z

Edited by Reminiscence

Better add detecting if chest is ready to open (id)

  • Author

Better add detecting if chest is ready to open (id)

already works fine as is, but thanks for your opinion

case 1:
	camera.movePitch(100 + (random(1, 70)));
	break;
case 2:
	camera.movePitch(100 + (random(1, 70)));
	break;

could be 

case 1:
case 2:
	camera.movePitch(100 + (random(1, 70)));
	break;
  • Author
case 1:
	camera.movePitch(100 + (random(1, 70)));
	break;
case 2:
	camera.movePitch(100 + (random(1, 70)));
	break;

could be 

case 1:
case 2:
	camera.movePitch(100 + (random(1, 70)));
	break;

yes, i'm quite well aware

same applies for 3, 8 and 9, but it was the least of my concerns

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.