Leaderboard
Popular Content
Showing content with the highest reputation on 04/16/18 in Posts
-
8 points
-
6 points
-
We're waiting on ProjectPact to both actually upload the script, and correctly package his script so it can actually compile on the SDN.4 points
-
I have a guide relating to configs & widgets if you would like to take a look at it3 points
-
So i just got 98 fletching today! I botted 1-98 using perfect fletcher. Haven't really been suiciding it, longest i did was maybe 7 hrs in a day. This is gonna be my second 99 completely botted on the account (if i dont get banned right before 99 lul). Also going for a third 99 as we speak too but im gonna keep that one a secret till im closer. (its only 83 outta 99 atm for other skill). Kinda feel like im getting lucky or is fletching still that easy to bot to 99? o well wish me luck and hopefully i can keep getting more 99s or give up after a decent amount and sell or actually play the account2 points
-
2 points
-
Omfg I forgot the Try delet this. ima kill myself Sorry everyone. AND I DIDNT EVEN IMPORT import javax.imageio.ImageIO; import java.io.IOException; import java.awt.image.BufferedImage; Learn from my pain children of the future2 points
-
2 points
-
" My girlfriend and I have been together for almost 3 years and she means the absolute world to me " Give it a few more years ^^ Anyway. Good luck on your adventure man! May the banhammer miss you!2 points
-
Please make sure to select all needed settings. If the GUI turns up weird, first minimize it once.2 points
-
Did you possibly forget to call onStart on your RestlessGhost instance? It wont be called automatically. Also be mindful with initializing it before your Scripts onStart, as accessing hooks before onStart is called will cause errors. If you share the exact error trace tho, we can help point out exactly where the problem is Nothing wrong with extending MethodProvider; just remember to exchange contexts.2 points
-
2 points
-
PPOSB - Bank Organizer More than 100+ categories, and thousands of items, to sort for you! All categories and tabs are rearrangeable! PURCHASE HERE! https://osbot.org/forum/store/product/681-bank-organizer/ --------------------------------------------------------------- JOIN THE DISCORD CHAT FOR QUESTIONS/ SUPPORT/ CHATTING! --------------------------------------------------------------- MAKE SURE YOU ARE IN FIXED MODE BEFORE RUNNING THE SCRIPT! RESIZABLE MODE IS NOT SUPPORTED! ALSO PLEASE DISABLE PLACE HOLDERS! New "Advanced Layout Manager" will allow you to add/edit/remove or rearrange items with 100% Customization "Inspect Category" will display the items corresponding with that category Video example of the bank organizer handling a lot of random items (example) HAVE A LAYOUT YOU WOULD LIKE TO SHARE? Please post the layout in the comments below, along with some pictures of your bank, to be added to the list below! The Bank Organizer currently supports over 6,000 Old School RuneScape items. Any items missing will need to be added manually in the GUI. Make sure to save your layouts so you may reuse them over and over again. Check out some of my other scripts!1 point
-
Molly's Thiever This script is designed to quickly and efficiently level your thieving! Check out the features below. Buy HERE Features: - Capable of 200k+ per hour and 30k+ exp/ph on mid-level thieving accounts. - Quickly reaches 38 thieving to get started on those master farmers for ranarr and snap seeds! - Fixes itself if stuck. - Hopping from bot-worlds. - Stun handling so the bot doesn't just continually spam click the npc. - Drops bad seeds if inventory is full at master farmers. - Eats any food at the hp of your choosing. Supports: -Lumbridge men -Varrock tea -Ardougne cake -Ardougne silk -Ardougne fur -Kourend Fruit Stalls -Ardougne/Draynor master farmer -Ardougne/Varrock/Falador guards -Ardougne knight -Ardougne paladin -Ardougne hero -Blackjacking bandits as well as Menaphite thugs, this has limitations, click the spoiler below to see them Setup: Select your option from the drop down menu, it will tell you the location where the target is located. Fill out the gui and hit start. Simple setup! Proggies: Proggy from an acc started at 38 theiving:1 point
-
Sebastian's GUI Tutorial Intro Hi, and welcome to my guide on how to make a GUI. I want to make this thread because i couldn't find a tutorial on GUI's on the OSBot forums. Today we are going to make a GUI for a woodcutting script. Keep in mind that i only use woodcutting as an example. You can easily replace woodcutting with every other thing. In this tutorial we will use Java Swing. This tutorial is "noob" friendly but i assume that you know a little bit about Osbot scripting. If you don't, please follow Apae's tutorial on how to make your first script We are creating a GUI with comboBox and a start button. NOTE: English is not my first language so bear with me if i use any spelling mistakes in this tutorial. General information GUI stands for "Graphical User Interface". This is a box that will appear when you start your script. The user of your script can apply settings for your bot. What do we need? Basic Java knowledge Eclipse or IntelliJ Step 1: Creating the classes The first thing we need to do is creating the classes. I decided to make 2 classes: main gui First we create the gui class. public class gui { public void run() { // Enter new code } } Now we want to connect the gui class with the main class. We can do that by typing "main main" into the public void run(). Example: public class gui { public void run(main main) { // Enter new code } } To tell that the gui exists we need to write some code in the main class: private gui gui = new gui(); Now the gui class is connected with the main class. We will come back to this later on in this tutorial. To run the gui class on start we need to add "gui.run(this);" into our onStart() method in the main class. Example: public void onStart() { log("Starting script.."); gui.run(this); } Alright. We are done with creating the classes. Let's continue to the next step! Step 2: Creating the jFrame If you start your script now, nothing will appear. That's because we didn't make the GUI yet. We've only created the files to work with. So, the first thing we need to do is creating the jFrame. Switch back to your gui class and paste the following into the "Public void run(main main)": JFrame jFrame = new JFrame("OSBOT Tutorial GUI"); Cool! We've created our first jFrame! But.. We're not done yet. If you start your script now nothing will appear. That's because we haven't set the size and we didn't make it visible yet. That's what we're going to do now. So, under the "JFrame jFrame = new JFrame("OSBOT Tutorial GUI");" we need to paste the following: jFrame.setSize(300, 500); jFrame.setResizable(false); Alright, so now we've added the size and we've set the setResizable to false because we don't want users to resize the gui. The gui is still not visible yet but we're getting somewhere. Let's move on to the next step. Step 3: Creating a JPanel To make the gui a bit more beautiful we are going to add a panel. We will call this panel the "settings" panel. Inside this panel all our settings will be displayed. Paste the following code into the gui run void: JPanel settingsPanel = new JPanel(); TitledBorder leftBorder = BorderFactory.createTitledBorder("Settings"); leftBorder.setTitleJustification(TitledBorder.LEFT); settingsPanel.setBorder(leftBorder); settingsPanel.setLayout(null); settingsPanel.setBounds(5, 200, 280, 180); jFrame.add(settingsPanel); This will add a panel to our jFrame. This seems like a lot of code so let me break it down to you. JPanel settingsPanel = new JPanel(); This will create the settingsPanel. TitledBorder leftBorder = BorderFactory.createTitledBorder("Settings"); This creates a titled border with the word "Settings" in it. jFrame.add(settingsPanel); This will add the settingsPanel to our jFrame. Alright, your code should look like this: public class gui { public void run(main main) { JFrame jFrame = new JFrame("OSBOT GUI Tutorial"); jFrame.setSize(300, 500); jFrame.setResizable(false); JPanel settingsPanel = new JPanel(); TitledBorder leftBorder = BorderFactory.createTitledBorder("Settings"); leftBorder.setTitleJustification(TitledBorder.LEFT); settingsPanel.setBorder(leftBorder); settingsPanel.setLayout(null); settingsPanel.setBounds(5, 200, 280, 180); jFrame.add(settingsPanel); } } We also need to create a start panel. This is only to make the gui a bit more beautiful. JPanel startPanel = new JPanel(); startPanel.setLayout(null); startPanel.setBounds(5, 350, 70, 20); jFrame.add(startPanel); Now it's time to get to the next step; adding the comboBox. Step 3: Adding the label & combobox First, we need to create a label. A label can be made like this: JLabel treeSelection = new JLabel("Select a Tree:"); Second, we need to set some bounds and we need to add the Label to our settingsPanel. treeSelection.setBounds(10, 40, 95, 20); settingsPanel.add(treeSelection); Alright. We've added our first label into our settingsPanel! Now we need to create the comboBox: JComboBox<String> treeList = new JComboBox<String>(new String[] { "None", "Tree", "Oak", "Willow", "Yew", "Magic tree"}); Next, open your main class and create a public string called tree: public String tree = ""; Once you've done that you need to go back to your gui class. To check what tree you have selected we need to add an eventlistener: treeList.addActionListener(e -> main.tree = (String) treeList.getSelectedItem()); This will set the public String tree in your main class to the selected tree. For example: If i selected Oak, the script will make the public String tree like this: public String tree = "Oak"; So now the script knows what tree you'd like to chop :). Alright, next thing we need to do is setting the bounds and add it to our settingsPanel. treeList.setBounds(160, 40, 110, 20); settingsPanel.add(treeList); Ok. So far we've created a jFrame, added the settings & start panel, added a Label and added a working comboBox. Your gui class should look like this: public class gui { public void run(main main) { JFrame jFrame = new JFrame("OSBOT GUI Tutorial"); jFrame.setSize(300, 500); jFrame.setResizable(false); JPanel settingsPanel = new JPanel(); TitledBorder leftBorder = BorderFactory.createTitledBorder("Settings"); leftBorder.setTitleJustification(TitledBorder.LEFT); settingsPanel.setBorder(leftBorder); settingsPanel.setLayout(null); settingsPanel.setBounds(5, 200, 280, 180); jFrame.add(settingsPanel); JPanel startPanel = new JPanel(); startPanel.setLayout(null); startPanel.setBounds(5, 350, 70, 20); jFrame.add(startPanel); JLabel treeSelection = new JLabel("Select a Tree:"); treeSelection.setBounds(10, 40, 95, 20); settingsPanel.add(treeSelection); JComboBox<String> treeList = new JComboBox<String>(new String[] { "None", "Tree", "Oak", "Willow", "Yew", "Magic tree"}); treeList.addActionListener(e -> main.tree = (String) treeList.getSelectedItem()); treeList.setBounds(160, 40, 110, 20); settingsPanel.add(treeList); } } Step 4: Adding the start button We're almost done! The only thing we still need to do is: Adding the start button Making the start button work with an actionlistener First, in our main class we need to add a lock. This will prevent the script from starting when the gui is still open. Go to your main class and insert the following code: Object lock = new Object(); Because we call the gui class on start, this will lock the script from running. Next we need to create a button: JButton startButton = new JButton("Start"); Second, create an actionlistener so when the button is pressed, the script will start. startButton.addActionListener(e -> { synchronized (main.lock) { main.lock.notify(); } jFrame.setVisible(false); }); This will unlock the script and the jFrame will dissapear. In other words: your script will start. Third, we need to add some bounds and make the button visible: startButton.setBounds(5, 390, 70, 20); startPanel.add(startButton); And last but not least, set the jFrame to visible otherwise you won't see anything when you start your script. jFrame.setVisible(true); Alright! We are done! Go export your script and check it out. The gui should look like this: Whole GUI Class: public class gui { public void run(main main) { JFrame jFrame = new JFrame("OSBOT GUI Tutorial"); jFrame.setSize(300, 500); jFrame.setResizable(false); JPanel settingsPanel = new JPanel(); TitledBorder leftBorder = BorderFactory.createTitledBorder("Settings"); leftBorder.setTitleJustification(TitledBorder.LEFT); settingsPanel.setBorder(leftBorder); settingsPanel.setLayout(null); settingsPanel.setBounds(5, 200, 280, 180); jFrame.add(settingsPanel); JPanel startPanel = new JPanel(); startPanel.setLayout(null); startPanel.setBounds(5, 350, 70, 20); jFrame.add(startPanel); JLabel treeSelection = new JLabel("Select a Tree:"); treeSelection.setBounds(10, 40, 95, 20); settingsPanel.add(treeSelection); JComboBox<String> treeList = new JComboBox<String>(new String[] { "None", "Tree", "Oak", "Willow", "Yew", "Magic tree"}); treeList.addActionListener(e -> main.tree = (String) treeList.getSelectedItem()); treeList.setBounds(160, 40, 110, 20); settingsPanel.add(treeList); JButton startButton = new JButton("Start"); startButton.addActionListener(e -> { synchronized (main.lock) { main.lock.notify(); } jFrame.setVisible(false); }); startButton.setBounds(5, 390, 70, 20); startPanel.add(startButton); jFrame.setVisible(true); } } The end of this tutorial I hope you liked my tutorial on how to make a simple GUI for your script. Go play around with it and become better with Java Swing. If you have any questions please ask.1 point
-
1 point
-
So i was in need of a gold site that required no id (as im not comfortable with sending personal documents over the internet) i found RSGOLDFAST.com i sent them £104 for something like 150m i was then told i had to provide ID even though they stated i didn't need it before purchasing, so i got in contact with live chat stating that i dont feel comfortable and will not be sending them any official documents, they said they will issue me a refund within 12 hours its been 3 days. So i contacted live chat again and they said they will refund me within 24 hours this time as there was a problem with their accountant or whatever, so i was like cool ill see how it goes, 7 days later ive still not received any money so i created a pay pal dispute, 5 mins after i opend a dispute i got an email from the website saying they will deliver me the gold / give me a refund if i closed the dispute. Now if i close the dispute i would be unable to open another one so in turn if they didnt refund me they pretty much could get away with it/ have no need to deliver me the gold, but should i close it? im currently thinking not and letting paypal deal with it but that costs nearly 3 weeks to retrieve the funds. yet these people are saying close it now and we will refund you / deliver the gold, i wouldnt be so suspicious in the first place if they didnt require ID from the get go but saying they do after ive purchased it and now saying they dont require it if i close the dispute is ringing major alarm bells. So, whats your guy's take on this? any advice? im all ears. Thanks.1 point
-
Reaches 99 fletching 2 hours later, "Your account has been disabled. Please check your message-centre for details".1 point
-
1 point
-
if you do arrow tips bolt tips there is a low chance of getting ban (ez switch up the location that you bot or do 1 h -2 h of fletch while level up other skills in the day1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
Nvm eagle, got it fixed I messed up with the buttler mechanics. Thanks for the support and fast responses!!! +1 for you1 point
-
1 point
-
Please make sure you're starting it exactly as the thread states, it'll otherwise cause issues. Are you running on mirror mode?1 point
-
1 point
-
Hey guys, i've used this bot for like 7 months, i've been banned several times like all of you, sometimes for bot, sometimes for rwt. This time, i'm not beeing banned for bot, just for rwt, i can't take out even 2m from an acc because in the next 2-3 days jagex ban me for rwt, so i was wondering if you can give me some recommendations.1 point
-
1 point
-
1 point
-
You won't be able to click anything while the Resizable mode solver is running. OSBot does not support running in resizable mode; but if this is your goal you'll have to use the norandoms CLI argument to disable the resizable mode solver first. Then you can start controlling the mouse; tho doing this by absolute coordinates in resizable mode doesn't sound very productive1 point
-
1 point
-
1 point
-
I'm not very photogenic. Also, the vast majority of my pictures include a ginger dutchie and it would trigger @FrostBug1 point
-
Got one of his free giveaway proxys, connection seems stable and is running nicely.1 point
-
Have been fortunate enough to get one of the proxys and it is working and has no errors.1 point
-
1 point
-
As of April 15th 2018: Script works with Willow logs, no bugs that Iv'e seen. Didn't get banned on start, I want a refund, false advertising.1 point
-
1 point
-
1 point
-
Lots of negative comments... Don't listen to them, still lots of money still to be made gold farming in 2018 I admire you purpose and would like to offer you a free proxy which you could use to setup another bot Hit me up and I'll set one up for you1 point
-
You guys need proxies because you have flagged IPs. A suggestion for shift dropping would be randomizing how you click instead of going right to left or up and down like it needs to skip a few here and there.1 point
-
If the warning goes away before the "Do not show this" box shows up, world hop to make the warning appear again. after 3-4 times it should ask you if you dont want to see it again.1 point
-
Just a few things. Maybe nice to add to progressive mode explanation: You need aprox 250 planks, 400 iron nials, 1800 oak planks, 85 house tabs and i believe 12-15 rings of dueling for lvl 1-50 These are aprox numbers, you'll make it with these supplies with a lil left over. Also noticed that progress mode doesnt use keybindings like normal mode does. All in all, nice script ^^1 point
-
1 point
-
[Tutorial] How to pass data from you GUI to your script Feel free to make suggestions / ask questions. 1. Create a DATA class - This class is going to hold all the data and variables modifiable by the end user. Example variables: String monsterName; String eatingThreshold; boolean useAntipoison; Position monsterCoordinates; Roles: - The variables need to be usable by our script (a different class), in order to enable access we can provide getter methods (safe) or just change the visibility of the variables (lazy). - The variables need to be modifiable by our GUI (again, a different class), in order to enable modification we can provide setter methods (safe) or just change the visibility of the variables (lazy). Example code: // This is a simple example data class for a fighter script. public class FighterData { // I'm not using getters / setters here to reduce verbosity, you should though. public String monsterName; public int eatThreshold; public boolean logWhenDied; public FighterData(String monsterName, int eatThreshold, boolean logWhenDied) { this.monsterName = monsterName; this.eatThreshold = eatThreshold; this.logWhenDied = logWhenDied; } } 2. Add an instance of your DATA class to your script @ScriptManifest(author = "Me", info = "", logo = "", name = "Fighter Script", version = 0) public class MyScript extends Script { private FighterData data = new FighterData("Goblin", 20, true); @Override public int onLoop() throws InterruptedException { if (myPlayer().getHealth() < data.eatThreshold) { // Eat. } return 200; } } So far all we have done is take the global variables from your script class (traditionally speaking) and moved them to their own separate class. QUESTION: Can't I just make my global script variables public (or provide getters and setter to them) and pass my script instance to the GUI? ANSWER: You could. Here are some arguments for using a separate class: - It will make your life much easier when you decide to implement importation and exportation of the data. - You can store multiple sets of data for later use easily and cleanly (for data-based task scheduling for example). - By encapsulating the data you can easily and without too much code, provide preset values for that data. Compare: public static final FighterData GOBLIN_SUICIDER = new FighterData("Goblin", -1, false); public static final FighterData DRUID_TANK = new FighterData("Druid", 20, true); public static final FighterData SPIDER_BOSS = new FighterData("Spider", 5, true); public static final FighterData ROCK_CRAB_SENSEI = new FighterData("Rock Crab", 6, true); public static final FighterData UNICORN_PRO = new FighterData("Unicorn", 9, true); private FighterData profile = GOBLIN_SUICIDER; vs: private String monsterName; private int eatThreshold; private boolean logWhenDied; public void build(String preset) { // We are just typing our data class's constructor code over and over again... switch (preset) { case "GOBLIN_SUICIDER": monsterName = "Goblin" eatThreshold = -1; logWhenDied = false; break; case "DRUID_TANK": monsterName = "Druid" eatThreshold = 20; logWhenDied = true; break; case "SPIDER_BOSS": monsterName = "Spider" eatThreshold = 5; logWhenDied = true; break; } case "ROCK_CRAB_SENSEI": monsterName = "Rock Crab" eatThreshold = 6; logWhenDied = true; break; } case "UNICORN_PRO": monsterName = "Unicorn" eatThreshold = 9; logWhenDied = true; break; } } build("GOBLIN_SUICIDER"); - Etcetera 3. Time for the GUI / VIEW code Current implementation: DATA OBJECT -> SCRIPT Desired implementation: GUI -> DATA OBJECT -> SCRIPT (The GUI and the SCRIPT share the DATA OBJECT). QUESTION: How do we share the data object between the SCRIPT class and the GUI class? ANSWER: Just pass a reference to the data object instance to the GUI (via a constructor for example). SCRIPT: package tutorial; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; @ScriptManifest(author = "Me", info = "", logo = "", name = "Fighter Script", version = 0) public class MyScripty extends Script { private FighterData data = new FighterData("Goblin", 20, true); private FighterGUI gui = new FighterGUI(data); @Override public void onStart() throws InterruptedException { super.onStart(); gui.setVisible(true); //... } private NPC target = null; private boolean died = false; @Override public int onLoop() throws InterruptedException { if (myPlayer().getHealth() < data.eatThreshold) { // Eat. } if (died && data.logWhenDied) { // Log out. } else { target = getNpcs().closest(data.monsterName); // Attack. } return 200; } } GUI: import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingUtilities; public class FighterGUI extends JFrame { private static final long serialVersionUID = -1969829387256339229 L; private FighterData data; public FighterGUI(FighterData model) { super(); this.data = model; SwingUtilities.invokeLater(new Runnable() { public void run() { setTitle("Fighter Script"); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setResizable(false); populate(); pack(); setLocationRelativeTo(null); } }); } private void populate() { JPanel cp = new JPanel(); setContentPane(cp); JTextField name = new JTextField("monster name"); cp.add(name); JButton nameok = new JButton("ok"); nameok.addActionListener((al) -> data.monsterName = name.getText()); cp.add(nameok); JTextField eat = new JTextField("eat threshold"); cp.add(eat); JButton eatok = new JButton("ok"); nameok.addActionListener((al) -> data.eatThreshold = Integer.parseInt(eat.getText())); // PLEASE DO NOT FORGET TO ADD INTEGER PARSING ERROR HANDLING HERE! cp.add(eatok); JCheckBox log = new JCheckBox("log after death"); log.addActionListener((al) -> data.logWhenDied = log.isSelected()); cp.add(log); } }1 point