Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package scripts;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import javax.swing.JOptionPane;
- import org.tribot.api.General;
- import org.tribot.api.Timing;
- import org.tribot.api.input.Mouse;
- import org.tribot.api.types.generic.Condition;
- import org.tribot.api2007.Banking;
- import org.tribot.api2007.Game;
- import org.tribot.api2007.Inventory;
- import org.tribot.api2007.NPCs;
- import org.tribot.api2007.Options;
- import org.tribot.api2007.Player;
- import org.tribot.api2007.Skills;
- import org.tribot.api2007.Walking;
- import org.tribot.api2007.WebWalking;
- import org.tribot.api2007.ext.Filters;
- import org.tribot.api2007.types.RSArea;
- import org.tribot.api2007.types.RSItem;
- import org.tribot.api2007.types.RSNPC;
- import org.tribot.api2007.types.RSTile;
- import org.tribot.script.Script;
- import org.tribot.script.ScriptManifest;
- import org.tribot.script.interfaces.Painting;
- @ScriptManifest(authors = { "Godspower33" }, category = "Tools", name = "Gods Crab Runner", description = "Runs around and wakes up crabs")
- public class CrabRunner extends Script implements Painting {
- // ----- RSAreas ------ \\
- private static RSArea CAMMY_TELE = new RSArea(new RSTile(2753, 3474, 0), new RSTile(2761, 3481, 0)); // Area of cammy tele spot
- private static RSArea CAMMY_BANK = new RSArea(new RSTile(2724, 3490, 0), new RSTile(2727, 3492, 0)); // Bank area to walk to
- private static RSArea CAMMY_BANK_SPOT = new RSArea(new RSTile(2729, 3489, 0), new RSTile(2722, 3495, 0)); // Entire cammy bank area
- private static RSArea WEST_CRABS = new RSArea(new RSTile(2662, 3711, 0), new RSTile(2688, 3737, 0)); // West crab area
- private static RSArea REFRESH_AREA = new RSArea(new RSTile(2676, 3685, 0), new RSTile(2670, 3688, 0)); // Refresh area for crabs
- // ----- RSTiles ------ \\
- private RSTile walkToSpot = new RSTile(2681, 3721, 0); // Walk to west crab spot
- // ------- IDS ------- \\
- private static int CAMELOT_TAB = 8010;
- // --- Stores food, hp to eat at --- \\
- private String foodID;
- private int hpToEatAt = 50;
- // --- Random stuff to run scripts --- \\
- private long REFRESH_TIME = Timing.currentTimeMillis() + refreshRandom();
- private static String status;
- boolean continueScript = true;
- // return a random number between 7-9.8 minutes
- private long refreshRandom() {
- return General.random(420000, 580000);
- }
- @Override
- public void run() {
- foodID = String.format(JOptionPane.showInputDialog("Enter food name (Case sensitive)"));
- hpToEatAt = Integer.parseInt(JOptionPane.showInputDialog( "Hp % to eat at: "));
- General.useAntiBanCompliance(true);
- Mouse.setSpeed(General.random(90, 135));
- while (continueScript) {
- if (WEST_CRABS.contains(Player.getPosition())) {
- status = "Crab running";
- RSNPC[] crabs = crabs();
- if (crabs.length > 0) {
- for (int i = 0; i < crabs.length; i++) {
- if (!Game.isRunOn() && Game.getRunEnergy() >= 20) {
- Options.setRunOn(true);
- }
- if (hpPercent() < hpToEatAt) {
- this.eatFood();
- }
- if (!crabs[i].isInCombat()) {
- if (Walking.walkTo(crabs[i].getPosition())) {
- AntiBan.generateTrackers(2000, false);
- AntiBan.timedActions();
- Timing.waitCondition(new Condition() {
- @Override
- public boolean active() {
- return Player.getRSPlayer().isInCombat() && !Player.isMoving();
- }
- }, 5000);
- }
- }
- }
- }
- }
- if (WEST_CRABS.contains(Player.getPosition()) && (Timing.currentTimeMillis() >= REFRESH_TIME)) {
- status = "Refreshing crabs";
- if (!Game.isRunOn() && Game.getRunEnergy() >= 25) {
- Options.setRunOn(true);
- }
- if (WebWalking.walkTo(REFRESH_AREA.getRandomTile())) {
- AntiBan.generateTrackers(2000, false);
- AntiBan.timedActions();
- Timing.waitCondition(new Condition() {
- @Override
- public boolean active() {
- return REFRESH_AREA.contains(Player.getPosition()) && !Player.isMoving();
- }
- }, 5000);
- this.resetRefreshTime();
- }
- }
- if (!WEST_CRABS.contains(Player.getPosition()) && hasTab() && hasFood()) {
- status = "Walking back to crabs";
- if (!Game.isRunOn() && Game.getRunEnergy() >= 23) {
- Options.setRunOn(true);
- }
- if (WebWalking.walkTo(walkToSpot)) {
- AntiBan.generateTrackers(2000, false);
- AntiBan.timedActions();
- Timing.waitCondition(new Condition() {
- @Override
- public boolean active() {
- return WEST_CRABS.contains(Player.getPosition()) && !Player.isMoving();
- }
- }, 5000);
- }
- }
- if (!hasFood() && WEST_CRABS.contains(Player.getPosition()) && hasTab()) {
- breakCammyTab();
- }
- if (CAMMY_TELE.contains(Player.getPosition())) {
- status = "Walking to bank";
- if (!Game.isRunOn() && Game.getRunEnergy() >= 10) {
- Options.setRunOn(true);
- }
- if (WebWalking.walkTo(CAMMY_BANK.getRandomTile())) {
- AntiBan.generateTrackers(2000, true);
- AntiBan.timedActions();
- Timing.waitCondition(new Condition() {
- @Override
- public boolean active() {
- General.random(100, 200);
- return CAMMY_BANK.contains(Player.getPosition()) && !Player.isMoving();
- }
- }, 5000);
- }
- }
- if (!hasFood() || !hasTab() && CAMMY_BANK_SPOT.contains(Player.getPosition())) {
- status = "Opening bank";
- Banking.openBank();
- Banking.depositAll();
- if (Banking.find(foodID) != null) {
- Banking.withdraw(24, foodID);
- AntiBan.generateTrackers(1000, false);
- AntiBan.timedActions();
- Timing.waitCondition(new Condition() {
- @Override
- public boolean active() {
- General.random(100, 200);
- return Inventory.getCount(foodID) >= 24;
- }
- }, 5000);
- }
- if (Banking.find(CAMELOT_TAB) != null) {
- Banking.withdraw(1, CAMELOT_TAB);
- AntiBan.generateTrackers(1000, false);
- AntiBan.timedActions();
- Timing.waitCondition(new Condition() {
- @Override
- public boolean active() {
- General.random(100, 200);
- return Inventory.getCount(CAMELOT_TAB) > 0;
- }
- }, 5000);
- }
- }
- sleep(80, 140);
- }
- }
- // checks for food in inv
- private boolean hasFood() {
- return Inventory.find(foodID).length > 0;
- }
- // Checks for cammy tab in inv
- private boolean hasTab() {
- return Inventory.find(CAMELOT_TAB).length > 0;
- }
- // Method to eat food
- private boolean eatFood() {
- status = "Eating food";
- RSItem[] foods = Inventory.find(foodID);
- if (foods.length > 0 && foods[0].hover() && foods[0].click("Eat")) {
- AntiBan.generateTrackers(1500, false);
- AntiBan.timedActions();
- return true;
- }
- return false;
- }
- // Method to get hp percent
- private static double hpPercent(){
- double currentHP = Skills.SKILLS.HITPOINTS.getCurrentLevel();
- double totalHP = Skills.SKILLS.HITPOINTS.getActualLevel();
- return currentHP / totalHP * 100;
- }
- // Breaks and teleports to cammy using tab
- private static void breakCammyTab() {
- status = "Breaking Camelot Tab";
- RSItem[] tab = Inventory.find(CAMELOT_TAB);
- if (tab[0].click("Break")) {
- AntiBan.generateTrackers(2250, false);
- AntiBan.timedActions();
- Timing.waitCondition(new Condition() {
- @Override
- public boolean active() {
- General.sleep(100);
- return CAMMY_TELE.contains(Player.getPosition());
- }
- }, General.random(4800, 6000));
- }
- }
- // Resets refreshTime
- private void resetRefreshTime() {
- REFRESH_TIME = Timing.currentTimeMillis() + refreshRandom();
- }
- // Finds crabs
- private RSNPC[] crabs() {
- return NPCs.findNearest(Filters.NPCs.nameContains("Rock"));
- }
- // Set start time, font
- private static final long startTime = System.currentTimeMillis();
- Font font = new Font("Verdana", Font.BOLD, 12);
- // Paint
- public void onPaint(Graphics g) {
- long timeRan = System.currentTimeMillis() - startTime;
- g.setFont(font);
- g.setColor(Color.GREEN);
- g.drawString("Crab Runner V0.2", 279, 360);
- g.drawString("Running for: " + Timing.msToString(timeRan), 279, 375);
- g.drawString("Status : " + status, 279, 390);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement