Salty as fuck Posted March 2, 2016 Share Posted March 2, 2016 >>>DOWNLOAD<<< Requires 28 thieving. 60k gp an hour. 5k exp an hour. Start here, beside the north chest. 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); } } 1 Quote Link to comment Share on other sites More sharing options...
Rhodry Posted March 2, 2016 Share Posted March 2, 2016 Nice idea mate ;) Quote Link to comment Share on other sites More sharing options...
Salty as fuck Posted March 2, 2016 Author Share Posted March 2, 2016 Nice idea mate 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 Quote Link to comment Share on other sites More sharing options...
Chris Posted March 2, 2016 Share Posted March 2, 2016 cool bro Quote Link to comment Share on other sites More sharing options...
Zappster Posted March 2, 2016 Share Posted March 2, 2016 MFW checking quest tab, attack tab + random skills MFW those long sleeps MFW no 1 game tick loops and checks for animation MFW ANTIBAN() Apart from that good job Quote Link to comment Share on other sites More sharing options...
Token Posted March 2, 2016 Share Posted March 2, 2016 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)); } Quote Link to comment Share on other sites More sharing options...
Salty as fuck Posted March 2, 2016 Author Share Posted March 2, 2016 (edited) 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() 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 March 2, 2016 by Reminiscence 1 Quote Link to comment Share on other sites More sharing options...
qverkk Posted March 2, 2016 Share Posted March 2, 2016 Better add detecting if chest is ready to open (id) Quote Link to comment Share on other sites More sharing options...
Salty as fuck Posted March 2, 2016 Author Share Posted March 2, 2016 Better add detecting if chest is ready to open (id) already works fine as is, but thanks for your opinion Quote Link to comment Share on other sites More sharing options...
Patyfatycake Posted March 5, 2016 Share Posted March 5, 2016 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; Quote Link to comment Share on other sites More sharing options...
Salty as fuck Posted March 5, 2016 Author Share Posted March 5, 2016 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 Quote Link to comment Share on other sites More sharing options...