Dextrell Posted Friday at 11:46 PM Share Posted Friday at 11:46 PM (edited) Basic Alch script with a small anti ban cheers! Put the item you'd like to alch at the far right in the first row the script will high light a box for you where to place it if you're lost If you want low Alchemy just swap the function call on highAlchemy and it will do that instead! package com.dexalcher; import java.awt.Color; import java.awt.Graphics2D; import org.osbot.rs07.api.ui.RS2Widget; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.ConditionalSleep; @ScriptManifest(name = "DexAlcher", version = 1.0, author = "Dextrell", logo = "", info = "") public class DexAlcher extends Script { private String itemToAlch = "Rune arrow"; public void onStart() throws InterruptedException { getExperienceTracker().start(Skill.MAGIC); } public int onLoop() throws InterruptedException { int rand = random(0, 200); if (rand == 150) { log("moving mouse at random..."); mouse.move(random(0, 2500), random(0, 2500)); } else if (rand == 0) { log("moving mouse off screen..."); mouse.moveOutsideScreen(); } if (canAlch()) { clickedAlch(); } else { stop(); log("Out of supplies or dead"); } return 1000; } public boolean canAlch() { return (getEquipment().isWieldingWeaponThatContains(new String[] { "staff" }) && getInventory().contains(new String[] { "Nature rune", itemToAlch })); } public void clickedAlch() { if (!getInventory().contains(itemToAlch)) { log("We dont have the items stopping..."); stop(); } if (!(getTabs()).magic.open()) { new ConditionalSleep(600, 800) { @Override public boolean condition() throws InterruptedException { return false; } }; } new ConditionalSleep(600, 1000) { @Override public boolean condition() throws InterruptedException { clickHighSpellAlchemy(); return false; } }.sleep(); new ConditionalSleep(600, 1000) { @Override public boolean condition() throws InterruptedException { // final RS2Widget itemPic = getWidgets().get(149, 3); // int clickX = itemPic.getAbsX() + random(0,6); int clickX = random(691, 717); int clickY = random(216, 235); // int clickY = itemPic.getAbsY() + random(0,6); // log("src x: " + itemPic.getAbsX() + " src: " + itemPic.getAbsY()); // log("Click x: " + clickX + " y: " + clickY); mouse.click(clickX, clickY, false); log("Finished clicking item..."); return false; } }.sleep(); } public boolean clickMagicBook() { RS2Widget bookIcon = getWidgets().get(548, 76); int clickX = bookIcon.getAbsX() + random(10, 20); int clikcY = bookIcon.getAbsY() + random(10, 20); return mouse.click(clickX, clikcY, false); } public void clickLowSpellAlchemy() { // RS2Widget alchemyIcon = getWidgets().get(218, 21); // int clickX = alchemyIcon.getAbsX() + random(0,5); // int clickY = alchemyIcon.getAbsY() + random(0,5); int clickX = random(714, 728); int clickY = random(233, 247); // log("src x: " + alchemyIcon.getAbsX() + " src: " + alchemyIcon.getAbsY()); mouse.click(clickX, clickY, false); // log("alch click x: " + clickX + " clickY: " + clickY); } public void clickHighSpellAlchemy() { // RS2Widget alchemyIcon = getWidgets().get(218, 21); // int clickX = alchemyIcon.getAbsX() + random(0,5); // int clickY = alchemyIcon.getAbsY() + random(0,5); int clickX = random(710, 730); int clickY = random(305, 320); // log("src x: " + alchemyIcon.getAbsX() + " src: " + alchemyIcon.getAbsY()); mouse.click(clickX, clickY, false); // log("alch click x: " + clickX + " clickY: " + clickY); } public void onPaint(Graphics2D g) { int mXp = getExperienceTracker().getGainedXP(Skill.MAGIC); super.onPaint(g); g.drawString("Magic XP: " + mXp, 387, 328); g.setColor(Color.CYAN); g.drawOval((int)mouse.getPosition().getX(), (int)mouse.getPosition().getY(), 10, 10); if(isInventoryOpen()) { g.drawRect(690, 210, 32, 32); } else { //g.drawRect(710, 230, 25, 25); g.drawRect(710, 300, 25, 25); } } private boolean isInventoryOpen() { RS2Widget inventoryWidget = getWidgets().get(149, 0, 3); return inventoryWidget != null && inventoryWidget.isVisible(); } } Edited Friday at 11:47 PM by Dextrell 1 Quote Link to comment Share on other sites More sharing options...