Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.*;
- import javax.imageio.ImageIO;
- import java.io.IOException;
- import java.net.URL;
- import java.awt.*;
- import javax.imageio.ImageIO;
- import java.io.IOException;
- import java.net.URL;
- import org.rsbot.event.events.MessageEvent;
- import org.rsbot.event.listeners.MessageListener;
- import org.rsbot.event.listeners.PaintListener;
- import org.rsbot.script.Script;
- import org.rsbot.script.ScriptManifest;
- import org.rsbot.script.wrappers.RSObject;
- import org.rsbot.script.wrappers.RSTile;
- import org.rsbot.script.wrappers.RSTilePath;
- @ScriptManifest(
- authors = {"Rudie"},
- version = 1.00,
- keywords = ("miner"),
- description = "Mines and banks coal at Barbarian village",
- name = "BVcoal"
- )
- public class BVcoal extends Script implements PaintListener, MessageListener {
- int boothID = 26972;
- int[] oreID = {11931, 11932, 11930, 15504};
- int miningAnimation = 625;
- RSTile[] tilesToBank = {new RSTile(3084, 3423), new RSTile(3089, 3436),
- new RSTile(3090, 3449), new RSTile(3087, 3461), new RSTile(3079, 3471), new RSTile(3079, 3484),
- new RSTile(3092, 3491)};
- RSTilePath pathToBank;
- long startTime;
- int expGained = 0;
- int startExp = 0;
- int oresMined = 0;
- private String Status;
- public boolean onStart() {
- pathToBank = walking.newTilePath(tilesToBank);
- startTime = System.currentTimeMillis();
- mouse.setSpeed(random(3, 5));
- startExp = skills.getCurrentExp(skills.MINING);
- return true;
- }
- @Override
- public int loop() {
- if(random(1, 30) == 20) antiBan();
- if(inventory.isFull()) {
- if(atBank()) {
- doBank();
- } else {
- walk();
- }
- } else {
- if(atMine()) {
- mineOres();
- } else {
- walkR();
- }
- }
- return random(600, 800);
- }
- private void mineOres() {
- RSObject rock = objects.getNearest(oreID);
- if(getMyPlayer().getAnimation() != miningAnimation) {
- rock.doAction("Mine");
- if(random(1, 30) == 7) antiBan();
- Status = "Mining.";
- }
- sleep(3000, 4500);
- }
- private void walkR() {
- pathToBank.reverse();
- pathToBank.traverse();
- pathToBank.reverse();
- Status = "Walking to mine.";
- }
- private void walk() {
- pathToBank.traverse();
- if(random(0, 30) == 15) antiBan();
- Status = "Walking to bank.";
- }
- public void onFinish() {
- log("Ty for using BVcoal.");
- env.saveScreenshot(true);
- }
- private boolean atBank() {
- RSObject bank = objects.getNearest(boothID);
- if(bank != null) {
- if(bank.isOnScreen()) {
- return true;
- }
- }
- return false;
- }
- private void doBank() {
- if(bank.isOpen()) {
- bank.depositAll();
- sleep(800, 1200);
- Status = "Banking.";
- } else {
- bank.open();
- Status = "Banking.";
- sleep(1800, 2200);
- }
- }
- private boolean atMine() {
- RSObject ore = objects.getNearest(oreID);
- if(random(1, 30) == 7) antiBan();
- if(ore != null) {
- if(ore.isOnScreen()) {
- return true;
- }
- }
- return false;
- }
- //START: Code generated using Enfilade's Easel
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch(IOException e) {
- return null;
- }
- }
- private final Color color1 = new Color(51, 51, 51, 159);
- private final Color color2 = new Color(0, 0, 0);
- private final Color color3 = new Color(255, 255, 255);
- private final BasicStroke stroke1 = new BasicStroke(1);
- private final Font font1 = new Font("Comic Sans MS", 1, 19);
- private final Font font2 = new Font("Comic Sans MS", 1, 14);
- private final Image img1 = getImage("http://images4.wikia.nocookie.net/__cb20100622212208/runescape/no/images/a/aa/120px-Dragon_Pickaxe_Detail.png");
- //END: Code generated using Enfilade's Easel
- /*
- * ----- PAINT -----
- */
- @Override
- public void onRepaint(Graphics g) {
- drawModel(g, objects.getNearest(oreID), Color.BLUE, "", Color.GREEN);
- drawModel(g, objects.getNearest(boothID), Color.GREEN, "", Color.GREEN);
- expGained = skills.getCurrentExp(skills.MINING) - startExp;
- long millis = System.currentTimeMillis() - startTime;
- long hours = millis / (1000 * 60 * 60);
- millis -= hours * (1000 * 60 * 60);
- long minutes = millis / (1000 * 60);
- millis -= minutes * (1000 * 60);
- long seconds = millis / 1000;
- float xpsec = 0;
- if((minutes > 0 || hours > 0 || seconds > 0)&& expGained > 0) {
- xpsec = ((float) expGained)/(float)(seconds + (minutes*60) + (hours*60*60));
- }
- float xpmin = xpsec * 60;
- float xphour = xpmin * 60;
- float oresec = 0;
- if((minutes > 0 || hours > 0 || seconds > 0)&& oresMined > 0) {
- oresec = ((float) oresMined)/(float)(seconds + (minutes*60) + (hours*60*60));
- }
- float oremin = oresec * 60;
- float orehour = oremin * 60;
- Graphics2D g1 = (Graphics2D)g;
- g1.setColor(color1);
- g1.fillRoundRect(4, 344, 494, 114, 16, 16);
- g1.setColor(color2);
- g1.setStroke(stroke1);
- g1.drawRoundRect(4, 344, 494, 114, 16, 16);
- g1.fillRect(6, 458, 93, 14);
- g1.drawRect(6, 458, 93, 14);
- g1.drawImage(img1, 372, 338, null);
- g1.setFont(font1);
- g1.setColor(color3);
- g1.drawString("BVcoal by Rudie", 132, 366);
- g1.setFont(font2);
- g1.drawString("Status: " + Status, 80, 405);
- g1.drawString("RunTime: " + hours + ":" + minutes + ":" + seconds, 257, 405);
- g1.drawString("Exp Gained: " + expGained, 80, 420);
- g1.drawString("Exp/H: " + (int)xphour, 257, 420);
- g1.drawString("Coal mined: " + oresMined, 80, 435);
- g1.drawString("Coal/H: " + (int)orehour, 257, 435);
- g1.drawString("Enjoy!", 610, 97);
- g.setColor(Color.red);
- g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
- g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
- final int percent = skills.getPercentToNextLevel(skills.MINING); //change the MINING to the stat u want
- g1.setColor(Color.RED);
- g1.fillRoundRect(157, 441, 100, 10, 15, 15); //these must be on same cordinates
- g1.setColor(Color.GREEN);
- g1.fillRoundRect(157, 441, percent, 10, 15, 15); //these must be on same cordinates
- g1.setColor(Color.black);
- g1.drawString("" + percent + "%", 200, 440); //this must be on the center of the bar
- g1.drawRoundRect(157, 441, 100, 10, 15, 15); //these must be on same cordinates
- g1.drawRoundRect(157, 441, percent, 10, 15, 15); //these must be on same cordinates
- }
- public void drawModel(Graphics g, RSObject o, Color c, String s, Color tc) {
- if(o != null) {
- Polygon[] model = o.getModel().getTriangles();
- Point point = calc.tileToScreen(o.getLocation());
- for(Polygon p : model) {
- g.setColor(c);
- g.fillPolygon(p);
- g.setColor(c.darker());
- g.drawPolygon(p);
- }
- g.setColor(tc);
- g.drawString(s, point.x - 75, point.y - 35);
- }
- }
- public RSTile[] reversePath(RSTile[] other) {
- RSTile[] t = new RSTile[other.length];
- for (int i = 0; i < t.length; i++) {
- t[i] = other[other.length - i - 1];
- }
- return t;
- }
- @Override
- public void messageReceived(MessageEvent e) {
- String txt = e.getMessage();
- if(txt.contains("You manage to mine some coal")) {
- oresMined++;
- }
- }
- private void antiBan() {
- int r = random(0, 30);
- switch(r) {
- case 3:
- mouse.moveSlightly();
- sleep(500, 800);
- break;
- case 7:
- mouse.moveRandomly(10, 50);
- break;
- case 16:
- mouse.moveOffScreen();
- sleep(500, 1000);
- break;
- case 18:
- camera.moveRandomly(random(750, 1250));
- break;
- case 20:
- camera.moveRandomly(random(750, 1250));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement