Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package scripts;
- import java.awt.Color;
- import java.awt.Image;
- import java.awt.Point;
- import java.util.ArrayList;
- import org.tribot.script.Script;
- import org.tribot.script.ScriptManifest;
- import org.tribot.script.methods.Colour;
- import org.tribot.script.methods.General;
- @ScriptManifest (authors = {"Patyfatycake"}, category = "Test", name = "test")
- public class test extends Script{
- final Color oreMiddle = new Color(253,163,111);;
- final Color invoHasTinOre = new Color(109,104,104);
- final Point middle = new Point(260,172);
- final Color menu = new Color(15,30,37);
- @Override
- public void run() {
- println(General.getScriptSpeed());
- while(true){
- Color i = Colour.getColour(new Point(582,227));
- if(!isBackground(i)){
- println("Dropping item");
- println(i);
- Point p = new Point(random(571,589),random(215,237));
- General.clickMouse(p , 3);
- if(equalsTolerance(Colour.getColour(new Point(p.x,p.y+90)),menu,15)){
- Point p1 = new Point(random(p.x-5,p.x+5), random(p.y+60,p.y+70));
- General.clickMouse(p1, 1);
- waitTillSlotOneEmpty(random(2000,2500));
- }else{
- Point p1 = new Point(random(p.x-5,p.x+5), random(p.y+40,p.y+50));
- General.clickMouse(p1, 1);
- waitTillSlotOneEmpty(random(2000,2500));
- }
- }else{
- println("Mining");
- Point[] position = getPointsWithColour();
- if(position.length > 0){
- General.clickMouse(closestPoint(position), 1);
- }
- sleep(600,800);
- waitTillNotMoving();
- println("Not moving");
- waitUntilOreMined();
- }
- }
- }
- private void waitTillSlotOneEmpty(int time){
- Timer t = new Timer(time);
- while(t.getTimeRemainingLong() > 0 && !isBackground(Colour.getColour(new Point(582,227)))){
- sleep(100,150);
- }
- }
- private Point[] getPointsWithColour(){
- Point[] p = new Point[0];
- for(int i = 0; i < 759; i++){
- for(int j = 0; j < 489; j++){
- Point point = new Point(i,j);
- Color c = Colour.getColour(point);
- if(c != null && equalsTolerance(c,oreMiddle,15)){
- Point[] extended = new Point[p.length+1];
- System.arraycopy(p, 0, extended, 0, p.length);
- extended[p.length] = (new Point(i,j));
- p=extended;
- }
- }
- }
- return p;
- }
- private boolean equalsTolerance(Color c,Color c1, int tolerance){
- final int min_red = c.getRed()-tolerance;
- final int max_red = c.getRed()+tolerance;
- final int min_blue = c.getBlue()-tolerance;
- final int max_blue = c.getBlue()+tolerance;
- final int min_green = c.getGreen()-tolerance;
- final int max_green = c.getGreen()+tolerance;
- return (c1.getRed() > min_red && c1.getRed() <= max_red
- && c1.getGreen() > min_green && c1.getGreen() <= max_green
- && c1.getBlue() > min_blue && c1.getBlue() <= max_blue);
- }
- private Point closestPoint(Point[] points){
- double closestDistance;
- Point closestPoint;
- if(points.length == 0)
- return null;
- closestPoint = points[0];
- closestDistance = middle.distance(points[0]);
- for(int i = 1; i < points.length; i++){
- double distance = middle.distance(points[i]);
- if(distance < closestDistance){
- closestDistance = distance;
- closestPoint = points[i];
- }
- }
- return closestPoint;
- }
- private void waitTillNotMoving(){
- Timer t = new Timer(1500);
- t.start();
- Point p = new Point(246,88);
- Color c = Colour.getColour(246,88);
- while(t.getTimeRemainingLong() > 0){
- if(!Colour.getColour(p).equals(c)){
- c = Colour.getColour(p);
- t.extend(2000-t.getTimeRemainingLong());
- }
- sleep(150);
- }
- }
- private void waitUntilOreMined(){
- Timer t = new Timer(4000);
- Point p = closestPoint(getPointsWithColour());
- Color c = Colour.getColour(p);
- t.start();
- while(t.getTimeRemainingLong() > 0 && isBackground(Colour.getColour(new Point(582,227)))){
- sleep(100,150);
- }
- }
- private boolean isBackground(final Color c){
- final int min_red = 63;
- final int max_red = 72;
- final int min_green = 53;
- final int max_green = 64;
- final int min_blue = 44;
- final int max_blue = 52;
- return (c.getRed() >= min_red && c.getRed() <= max_red
- && c.getGreen() >= min_green && c.getGreen() <= max_green
- && c.getBlue() >= min_blue && c.getBlue() <= max_blue);
- }
- private int random(int a, int b){
- int difference = b-a;
- return (int) ((Math.random()*difference)+a);
- }
- }
Add Comment
Please, Sign In to add comment