Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package scripts.abyssCrafter;
- import org.tribot.api.Clicking;
- import org.tribot.api.General;
- import org.tribot.api.input.Mouse;
- import org.tribot.api2007.Banking;
- import org.tribot.api2007.Camera;
- import org.tribot.api2007.Constants;
- import org.tribot.api2007.Equipment;
- import org.tribot.api2007.Game;
- import org.tribot.api2007.GameTab;
- import org.tribot.api2007.GameTab.TABS;
- import org.tribot.api2007.Inventory;
- import org.tribot.api2007.Magic;
- import org.tribot.api2007.NPCs;
- import org.tribot.api2007.Objects;
- import org.tribot.api2007.PathFinding;
- import org.tribot.api2007.Player;
- import org.tribot.api2007.Skills;
- import org.tribot.api2007.Skills.SKILLS;
- import org.tribot.api2007.Walking;
- import org.tribot.api2007.WebWalking;
- import org.tribot.api2007.ext.Filters;
- import org.tribot.api2007.types.RSObject;
- import org.tribot.api2007.types.RSTile;
- import org.tribot.api2007.util.DPathNavigator;
- import org.tribot.script.Script;
- import org.tribot.script.ScriptManifest;
- @ScriptManifest(authors = { "Jdez" }, category = "Runecrafting", name = "Abyss aio")
- public class Crafter extends Script {
- // *****userSet***** \\
- public static int SAFE_HEALTH = 0;
- public static int FOOD_HEAL_AMT = 0;
- public static int USERSET_DRINK_POINT;
- public static String FOOD_NAME;
- public static String ESSENCE_TYPE = "Pure essence";
- public static String ENERGY_ITEM;
- public static String RUNE_TYPE;
- public static final String[] ALTAR_NAMES = { "Altar" };
- public static boolean usingEmergencyTeleport = false;
- public static boolean usingEnergyPotion = false;
- // *****userSetEnd***** \\
- public static String[] ENERGY_ITEMS
- = { "Strange fruit", "Super energy potion (4)", "Super energy potion (4)",
- "Super energy potion (4)", "Super energy potion (4)", "Energy potion (4)",
- "Energy potion (3)", "Energy potion (2)", "Energy potion (1)"};
- public final static String[] BOOTH_NAMES
- = { "Bank booth", "Chest" };
- public final static String[] GLORY
- = { "Amulet of glory(4)", "Amulet of glory(3)",
- "Amulet of glory(2)", "Amulet of glory(1)" };
- public final String[] ROD = {
- "Ring of dueling(8)", "Ring of dueling(7)",
- "Ring of dueling(6)", "Ring of dueling(5)",
- "Ring of dueling(4)", "Ring of dueling(3)",
- "Ring of dueling(2)", "Ring of dueling(1)"
- };
- public final static String[] GAMES_NECKLACE
- = { "Games necklace(8)", "Games necklace(7)",
- "Games necklace(6)", "Games necklace(5)",
- "Games necklace(4)", "Games necklace(3)",
- "Games necklace(2)", "Games necklace(1)"};
- public final static String[] POUCHES
- = { "Giant pouch", "Large pouch",
- "Medium pouch", "Small pouch" };
- public final static String[] TELE_TABS
- = { "Lumbridge teleport", "Varrock teleport",
- "Falador teleport", "Camelot teleport"};
- public final static String FILL_POUCH = "Fill";
- private final String WILD_DITCH = "Wilderness ditch";
- private final String ZAMMY_MAGE = "Mage of Zamorak";
- private final String TRAVEL_OPTION = "Teleport";
- private final String EDGE_TELEPORT_OPTION = "Edgeville";
- private final String CWARS_TELEPORT_OPTION = "Castle wars";
- private final String TELE_HOME = "Lumbridge Home Teleport";
- private final String TINDERBOX = "Tinderbox";
- private final String CHOP = "Chop";
- private final String DISTRACT = "Distract";
- private final String MINE = "Mine";
- private final String BURN = "Burn-down";
- private final RSTile TO_WILD_DITCH = new RSTile(3110, 3520, 0);
- private final RSTile TO_ZAMMY_MAGE_AREA = new RSTile(3105, 3557, 0);
- private final int DISTRACT_EYES_LEVEL = 20;
- public final static int SMALL_POUCH_SETTING = 486;
- public final static int MED_POUCH_SETTING = 486;
- public final static int LRG_POUCH_SETTING = 486;
- public final static int GIANT_POUCH_SETTING = 486;
- public final static int SMALL_FILLED_ID = 1073741827;
- public final static int MED_FILLED_ID = 1073741875;
- public final static int LRG_FILLED_ID = 1073746483;
- public final static int GIANT_FILLED_ID = 0;
- public static boolean running = true;
- public static boolean GUI_COMPLETE = false;
- private int BANK_MOUSE_SPEED = 10;
- private String DEGRADED_POUCHES;
- private ABC abc;
- private STATE state;
- enum STATE {
- CRAFTING,
- ENTERING_RIFT,
- FIND_RIFT,
- FINDING_SHORTCUT,
- GEARING_UP,
- OPENING_BANK,
- PASSING_DITCH,
- RECHARGING_POUCHES,
- TELEPORTING,
- TO_ABYSS,
- USING_SHORTCUT,
- WAIT
- }
- private STATE getState() {
- if (canCraft()) {
- println("We can craft");
- //* Checks for if we have pouches
- /* and if they're filled,
- * our health is good
- * and we have essence in our inventory
- */
- if (inEdgeville()) {
- //**checks if in edgeville by co-ordinates & passes ditch**\\
- println("Passing wild ditch!");
- return STATE.PASSING_DITCH;
- }
- else if (inWild()) {
- //**Walks to zammy mage and teleports to abyss**\\
- return STATE.TO_ABYSS;
- }
- else if (atAbyss()) {
- if (!inAbyssR2()) {
- //**if in the first room,
- /* it will look for a shortcut
- * to use and use it **/
- if(getValidShortcut() != null && getValidShortcut().isOnScreen()){
- println("found shortcut, using it!");
- return STATE.USING_SHORTCUT;
- }
- else if(getValidShortcut() != null) {
- println("walking to shortcut!");
- return STATE.FINDING_SHORTCUT;
- }
- }
- else if(Inventory.find(DEGRADED_POUCHES).length > 0){
- return STATE.RECHARGING_POUCHES;
- }
- else if (canSeeTeleporter()) {
- println("spotted rift");
- //**if in the second room,
- /* uses the specified teleporter**/
- return STATE.ENTERING_RIFT;
- }
- else {
- //**if in the second room,
- /* looks for our teleporter
- * and walks to it **/
- return STATE.FIND_RIFT;
- }
- }
- else if (atAltar()) {
- println("Crafting runes");
- return STATE.CRAFTING;
- }
- }
- else if (!atBank()) {
- println("Banking, cannot craft anymore!");
- return STATE.TELEPORTING;
- }
- else if(!Banking.isBankScreenOpen()){
- return STATE.OPENING_BANK;
- }
- else {
- return STATE.GEARING_UP;
- }
- return STATE.WAIT;
- }
- @Override
- public void run() {
- GUI();
- abc = new ABC();
- while (running) {
- abc.start();
- Mouse.setSpeed(General.random(105, 115));
- state = getState();
- switch (state){
- case CRAFTING:
- craftRunes();
- break;
- case ENTERING_RIFT:
- enterTeleporter();
- break;
- case FINDING_SHORTCUT:
- toValidShortcut(getValidShortcut());
- break;
- case FIND_RIFT:
- lookForTeleporter();
- break;
- case GEARING_UP:
- Mouse.setSpeed(Mouse.getSpeed() + BANK_MOUSE_SPEED);
- Banker.gearUp();
- break;
- case OPENING_BANK:
- if(Banking.openBank()){
- sleep(800, 1800);
- }
- break;
- case PASSING_DITCH:
- passWildDitch();
- break;
- case RECHARGING_POUCHES:
- rechargePouches();
- break;
- case TELEPORTING:
- toBank();
- break;
- case TO_ABYSS:
- toAbyss();
- break;
- case USING_SHORTCUT:
- Clicker.interactObject(getValidShortcut());
- break;
- case WAIT:
- sleep(800);
- break;
- default:
- break;
- }
- sleep(400, 600);
- }
- }
- private void rechargePouches() {
- RSNPC[] mage = NPCs.findNearest("Dark mage");
- RSInterfaceChild[][] chat
- = {Interfaces.get(242).getChildren(), Interfaces.get(64).getChildren()};
- if (mage.length > 0 && mage[0].isOnScreen()) {
- for (RSInterfaceChild[] i : chat) {
- if (i != null) {
- for (RSInterface t : i) {
- if (t.getText().contains("continue")) {
- break;
- }
- }
- }
- }
- }
- else if (PathFinding.aStarWalk(new RSTile(3039, 4835, 0))) {
- General.sleep(1200, 1900);
- }
- }
- private void passWildDitch() {
- RSObject[] ditch = Objects.find(10, WILD_DITCH);
- if (ditch.length > 0) {
- Clicker.interactObject(ditch[0]);
- }
- else {
- Walker.takePath(TO_WILD_DITCH);
- }
- }
- public static boolean inWild() {
- RSTile pos = Player.getRSPlayer().getPosition();
- return (pos.getY() >= 3523) && (pos.getX() >= 3066) && (pos.getX() <= 3143);
- }
- private void toAbyss() {
- if (NPCs.findNearest(ZAMMY_MAGE).length > 0 &&!NPCs.findNearest(ZAMMY_MAGE)[0].isOnScreen()) {
- println("Retrying zammy mage walk!");
- Walker.takePath(NPCs.findNearest(ZAMMY_MAGE)[0].getPosition());
- }
- else if (NPCs.findNearest(ZAMMY_MAGE).length > 0 && NPCs.findNearest(ZAMMY_MAGE)[0].isOnScreen()) {
- println("Teleporting to abyss!");
- travelZammyMage();
- }
- else {
- println("Walking to zammy mage!");
- Walker.takePath(TO_ZAMMY_MAGE_AREA);
- }
- }
- private void travelZammyMage() {
- if(NPCs.findNearest(ZAMMY_MAGE)[0].hover()){
- if (Clicking.click(TRAVEL_OPTION, NPCs.findNearest(ZAMMY_MAGE)[0])) {
- sleep(4100, 4600);
- }
- }
- }
- private boolean inAbyssR2() {
- RSTile pos = Player.getRSPlayer().getPosition();
- return (pos.getX() > 3022) && (pos.getY() > 4815)
- && (pos.getX() < 3056) && (pos.getY() < 4848);
- }
- private String getTeleporterName() {
- switch (RUNE_TYPE) {
- case "Air rune" :
- return "Air rift";
- case "Mind rune" :
- return "Mind rift";
- case "Body rune" :
- return "Body rift";
- case "Earth rune" :
- return "Earth rift";
- case "Fire rune" :
- return "Fire rift";
- case "Blood rune" :
- return "Blood rift";
- case "Cosmic rune" :
- return "Cosmic rift";
- case "Nature rune" :
- return "Nature rift";
- case "Chaos rune" :
- return "Chaos rift";
- case "Law rune" :
- return "Law rift";
- case "Death rune" :
- return "Death rift";
- case "Water rune" :
- return "Water rift";
- case "Soul rune" :
- return "Soul rift";
- }
- return null;
- }
- private void enterTeleporter() {
- RSObject[] teleporter = Objects.findNearest(10, getTeleporterName());
- if (teleporter.length > 0) {
- Clicker.interactObject(teleporter[0]);
- }
- }
- private void lookForTeleporter() {
- RSObject[] altarTeleport = Objects.findNearest(100, getTeleporterName());
- if (altarTeleport.length > 0) {
- if (Walking.walkPath(new DPathNavigator().findPath(altarTeleport[0]))) {
- sleep(400, 600);
- }
- }
- }
- private boolean canSeeTeleporter() {
- RSObject[] altarTeleport = Objects.findNearest(5, getTeleporterName());
- if (altarTeleport.length > 0) {
- if (altarTeleport[0].isOnScreen()) {
- return true;
- }
- }
- return false;
- }
- private void toValidShortcut(RSObject shortcut) {
- if(shortcut != null){
- if (PathFinding.aStarWalk(shortcut.getPosition())){
- sleep(400, 700);
- }
- }
- }
- private RSObject getValidShortcut() {
- RSObject[] s = Objects.findNearest(200, Filters.Objects.actionsContains(getAction()));
- return s.length > 0 ? s[0] : null;
- }
- private String getAction() {
- if (Equipment.find(Constants.IDs.Items.hatchets).length > 0) {
- return CHOP;
- } else if (Equipment.find(Constants.IDs.Items.pickaxes).length > 0) {
- return MINE;
- } else if (Inventory.find(TINDERBOX).length > 0) {
- return BURN;
- } else if (Skills.getActualLevel(SKILLS.THIEVING) >= DISTRACT_EYES_LEVEL) {
- return DISTRACT;
- }
- return "No option";
- }
- private void toBank() {
- if(Skills.getCurrentLevel(SKILLS.HITPOINTS) <= SAFE_HEALTH && usingEmergencyTeleport &&!atTeleportLocation()){
- if (Clicking.click(Inventory.find(TELE_TABS))){
- sleep(400, 900);
- }
- }
- else if (!atTeleportLocation()) {
- teleportOut();
- }
- else if (WebWalking.walkToBank()) {
- sleep(2400, 3700);
- }
- }
- private boolean atTeleportLocation() {
- return !inWild() &&!atAbyss() &&!atAltar();
- }
- private boolean inEdgeville() {
- RSTile pos = Player.getRSPlayer().getPosition();
- return (3082 <= pos.getX()) && (pos.getX() <= 3128)
- && (3483 <= pos.getY()) && (pos.getY() <= 3520);
- }
- private void teleportOut() {
- if(Banking.isBankScreenOpen()){
- Banking.close();
- }
- if (Equipment.isEquipped(GLORY)) {
- if (GameTab.open(TABS.EQUIPMENT)) {
- if (Clicking.click(EDGE_TELEPORT_OPTION, Equipment.find(GLORY))) {
- sleep(3400, 4200);
- }
- }
- }
- else if (Equipment.isEquipped(ROD)) {
- if (GameTab.open(TABS.EQUIPMENT)) {
- if (Clicking.click(CWARS_TELEPORT_OPTION, Equipment.find(ROD))) {
- sleep(3400, 4200);
- }
- }
- }
- else if(Inventory.find(TELE_TABS).length > 0){
- if(Clicking.click(Inventory.find(TELE_TABS))){
- sleep(3400, 4900);
- }
- }
- else if (GameTab.open(TABS.MAGIC)) {
- if (Magic.selectSpell(TELE_HOME)) {
- sleep(15000, 21000);
- }
- }
- }
- private boolean canCraft() {
- return Inventory.find(POUCHES).length > 0
- ? Banker.pouchesFilled()
- : true
- &&
- atBank()
- ? Inventory.find(ESSENCE_TYPE).length >= Inventory.find(ESSENCE_TYPE).length + inventorySpace()
- : Inventory.find(ESSENCE_TYPE).length > 0
- &&
- (Skills.getCurrentLevel(SKILLS.HITPOINTS) >= SAFE_HEALTH);
- }
- public static boolean needEnergyPotion() {
- return Game.getRunEnergy() <= USERSET_DRINK_POINT;
- }
- public static int inventorySpace() {
- return 28 - Inventory.getAll().length;
- }
- public static boolean atBank() {
- return Objects.find(10, BOOTH_NAMES).length > 0;
- }
- private boolean atAltar() {
- return Objects.find(10, ALTAR_NAMES).length > 0;
- }
- public static int getFoodCount() {
- return (Skills.getActualLevel(SKILLS.HITPOINTS) - Skills.getCurrentLevel(SKILLS.HITPOINTS))
- / FOOD_HEAL_AMT;
- }
- public static boolean atAbyss() {
- RSTile pos = Player.getRSPlayer().getPosition();
- return (pos.getX() > 3000) && (pos.getY() > 4804)
- && (pos.getX() < 3100) && (pos.getY() < 4900);
- }
- private void craftRunes() {
- RSObject[] altar = Objects.findNearest(20, ALTAR_NAMES);
- if(altar.length > 0){
- if(!altar[0].isOnScreen()) {
- Camera.turnToTile(altar[0]);
- }
- else if(Inventory.find(ESSENCE_TYPE).length < 1 && Inventory.find(POUCHES).length > 0
- && Banker.pouchesFilled()){
- emptyPouches();
- }
- else {
- Clicker.interactObject(altar[0]);
- }
- }
- }
- private void emptyPouches() {
- if(Inventory.find(POUCHES[0]).length > 0){
- if(Game.getSetting(GIANT_POUCH_SETTING) == GIANT_FILLED_ID){
- if(Clicking.click("Empty", Inventory.find(POUCHES[0]))){
- sleep(1200, 1900);
- }
- }
- }
- if(Inventory.find(POUCHES[1]).length > 0){
- if(Game.getSetting(LRG_POUCH_SETTING) == LRG_FILLED_ID){
- if(Clicking.click("Empty", Inventory.find(POUCHES[1]))){
- sleep(1200, 1900);
- }
- }
- }
- if(Inventory.find(POUCHES[2]).length > 0){
- if(Game.getSetting(MED_POUCH_SETTING) == MED_FILLED_ID){
- if(Clicking.click("Empty", Inventory.find(POUCHES[2]))){
- sleep(1200, 1900);
- }
- }
- }
- if(Inventory.find(POUCHES[3]).length > 0){
- if(Game.getSetting(SMALL_POUCH_SETTING) == SMALL_FILLED_ID){
- if(Clicking.click("Empty", Inventory.find(POUCHES[3]))){
- sleep(1200, 1900);
- }
- }
- }
- }
- private void GUI() {
- new GUI();
- while(!GUI_COMPLETE){
- sleep(100);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment