Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/21/13 in Posts

  1. 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
  2. For some reason, OSBot doesn't have this already. So here: public boolean selectMenuOption(String action, String noun) throws InterruptedException { if (!client.isMenuOpen()) return false; boolean found = false; int index = 0; List<Option> menu = client.getMenu(); for (; index < menu.size(); index++) { if (menu.get(index).action.equals(action) && menu.get(index).noun.contains(noun)) { found = true; break; } } if (found) { int x = client.getMenuX(); int y = client.getMenuY() + 21 + index * 14; return client.moveMouseTo(new RectangleDestination(x, y, client.getMenuWidth(), 10), false, true, false); } return found; } Clicks a menu option from a currently visible menu.
    1 point
  3. Step 1. Go to http://www.fakemailgenerator.com/ Step 2. Go to https://collaboration.skype.com/promotion/?cm_mmc=AFCJ%7C1250_B1-_-11129583-1225267 (This is where you put the fake email) Step 3. Put in your fake email Step 4. Click send. Step 5. Go to the fake email website and you will have received the email. Step 6. Go to this link https://secure.skype.com/portal/voucher/redeem Step 7. Redeem it and then wait 15 minutes! BOOM FREE SKYPE 12 MONTH PREMIUM CODES, FAST AND EASY
    1 point
  4. No I wouldn't do anything like that. He is my best friend though and I know that he wouldn't want that for me. He still cares about OSBot.
    1 point
  5. DO U WANT THE MASTER QUEEF D IN YOUR A?
    1 point
  6. Looks pretty cool, I prefer the older style graphics though :p
    1 point
  7. oh cuz Nicolas cage... yeah not funny.
    1 point
  8. ouch i'm spending 2-3 mixtapes on this so it's going to be pretty beast (COUNTS TIME IN MIXTAPE FORMAT!!!)
    1 point
  9. I did it to see if he would do it to other osbot members and he was seriously about to do it to me thats sad af..... Beastly just wanted your D and your C (cash)
    1 point
  10. lol ... you knew it was himm the whole time, you sickin me.... wow even lower levels of disgust.
    1 point
  11. old http://osbot.org/forum/topic/29434-free-skype-premium-method/?p=329038
    1 point
  12. go to al karid scimitar shop...
    1 point
  13. You do realise everything he's sold to anyone on here is going to be "Charged-back" through his fake Credit cards. Gf @Swizzbeat Gf @Maldesto
    1 point
  14. In the long run MC has benefited the forums greatly.
    1 point
  15. No talent? Modeling is something that takes so much time. I am learning C4D, why hate on other peoples work? no one is better than another person here. The animation may be too slow because your computer is slow. it goes fast for me, and can you point me to a sig like this then so I can see? My computer isn't slow. OC'd to 4.10ghz But I do apologize, I posted that on my phone on my school's WiFi which is slow... \: I have used C4D and you are not "modeling" you are using MoText which does the modeling for you, all you have to do is put in a font and choose mats that you want on it, and then copy and paste the text behind the text you just made and re-color it. Maybe add in a lightbox, and boom there ya go. That work is done. Then for the animating that's easy as well >.< I did give you constructive criticism, I said the animation was slow(Again, sorry) and I told you the J looks terrible with the animation. I am in no way bashing on anyone's work, I say the things I do to motivate people to get better. MoText was cool back in 09, it's almost 2014. You're just a tad bit behind. PS: Reflex, I am in no way arguing with anyone, and neither is anyone else. You cannot give me a "warning" for giving him my personal opinion. If he didn't want my opinion he shouldn't have posted it.
    1 point
  16. My Singature Showcase Some CnC is always Welcome Here I go by a few diffrent names when gfxing, usually Player_ or Hitagi I have been gfxing for a few years now, on and off. Starts From Latest to Oldest The Showcase Free Style with a Freind Simple Request I did. 8Bit Mario - Gif Colab with a good freind Xares Hope You Like my Showcase Make sure to leave a comment and or criticize
    1 point
×
×
  • Create New...