Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 09/27/2021 in all areas

  1. EpicBot is currently working on a simple scripter rank system where we evaluate the talent within our community to decide who can advertise their private script writing services. In addition, we'll judge your level of skill in terms of moderate, advanced, and expert level which will open up more permissions in the future. For now, we will be using this application form for scripters who want to be private scripters or premium scripters. We will assign your skill level behind the scenes until we make the necessary changes for those permissions some time at a future date. To apply, you need to please provide the following information in a POST THAT IS POSTED IN THIS FORUM SECTION: https://www.epicbot.com/forum/index.php?/forum/76-application-submission/ (aka the Application Submission forum). Feel free to include any other details you'd like us to consider. ALL SCRIPTER APPLICATIONS POSTED ARE PRIVATE AND CANNOT BE SEEN BY ANYONE ELSE OTHER THAN ADMINS/DEVELOPERS/SCRIPTERS. Username: Application type: Private scripter or Premium scripter Years experience: Languages known: Do you have a scripter rank at any other bots? If so, where? Link to GitHub or any other public repo: Link to at least two RuneScape scripts (can be attached or linked) that was done using the EpicBot API: Other comments/remarks: All private scripters will get a private scripter rank + a discord color name change. Privately, we will also be assigning you a rank based on your submitted materials that will come with additional permissions later on. - Moderate Level: Demonstrates enough knowledge in Java and can produce scripts of easy to moderate complexity. - Able to post in our Scripting Services market to advertise their script writing services. - Private scripter rank only Advanced Level: Demonstrates advanced knowledge in Java and can produce most scripts regardless of complexity. - Able to post in our Scripting Services market to advertise their script writing services. - Is able to contribute to free scripts that will be posted on the EpicBot SDN. - Private Scripter rank + Advanced level rank - Discord rank and username color change Expert Level: Demonstrates ultimate knowledge in Java and can produce any script regardless of complexity. - Able to post in our Scripting Services market to advertise their script writing services. - Is able to contribute to free scripts that will be posted on the EpicBot SDN. - Is able to contribute premium scripts that will be posted for sale on the EpicBot SDN. - Private scripter or Premium scripter rank + Expert level rank - Discord rank and username color change
    4 points
  2. How to set up Intellij for Script Development Please note that EpicBot uses Java 8. You can download this from Oracle here. If your Java version is not 8, set up Intellij to use Java 8, read "Set Up Intellij" here. Don't know your Java version? Type java --version in a command prompt. SETUP Make a new Intellij Project Go to File -> Project Structure -> Modules. Click the + icon. Select JARs or Directories. Find your EpicBot folder. Select the dependencies folder and click OK. You should now see it in your Dependencies list. Click Apply (don't click OK). Click your Artifacts tab on the left, and the plus arrow again. Select "Other" from the drop down menu. You should see something like this: Name your artifact at the top (must be unique from your other script artifact names in other projects). Select the "Include in project build" checkbox. Click the '<project name> compile output' on the right side, so it moves to the left column. Click the file folder on the left. Find your EpicBot/scripts folder. You may not have one, and will need to make one. Select it and click OK. If your screen looks like this, click Apply and OK. Any script should now compile when you click the "Build Project" button (green hammer top right) Making a Test Script Right click your src folder on the left. Select New -> Java Class, and name it. You should get something like this: A quick sample script to test: import com.epicbot.api.shared.APIContext; import com.epicbot.api.shared.GameType; import com.epicbot.api.shared.script.LoopScript; import com.epicbot.api.shared.script.ScriptManifest; import com.epicbot.api.shared.util.paint.frame.PaintFrame; import java.awt.*; @ScriptManifest(name = "Test Script", gameType = GameType.OS) public class TestClass extends LoopScript { @Override public boolean onStart(String... strings) { return true; } @Override protected int loop() { return 50; } @Override protected void onPaint(Graphics2D g, APIContext ctx) { PaintFrame frame = new PaintFrame("Test Script"); frame.addLine("Title", "Value"); frame.draw(g, 0, 170, ctx); } } Click the build icon (green hammer top right) and you should then be able to see your script in the script selector. FAQ Q: I followed the instructions and everything is red? Your dependencies are not imported properly. Q: I don't see the script in the script list? You're not building the artifact properly. Ensure that "Include in Project Build" is checked, your output directory is correct, and your compile output is under the output root (left column). See below:
    3 points
  3. Friendly Father of 3, Gamer, Chef, Streamer (twitch) and youtuber. If i can help people i will, if i cant i find a way of helping in what way i can. me
    2 points
  4. Hi, first script here. Originally written by Edwardino, but with a few improvements. See the top comments "CHANGES" in the code for main features. HOW TO USE: Have the equal desired amount of Cosmic Runes in your inventory & the equal amount of the items you need enchanting in your bank before starting the script. * Change these lines to match the object being enchanted & the enchanted item: public String itemToBeEnchanted = "Emerald amulet"; public String enchantedItem = "Amulet of defence"; * Change this method to establish which enchantment level you're working with: public void CAST_ENCHANT() { Time.sleep(500, 100, () -> myMagicBook().cast(Spell.Modern.LEVEL_2_ENCHANT)); // Example: Spell.Modern.LEVEL_3_ENCHANMENT for Lv-3 Enchant } CODE: import com.epicbot.api.shared.GameType; import com.epicbot.api.shared.entity.ItemWidget; import com.epicbot.api.shared.methods.*; import com.epicbot.api.shared.model.Spell; import com.epicbot.api.shared.script.LoopScript; import com.epicbot.api.shared.script.ScriptManifest; import com.epicbot.api.shared.util.time.Time; @ScriptManifest(name = "Improved Enchanter by Zynava", gameType = GameType.OS) public class ImprovedEnchanter extends LoopScript { /** * * THIS BOT IS BUILT FOR ENCHANTING LV-1 - LV-4 * However... While it doesn't track the other runes for higher level enchantments, it will still work if you have them. * * CREDITS: * Original script author -> Edwardino * Improvement author -> Zynava * * CHANGES: * - Improved readability of code * - Easy-to-alter items being enchanted via script * * See 'itemToBeEnchanted', 'enchantedItem' & 'CAST_ENCHANT()' below * - Grouped relevant methods together, labeled. * - Added sleep methods to reduce the amount of buggy clicks **/ // CHANGE THESE TO WHATEVER YOU'RE WORKING WITH public String itemToBeEnchanted = "Emerald amulet"; public String enchantedItem = "Amulet of defence"; public String COSMIC_RUNES = "Cosmic rune"; public void CAST_ENCHANT() { Time.sleep(500, 100, () -> myMagicBook().cast(Spell.Modern.LEVEL_2_ENCHANT)); } // BEGIN METHODS FOR NESTED REFERENCES public IClientAPI myClient() {return getAPIContext().client();} public IBankAPI myBank() {return getAPIContext().bank();} public IInventoryAPI myInventory() {return getAPIContext().inventory();} public IMagicAPI myMagicBook() {return getAPIContext().magic();} public IGameAPI myGame() {return getAPIContext().game();} public IScriptAPI myScript() {return getAPIContext().script();} // END METHODS FOR NESTED REFERENCES /********************************************************** *********************BANKING METHODS********************** **********************************************************/ // Do I need to bank? (Checks for necessary supplies in inventory) public boolean botNeedsToBank() { boolean doesHaveSupplies = !myInventory().contains(COSMIC_RUNES) || !myInventory().contains(itemToBeEnchanted); return doesHaveSupplies; } // Do I need to OPEN the bank? public boolean needsToOpenBank() { return !myBank().isOpen(); } // Open the bank public void openBank() { System.out.println("Opening bank."); myBank().open(); } // Close the bank public void closeBank() { System.out.println("Closing bank."); myBank().close(); } // Do I need to deposit? public boolean shouldDeposit() { return myInventory().getCount(enchantedItem) > 0; } // Deposit all items except runes public void depositEnchantedItems() { System.out.println("Depositing enchanted items."); myBank().depositAll(enchantedItem); } // Can withdraw more of the item I'm enchanting? public boolean shouldWithdraw() { return myInventory().getCount(itemToBeEnchanted) == 0 && myBank().getCount(itemToBeEnchanted) > 0; } // Withdraw items public void withdrawItems() { System.out.println("Withdrawing items to be enchanted."); myBank().withdraw(27, itemToBeEnchanted); } /********************************************************** *********************ENCHANTING METHODS******************* **********************************************************/ // Should I begin enchanting? public boolean shouldEnchant() { boolean hasSupplies = myInventory().contains(itemToBeEnchanted) && myInventory().contains(COSMIC_RUNES); return hasSupplies; } // Begin enchanting public void enchantItem() { System.out.println("Enchanting..."); CAST_ENCHANT(); ItemWidget item = myInventory().getItem(itemToBeEnchanted); if(item != null) { item.interact(); Time.sleep(1000); } } @Override public boolean onStart(String... strings) { System.out.print("Starting Improved Enchanter script..."); return true; } @Override protected int loop() { if(!myClient().isLoggedIn()) { System.out.println("Please wait until you are logged in."); } // First checks supplies & if bank needs to be opened if(botNeedsToBank() && needsToOpenBank()) { openBank(); } // If bank is open: // Deposits and/or Withdraws as needed // Closes bank after // If there's no more to withdraw // Close bank, logout, end script if(myBank().isOpen()) { if(shouldDeposit()) { depositEnchantedItems(); } if(shouldWithdraw()) { withdrawItems(); closeBank(); Time.sleep(1000); } else { closeBank(); myGame().logout(); Time.sleep(800); myScript().stop("Script stopping..."); } } // Enchants if there's items needing to be enchanted if(shouldEnchant()) { enchantItem(); } return 200; } }
    1 point
  5. This is just a simple fisher with basic GUI. Script download - At bottom of post. Current Features Fish - Shrimp, Anchovies, Lobster, Trout, Salmon, Swordfish Banking Automatically gathers required items ( if there in the bank ) Profiles Planned Updates New fish - Karambwanji, Karambwan, Tuna, Anglerfish, Bass, Cod, Dark crab, Herring, Monkfish Different drop patterns Restocking New Gui
    1 point
  6. Nvm had to change mouse profile to slow and fixed issue
    1 point
  7. Pro Slayer looks amazing, can't wait to purchase it!
    1 point
  8. Hello! This is my second script that I have ever written, so don't expect anything too crazy. It enchants sapphire rings for you, making 200k per hour. What you need : 1. Have cosmic runes in your inventory 2. Have sapphire rings in your bank From my intensive testing on 10+ accounts for 2 weeks, the script works flawlessly and it logs out when you run out of resources. If you want to see me writing the script and explaining what's what along the way, you can check out this video! import com.epicbot.api.shared.APIContext; import com.epicbot.api.shared.GameType; import com.epicbot.api.shared.entity.*; import com.epicbot.api.shared.event.ChatMessageEvent; import com.epicbot.api.shared.methods.ITabsAPI; import com.epicbot.api.shared.model.Area; import com.epicbot.api.shared.model.Skill; import com.epicbot.api.shared.model.Spell; import com.epicbot.api.shared.model.Tile; import com.epicbot.api.shared.script.LoopScript; import com.epicbot.api.shared.script.ScriptManifest; import com.epicbot.api.shared.util.Random; import com.epicbot.api.shared.util.paint.frame.PaintFrame; import com.epicbot.api.shared.util.time.Time; import sun.security.action.GetBooleanAction; import javax.imageio.ImageIO; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; @ScriptManifest(name = "Recoil FACTORY", gameType = GameType.OS) public class main extends LoopScript { public boolean needsToBank() { return !getAPIContext().inventory().contains("Cosmic rune") || !getAPIContext().inventory().contains("Sapphire ring"); } public boolean needsToOpenBank() { return !getAPIContext().bank().isOpen(); } public void openBank() { if (getAPIContext().magic().isSpellSelected()) { getAPIContext().mouse().click(450, 265); } else { getAPIContext().bank().open(); } } public boolean shouldLogOut() { return getAPIContext().bank().getCount("Sapphire ring") == 0 || getAPIContext().inventory().getCount("Cosmic rune") == 0; } public void logOut() { if (getAPIContext().bank().isOpen()) { getAPIContext().bank().close(); } getAPIContext().game().logout(); getAPIContext().script().stop("Das it bro, was it worth it?"); } public boolean doesNeedToDeposit() { return getAPIContext().inventory().getCount("Ring of recoil") == 27; } public void depositRings() { getAPIContext().bank().depositAllExcept("Cosmic rune"); } public boolean needsWithdrawSapphirerings() { return getAPIContext().inventory().getCount("Ring of recoil") == 0 && getAPIContext().inventory().getCount("Sapphire ring") == 0; } public void withdrawSapphireRing() { getAPIContext().bank().withdrawAll("Sapphire ring"); } public boolean needsToEnchant() { return getAPIContext().inventory().contains("Cosmic Rune") && getAPIContext().inventory().contains("Sapphire ring"); } public void enchantsRings() { int count = getAPIContext().inventory().getCount(true, "Ring of recoil"); if (!getAPIContext().magic().isSpellSelected()) { if (getAPIContext().magic().cast(Spell.Modern.LEVEL_1_ENCHANT)) { Time.sleep(500, 1000, () -> getAPIContext().magic().isSpellSelected()); } } else { ItemWidget ring = getAPIContext().inventory().getItem("Sapphire ring"); if (ring != null) { if (ring.interact()) { Time.sleep(500, 1000, () -> getAPIContext().inventory().getCount(true, "Ring of recoil") > count); } } } } public final String formatTime(long ms) { long s = ms / 1000, m = s / 60, h = m / 60, d = h / 24; s %= 60; m %= 60; h %= 24; return d > 0 ? String.format("%02d:%02d:%02d:%02d", d, h, m, s) : h > 0 ? String.format("%02d:%02d:%02d", h, m, s) : String.format("%02d:%02d", m, s); } @Override public boolean onStart(String... strings) { System.out.println("Lets enchant some rings"); return true; } @Override protected int loop() { if (!getAPIContext().client().isLoggedIn()) { System.out.println("hold up till you are logged in mayne"); return 300; } if (needsToBank() && needsToOpenBank()) { System.out.println("Opening bank"); openBank(); return 300; } if (getAPIContext().bank().isOpen()) { if (doesNeedToDeposit()) { System.out.println("Depositing rings"); depositRings(); return 200; } if (shouldLogOut()) { logOut(); } if (needsWithdrawSapphirerings()) { System.out.println("Withdrawin the rings"); withdrawSapphireRing(); return 1000; } else { getAPIContext().bank().close(); return 200; } } if (needsToEnchant()) { System.out.println("Enchanting rings"); enchantsRings(); return 200; } if (needsToBank()) { System.out.println("Bankin"); openBank(); return 200; } if (doesNeedToDeposit()) { depositRings(); return 200; } return 200; } }
    1 point
×
×
  • Create New...