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.

Botre

Members
  • Joined

  • Last visited

Everything posted by Botre

  1. Some code I toyed around with yesterday to test out a few things: Core: import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import java.util.Comparator; import java.util.function.Predicate; import java.util.stream.Stream; @ScriptManifest(author = "Botre", info = "", logo = "", name = "Experiment", version = 0.0) public class ExperimentalScript extends Script { private ScriptClock clock = new ScriptClock(1.6); private String name = "Man"; private String action = "Pickpocket"; private Predicate<NPC> validityPredicate = o -> o != null && o.exists() && o.getName().equals(name) && o.hasAction(action) && getMap().canReach(o.getPosition()); private Comparator<Entity> distanceComparator = EntityComparator.create(this, EntityComparator.Type.DISTANCE_FROM_PLAYER); private Target<NPC> target = new Target<>(validityPredicate, () -> getNpcStream().filter(validityPredicate).min(distanceComparator)); @Override public int onLoop() throws InterruptedException { if (target.valid() || target.find()) { target.get().interact(action); } return clock.tick(); } private Stream<RS2Object> getObjectStream() { return getObjects().getAll().stream(); } private Stream<NPC> getNpcStream() { return getNpcs().getAll().stream(); } } Target: import java.util.Optional; import java.util.function.Predicate; /** * Created by Bjorn on 19/07/2015. */ public class Target<T> { private T target; private TargetSearcher<T> searcher; private Predicate<T> validity; public Target(Predicate<T> validity, TargetSearcher<T> searcher) { this.validity = validity; this.searcher = searcher; } /** * @return The current target. */ public T get() { return target; } /** * @return Whether the current target is valid. */ public boolean valid() { if (validity.test(target)) { return true; } else { target = null; return false; } } /** * Searches for and assigns a new target by making a call to the search() method. * * @return Whether a new target was find. */ public boolean find() { Optional<T> optional = searcher.search(); if (optional.isPresent()) { target = optional.get(); return true; } else { return false; } } } Target searcher: import java.util.Optional; /** * Created by Bjorn on 21/07/2015. */ public interface TargetSearcher<T> { /** * Searches for a new target. * * @return The new target. */ Optional<T> search(); } Script clock: /** * Created by Bjorn on 19/07/2015. */ public class ScriptClock { private double loopsPerSecond ; private int millisecondsPerLoop; private long systemMilliseconds; private long deltaMilliseconds; private int sleepMilliseconds; public ScriptClock(double loopsPerSecond) { this.loopsPerSecond = loopsPerSecond; millisecondsPerLoop = (int) ((1 / loopsPerSecond) * 1000); systemMilliseconds = System.currentTimeMillis(); } public int tick() { deltaMilliseconds = System.currentTimeMillis() - systemMilliseconds; systemMilliseconds = System.currentTimeMillis(); sleepMilliseconds = (int) (millisecondsPerLoop - deltaMilliseconds); return sleepMilliseconds > 0 ? sleepMilliseconds : 0; } } Entity comparator: import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.script.MethodProvider; import java.util.Comparator; /** * Created by Bjorn on 20/07/2015. */ public final class EntityComparator { public enum Type { DISTANCE_FROM_PLAYER, } public static Comparator<Entity> create(MethodProvider mp, Type type) { switch(type) { case DISTANCE_FROM_PLAYER: return (a, b) -> mp.getMap().distance(a.getPosition()) - mp.getMap().distance(b.getPosition()); } return null; } }
  2. I suggest you give this a read: https://en.wikipedia.org/wiki/Computational_linguistics I hope you have some decent knowledge about linguistics, it's going to be hard to learn a computer something you don't understand yourself (I'm not saying you don't, I'm just taking shortcuts here ) Gl though
  3. If you want to do database querying there are plenty of vast academic quality databases around you might want to use instead of building your own from scratch. But that probably wouldn't even suffice, you really are going to want semantic recognition / AI for this and not just sentence and word keys to query a db (unless you have the server resources and time for it :p).
  4. You don't send a jar to the SDN, you send source code to be compiled. The source code is checked for compilation errors and malicious content by the SDN manager(s) (probably a mixture of software-assisted human checking and detection software).
  5. Enjoy that sexy script
  6. As mentioned above, the graphics mode you are using isn't compatible with the client.
  7. Have a good one brochacho!
  8. Botre replied to SshinigamiS's topic in Farewells
    loser
  9. Botre replied to Botre's topic in Spam/Off Topic
    Thanks Going to check out some thrift stores first though.
  10. Botre replied to Botre's topic in Spam/Off Topic
    Any tips on how to get them as cheaply as possible ? :x
  11. Botre replied to Botre's topic in Spam/Off Topic
    My monitor is 14 years old :p I'm used to it though, looking forward to the upgrade nevertheless ><
  12. Botre replied to Botre's topic in Spam/Off Topic
    :cryingdoge:
  13. Botre replied to Botre's topic in Spam/Off Topic
    I don't have space for a big ass monitor/tv on my desk I was on a really tight budget when I bought the CPU (I got if for like 60€ back in the days), I'll probably get an octo-core later this year though. But an SSD and some additional ventilation are next on the upgrade list
  14. Botre replied to Botre's topic in Spam/Off Topic
    Sweeet builderino. How did that Sabretooth treat you? Any tips for a new user ? :p
  15. Botre posted a topic in Spam/Off Topic
    Mobo is a SABERTOOTH 990FX R2.0. Going to update CPU and get an SSD soon too. I know it's not anything high-level but I'm still happy so yeah
  16. Botre replied to Rhodry's topic in Runescape
    You'll have an RS3, OSRS and DM save file. Same way you can't go train your OSRS character in EOC, you won't be able to train it on dead man servers :p
  17. My point was that If you have to give respect to anyone asking for it without them earning it, then respect loses all value. I do feel sympathy for the person in question but this is just a whinethread and whinethreads only make things worse. The last paragraph of the post I'm quoting proves the fact that respect is earned and not freely given by everyone to everyone.
  18. If you're going to call out someone on their grammar, make sure you grammar check your sentence
  19. Don't ask for respect. Earn it. Step one: stop whining.
  20. Botre replied to Botre's topic in Spam/Off Topic
    I appreciate your racist honesty.
  21. Botre replied to Botre's topic in Spam/Off Topic
    TWC
  22. Botre replied to Botre's topic in Spam/Off Topic
    Correlation doesn't exclude causation though
  23. Botre posted a topic in Spam/Off Topic
    Everyone who ever called me a moneywhore seems to end up scamquitting. For the sake of the community's safety, please consider TWC'ing any liar who would dare saying such offensive things or similar bs to black, strong, independent women like myself. I thank you.
  24. Botre replied to doiro's topic in Spam/Off Topic
    creampie

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.