Skip 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.

mariokiller64

Java Lifetime Sponsor
  • Joined

  • Last visited

Everything posted by mariokiller64

  1. So as I'm trying to implement as many human like functions as possible, I have to know, mostly from the more developed scripters, do you bot 24/7 without bans?
  2. Not sure why but he isn't drinking any stamina potions still. He didn't deposit them at all at least, ha. Don't know if the \\(\\d\\) did anything as it is still in the same colored text Started working when I redid it a bit cleaner. Haven't done this in a while lol, thanks for the help though!
  3. He wasn't using the potions. And I think I accidentally wrote it so it has to have 1-4 stamina potions in the inventory itself before being able to do anything because I have no idea what I'm doing lol.
  4. Think I got it working, Implemented use of Stamina potions into Explvs' agility script if anyone wants it. Just have them in your inventory and you're all good to go. Still also trying to figure out how to get them to be withdrawn from the bank and depositing vials after a certain amount package activities.skills.agility; import activities.activity.Activity; import activities.activity.ActivityType; import activities.banking.Banking; import org.osbot.rs07.api.model.GroundItem; import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.event.WalkingEvent; import org.osbot.rs07.event.WebWalkEvent; import org.osbot.rs07.utility.Condition; import util.Executable; import util.Sleep; import java.util.Arrays; import java.util.LinkedList; public class AgilityActivity extends Activity { private final AgilityCourse agilityCourse; private Executable bankNode; private LinkedList<CoursePart> course; private int enableRunEnergyAmount; private static final String[] ENERGY = { "Stamina potion(4)", "Stamina potion(3)", "Stamina potion(2)", "Stamina potion(1)",}; private static final String[] BANK = { "Vial", "Mark of grace", "Stamina potion(4)", "Stamina potion(3)", "Stamina potion(2)", "Stamina potion(1)",}; public AgilityActivity(final AgilityCourse agilityCourse) { super(ActivityType.AGILITY); this.agilityCourse = agilityCourse; } @Override public void onStart() { if (getInventory().contains(ENERGY) && !isStaminaPotionActive() && getSettings().getRunEnergy() < random(40, 60)) { getInventory().interact("Drink", ENERGY); } bankNode = new AgilityBank(); bankNode.exchangeContext(getBot()); getSettings().setRunning(true); enableRunEnergyAmount = random(20, 50); } @Override public boolean canExit() { return course == null || course.peek() == agilityCourse.COURSE_PARTS[0]; } public boolean isStaminaPotionActive() { return getConfigs().get(1575) > 0; } @Override public void runActivity() throws InterruptedException { if (getInventory().isEmptyExcept(BANK) || myPosition().getZ() > 0) { if (getBank() != null && getBank().isOpen()) { getBank().close(); return; } if (getInventory().contains(ENERGY) && !isStaminaPotionActive() && getSettings().getRunEnergy() < random(40, 60)) { getInventory().interact("Drink", ENERGY); getSettings().setRunning(true); } if (!getSettings().isRunning() && getSettings().getRunEnergy() >= enableRunEnergyAmount) { getSettings().setRunning(true); enableRunEnergyAmount = random(20, 50); } GroundItem markOfGrace = getGrace(); if (markOfGrace != null && (getInventory().contains("Mark of grace") || !getInventory().isFull())) { takeItem(markOfGrace); return; } if (course == null || course.isEmpty() || !course.peek().activeArea.contains(myPosition())) { course = getCourse(); } if (course.peek() == agilityCourse.COURSE_PARTS[0] && !agilityCourse.COURSE_PARTS[0].activeArea.contains(myPosition())) { if (agilityCourse != AgilityCourse.GNOME_STRONGHOLD) { getWalking().webWalk(agilityCourse.COURSE_PARTS[0].activeArea); } else if (talkingToFemi()) { getDialogues().completeDialogue("Okay then."); } else if (!myPlayer().isMoving() && !myPlayer().isAnimating()) { // The player may need to complete a dialog before being able to access the Gnome Stronghold WebWalkEvent webWalkEvent = new WebWalkEvent(agilityCourse.COURSE_PARTS[0].activeArea); webWalkEvent.setBreakCondition(new Condition() { @Override public boolean evaluate() { return talkingToFemi(); } }); execute(webWalkEvent); } return; } RS2Object obstacle = getObstacle(); if ((obstacle == null || getMap().distance(obstacle) > 10) && course.peek().pathToArea != null) { WalkingEvent walkingEvent = new WalkingEvent(); walkingEvent.setPath(new LinkedList<>(Arrays.asList(course.peek().pathToArea))); walkingEvent.setMiniMapDistanceThreshold(10); walkingEvent.setBreakCondition(new Condition() { @Override public boolean evaluate() { return getObstacle() != null && getMap().distance(getObstacle()) < random(10,12); } }); execute(walkingEvent); if (walkingEvent.hasFailed()) { return; } } if (obstacle != null) { if (getCamera().toPosition(obstacle.getPosition()) && obstacle.interact(course.peek().obstacle.ACTION)) { long agilityXP = getSkills().getExperience(Skill.AGILITY); int zPos = myPosition().getZ(); Sleep.sleepUntil(() -> getSkills().getExperience(Skill.AGILITY) > agilityXP || (zPos > 0 && myPosition().getZ() == 0), random(12_00, 13_000), random(200, 1200)); if (!course.peek().activeArea.contains(myPosition())) { course.add(course.removeFirst()); } if (getInventory().contains(ENERGY) && !isStaminaPotionActive() && getSettings().getRunEnergy() <= 1) { getInventory().interact("Drink", ENERGY); getSettings().setRunning(true); } } else { log("Interaction got stuck, moving camera"); getCamera().moveYaw(getCamera().getYawAngle() - random(15, 60)); } } else { log("Could not find the next obstacle"); } } else { bankNode.run(); } } private boolean talkingToFemi() { return getDialogues().inDialogue() && getNpcs().closest("Femi") != null; } private RS2Object getObstacle() { return getObjects().closest(obj -> { if (!obj.getName().equals(course.peek().obstacle.NAME)) { return false; } if (!obj.hasAction(course.peek().obstacle.ACTION)) { return false; } if (course.peek().obstaclePosition != null && !obj.getPosition().equals(course.peek().obstaclePosition)) { return false; } return true; }); } private GroundItem getGrace() { return getGroundItems().closest(item -> item.getName().equals("Mark of grace") && getMap().canReach(item.getPosition())); } public boolean takeItem(final GroundItem groundItem) { long invAmount = getInventory().getAmount(groundItem.getName()); if (groundItem.interact("Take")) { Sleep.sleepUntil(() -> getInventory().getAmount(groundItem.getName()) > invAmount || !groundItem.exists(), random(1000,4500)); } return getInventory().getAmount(groundItem.getName()) > invAmount; } private LinkedList<CoursePart> getCourse() { LinkedList<CoursePart> course = new LinkedList<>(); for (int i = 0; i < agilityCourse.COURSE_PARTS.length; i++) { if (agilityCourse.COURSE_PARTS[i].activeArea.contains(myPosition())) { course.add(agilityCourse.COURSE_PARTS[i]); course.addAll(Arrays.asList(agilityCourse.COURSE_PARTS).subList(i + 1, agilityCourse.COURSE_PARTS.length)); course.addAll(Arrays.asList(agilityCourse.COURSE_PARTS).subList(0, i)); break; } } if (course.isEmpty()) { return new LinkedList<>(Arrays.asList(agilityCourse.COURSE_PARTS)); } return course; } @Override public AgilityActivity copy() { return new AgilityActivity(agilityCourse); } private class AgilityBank extends Banking { @Override public boolean bank() { if (getInventory().contains(ENERGY) && !isStaminaPotionActive() && getSettings().getRunEnergy() < random(40, 60)) { getInventory().interact("Drink", ENERGY); getSettings().setRunning(true); } getBank().depositAllExcept(BANK); return true; } } }
  5. How about a craws bow option for wildy monsters and reloading the craws bow? Also, how about an option for a sleep timer in MS between actions? -He killed a monster, cool, how long to wait between attacking another monster "100MS-1000MS"? Or any action, thinking it will improve antiban but not sure-
  6. It got stuck standing right outside West varrock bank in place trying to do firemaking burning oak logs. Anything in the source code about mouse movement speed? Ways to make it faster or slower mouse acceleration? wanted to say that this script is genius and I can't imagine how much time was put into it, beautiful. Thank you very much.
  7. Keeps trying to use divine potion for no reason, just because it's in my inventory. No setup that's telling it to use it. ???? Actually, It'll just randomly use potions that are in inventory. No reason, will just empty them. Need to fix. My character wasn't doing anything because he was trying to use a divine potion but he couldn't since he only has 10HP and you need more, so he just literally didn't do anything. Also, he keeps jumping out of the wilderness for no reason when I put the safe spot right next to the wildy wall. Ignore loot further than X tiles also doesn't save in the profiles. Also, he keeps moving to the safespot, but I only want him to go to the safespot when he's attacked. I have the option selected but he just keeps running back to the safe spot no matter what happens. If he has nothing to do, he goes back to the safespot, but I want him to stay where he's at unless he's hit.
  8. Thank you. Slight suggestions and maybe a bug fix here and there. Suggestion is to have an option to click where the item was dropped so he can have a better chance at picking other loot that pops up to help a bit more with AFK looting. As for a bug fix, I noticed sometimes if you interrupt the "going back to area" or if you click somewhere else while he's waiting, he will go back to the area, but get stuck in a loop of multiply clicking the two different spots back and forth, causing him to run in circles. Not sure if this would ever happen by accident as a glitch but throwing it out there to possible input some higher amount of possible areas he can walk to for each destination if there's a problem getting to one certain area.
  9. Pretty sure I abused the script for too long and got it banned. Will try again with a bit more testing on other account methods. Also, bot got stuck at edgeville bank doing hill giants. He was there for a few hours as he wasn't doing anything. I believe he kept repeating an action that caused him to get banned as well without actually doing anything with hill giants.
  10. Can I get a trial please?
  11. EDIT Just bought the script, it works nice, got banned on a fresh account running multiple other scripts so I'm gonna try this solo on a newly freshed account with cleared cache and a changed IP. Having an issue with lumbridge bank though. I'm coming back to the bot with it being logged out. When I log back in, he has a full inventory and he's just sitting at the bank. Not sure if it has something to do with going to the bank before the bot takes a break and it doing it too early I think. The guy times out by logging out before the bot can break and it doesn't log back in for some reason. Actually script can be a little funny with lumbridge bank option. Sometimes he clicks back and fourth between inside and outside of the castle when trying to climb up the steps and he does it when he's right near the entrance to the castle building after clicking on the stairs even, causing him to go in a continuous loop. Possibly make it so he can't click outside the castle? Or maybe smaller steps when going to lumbridge bank? Also, what are the best options to use when using this script? What does anti-pattern mode do. EDIT: Another thing, the "drop junk items" don't seem to work. I was hoping it would drop the pie dishes I get from the pies I was eating but it just left them in the inventory and I couldn't loot anything. Can you fix that please?
  12. Not sure what happened but I came back to my character logged out. Came back to login and he was stuck at lumbridge bank with a full inventory. Was fighting cows at lumbridge.
  13. http://2007.runescape.wikia.com/wiki/Sinew Sinew can be used on a spinning wheel by a member with 10 Crafting to create crossbow string, granting 15 Crafting experience. It is created through the Cooking skill, by using a piece of raw beef or bear meat with a range and choosing to make sinew, granting 3 cooking experience. It's also a member's only item.
  14. Can you make it cook sinew?

Account

Navigation

Search

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.