Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package scripts;
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.Polygon;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.io.IOException;
- import java.net.URL;
- import java.util.ArrayList;
- import javax.imageio.ImageIO;
- import org.tribot.api.General;
- import org.tribot.api.Timing;
- import org.tribot.api.input.Mouse;
- import org.tribot.api2007.Banking;
- import org.tribot.api2007.Camera;
- import org.tribot.api2007.Game;
- import org.tribot.api2007.Inventory;
- import org.tribot.api2007.Login;
- import org.tribot.api2007.NPCs;
- import org.tribot.api2007.Objects;
- import org.tribot.api2007.Options;
- import org.tribot.api2007.Player;
- import org.tribot.api2007.Players;
- import org.tribot.api2007.Screen;
- import org.tribot.api2007.Skills;
- import org.tribot.api2007.Walking;
- import org.tribot.api2007.types.RSNPC;
- import org.tribot.api2007.types.RSObject;
- import org.tribot.api2007.types.RSPlayer;
- import org.tribot.api2007.types.RSTile;
- import org.tribot.script.Script;
- import org.tribot.script.ScriptManifest;
- import org.tribot.script.interfaces.Painting;
- import scripts.Timer;
- @ScriptManifest(authors = { "Coca Cola" }, category = "Mining", name = "Coca-Cola's Keldagrim Coal Miner", description =
- "Start the script at either the Keldagrim bank, or the Keldagrim coal mine. If you do not know where Keldagrim is," +
- "please refer to the script's thread.")
- public class KeldagrimCoalMiner extends Script implements Painting {
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch (IOException e) {
- return null;
- }
- }
- private final Image img = getImage("http://s22.postimg.org/64jnqvcld/paint_test_2.png");
- Timer time = new Timer(3000);
- private final Polygon bankArea = new Polygon(new int[] { 2833, 2843, 2843,
- 2834 }, new int[] { 10206, 10206, 10215, 10215 }, 4);
- private final Polygon coalArea = new Polygon(new int[] { 2934, 2941, 2941,
- 2934 }, new int[] { 10227, 10227, 10235, 10235 }, 4);
- RSTile[] bankpath = new RSTile[] { new RSTile(2930, 10230),
- new RSTile(2922, 10231), new RSTile(2912, 10232),
- new RSTile(2905, 10232), new RSTile(2897, 10232),
- new RSTile(2890, 10232), new RSTile(2881, 10232),
- new RSTile(2873, 10232), new RSTile(2867, 10226),
- new RSTile(2865, 10220), new RSTile(2856, 10215),
- new RSTile(2852, 10212), new RSTile(2845, 10209),
- new RSTile(2838, 10207) };
- RSTile[] coalpath = new RSTile[] { new RSTile(2846, 10213),
- new RSTile(2854, 10219), new RSTile(2856, 10230),
- new RSTile(2867, 10232), new RSTile(2876, 10232),
- new RSTile(2887, 10232), new RSTile(2898, 10232),
- new RSTile(2907, 10232), new RSTile(2916, 10232),
- new RSTile(2923, 10231), new RSTile(2930, 10230),
- new RSTile(2934, 10231), new RSTile(2937, 10234) };
- private final int[] ROCK_ID = { 14915, 14916 };
- private final int[] PICKAXES = { 1265, 1267, 1269, 1271, 1273, 1275 };
- private final int BANK_BOOTH = 6084;
- final long startTime = System.currentTimeMillis();
- int startLvl = Skills.getActualLevel("Mining");
- int startXP = Skills.getXP("Mining");
- private boolean onStart() {
- println("Coca Cola's Keldagrim Coal Miner has started.");
- Mouse.setSpeed(300);
- return true;
- }
- @Override
- public void run() {
- if (onStart()) {
- while (true) {
- sleep(loop());
- }
- }
- }
- public RSObject findNearest(int distance, int... ids) {
- RSObject[] objects = Objects.findNearest(distance, ids);
- for (RSObject object : objects) {
- if (object != null) {
- return object;
- }
- }
- return null;
- }
- private int loop() {
- RSObject rock = findNearest(15, ROCK_ID);
- RSObject bankbooth = findNearest(15, BANK_BOOTH);
- explodedrock();
- RSPlayer[] allPlayers = Players.getAll();
- for (RSPlayer i : allPlayers) {
- if (coalArea.contains(i.getPosition().getX(), i.getPosition().getY()) && i.getName() != Player.getRSPlayer().getName()) {
- println("Someboy is attempting you crash you, hopping.");
- super.setLoginBotState(false);
- super.setRandomSolverState(false);
- worldHop(General.random(1,78),true,true);
- super.setLoginBotState(true);
- super.setRandomSolverState(true);
- }
- }
- if (Inventory.isFull() && !bankArea.contains(Player.getPosition().getX(), Player.getPosition().getY())) {
- startRunning();
- walkToBank();
- }
- if (bankArea.contains(Player.getPosition().getX(), Player.getPosition().getY()) && Inventory.isFull()) {
- if (bankbooth != null) {
- if (bankbooth.isOnScreen()) {
- bankbooth.click("Bank");
- sleep(750);
- if (Banking.isBankScreenOpen()) {
- Banking.depositAllExcept(PICKAXES);
- Banking.close();
- startRunning();
- }
- }
- }
- } else {
- if (bankArea.contains(Player.getPosition().getX(), Player.getPosition().getY()) && !Inventory.isFull()) {
- walkToCoal();
- }
- if (coalArea.contains(Player.getPosition().getX(), Player.getPosition().getY()) && Player.getRSPlayer().getAnimation() == -1) {
- if (rock != null) {
- if (rock.isOnScreen()) {
- rock.click("Mine");
- time.reset();
- while (Player.getRSPlayer().getAnimation() == -1 && time.isRunning()) {
- sleep(10);
- }
- } else {
- Walking.walkTo(rock);
- Camera.turnToTile(rock.getPosition());
- }
- }
- } else {
- if (!Inventory.isFull() && !bankArea.contains(Player.getPosition().getX(), Player.getPosition().getY()) && !coalArea.contains(Player.getPosition().getX(), Player.getPosition().getY())) {
- walkToCoal();
- }
- }
- }
- return 100;
- }
- public void onPaint(Graphics g) {
- long timeRan = System.currentTimeMillis() - startTime;
- int currentLvl = Skills.getActualLevel("Mining");
- int gainedLvl = currentLvl - startLvl;
- int gainedXP = Skills.getXP("Mining") - startXP;
- int xpToLevel = Skills.getXPToNextLevel("Mining");
- int oreMined = (gainedXP / 50);
- long xpPerHour = (long)(gainedXP * 3600000d / timeRan);
- Graphics2D yolo = (Graphics2D)g;
- yolo.drawImage(img, -12, 287, null);
- Font font = new Font("Trajan Pro", Font.BOLD, 14);
- g.setColor(new Color(48, 47, 39));
- g.setFont(font);
- g.drawString(" " + Timing.msToString(timeRan), 203, 366);
- g.drawString(" " + currentLvl + " (+" + gainedLvl + ")", 203, 385);
- g.drawString(" " + gainedXP, 203, 403);
- g.drawString(" " + xpToLevel, 203, 422);
- g.drawString(" " + xpPerHour, 203, 443);
- g.drawString(" " + oreMined, 203, 462);
- }
- public void startRunning() {
- if(!Game.isRunOn()) {
- Options.setRunOn(true);
- }
- }
- public void walkToBank() {
- if (Walking.walkPath(bankpath))
- {
- }
- }
- public void walkToCoal() {
- if (Walking.walkPath(coalpath))
- {
- }
- }
- public static void worldHop(int worldNumber, boolean excludeFrees,
- boolean excludePopular) {
- logout();
- while (loggedOut()) {
- openWorldSelect();
- }
- while (worldSelectOpen()) {
- selectWorld(worldNumber, excludeFrees, excludePopular);
- }
- }
- public static void selectWorld(int worldNumber, boolean excludeFrees,
- boolean excludePopular) {
- ArrayList<Point> world = new ArrayList<Point>();
- int counter = 1;
- while ((worldNumber == 7 || worldNumber == 15 || worldNumber == 23
- || worldNumber == 24 || worldNumber == 31 || worldNumber == 32
- || worldNumber == 39 || worldNumber == 40 || worldNumber == 47
- || worldNumber == 48 || worldNumber == 55 || worldNumber == 56
- || worldNumber == 63 || worldNumber == 64 || worldNumber == 71 || worldNumber == 72)) {
- worldNumber = General.random(1, 78);
- if ((worldNumber == 1 || worldNumber == 2) && excludePopular) {
- continue;
- }
- if ((worldNumber == 8 || worldNumber == 16 || worldNumber == 25 || worldNumber == 37)
- && excludeFrees) {
- continue;
- }
- }
- for (int columns = 230, y = 1; y < 5; columns = columns + 95, y++)
- {
- for (int rows = 81, x = 1; x < 17; rows = rows + 24, x++, counter++) {
- while (counter == 7 || counter == 15 || counter == 23
- || counter == 24 || counter == 31 || counter == 32
- || counter == 39 || counter == 40 || counter == 47
- || counter == 48 || counter == 55 || counter == 56
- || counter == 63 || counter == 64 || counter == 71
- || counter == 72) {
- world.add(new Point(0, 0));
- counter++;
- }
- world.add(new Point(columns, rows));
- }
- }
- worldNumber--;
- Mouse.clickBox(world.get(worldNumber).x - 10,
- world.get(worldNumber).y - 5, world.get(worldNumber).x + 10,
- world.get(worldNumber).y + 5, 1);
- for (int x = 0; x < 6; x++) // Waits up to 3 seconds for the login
- // screen. Checks every half a second
- // (Approx.)
- {
- if (loggedOut()) {
- break;
- }
- }
- }
- private void explodedrock() {
- RSNPC[] explodedrock = NPCs.findNearest("Rocks");
- if (explodedrock.length > 0) {
- println("Uh oh, Exploding rock detected, moving away..");
- Walking.walkPath(coalpath);
- sleep(500, 1700);
- }
- }
- public static boolean worldSelectOpen() {
- if (Login.getLoginState() == Login.STATE.LOGINSCREEN) {
- Color black = new Color(0, 0, 0);
- return (Screen.getColorAt(100, 200).equals(black));
- }
- return false;
- }
- public static boolean openWorldSelect() {
- if (Login.getLoginState() == Login.STATE.LOGINSCREEN) {
- Mouse.clickBox(10, 465, 100, 495, 0);
- for (int x = 0; x < 10; x++) {
- if (worldSelectOpen()) {
- return true;
- }
- }
- }
- return false;
- }
- public static boolean loggedOut() {
- return (Login.getLoginState() == Login.STATE.LOGINSCREEN)
- && !(Screen.getColorAt(100, 200).equals(new Color(0, 0, 0)));
- }
- public static boolean logout() {
- if (Login.getLoginState() == Login.STATE.INGAME) {
- Login.logout();
- for (int x = 0; x < 6; x++) {
- if (loggedOut()) {
- return true;
- }
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement