Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import org.rsbot.event.events.MessageEvent;
- import org.rsbot.event.listeners.MessageListener;
- import org.rsbot.event.listeners.PaintListener;
- import org.rsbot.script.*;
- import org.rsbot.script.methods.*;
- import org.rsbot.script.methods.Game.Tab;
- import org.rsbot.script.methods.Magic.Spell;
- import org.rsbot.script.wrappers.*;
- @ScriptManifest ( authors = { "Ministry" },
- keywords = { "Magic, Hunter Kit" },
- name = "MinistryOfHunterKits",
- description = "Uses Lunar to generate hunter kits.",
- version = 1.0 )
- public class MinistryOfHunterKits extends Script implements PaintListener, MessageListener {
- private final int astral = 9075, kit = 11159, chest_ID = 12308;
- private int expGained, expHour, casts, castsHour, startExp, startLvl, currentLvl,
- lvlsGained, percentTNL, timeTill;
- private long startTime, millis, hours, minutes, seconds, STL, MTL, HTL;
- private float sXP, mXP, hXP;
- private BufferedImage normal = null, clicked = null;
- private boolean bank_kit = false;
- private String status = "";
- private enum State { CAST, BANK, WAIT, ANTIBAN };
- @Override
- public boolean onStart() {
- startExp = skills.getCurrentExp(Skills.MAGIC);
- startLvl = skills.getCurrentLevel(Skills.MAGIC);
- startTime = System.currentTimeMillis();
- log(Color.MAGENTA, "MinistryOfHunterKits starting...");
- try {
- final URL cursorURL = new URL("http://i53.tinypic.com/28b7bf9.png");
- final URL clickedURL = new URL("http://i55.tinypic.com/30vkjz9.png");
- normal = ImageIO.read(cursorURL);
- clicked = ImageIO.read(clickedURL);
- } catch (Exception e) {
- log.severe("Error obtaining custom cursor.");
- }
- return true;
- }
- public void cast() {
- status = "Casting...";
- if (game.getCurrentTab() != Game.TAB_MAGIC) {
- game.openTab(Game.TAB_MAGIC, true);
- } else {
- magic.castSpell(Spell.HUNTER_KIT);
- mouse.moveRandomly(2, 4);
- sleep(random(120, 200));
- }
- }
- public void bank() {
- status = "Banking...";
- RSObject chest = objects.getNearest(chest_ID);
- if (!bank.isOpen() && inventory.contains(kit)) {
- chest.interact("Bank");
- sleep(400);
- }
- if (bank.isOpen() && inventory.contains(kit)) {
- bank.depositAllExcept(astral);
- sleep(450);
- }
- if (bank.isOpen() && !inventory.contains(kit)) {
- bank_kit = false;
- bank.close();
- sleep(400);
- }
- }
- public void antiBan() {
- status = "Antiban...";
- int b = random(0, 24);
- switch (b) {
- case 1:
- if (random(0, 24) == 5) {
- mouse.moveSlightly();
- sleep(200, 600);
- mouse.moveRandomly(150, 350);
- }
- break;
- case 2:
- if (random(0, 15) == 2) {
- camera.setAngle(random(30, 70));
- sleep(400, 1200);
- }
- break;
- case 3:
- if (random(0, 24) == 6) {
- mouse.moveOffScreen();
- sleep(1200, 2000);
- }
- break;
- case 5:
- if (random(0, 15) == 4) {
- mouse.moveRandomly(900);
- sleep(1400, 2400);
- }
- break;
- case 6:
- if (random(0, 19) == 5) {
- game.openTab(Game.TAB_STATS);
- sleep(200);
- mouse.move(589, 368, 2, 2);
- sleep(400, 500);
- mouse.sleep(1500);
- game.openTab(Game.TAB_MAGIC);
- }
- break;
- default:
- break;
- }
- }
- public void messageReceived(MessageEvent e) {
- String x = e.getMessage();
- if (x.contains("enough astral runes")) {
- stopScript(true); }
- if (x.contains("need at least one free")) {
- bank_kit = true;
- }
- }
- private State checkState() {
- if (game.isLoggedIn()) {
- if (!bank.isOpen() && bank_kit == false) {
- return State.CAST; }
- if (bank_kit == true) {
- bank(); }
- while(getMyPlayer().getAnimation() == 6303) {
- return State.ANTIBAN;
- }
- }
- return State.WAIT;
- }
- public int loop() {
- mouse.setSpeed(random(4, 6));
- switch (checkState()) {
- case CAST:
- cast();
- return random (150, 750);
- case BANK:
- bank();
- return random (150, 750);
- case WAIT:
- sleep(random(400, 500));
- return random (150, 750);
- case ANTIBAN:
- antiBan();
- return random (150, 750);
- }
- return (random(150, 400));
- }
- private final Color color1 = new Color(0, 0, 0);
- private final Color color2 = new Color(255, 102, 0);
- private final Color color3 = new Color(204, 102, 0);
- private final Color color4 = new Color(0, 0, 0, 135);
- private final Font font1 = new Font("Tahoma", 1, 11);
- private final Font font2 = new Font("Tahoma", 0, 9);
- public void onRepaint(Graphics g) {
- 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;
- if ((minutes > 0 || hours > 0 || seconds > 0) && expGained > 0) {
- sXP = (float) expGained
- / (float) (seconds + minutes * 60 + hours * 60 * 60);
- }
- mXP = sXP * 60;
- hXP = mXP * 60;
- if (sXP > 0) {
- STL = (int) (skills.getExpToNextLevel(Skills.MAGIC) / sXP);
- }
- if (STL >= 60) {
- MTL = STL / 60;
- STL -= MTL * 60;
- } else {
- MTL = 0;
- }
- if (MTL >= 60) {
- HTL = MTL / 60;
- MTL -= HTL * 60;
- } else {
- HTL = 0;
- }
- casts = (skills.getCurrentExp(Skills.MAGIC) - startExp)/70;
- castsHour = (int) ((casts) * 3600000D/ (System.currentTimeMillis() - startTime));
- expGained = casts*70;
- expHour = (int) ((expGained) * 3600000D / (System.currentTimeMillis() - startTime));
- currentLvl = skills.getCurrentLevel(Skills.MAGIC);
- lvlsGained = currentLvl - startLvl;
- timeTill = (int) skills.getExpToNextLevel(Skills.MAGIC)/expHour;
- percentTNL = skills.getPercentToNextLevel(Skills.MAGIC);
- final int percentBar = (int) (skills.getPercentToNextLevel(Skills.MAGIC)*1.97);
- ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- g.setColor(color4);
- g.fillRect(311, 230, 197, 101);
- g.drawRect(311, 230, 197, 101);
- g.setColor(color2);
- g.fillRect(308, 227, 197, 101);
- g.setColor(color1);
- g.drawRect(308, 227, 197, 101);
- g.setColor(color2);
- g.fillRect(308, 314, 197, 13);
- g.setColor(color1);
- g.drawRect(308, 314, 197, 13);
- g.setColor(color3);
- g.fillRect(308, 314, percentBar, 13);
- g.setColor(color1);
- g.drawRect(308, 314, percentBar, 13);
- g.setFont(font1);
- g.drawString("MinistryOfHunterKits v1.0", 335, 245);
- g.setFont(font2);
- g.drawString("Casts: " +casts, 320, 265);
- g.drawString("Casts/h: " +castsHour, 392, 265);
- g.drawString("Exp: " +expGained, 320, 278);
- g.drawString("Exp/h: " +expHour, 392, 278);
- g.drawString("Level: " + currentLvl + " (+"+ lvlsGained +")", 320, 292);
- g.drawString("TimeTill: " + HTL + ":" + MTL + ":" + STL, 392, 293);
- g.drawString("Status: " + status ,392, 307);
- g.drawString(percentTNL + "%", 399, 325);
- g.drawString("Runtime: " +hours + ":" + minutes + ":" + seconds, 319, 307);
- if (clicked != null) {
- final int mx = (int)mouse.getLocation().getX();
- final int my = (int)mouse.getLocation().getY();
- final long mpt = System.currentTimeMillis() - mouse.getPressTime();
- if (mouse.getPressTime() == -1 || mpt >= 300)
- g.drawImage(normal, mx - 10, my - 6, null);
- if (mpt < 300)
- g.drawImage(clicked, mx - 10, my - 6, null);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment