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.

Twin

Members
  • Joined

  • Last visited

Everything posted by Twin

  1. Twin replied to dokato's topic in Scripting Help
    Entity glory = objects.closest("amulet of glory"); If(glory!=null) glory.interact("karamja"); Pretty much the same thing, just adds a null check and strores the glory into an entity. That's how I'd do it anyway. Not sure if this will change your issue or not though.
  2. Twin replied to Fade's topic in Archive
    I feel like there isn't enough demand to spend time on something like this unless it only has making crude chairs and larders.
  3. Twin replied to Khaleesi's topic in Minigames
    No it's definitely true. 1000 steel bars an hour, so take whatever 1000coal + 1000 iron is and subtract that from the cost of 1000 steel bars.
  4. Does she need to do anythig else or does she just need like pictures/webbrowsing/music?! You could get a computer that can do all this for like 400
  5. On mobile didn't see full code Never mind me.
  6. if(inventory.contains(10092)//assuming ferret id is 10092 inventory.interact("Release",10092); Not sure if that's what you wanted or not, but I feel ilke that's what I read. so long as you have 10092 in your inventory it will go through this until your dont.
  7. I'll change it when I have access to a computer. For some reason I don't get all the edit options while on mobile.Actually I didn't realize this allowed me to type Img /img, I fixed
  8. SOLD AN ADMIN CAN CLOSE
  9. I think i'm going to let go of my main, i've been having a lot of fun with my initiate pure and need gold to support it. Stats: assume anything crossed out is 10 or under Account items Ban page login screen Quest Throw me some offers, autowin is like 40m(obviously most likely not gonna get that but if anyone really wants this account ) I am the orginal owner of the account and have full control of the email.
  10. Twin replied to Rumb's topic in Scripting Help
    I just stole that from something in my script and changed it around, didn't even think of that lol. But yeah, he's right. If this messes up and doesn't get iron, it's going to withdraw coal and iron again, then it won't bank because it will have an over abundance of one of the two ores.
  11. Twin replied to Rumb's topic in Scripting Help
    I feel like you know java, but not so much the osbot api. if(!inventory.contains("Coal") && !inventory.contains("Iron ore")) { if (bank.isOpen()) { bank.depositAll("Steel bar"); sleep(random(500, 1000)); widgets.getBank().withdraw("Coal", 14); sleep(random(500, 1000)); widgets.getBank().withdraw("Iron ore", 7); bank.close(); break; } else { bank.open(); } } No need for all those else if statements. This pretty much covers it in one.
  12. Twin replied to 2007's topic in Spam/Off Topic
    2106
  13. Twin replied to eleax's topic in Runescape
    Eh it's atleast a goal. Plus if it doesn't work out I can still go zerker. It's just been kind of fun because I never do quest, but on this account I'm kind of forced too, and I've been having fun with it.
  14. Twin replied to eleax's topic in Runescape
    I'm currently doing an initiate pure(20 def) since the risk is minimal on this guy, im just gonna dick around in edgeville at different stats. 50-50 50-60,60-60 60-70 60-75 60-80 and 60-85, and whatever one I don't get my ass handed to me by 1def pures is where I'm staying lol.
  15. Twin replied to Caam's topic in Price Check
    if its literally 99/99/99 with nothing else, itt's only use is bossing unless someone wants to put in a bunnch of time skilling on it. I gues you could pvp, but you'd need a firecape, barrows gloves, DT done, lunars if you want vengance. I'd say 25-40m depending on how much someone really wanits it.
  16. I'm sorry I forgot to follow this thread. I can send it tto you over skype if you would like.
  17. Damn you're a high rank lol. I'm nova1, good luck with service though
  18. I guess I can also just try a few different builds and see where I like it. I risk like 100k at most if I use a glory. I've never made one before so I thought i'd give it a go. I might still convert to a zerker, but I thought deep wildy might be fun on something that is lowish defence, compared to a zerker. Just for the combat level reduction.
  19. I'm thinking doing 50/50/20,and then getting 70 ranged for some lower level edge pk, then once I splash my mage to the high 80s, get 60atk and 75 strength with 80ish ranged and do some deep wildy pking. Thoughts?
  20. Nope, osbot community is probably one of the best i've seen, that, and I'd have a huge guilty conscience about it lol.
  21. How come you made your own methods and threw exceptions in them? There's no need to. And also when using the water jug on the fountain it's not "->" it's "use". Post this to the scripting help forum. I'm on mobile right now so I can't check this all thoroughly.
  22. if (!spot1.contains(myPlayer())) { //if you're not standing in the hunting area log("Returning to Hunting Area"); localWalker.walk(spot1.getRandomPosition(0)); //Walks into hunting area } Also, reset your count,then add one to trap count if trap1 is the first trap you're placing. Just Incase of DCs and what not. If(box==null&&!box.exist())//don't quote me on the exist part return state.Trap1; case trap1: Inventory.interact(xxxxxxx) Trapcount == 0; Trapcount++;
  23. Yeah Apaec did a great job of writing the tutorial. Helped me a lot to start up. And I'm sorry about not having that formatted. Was on mobile and couldn't bring up the option to have it formatted
  24. import org.osbot.rs07.api.Interfaces; import org.osbot.rs07.api.map.Position; 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.api.ui.Message; import org.osbot.rs07.api.ui.Message.MessageType; import org.osbot.rs07.script.MethodProvider; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import java.awt.*; import java.util.Random; @ScriptManifest( author = "54b3ew5vw", info = "PestControl test herp derp", name = "PestControl Afker B", version = 0, logo = "") public class main extends Script { // Npc names String[] pestControlMonsters = {"Brawler","Defiler","Ravager","Shifter","Spinner","Torcher"}; boolean areWeInBoat, didWeArrive, didWeFinish = false; int okset = 0; String status = "Nothing"; //int[] pestControlStarter = {1,2,3,4}; //int[] pestControlMiddle = {10339,1630}; //int[] pestControlBoat1 = {2260,2643,2263,2638}; //int[] pestControlBoat2 = {2637,2647,2641,2642}; //int[] pestControlBoat3 = {2632,2654,2635,2649}; @Override public void onStart() { log("============================="); log("= Starting pest control bot ="); log("============================="); getBot().addMessageListener(this); } private enum State { BOATING, WAITING, MOVING, FINDINGTARGET, KILLING, CAMERAMOVE, MICROWAIT; }; private State getState() { NPC findEnemy = npcs.closest(pestControlMonsters); RS2Object findCauldron = objects.closest("Cauldron"); RS2Object findPlank = objects.closest("Gangplank"); //RS2Object findPlank = objects.closest(9999).getX; if(areWeInBoat == true && findCauldron != null && findPlank != null){ status = "Waiting"; return State.WAITING; } if(findCauldron == null && findPlank == null) { areWeInBoat = false; okset = objects.closest("Lander boat").getY() - myPlayer().getY(); //log (objects.objects.closest("Lander boat").getY()); //log (myPlayer().getY()); if(objects.closest("Lander boat").getY() - myPlayer().getY() < 10){ status = "Moving"; return State.MOVING; } } if (areWeInBoat == false && myPlayer().getY() < 3000 && findPlank != null){ status = "Entering boat"; return State.BOATING; } if (findEnemy != null && !myPlayer().isAnimating() && !myPlayer().isMoving() && !myPlayer().isUnderAttack() && myPlayer().getInteracting() == null){ status = "Finding Target"; return State.FINDINGTARGET; } if (myPlayer().isAnimating() || myPlayer().isUnderAttack() || myPlayer().isMoving() || myPlayer().getInteracting() != null){ status = "Killing"; return State.KILLING; } status = "MicroWaiting"; return State.MICROWAIT; } //@Override //public int onLoop() throws InterruptedException { // NPC findEnemy = npcs.closest(pestControlMonsters); // if (findEnemy != null){ // if (!myPlayer().isAnimating() && !myPlayer().isMoving() && !myPlayer().isUnderAttack() && myPlayer().getInteracting() == null){ // findEnemy.interact("Attack"); // sleep(random(1000, 5000)); // } // } // return random(100, 1000); //} public void onMessage(Message message) { if (message.getType() == MessageType.GAME) { try { if (message.getMessage().contains("You board the lander") || message.getMessage().contains("can't reach that!")) { areWeInBoat = true; } else { // Do nothing } } catch (Exception e) { e.printStackTrace(); } } } @Override public int onLoop() throws InterruptedException { switch (getState()) { case WAITING: sleep(random(300, 750)); //log ("Waiting"); break; case MICROWAIT: sleep(random(10, 100)); break; case BOATING: objects.closest("Gangplank").interact("Cross"); sleep(random(750, 1250)); //log ("Entering boat"); break; case MOVING: int newX = myPlayer().getX() + random(0, 18) - 9; int newY = myPlayer().getY() - random(15, 25); //Position baseObject = objects.closest(9999).getPosition(); //Position towerLeft = new Position((baseObject.getX() - 14), (baseObject.getY() + 14), 0); //Position towerRight = new Position((baseObject.getX() + 11), (baseObject.getY() + 14), 0); //Position towerTopLeft = new Position((baseObject.getX() - 11), (baseObject.getY() + 29), 0); //Position towerTopRight = new Position((baseObject.getX() + 8), (baseObject.getY() + 29), 0); //Position[] newLocation = {new Position(newX, newY, 0)}; if (map.canReach(new Position(newX, newY, 0)) && myPlayer().isMoving() == false){ log("Location; " + newX +"," + newY + ",0"); localWalker.map.walk(newX, newY); log("attempt click"); sleep(random(1000, 1750)); } else { sleep(random(100, 1000)); } break; case FINDINGTARGET: NPC findEnemy = npcs.closest(pestControlMonsters); NPC findPortal = npcs.closest("Portal"); if (findPortal != null && findPortal.isAttackable()){ findEnemy.interact("Attack"); sleep(random(300, 2500)); break; } if (findEnemy != null && findEnemy.isAttackable()){ findEnemy.interact("Attack"); sleep(random(300, 2500)); } else { sleep(random(350, 1250)); } //log("Finding target"); break; case KILLING: sleep(random(500, 3000)); //log("Killing"); break; } return random(200, 800); } @Override public void onExit() { log("YoloSwagAFk"); } @Override public void onPaint(Graphics2D g) { g.drawString("Status: " + status, 200, 328); g.drawString("y difference " + okset, 200, 300); } } Currently on mobile, this isn't mine, it's just an open source PC script someone made.
  25. Just read the API. A lot of the stuff is as straight forward as it sounds. If you want to get whether yoú player is moving or not it's myPlayer().isMoving(). Also this http://osbot.org/forum/topic/58775-a-beginners-guide-to-writing-osbot-scripts-where-to-get-started-by-apaec/

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.