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.

Tommm39

Trade With Caution
  • Joined

  • Last visited

Everything posted by Tommm39

  1. account has 55 thieving, 50 agility, has stamina potions in bank if needed
  2. It depends, if they don't add any more gold-sinks in theory it'll keep going down
  3. Yes, there's a lot more gold in the game which has devalued it
  4. I think you have to because it's the only client that doesn't auto rotate the camera
  5. Thanks bro, probably a week or so? Won't take that long to actually code but I have exams atm so don't have loads of free time to figure it out
  6. @Fruity hey bro, love the script one small problem, when I've been babysitting I've noticed a couple of times that in the rare case that the bot only needs to eat 1/2 sharks, it leaves some of the loot on the ground instead of dropping/eating an extra shark to make space for it Otherwise perfection 10/10
  7. Cheers bro, it wasn't from this forum so I probably shouldn't say I don't want to get into trouble ? just search other major botting communities and you'll find one soon enough!
  8. Personally I think it's a good time to come back, with mobile coming out soon there should be an influx of a lot of new players
  9. Yeah you just use .interact() with a widget you don't need to specify the action
  10. Tommm39 replied to d23p's topic in Price Check
    It's probably worth more, but the fact is most people would probably only pay the same as if it was 13m Just my opinion though
  11. NPC monsterToAttack = getNPCs().closest("Name 1", "Name 2", "Name 3", "Name 4", "Name 5"); if (monsterToAttack != null && monsterToAttack.interact()) { }
  12. wealth? prospector/angler? quests?
  13. My apologies, had to make a quick update and forgot to update the download link, should work now
  14. Who is The SimpleFisherman? Some say he's part man, part fish. Some say he's an actual real-life fisherman. All we really know is the man loves to fish. What the script does: Fishes Shrimp/Anchovies at Draynor Village until level 20 fishing, then fishes trout/salmon forever Fetches appropriate equipment from the bank if needed Walks to the appropriate fishing area depending on level Fish is dropped to optimise XP/Hour Future update plans: Buy feathers from GE when you run out Start going to fishing trawler at level 15 to get full angler (will take some time to implement!) Please note: This has not been tested on a low combat account - the dark wizard/jail guard near draynor WILL attack you if you have a low combat level so please use with caution! This is the first script that I will upload the source code for, any and all feedback will be greatly appreciated I have only started scripting recently so there may be some errors here and there. Download link: http://www.mediafire.com/file/0s3rq3q67e4363q/SimpleFisherman.jar Source code: import org.osbot.rs07.api.Skills; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.map.constants.Banks; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.api.util.ExperienceTracker; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import java.awt.*; import java.util.concurrent.TimeUnit; @ScriptManifest(author = "Tommm39", name = "SimpleFisherman", info = "", version = 1.0, logo = "") public class Main extends Script { private Skills s; private ExperienceTracker track; private String status = ""; private long timeBegan; private long timeRan; private final Area shrimpArea = new Area(3092, 3234, 3081, 3226); private final Area flyFishingArea = new Area(3102, 3422, 3109, 3434); private final Area lumbridgeBankArea = new Area(3208, 3218, 3209, 3219); public void onStart() { this.track = getExperienceTracker(); track.start(Skill.FISHING); this.s = getSkills(); this.timeBegan = System.currentTimeMillis(); } public void onExit() { } public int onLoop() throws InterruptedException { if (getInventory().isFull()) { drop(); } else if (!getInventory().contains("Small fishing net") && !getInventory().contains("Fly fishing rod")) { getFishingEquipment(); } else if ((s.getDynamic(Skill.FISHING) < 20) && (getInventory().contains("Small fishing net"))) { fishShrimp(); } else if ((s.getDynamic(Skill.FISHING) >= 20) && (getInventory().contains("Fly fishing rod"))) { flyFish(); } else if ((s.getDynamic(Skill.FISHING) < 20) && (!getInventory().contains("Small fishing net"))) { getFishingEquipment(); } else if ((s.getDynamic(Skill.FISHING) >= 20) && (!getInventory().contains("Fly fishing rod"))) { getFishingEquipment(); } return random(500, 550); } public void getFishingEquipment() throws InterruptedException { status = "Getting equipment"; Boolean lowLevelEquipment = false; if (s.getDynamic(Skill.FISHING) < 20) { lowLevelEquipment = true; } if (getWalking().webWalk(Banks.LUMBRIDGE_UPPER)) { Timing.waitCondition(() -> lumbridgeBankArea.contains(myPosition()), 5000); sleep(random(100, 500)); } if (getBank().open()) { if (getBank().depositAll()) { Timing.waitCondition(() -> getInventory().isEmpty(), 5000); } if (lowLevelEquipment == false) { if (getBank().withdraw("Fly fishing rod", 1)) ; Timing.waitCondition(() -> getInventory().contains("Fly fishing rod"), 5000); sleep(random(100, 500)); } else { if (getBank().withdraw("Small fishing net", 1)) ; Timing.waitCondition(() -> getInventory().contains("Fly fishing rod"), 5000); sleep(random(100, 500)); } } if (lowLevelEquipment == false) { if (getBank().withdrawAll("Feather")) { Timing.waitCondition(() -> getInventory().contains("Feather"), 5000); sleep(random(100, 500)); } } if (getBank().close()) { Timing.waitCondition(() -> !getBank().isOpen(), 5000); sleep(random(100, 500)); } } public void drop() throws InterruptedException { status = "Dropping inventory"; if (getInventory().dropAllExcept("Small fishing net", "Fly fishing rod", "Feather")) { Timing.waitCondition(() -> getInventory().onlyContains("Small fishing net", "Fly fishing rod", "Feather"), 5000); sleep(random(100, 500)); } } public void fishShrimp() throws InterruptedException { if (!shrimpArea.contains(myPosition())) { status = "Walking to shrimp area"; getWalking().webWalk(shrimpArea); Timing.waitCondition(() -> shrimpArea.contains(myPosition()), 5000); sleep(random(100, 500)); } else { NPC shrimpSpot = getNpcs().closest(1518); status = "Fishing shrimp"; if (myPlayer().getAnimation() == -1) { if (shrimpSpot != null) { if (shrimpSpot.interact()) { Timing.waitCondition(() -> shrimpSpot == null || getDialogues().isPendingContinuation(), 5000); sleep(random(100, 500)); } } } } } public void flyFish() throws InterruptedException { if (!flyFishingArea.contains(myPosition())) { status = "Walking to fly-fishing area"; getWalking().webWalk(flyFishingArea); Timing.waitCondition(() -> flyFishingArea.contains(myPosition()), 5000); sleep(random(100, 500)); } else { NPC flySpot = getNpcs().closest(1526); status = "Fishing trout/salmon"; if (myPlayer().getAnimation() == -1) { if (flySpot != null) { if (flySpot.interact("Lure")) { Timing.waitCondition(() -> flySpot == null || getDialogues().isPendingContinuation(), 5000); sleep(random(100, 500)); } } } } } public void onPaint(Graphics2D g) { Graphics2D gr = g; int fishingExperience = track.getGainedXPPerHour(Skill.FISHING); int levelsGained = track.getGainedLevels(Skill.FISHING); long timeToLevel = track.getTimeToLevel(Skill.FISHING); timeRan = System.currentTimeMillis() - this.timeBegan; g.setBackground(Color.WHITE); g.drawString("Thanks for using SimpleFisherman by Tommm39", 10, 230); g.drawString("Time Running: " + formatTime(timeRan), 10, 250); g.drawString("Fishing XP/HR: " + fishingExperience, 10, 270); g.drawString("Time to Level: " + formatTime(timeToLevel), 10, 290); g.drawString("Levels Gained: " + levelsGained, 10, 310); g.drawString("Status: " + status, 10, 330); } private String formatTime(long duration) { String formattedTime = ""; long days = TimeUnit.MILLISECONDS.toDays(duration); long hours = TimeUnit.MILLISECONDS.toHours(duration) - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(duration)); long minutes = TimeUnit.MILLISECONDS.toMinutes(duration) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(duration)); long seconds = TimeUnit.MILLISECONDS.toSeconds(duration) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration)); if (days == 0) { formattedTime = (hours + ":" + minutes + ":" + seconds); } else { formattedTime = (days + ":" + hours + ":" + minutes + ":" + seconds); } return formattedTime; } }
  15. Thanks bro getting the angler outfit took a lot longer than I had hoped but we can make some big gains now
  16. Added some content to day 13, re-arranged goals
  17. I don't think randomising the area makes much sense because someone playing legit would just click the same space or maybe a very tiny randomisation
  18. Added some content to days 11 and 12
  19. Hey bro, I'm using the software that you've recommended, do you just loop the same file infinitely or do you use a combination of recordings? I can't figure out how to use the task scheduler thingy
  20. Tommm39 replied to Chris's topic in Spam/Off Topic
    I'm pretty sure people just like to meme about Java, half of them have probably never even used it. If you have such a problem with Java as a programming language pls stop playing a game that was built using Java and browsing a forum whose product is build using Java

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.