Jump to content
Frequently Asked Questions
  • Are you not able to open the client? Try following our getting started guide
  • Still not working? Try downloading and running JarFix
  • Help! My bot doesn't do anything! Enable fresh start in client settings and restart the client
  • How to purchase with PayPal/OSRS/Crypto gold? You can purchase vouchers from other users
  • Defiled

    Banned
    • Posts

      651
    • Joined

    • Last visited

    • Days Won

      16

    Everything posted by Defiled

    1. Get a raspberry pi device, get an internet connection from an ISP.. then just use it as SOCKS5 using the Putty tunnels functions (cost: ~$40/mo)... you can split the raspberry pi software into many tiny vpses and have each vps use a different connection/ip that you bought off your ISP.. So .. 1 rasp = 5 - 7 proxies for about ~$200 per month
    2. Even residential proxies can be flagged, that's why I suggest making your own resis or buying from a not so well known provider
    3. That's why you should go for Residential Proxies, they are pricy but reliable.
    4. What do you expect? First its a free script, second botting is a bannable offence.. if you don't wanna get banned, don't bot... Also if its a new acc, expect fast bans when botting high-ban rate stuff like woodcutting
    5. Good luck on the Script sales! and welcome back to putting scripts out there! Scripters are needed these days!
    6. y u leave 😢 You will be missed Yeeter! Truly missed! Massively missed! Good luck on your future projects and plans! pst: you're kidding about DB3 right? but before you go... what is a DB3?
    7. Defiled

      YEETSpammer

      Nice Gj on completing it!
    8. How are they unclear? Please point the "unclear" parts so I can modify them Edit: I rewrote some of the text below to make it more clearer!
    9. Hello Everyone, This thread has been suggested by @Infidel , due to the high amount of people experiencing this problem when first starting their botting journey. I've listed 2 methods you could attempt, so let's get started! 1) Client won't open when DBLauncher.jar is clicked. This may be due to several reasons but most commonly it's because your computer may lack Java 8 OR It has it but your computer also has other versions installed on it and when you try to load any Java applications, the higher version (Which would be probably set to default) loads the JAR file instead of Java 8. So.. what should you do? 🤔🤔🤔 First let's check the Java version installed and used on your Computer/PC! You can do that by: 1) Opening the Command Prompt (CMD) -> Search CMD in the start menu OR Terminal for Mac. 2) Type in java -version and you'll be faced with the following details: If the java version doesn't output "1.8" then you could be either of these situations: 1) You have Java 8 Installed but the system is using another version. 2) You do not have Java 8 Installed. Before continuing if you are sure you do not have Java 8 installed/downloaded: click here to download JDK/JRE 8 . To check whether you have Java 8 Installed or not: Windows: head over to your Java folder located in your Program Files / Program Files (64bit) You'll see all Java versions that are installed on your PC. Mac OS: (Paste this in Terminal) which java It'll output the current Java version installed. Now we will set the Environmental Path (To tell your system to use Java 8 ) Get the Path To Your Java Installation: To fetch the Java Path: Mac OS: (Terminal) which java Windows OS: (CMD) where java This gets the path of every Java Installation you have! Copy the Java 8 Path Setting the Environmental Path: (Assigning Java 8 as the default Java version) for Mac OS: Run the following command in your Terminal: (Make sure to change the Java version "Orange number" to the version you found in your Java folder) % /usr/libexec/java_home -v 1.8.0_73 --exec javac -version for Windows: Run the following command in your Command Prompt (CMD): (Change the path (blue text) to the path of your Java Installation) setx -m JAVA_HOME "C:\ProgramFiles\Java\jdk1.8.0_XX" Testing: Restart CMD/Terminal and type in java -version If it displays 1.8, then everything worked great! If you guys have any questions, please do leave a comment and I'll answer them to the best of my knowledge! Have a good one guys!
    10. 1. Probably a flagged IP. 2. Probably an overused, low quality script OR flagged account. if you have more questions contact me on discord, ill be happy to help! Defiledx1#0642
    11. To my defense, I had an exam.. and when I saw this topic on the "Recent Section".. I thought it was a recent update... never took a look at the date of release.. ugh.. and there my stupidity hits again 😕
    12. Looks spectacular! Can't wait for this! Awesome job guys!
    13. In summary, don't have anything on a bot that you're not willing to lose.
    14. Q1: It depends where you're going to be selling the gold ofcourse, and what your expenses will be (P2P Botting vs F2P Botting, VPS Servers, Proxies, Private Scripts, etc etc..) If you're going to be selling the gold on popular websites instantly, a mill is $0.48 at today's price. Obviously selling on the forums will have its risk but you'll be getting a significant increase in profits, I suggest selling for BTC. Q2: Regarding How many hours of botting, that's up for trial and error! Be sure to use Dreambot's Break System, and try not to bot during Jagex Work Hours! I've made a full guide on botting: I hope you succeed in whatever you're striving for! If you ever need assistance, be sure to PM me or contact me via Discord Defiledx1#0642
    15. Most SOCKS5 Proxies available online, especially Datacenter Proxies are flagged. Making your own would be the best option!
    16. My bad, now that i see it.. you have to put the GEBank into an Area class call. ex. Area ge = new Area(BankLocation.GEBank); then call it in the walk method. You can also just use getArea for that. Ill edit your feedback into the thread as soon as i reach my PC.
    17. Hi, No, because getRandomTile returns random coords from the original coordinates. So OriginalCoords.getRandomTile(). You can also calculate the center tile by adding .getCenter() .. But if you wanted to get a certain radius of the area to perhaps detect if the player is in the area.. you can do getArea() in an if statement.
    18. Thank you for the feedback! I did infact make a mistake with switching a boolean, which is an idiotic mistake I confess. Yes, if/else statements would be more suitable for state declaration. I have written this guide in a bit of hurry, and I apologize for the mistake, I'll be sure to fix the code in the thread as soon as I reach my PC. Thanks again!
    19. This tutorial shows people how to use the methods declared in the GE API, and have most the methods they need ready and explained. API = building blocks, Java = Equipment, This tutorial = the actual construction
    20. Hello Everyone! This is a simple but yet useful guide to Buying & Selling on the Grand Exchange! Why would you want to Buy & Sell on the Grand Exchange? You could add this functionality to your scripts allowing them to buy resources & sell end-products. More Automation = More Laziness on your end! __________ Let's start with the methods that are of use to us. getGrandExchange() - Gets the GrandExchange File to allow you to use its methods in your script. getArea(BankLocation.GRANDEXCHANGE).contains(getLocalPlayer()) - Detects if the bot/player is in a certain radius of the GrandExchange. getGrandExchange().open() - Opens the GrandExchange interface getGrandExchange().openBuyScreen(int slot) - Opens Buy slot (Slot has to return slotContainsItem(int slot) == false ) getGrandExchange().getFirstOpenSlot() - Checks for an open slot, and returns the first one it sees (Integer) getGrandExchange().getFirstOpenSlot() == -1 - Can be used in an if statement/switch to detect if there are no open slots getGrandExchange().isBuyOpen() - A simple boolean that detects if the buy screen is open. getGrandExchange().isSellOpen() - A simple boolean that detects if the sell screen is open. getGrandExchange().buy(String itemName, int Quantity, int Price) - Does the whole buying process when getGrandExchange().isBuyOpen() == true getGrandExchange().sell(String itemName, int Quantity, int Price) - Does the whole selling process when getGrandExchange().isSellOpen() == true getGrandExchange().cancelOffer(int slot) - If slot contains item, then cancel the offer. getGrandExchange().cancelAll() - Newly added method by @Nuclear Nezz's DB Update which allows for cancellation of all offers. Example Case: If your bot is currently doing a task, and you want it to go sell the end products of the task after reaching a certain threshold. - Add this when the task script is checking the inventory and/or bank: (explanation in code) Inventory: if(getInventory().count(String itemName or int itemNumber) == int itemQuantityWanted) { //Check if the task item has reached its threshold, if true it executes the startGE(); method startGE(); //Don't worry, we're going to be creating this method below! - Starts the GE Buying/Selling process } Bank: if(getBank().contains(String itemName or int itemNumber, int Quantity)) { //Check if the task item has reached its threshold, if true it executes the startGE(); method startGE(); //Don't worry, we're going to be creating this method below! - Starts the GE Buying/Selling process } Making the startGE() method requires us to make a couple of methods to accomplish what we need (You can stuff it all in one method or you can do it in Nodes): We need these variables & methods: Variables: BankLocation GEBank = BankLocation.GRAND_EXCHANGE; //Assigns our GEBank variable the GE Location private static final itemToSell = 0000; //Item ID //OR private static final itemToBuy = 0000; //Item ID private static final COINS = 995; //gets COINS Item ID int state; //We're going to be using this to set the state to Buying or Selling. int currentOpenBuySlot; //This variable will contain the slot that will be opened int currentOpenSellSlot; //This variable will contain the slot that will be opened Now some methods: Methods: private void walkToGE() { //Check if the player is at the GE (if false - walks there) if(!GEBank.getArea(5).contains(getLocalPlayer()) { // Checks if the player is in GE spreading 5 tiles getWalking().walk(GEBank.getCenter()); //walks to the center point of the GEBank //OR getWalking().walk(GEBank.getRandomTile()); //Randomizes point of arrival at the GEBank } private void fetchFunds() { //Only regarding the Buying state if(!getInventory().contains(COINS)) { //checks if the inventory contains COINS getBank().openClosest(); //Opens closest bank, you can set it to open(GEBank) if you want. getBank().withdrawAll(COINS); // withdraws all coins, you can set it to withdraw(COINS, int quantity) if you want. getBank().close(); //closes bank interface } } private void fetchItemsToSell() { if(!getInventory().count(itemToSell) == int itemQuantity) { getBank().openClosest(); //Opens closest bank, you can set it to open(GEBank) if you want. getBank().withdraw(itemToSell, itemQuantity); getBank().close(); //closes bank interface } } private void openBuyScreen() { if(!getGrandExchange().isBuyOpen()) { //check if buy isn't open currentOpenSlot = getGrandExchange().getFirstOpenSlot(); //set currentOpenSlot to a random non-occupied slot getGrandExchange().openBuyScreen(currentOpenBuySlot); //opens the slot sleep(1000); //sleeps for a sec } } private void openSellScreen() { if(!getGrandExchange().isSellOpen()) { //check if sell isn't open currentOpenSlot = getGrandExchange().getFirstOpenSlot(); //set currentOpenSlot to a random non-occupied slot getGrandExchange().openSellScreen(currentOpenSellSlot); //opens the slot sleep(1000); //sleeps for a sec } } private void collectAll() { if(getGrandExchange().isReadyToCollect()) { //check if there are bought/sold items getGrandExchange().collect(); //clicks the collect button on the ge interface sleep(2000); //sleeps 2 secs - calculated } } Now lets start with identifying what state of GE Trade you want: We'll set it to : If state = 1 then Buying is the state, if state = 2 then Selling is the state You can implement the states in your script GUI OR edit it manually! startGE() method will do the detection then execute the suitable method that we'll create after it! private void startGE() { switch(state) { // read what value state is set to case 1: //Buying state executeBuyer(): //method to start the buying process break; case 2: //Selling state executeSeller(); //method to start the selling process break; } } You can set the state using a setter: public void setState(String state) { this.state= state; } Let's start with the execution methods: ExecuteBuyer: private void executeBuyer() { walkToGE(); //if you're already at the GE, the script will ignore this line fetchFunds(); //if you already have coins in your inventory, the script will ignore this line collectAll(); //if there are successfully bought items, this will collect the items openBuyScreen(); //Detects if a buy screen isnt open and opens it getGrandExchange().buy(itemToBuy, int quantity, int price); //Buys the item /** This part is for canceling the order if the item isn't bought **/ sleep(2000); //sleeps for 2 secs because, it takes around 1.5 seconds for the item to return (Bought successfully or Still in the process) if(getGrandExchange().slotContainsItem(currentOpenSlot)) { //checks if the slot that we currently occupied contains an item/didn't sell getGrandExchange().cancelOffer(currentOpenSlot); //cancel the offer sleep(1000); //sleeps for 1 sec getGrandExchange().goBack(); } /** This part is stop the script from looping the buying process during the buying process. **/ if(getGrandExchange().isBuyOpen()) { // checks if buy screen is open sleepUntil(()-> getGrandExchange().isBuyOpen() == false, 2000); //sleeps/doesn't loop till the item is successfully bought and we're back to the main GE interface } } ExecuteSeller: private void executeSeller() { walkToGE(); //if you're already at the GE, the script will ignore this line fetchItemsToSell(); //if you already have the item(s) in your inventory, the script will ignore this line collectAll(); //if there are successfully sold items, this will collect the items openSellScreen(); //Detects if a sell screen isnt open and opens it getGrandExchange().sell(itemToSell, int quantity, int price); //sells the item /** This part is for canceling the order if the item isn't sold **/ sleep(2000); //sleeps for 2 secs because, it takes around 1.5 seconds for the item to return (Bought successfully or Still in the process) if(getGrandExchange().slotContainsItem(currentOpenSellSlot)) { //checks if the slot that we currently occupied contains an item/didn't sell getGrandExchange().cancelOffer(currentOpenSellSlot); //cancel the offer sleep(1000); //sleeps for 1 sec getGrandExchange().goBack(); } /** This part is stop the script from looping the selling process during the selling process. **/ if(getGrandExchange().isSellOpen()) { // checks if sell screen is open sleepUntil(()-> getGrandExchange().isSellOpen() == false, 2000); //sleeps/doesn't loop till the item is successfully sold and we're back to the main GE interface } } and There you go! The script will detect if the state is "Selling" or "Buying" then walks there, gets the coins/items, sells/buys, collects/cancels! Note: this guide is for single item buy/sell handling, although it does work for mass items, you just have to make a reader class, then read the items from a txt file.. then make a foreach loop/iterator to get the items then replace itemToSell/itemToBuy with the looped string .. EXTRA!! Example: ReadFile Methods: List<String> allItems = new ArrayList<String>(); List<String> item = new ArrayList<String>(); List<String> price = new ArrayList<String>(); List<String> quantity = new ArrayList<String>(); public BuyerReader(String path) { readFile(path); } public void readFile(String path) { File file = new File(path); if(file.exists()){ try { allItems = Files.readAllLines(file.toPath(),Charset.defaultCharset()); } catch (IOException ex) { ex.printStackTrace(); } if(allItems.isEmpty()) return; } for(String line : allItems){ String [] res = line.split(";"); item.add(res[0]); price.add(res[1]); quantity.add(res[2]); } } public List<String> getAllItems() { return allItems; } public List<String> getItem() { return item; } public List<String> getPrice() { return price; } public List<String> getQuantity() { return quantity; } GetValues Iterator Variable: itemNames = Reader.getItem().iterator(); ReadReader Method: private String getItemName() { //This is for the itemname, you can do the same for quantity/price just parse it to int. String itemn = null; if(itemNames.hasNext()) { String in = itemNames.next(); itemn = in; } else { stop(); log("No more items to read!"); } return itemn; } If I have written something wrong, please tell me! I'm a human, and humans make mistakes That's what we do best! 🖖 Peace!
    ×
    ×
    • Create New...

    Important Information

    We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.