rendered paste bodyimport java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.io.File;
import javax.swing.JOptionPane;
import impsoft.nexus.bots.color.constants.Areas;
import impsoft.nexus.bots.color.constants.Info;
import impsoft.nexus.bots.color.methods.ColorScript;
import impsoft.nexus.bots.color.scriptobjects.RGB;
import impsoft.nexus.components.paint.PaintJob;
public class lardMiner extends ColorScript {
rsObject rock;
@Override
public String getAuthor() {
return "Lardmaster";
}
@Override
public String getDescription() {
return "A very advanced Powerminer that you hopefully bought. \n";
}
public boolean bugme = true; // **do you want to ensure the script
// works?**
private long time;
private int mineTime;
@SuppressWarnings("unused")
private boolean paintDebug;
private bitmapMask oreMask;
// startup?
@Override
public boolean doStart(String arg0, String[] arg1)
throws InterruptedException {
time = System.currentTimeMillis();
if (bugme)
mineTime = Integer
.parseInt(JOptionPane
.showInputDialog("Max wait time after clicking without getting ore?"));
else
mineTime = random(3000, 4000);
if (bugme)
paintDebug = (JOptionPane.showConfirmDialog(null,
"Show debug rectangles? (interferes if on ibot lite)",
"Debug Q", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
else
paintDebug = false;
PaintJob pj = new PaintJob() {
private long start = System.currentTimeMillis();
@Override
public boolean timeUp() {
return start + 10000 < System.currentTimeMillis();
}
@Override
public void paint(Graphics g) {
Rectangle r = rock.findOne();
g.setColor(new Color(255, 255, 255));
g.drawRect(r.x, r.y, r.width, r.height);
}
};
RGB[][] picture = LardMethods.convertShort(loadBitmap("bitmaps/iron1.bmp"));
rock = new rsObject(this, "Rock", picture, new Rectangle(0, 0,
picture.length - 10, picture[0].length - 10), new Rectangle(0,
0, picture.length + 10, picture[0].length + 10));
picture = LardMethods.convertShort(loadBitmap("bitmaps/iron2.bmp"));
rock.add(picture);
LardMethods.convertShort(loadBitmap("bitmaps/iron3.bmp"));
rock.add(picture);
oreMask = new bitmapMask(LardMethods.convertShort(loadBitmap("bitmaps/oremask.bmp")));
if (!rock.clickOne("mine")) {
log("Rock finding method not working, quitting");
log("this is where i thought the rock was:");
addPaintJob(pj);
mouseClickLeft(Areas.MINI_MAP_CENTER);
return false;
} else {
mouseClickLeft(Areas.MINI_MAP_CENTER);
log("we located a rock at this location:");
addPaintJob(pj);
if (bugme)
if (JOptionPane.showConfirmDialog(null,
"Is the Drawn rectangle a rock?",
"Checking Rockfinding", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
log("couldnt find rock at startup... according to you...");
return false;
}
log("Script started, and ready to go!");
return true;
}
}
@Override
public void script() throws InterruptedException {
int invcount;
while (time + 7200 < System.currentTimeMillis()) {
while (inventoryCount() < 28) {
if (messups > 10) {
log("***messing up too many times, exiting to avoid bannage***");
return;
}
invcount = inventoryCount();
mine();
long marker = System.currentTimeMillis();
while (inventoryCount() == invcount
&& marker + mineTime < System.currentTimeMillis())
sleep(random(250, 1200));
}
dropOres();
}
}
PaintJob pj2 = new PaintJob() {
private long start = System.currentTimeMillis();
@Override
public boolean timeUp() {
return start + 1000 < System.currentTimeMillis();
}
@Override
public void paint(Graphics g) {
Rectangle r = rock.findOne(4);
g.setColor(new Color(255, 255, 255));
g.drawRect(r.x, r.y, r.width, r.height);
}
};
private int messups = 0;
private void mine() {
if (rock.clickOne("Mine")) {
addPaintJob(pj2);
log("clicked a rock");
messups = 0;
return;
} else {
log("rock click falure");
addPaintJob(pj2);
messups++;
}
}
public void dropOres() throws InterruptedException {
for (int i = 0; i < 28; i++)
if (itemExist(i))
if (oreMask.find(getColorArray2d(), Info
.getInventoryRectangle(i)) != null) {
mouseMove(Info.getInventoryRectangle(i));
if (getTopText().contains("ore")) {
mouseClickRight(theBot.mouse_x, theBot.mouse_y);
if (!getMenu(Areas.INVENTORY, random(300, 400))
.selectContains("Drop"))
getMenu(Areas.INVENTORY, random(300, 400))
.selectContains("xit");
}
}
}
}