Acerd Posted June 15, 2016 Share Posted June 15, 2016 (edited) couldnt find one so i made one. was going to upload to sdn but ill do it when its open again. (for free ofc) link: http://uppit.com/a2vw6blsa74j how to add script: put the .jar file in: C:\Users\YOURNAME\OSBot\Scripts , then press "Refresh" on the script selector. (in the client) source: package gnomeagility; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Point; import java.util.function.BooleanSupplier; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.event.InteractionEvent; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.ConditionalSleep; @ScriptManifest(author = "Acerd", info = "", logo = "", name = "Acerd's Gnome Agility", version = 1.0) public class AcerdGnomeAgility extends Script { private final Area start = new Area(2477, 3436, 2471, 3438); private final Area action1 = new Area(2476, 3426, 2470, 3429); private final Area action1ObjArea = new Area(2476, 3425, 2471, 3425); private final Area action2 = new Area(new Position(2476, 3422, 1), new Position(2471, 3424, 1)); private final Area action3 = new Area(new Position(2477, 3419, 2), new Position(2472, 3420, 2)); private final Area action4 = new Area(new Position(2488, 3419, 2), new Position(2483, 3420, 2)); private final Area action5 = new Area(2483, 3425, 2488, 3419); private final Area action5ObjArea = new Area(2483, 3426, 2488, 3426); private final Area action6 = new Area(2483, 3431, 2488, 3427); private final Area end = new Area(2488, 3436, 2483, 3438); private final Position endWalk = new Position(2474, 3436, 0); private RS2Object obstacle; private long hours; private long minutes; private long seconds; private long millis; private long timeStart; private boolean started; private String state; @[member=Override] public void onStart() throws InterruptedException { super.onStart(); state = "Starting"; timeStart = System.currentTimeMillis(); started = true; getExperienceTracker().start(Skill.AGILITY); } @[member=Override] public int onLoop() throws InterruptedException { if (started) { if (!myPlayer().isMoving()) { if (mustContinue()) { state = "Pressing continue"; pressContinue(); } else if (playerContains(start)) { obstacle = getObjects().closest("Log balance"); state = "Walking across log balance.."; if (obstacle != null) if (interact(obstacle, "Walk-across")) { sleepTill(playerContains(action1), 4000); } } else if (playerContains(action1)) { state = "Climbing over obstacle net.."; obstacle = getObjects().closest(action1ObjArea, "Obstacle net"); if (obstacle != null) if (interact(obstacle, "Climb-over")) { sleepTill(playerContains(action2), 4000); } } else if (playerContains(action2)) { state = "Climbing tree branch.."; obstacle = getObjects().closest("Tree branch"); if (obstacle != null) if (interact(obstacle, "Climb")) { sleepTill(playerContains(action3), 4000); } } else if (playerContains(action3)) { state = "Walking on balancing rope.."; obstacle = getObjects().closest("Balancing rope"); if (obstacle != null) if (interact(obstacle, "Walk-on")) { sleepTill(playerContains(action4), 4000); } } else if (playerContains(action4)) { state = "Climbing down tree branch.."; obstacle = getObjects().closest("Tree branch"); if (obstacle != null) if (interact(obstacle, "Climb-down")) { sleepTill(playerContains(action5), 4000); } } else if (playerContains(action5)) { if (getCamera().getPitchAngle() != getCamera().getLowestPitchAngle()) { state = "Fixing camera pitch.."; getCamera().movePitch(getCamera().getLowestPitchAngle()); } else { obstacle = getObjects().closest(action5ObjArea, "Obstacle net"); state = "Climbing over obstacle net.."; if (obstacle != null) if (interact(obstacle, "Climb-over")) { sleepTill(playerContains(action6), 4000); } } } else if (playerContains(action6)) { state = "Squeezing through obstacle pipe.."; obstacle = getObjects().closest("Obstacle pipe"); if (obstacle != null) if (interact(obstacle, "Squeeze-through")) { sleepTill(playerContains(end), 5000); } } else if (playerContains(end)) { state = "Walking back to start.."; getWalking().walk(endWalk); } } } return random(250, 350); } @[member=Override] public void onPaint(Graphics2D g) { super.onPaint(g); if (started) { Point mP = getMouse().getPosition(); g.drawLine(mP.x - 5, mP.y + 5, mP.x + 5, mP.y - 5); g.drawLine(mP.x + 5, mP.y + 5, mP.x - 5, mP.y - 5); this.millis = System.currentTimeMillis() - this.timeStart; this.hours = this.millis / 3600000L; this.millis -= this.hours * 3600000L; this.minutes = this.millis / 60000L; this.millis -= this.minutes * 60000L; this.seconds = this.millis / 1000L; Font font = new Font("Arial", Font.BOLD, 12); g.setFont(font); g.setColor(Color.WHITE); g.drawString("RUNTIME: " + this.hours + ":" + this.minutes + ":" + this.seconds, 15, 250); g.drawString("XP GAINED: " + getExperienceTracker().getGainedXP(Skill.AGILITY), 15, 265); g.drawString("XP/HR: " + getExperienceTracker().getGainedXPPerHour(Skill.AGILITY), 15, 280); g.drawString("STATE: " + state, 15, 310); } } private boolean interact(RS2Object obj, String action) { InteractionEvent ie = new InteractionEvent(obj); ie.setAction(action); ie.setWalkTo(true); ie.setOperateCamera(true); execute(ie); return ie.hasFinished(); } private boolean playerContains(Area area) { return area.contains(myPlayer()); } private boolean mustContinue() { return getDialogues().isPendingContinuation(); } private void pressContinue() throws InterruptedException { if (getDialogues().clickContinue()) { sleepTill(!mustContinue(), 700); } } private void sleepTill(boolean condition, int timeout) { new CSleep(() -> condition, timeout).sleep(); } private final class CSleep extends ConditionalSleep { private final BooleanSupplier condition; public CSleep(final BooleanSupplier condition, int timeout) { super(timeout); this.condition = condition; } @[member=Override] public boolean condition() throws InterruptedException { return condition.getAsBoolean(); } } } enjoy priks Edited October 5, 2016 by Acerd 4 Quote Link to comment Share on other sites More sharing options...
Fratem Posted June 15, 2016 Share Posted June 15, 2016 Wooohoo Thanks for this ! =D Quote Link to comment Share on other sites More sharing options...
Rudie Posted June 15, 2016 Share Posted June 15, 2016 Nice one Quote Link to comment Share on other sites More sharing options...
Chikan Posted June 15, 2016 Share Posted June 15, 2016 Neat Quote Link to comment Share on other sites More sharing options...
Aiban Posted June 15, 2016 Share Posted June 15, 2016 Thanks for this ! Quote Link to comment Share on other sites More sharing options...
Chris Posted June 15, 2016 Share Posted June 15, 2016 Nice leak Quote Link to comment Share on other sites More sharing options...
Token Posted June 15, 2016 Share Posted June 15, 2016 I like the Loop Oriented Design you have in there 1 Quote Link to comment Share on other sites More sharing options...
Acerd Posted June 15, 2016 Author Share Posted June 15, 2016 I like the Loop Oriented Design you have in there Quote Link to comment Share on other sites More sharing options...
wadbot1 Posted June 15, 2016 Share Posted June 15, 2016 @acerd assnerd great job again friend 5/5 Quote Link to comment Share on other sites More sharing options...
Krys Posted June 15, 2016 Share Posted June 15, 2016 gz Quote Link to comment Share on other sites More sharing options...
GaetanoH Posted June 15, 2016 Share Posted June 15, 2016 Nice one dude Quote Link to comment Share on other sites More sharing options...
whycantiregister Posted June 17, 2016 Share Posted June 17, 2016 How do you run this? Quote Link to comment Share on other sites More sharing options...
Acerd Posted June 19, 2016 Author Share Posted June 19, 2016 How do you run this? added to thread Quote Link to comment Share on other sites More sharing options...
mplaxer Posted June 21, 2016 Share Posted June 21, 2016 dl link is broken on site. Quote Link to comment Share on other sites More sharing options...
Acerd Posted June 22, 2016 Author Share Posted June 22, 2016 dl link is broken on site. works for me , just compile it if it doesnt work4u Quote Link to comment Share on other sites More sharing options...