Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/17/14 in all areas

  1. no one would buy 90 days because most rs accounts get banned within 30 lol............
    3 points
  2. TERMS OF SERVICE - You get your product after you paid. - You feedback me after our transaction. - Don't push me to get it done A.S.A.P. - You will pay using Paypal or 07 RSGold. - You are not allowed to Chargeback. - By posting you agree to the ToS. EXAMPLES AFK ACTIVE
    2 points
  3. Hi devs/others. I like to run my osbot client with the command window open to look for exceptions that aren't thrown in the clients console. I typically find myself getting frustrated having to update my batch file so often so I made this. @echo off SET /a i=100 :loop IF %i%==0 GOTO END if exist ".\osbot 1.7.%i%.jar" GOTO run SET /a i=%i%-1 GOTO LOOP :run java -jar ".\osbot 1.7.%i%.jar" pause :end echo No osbot files found. Please contact Dreamliner on OsBot forums. pauseCopy and paste this into a text document and save it as a batch file. You can now run osbot up to 1.7.100 (can change if need be god forbid..) without needing to change a thing!this must be run from the same directory you save osbot jars in
    2 points
  4. Dear community, @Zach added something that was forgotten in the addition of 1.7.69. There was another release, we apologize for the amount of releases so close together. He forgot to make a topic before exiting for the night. Download can be found here: http://osbot.org Sincerely, OSBot.org
    2 points
  5. 2 points
  6. Updated for OSBot 2's API! Hello again everyone! I hope you enjoyed my first tutorial, and I hope you'll enjoy this on as well. All feedback is appreciated, so feel free to post your thoughts! This tutorial will use some of my methods for simple banking and path walking! We’ll expand upon our script we were working on last time, so you'll need the source. Step I: Converting to a Banking Script Now as we all know, this script isn’t only boring, it will keep trying to click the rocks after we mine them, even if that vein isn’t ready! To remedy this, we’ll be searching for the rocks using object IDs instead of names. Since we’ll be using specific IDs, we have to choose what and where we’ll be mining! For this second tutorial, we’ll make a script that mines tin in the mines south-east of Varrock: Finding Object IDs Finding object IDs in OSBot is very simple, stand near the object you want the ID of, press Settings: Then press Advanced Settings: Then finally press Object Info: This will lag your client a lot, but don’t worry, you can shut it off as soon as you get the IDs. To get the ID, just look for the number near/on the object you’re looking for: Note: Some objects and NPCs in Runescape have deviations of themselves (like tin), so the same object/NPC may have different IDs (make sure to get all the IDs of whatever you’re using). Now that we have tin’s ID, we’ll make a constant in our script: private static final int[] TIN_ID = { 7140, 7141, 7142 }; We’ll put this line right after this: public class BasicMiner extends Script { Now that we have the object ID found and defined, let’s change our original code to use the ID instead of a name, simply by changing this line: RS2Object vein = objects.closest("Rocks”); to this: RS2Object vein = objects.closest(TIN_ID); Step II: Area Based State For this script, we’ll see which state we should be in with the help of OSBot’s Area class, which is defined as Area(int x1, int y1, int x2, int y2). Simply stand on two opposite corners and fill in the x and y. For the areas, put this after our path variable: private static final Area MINE_AREA = new Area(3277, 3358, 3293, 3371); private static final Area BANK_AREA = new Area(3250, 3419, 3257, 3423); Step II: Path Making The first step to path walking, would be path making! We’ll be making a path by enabling the “Player Position” setting (same place we enabled Object Info): Now, I like to open notepad, or some other text editor while finding my path, so do that now. Alright, finding a path to the bank is pretty simple, but can be slightly confusing at first. Start at the tin veins, and add the position you’re current at (this will be used when we reverse the path to walk from the bank back): Then act like you’re walking to the bank, but only press ONCE on the minimap. Let your player walk to that position and stop, then write down your first position to that path. Then keep doing that until you’re in the bank, here’s what I got: 3283, 3363 3290, 3374 3292, 3386 3290, 3374 3291, 3401 3287, 3413 3282, 3427 3270, 3429 3256, 3429 3254, 3421 To turn this path into something we can use in our script, we’ll be using an array (collection of a type of variable). We’ll put this line of code right after where we defined TIN_ID: private Position[] path = { new Position(3283, 3363, 0), new Position(3290, 3374, 0), new Position(3292, 3386, 0), new Position(3290, 3374, 0), new Position(3291, 3401, 0), new Position(3287, 3413, 0), new Position(3282, 3427, 0), new Position(3270, 3429, 0), new Position(3256, 3429, 0), new Position(3254, 3421, 0) }; Yay! We now have a full path from the mines to the bank, which we’ll reverse to go from the bank to the mines (saving us a step)! Step IV: Path Walking Now that we have a path, let’s put it to use! First of all, let’s change our enum by removing the DROP constant, and adding WALK_TO_BANK, BANK, WALK_TO_MINES: private enum State { MINE, WALK_TO_BANK, BANK, WALK_TO_MINE }; Now it’s time to change our getState() function to return what exact state we should be in: private State getState() { if (inventory.isFull() && MINE_AREA.contains(myPlayer())) return State.WALK_TO_BANK; if (!inventory.isFull() && BANK_AREA.contains(myPlayer())) return State.WALK_TO_MINE; if (inventory.isFull() && BANK_AREA.contains(myPlayer())) return State.BANK; return State.MINE; } Now that the script knows what state we should be in, let’s handle the actual path walking, with a pretty simple method to traverse the whole path: private void traversePath(Position[] path, boolean reversed) throws InterruptedException { if (!reversed) { for (int i = 1; i < path.length; i++) if (!walkTile(path[i])) i--; } else { for (int i = path.length-2; i > 0; i--) if (!walkTile(path[i])) i++; } } You can put this method after getState() if you’d like, and the walkTile(path) will be underlined red, because we’re about to make that method too! I’ll explain this method, as it may look confusing: If the path isn’t reversed, we’ll iterate through the path starting at position 1 (note that arrays start at 0, but remember, our 0 is in the mine) until we end in the bank. If the path is reversed, we’ll simply do the opposite! We’ll start at the 2nd to last position (path.length - 2) and continue to decrease through the path until we end up back in the mine! The reason we aren’t using OSBot’s walk() method is because, well, it doesn’t work nicely at all. It tends to continue clicking the position til you’re there, and many other problems can happen. So here’s the walkTile(Position p) method, put this after the traversePath() method: private boolean walkTile(Position p) throws InterruptedException { client.moveMouse(new MinimapTileDestination(bot, p), false); sleep(random(150, 250)); client.pressMouse(); int failsafe = 0; while (failsafe < 10 && myPlayer().getPosition().distance(p) > 2) { sleep(200); failsafe++; if (myPlayer().isMoving()) failsafe = 0; } if (failsafe == 10) return false; return true; } Simply put, we move the mouse to where the tile is on the minimap, then press the mouse button. After that, we’ll sit around and wait until we’re pretty close to the tile we’re walking to. I also implemented a simple failsafe here, just incase we misclicked or something, that will reclick the same position until we're actually near that position. Step V: Preparing for Banking Now let’s actually make the walking states actually walk, by changing our onLoop() to this: @Override public int onLoop() throws InterruptedException { switch (getState()) { case MINE: if (!myPlayer().isAnimating()) { RS2Object vein = objects.closest(TIN_ID); if (vein != null) { if (vein.interact("Mine")) sleep(random(1000, 1500)); } } break; case WALK_TO_BANK: traversePath(path, false); sleep(random(1500, 2500)); break; case WALK_TO_MINE: traversePath(path, true); sleep(random(1500, 2500)); break; } return random(200, 300); } Step VI: Banking Now that we’ve managed to walk to and from the bank, let’s actually do some banking! If we’re in the bank state, that means we’re already in the bank! Now, let’s add this case to our onLoop() function (as seen above), by simply adding this after the last “break;” and before the ‘}’: case BANK: RS2Object bankBooth = objects.closest("Bank booth"); if (bankBooth != null) { if (bankBooth.interact("Bank")) { while (!bank.isOpen()) sleep(250); bank.depositAll(); } } break; This looks for the bank booth, if it isn’t null and if we actually managed to click on it, we’ll wait til it’s open, then deposit everything except our pickaxe, which is hardcoded so you’ll have to change this to whatever pickaxe you’re using. We’ll automatically detect which pickaxe we’re using in the next tutorial. Conclusion If you managed to get through this whole tutorial without error, congratulations! If not, you can find the full source here. I hope you've learned something from this, and if you didn’t, don’t worry! Programming takes time to learn, look this over a few times, I promise you’ll get it! Thanks for viewing my second tutorial, stay tuned for future tutorials!
    1 point
  7. Updated for OSBot 2's API! Hello future script writers and other OSBot members! This will be my first OSBot script writing tutorial, and it's geared toward beginners with at least some understanding of Java (however, I'll still be covering some fundamentals). So, let us begin. Step I: Getting the IDE An IDE (integrated development environment) is software that makes programming much easier on you, the programmer. There are many Java IDE's to choose from (IntelliJ, NetBeans, Eclipse, and many more), but for this tutorial, we'll be using Eclipse. You can download Eclipse here. Simply choose the Eclipse Standard and download the version for your computer (32 or 64 bit). Once downloaded, use a program to decompress the archive, and move the eclipse folder to wherever you'd like (C:\, your desktop, it honestly doesn't matter). To open Eclipse, go into that folder and open the Eclipse application. Congratulations, your one step closer to making OSBot scripts! Step II: Basic Java Fundamentals Java, like C++, PHP, and Javascript, is a high-level programming language, which simply means it's very readable by humans (we use English while programming in these languages) and therefore much simpler to write code. If you're an absolute beginner, with no background in programming at all, this is going to go by extremely fast, and I will likely skip over some important topics. If you fall into this category, you absolutely NEED to read these tutorials by Oracle. I'm not sure about most of you, but I feel that a great way to learn something is to dive right in, and worry about the little things after you've started to understand the bare essentials. With that in mind, let's take a look at a simple HelloWorld class: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World, I'm learning Java!"); } } Now looking at that might be intimidating if you're new to this, but believe me it's very simple! I'll break down some of the common words used above: public: This could be public, private, protected, or default. It simply states the visibility of this class/method/variable. Public items can be seen from outside of your package, private items can't be seen by other classes in your package, protected items can only be seen by the subclasses of your package, and default can only be seen by your package. class: A class is like a blueprint from which objects are created (Oracle). static: This is a keyword that simply means that only one instance of it will ever exist, even if you recreate it infinitely. void: This is the return type of this method. Void methods return nothing, int methods return integers, String methods return strings, and so on. String[]: This is an array. Arrays are just containers that hold a specific number of items (of one type). For example, this method takes an array of strings as a parameter. System.out.println: This is just a method that prints a message to the console and then prints the newline character. ;: Semi-colons are used at the end of any Java statement (note: conditionals and loops do not count as statements), without them, your compiler will give you errors. { }: These curly braces are used to surround/contain the contents of a class/method/etc. This is all of the Java basics I will teach, simply because there are already many resources out there (see above). Step III: Setting up a Java Project Setting up a Java project in Eclipse for making OSBot scripts is simple, just follow these steps: Step 1: Press File>New Java Project and name your project, then press finish Step 2: Add the OSBot .JAR file to your build path Step 3: Add a class to your new project And you're ready to actually start script writing! Step IV: Creating Your Script Now here's where we actually start making your script! For this example, we'll be creating a very simple mining script that will mine and drop everything once the inventory is full (please note: this example is hardly usable for a script, but it shows the basics. With a real mining script, you'll want to replace the object name with the ID(s) of the rocks, so you don't try mining empty veins). Here's the full source: import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import java.awt.*; @ScriptManifest(author = "You!", info = "I made this script!", name = "Basic Miner", version = 0, logo = "") public class BasicMiner extends Script { private enum State { MINE, DROP }; private State getState() { if (inventory.isFull()) return State.DROP; return State.MINE; } @Override public void onStart() { log("I can't believe script writing is this easy! I love learning!"); } @Override public int onLoop() throws InterruptedException { switch (getState()) { case MINE: if (!myPlayer().isAnimating()) { RS2Object vein = objects.closest("Rocks"); if (vein != null) { vein.interact("Mine"); } } break; case DROP: inventory.dropAll(); break; } return random(200, 300); } @Override public void onExit() { log("Thanks for using this wonderful script!"); } @Override public void onPaint(Graphics2D g) { } } Now most of that will be confusing, but don't worry, I'm here to help you! I'll break this down for you. import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import java.awt.*; These lines import other classes for their use in your script. @ScriptManifest(author = "You!", info = "I made this script!", name = "Basic Miner", version = 0, logo = "") This is the script manifest, which simply tells OSBot your script's author, info, name, and current version (for use in their class loader). public class BasicMiner extends Script { ... } This just defines our class, and extends OSBot's Script class, so we can use all of their fancy API methods. private enum State { MINE, DROP }; private State getState() { if (inventory.isFull()) return State.DROP; return State.MINE; } Here we make an enum (collection of constants) called State which holds two states: mine and drop. Then we have a method that's return type is State (so it returns a State, which we just made). If your inventory is full, this method will return the dropping state, otherwise it will return the mining state. @Override public void onStart() { log("I can't believe script writing is this easy! I love learning!"); } This method is part of OSBot's Script class (which we're extending from). The onStart() method is only called once, and is called at the beginning of the script. This is where you should define some variables that only need defined once (the start time, start experience/level, etc.). @Override public int onLoop() throws InterruptedException { switch (getState()) { case MINE: if (!myPlayer().isAnimating()) { RS2Object vein = objects.closest("Rocks"); if (vein != null) { vein.interact("Mine"); } } break; case DROP: inventory.dropAll(); break; } return random(200, 300); } This is another method from OSBot's Script class (see that @Override?). onLoop() returns an integer, or how many milliseconds to wait before doing onLoop() again. We then use a switch statement to see what we should be doing. If we're to mine, we check if our player is currently animating (mining). If we aren't, we find the closest rock to mine, if that doesn't exist (or is null), we stop right there. But if it isn't null, we interact with the rocks by pressing "Mine". If we're to drop, we simply drop everything in your inventory (you did have your pickaxe equipped, right?). @Override public void onExit() { log("Thanks for using this wonderful script!"); } @Override public void onPaint(Graphics2D g) { } onExit() and onPaint(Graphics g) are two more methods from the Script class. onExit() is called once your script is stopped, and onPaint(Graphics g) is called every time the screen is updated. Step V: Exporting Your Script The final step to this tutorial will be exporting the script we just made so we can actually test it out! Step 1. Right click your project and press Export... Step 2: Choose JAR file Step 3: Choose your OSBot's scripts directory and export it! Well that's all for this tutorial, thanks for reading! You can find Part II here! Also: post suggestions for future tutorials, and I'll definitely consider it!
    1 point
  8. First of all, just wanted to say that this is common sense to people that know Java and I'm writing this quick guide because it was requested. Also, I'm quite sure that OSBot will add proxy feature in the client itself soon. NOTE: There's a small problem. You are setting the proxy to the whole application, so all tabs ran in this client will use the same ip/proxy. Solution: Run multiple clients. NOTE2: People is saying that proxies dont work. You are using dead/slow proxies that you probably found in free lists. You will never be able to bot with that. You need to buy premium lists/private proxies. I turned one of my vps into a proxy (temporarily) so you know that good proxies work well with little latency: -DsocksProxyHost=atscripts.servebeer.com -DsocksProxyPort=69 People saw it worked perfectly so I'm removing it now STEP #1 -Make a new folder -Copy latest osbot client into the new folder -Rename osbot client to "osbot.jar" STEP #2 -Open Notepad -Paste this text on it @echo off java -DsocksProxyHost=PROXY_IP -DsocksProxyPort=PROXY_PORT -jar osbot.jar pause -If you dont want the black cmd window to show, you can use replace "java" with "start javaw" -Replace "PROXY_IP" and "PROXY_PORT" for your respective proxy ip/port. Example: -Save As -> "anyname.bat" (Select all types) -You can simply edit it anytime you want by right-click and chose "Edit" STEP #3 -Double-click the .bat file to open osbot using the proxy. -If you get an error saying "'java' is not a recognized command blablabla", edit your .bat file and do this: -If you get an error saying 'unable to find "osbot.jar" blabla, you probably fucked up renaming osbot.jar and you renamed it to osbot.jar.jar because your OS isnt configured to show all file extensions. FAQyou Q.This guide only shows how to do it on Windows, how can we do it in our operating systems? A.Google. Q.Where can I get Socks5 proxies? A.Google. Q.Why are you so sexy? A.Google.
    1 point
  9. Hey guys ,hopefuly you like my video,i know im new in videos,but i want to start create,i know my accent and pronaunce is so bad because im lithuaninan but its a first video,next one i hope will be better,so follow me on twitch channel,like this video and subscribe my channel thanks for watching http://www.youtube.com/watch?v=FfyYFjGeyC8&feature=youtu.be
    1 point
  10. Pandemics & Gh0sts BarrowsPro Giveaway! Okay so this is going to be a giveaway to Pandemics BarrowsPro for 2 weeks. If page gets to 10 pages, I'll pick 1 person randomly to receive the script for 2 weeks Post a funny gif or a funny picture to be entered in this contest. Good luck to all -Pandemic & Gh0st
    1 point
  11. i made sure not to make the cut
    1 point
  12. thanks for the reminder. check your skype again
    1 point
  13. Yeah, this has been answered and is going nowhere as of now.. Archived.
    1 point
  14. Client settings, go in to Advanced and check 'Interfaces' Then hover over the interface you want to interact with. The color of the box will co-respond to two numbers that show up on the side of your screen, they are parent, child. In order.
    1 point
  15. you can run osbot through your IDE to pick up output messages resulting in this type of result but that is a nice batch file as you don't need to update your dependance's when you want to run it
    1 point
  16. Sickest song! Thanks for the post!
    1 point
  17. 1 point
  18. Your script probably has a custom setRunning method.
    1 point
  19. helps the community a bunch, 10/10 would bang.
    1 point
  20. Well I PM'd Maldesto and he told me I couldn't make an auth system similar to Alek's because he works for "free". I just want to help out future script writers by having this clearly stated in the rules instead of saying could happen.
    1 point
  21. Dear community, I want to give you an idea where OSBot 2 is at. First of all I want to let you know that OSBot 2 is rewritten from the ground up to tackle some problems that you as a community pointed out. Things like CPU usage increasing over time in a scale of hours, something that never was a huge problem to most users but could be annoying for some. Besides that, increased overall performance is something everyone always likes to see. By writing an entire new core and taking time to do so, the client will score better at those points. At the moment, there is an abstract core written which is extendable for the most part to write implementations of other server revisions, such as RS3. Whether we will do so or not doesn't matter, it will be reusable. The entire GUI of the current OSBot was written using Swing. For OSBot 2 we are using JavaFX. JavaFX might not be as developed in certain areas as Swing, however those area's won't affect us. Besides that, JavaFX performs faster and gives more reliable output when it comes to exceptions. Not to mention, I personally and many others agree, I think that the look and feel of JavaFX is far better and promising than Swing. At the moment, a lot of the main GUI features are done. The client loads the applet, injects the client, hacks the canvas and such. So from here on, our first focus will be towards designing and organizing the new API. The API will have the same features as seen in the current OSBot and those features will be ported over. This is not a very hard job, most of it will just be refactoring. Other new features will remain secret and will be revealed as progress proceeds. Besides the API, which its functions will not have to be rewritten, we are planning and thinking about a second scripting engine. The current scripting engine is completely sequential in a blocking fashion. The new scripting engine, don't worry the old one won't disappear, we want to give a fully event driven asynchronous environment where you will dispatch tasks based on events and have control over the queue by using policies for tasks. We are looking forward writing this as Laz and I love writing new and fancy stuff. There are many other things that need to be done for OSBot 2, but the above is the majority. We can't give you an ETA, we don't want to stress any deadlines and instead focus on its quality. Laz has done a great job on it so far and now I'm joining him in this battle progress will speed up. I hope you had a fun read, Sincerely, OSBot.org
    1 point
  22. 1 point
×
×
  • Create New...