Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.scripts;
- import com.kbot2.handlers.eventSystem.eventListeners.PaintListener;
- import com.kbot2.scriptable.Script;
- import com.kbot2.scriptable.methods.wrappers.*;
- import com.kbot2.scriptable.methods.data.Skills;
- import com.kbot2.scriptable.methods.Calculations;
- import java.awt.*;
- import java.util.*;
- import java.text.DecimalFormat;
- public class iSlavery extends Script implements PaintListener {
- /* Configuration */
- boolean Breaks = true;
- boolean SwitchWorlds = true;
- int minBreak = 800; // (Min Amount Of Time Passed Before Break) Minutes
- int maxBreak = 900; // (Max Amount Of Time Passed Before Break) Minutes
- int minLength = 180; // (Min Amount Of Time To Break For) Minutes
- int maxLength = 300; // (Max Amount Of Time To Break For) Minutes
- /* Tiles / Locations */
- /* Credits to Kryptoxx For Mine Tiles - No internet while writing this so i couldn't get them */
- int mineID = 2491;
- int portalID = 2492;
- int auburyID = 553;
- int bankID = 11402;
- int doorID = 24381;
- int[] axeID = new int[]{ 1265, 1269, 1267, 1273, 1271, 1275 };
- Tile doorTile = new Tile( 3253, 3398 );
- Tile centerTile = new Tile( 2911, 4832 );
- Tile[] toEss = new Tile[]{
- new Tile(2911,4832), new Tile(2914,4837),
- new Tile(2919,4840), new Tile(2919,4845),
- new Tile(2923,4848)
- };
- Tile[] toShop = new Tile[]{
- new Tile(3258,3407), new Tile(3253,3401)
- };
- Tile[] toBank = new Tile[]{
- new Tile(3260,3411), new Tile(3253,3420)
- };
- /* Variables / Objects */
- int iStatus = 0;
- int iBreak;
- int iLength;
- int iBreaks;
- int iSwaps;
- int iLoads;
- long runTime;
- boolean Logged = false;
- boolean myLogout = false;
- /* GUI / Paint */
- int startExp;
- int startLevel;
- long startTimeMain;
- long startTime;
- int essMined;
- boolean myBreak;
- String myStatus = "Loading...";
- /* Script Information */
- public String getName() {
- return "iSlavery";
- }
- public String getAuthor() {
- return "Yumil";
- }
- public double getVersion() {
- return 2.0;
- }
- public String getDescription() {
- return "Please read forum post!";
- }
- public String[] getTags() {
- return new String[]{"Yumil", "Ess"};
- }
- /* Script Listener/Paint */
- public void onRepaint(Graphics g) {
- long runTimeMain = System.currentTimeMillis() - startTimeMain;
- runTime = System.currentTimeMillis() - startTime;
- int secs = ((int) ((runTimeMain / 1000) % 60));
- int mins = ((int) (((runTimeMain / 1000) / 60) % 60));
- int hours = ((int) ((((runTimeMain / 1000) / 60) / 60) % 60));
- int x = 30;
- int y = 30;
- essMined = (skills.getExperience(Skills.SKILL_MINING) - startExp) / 5;
- DecimalFormat d = new DecimalFormat("#,#00");
- d.setMaximumFractionDigits(0);
- g.setColor(Color.RED);
- g.drawString(getName() + " " + getVersion() + " | Created By: " + getAuthor(), x, y);
- g.setColor(Color.WHITE);
- y += 30;
- g.drawString("Current Runtime: " + d.format(hours) + ":" + d.format(mins) + ":" + d.format(secs), x, y);
- y += 30;
- g.drawString("Breaks Taken: " + iBreaks, x, y);
- y += 15;
- g.drawString("Worlds Swaps: " + iSwaps, x, y);
- y += 30;
- g.drawString("Ess Mined: " + essMined, x, y);
- y += 15;
- g.drawString("Loads Banked: " + iLoads, x, y);
- y += 15;
- g.drawString("Levels gained: " + (skills.getLevel(Skills.SKILL_MINING) - startLevel), x, y);
- y += 15;
- g.drawString("Current level: " + skills.getLevel(Skills.SKILL_MINING), x, y);
- y += 15;
- g.drawString("Experience gained: " + (skills.getExperience(Skills.SKILL_MINING) - startExp), x, y);
- y += 15;
- g.drawString("Next level: " + (skills.getLevel(Skills.SKILL_MINING) + 1), x, y);
- y += 15;
- g.drawString("Exp Required: " + (skills.getExperienceToNextLevel(Skills.SKILL_MINING)), x, y);
- y += 30;
- g.setColor(Color.RED);
- g.drawString("Status: " + myStatus, x, y);
- }
- /* Script Methods */
- /* Credits To Kryptoxx for getClosestEssence */
- public Tile getClosestEssence(int range, int... ids) {
- Tile myPos = getMyPlayer().getLocation();
- Tile emptyTile = new Tile(1,1);
- int minX = myPos.getX() - range;
- int minY = myPos.getY() - range;
- int maxX = myPos.getX() + range;
- int maxY = myPos.getY() + range;
- java.util.List<Tile> tileList = new ArrayList<Tile>();
- for (int x = minX; x < maxX; x++) {
- for (int y = minY; y < maxY; y++) {
- Obj o = getObjectAt(new Tile(x, y));
- if (o != null) {
- for (int id : ids) {
- if (o.getID() == id) {
- if(random(1,6) == 2)
- {
- tileList.add(new Tile(x,y));
- }
- }
- }
- }
- }
- }
- if (tileList.isEmpty())
- return emptyTile;
- double closest = 9999;
- Tile closestTile = null;
- for (Tile tile : tileList) {
- double distance = myPos.distanceToPrecise(tile);
- if (distance < closest) {
- closest = distance;
- closestTile = tile;
- }
- }
- return closestTile;
- }
- public boolean myLogOut() {
- if(interfaces.interfaceGroupExists(751))
- {
- myStatus = "Logging Out";
- mouse.moveMouse(752, 10, 4, 4);
- mouse.clickMouse(true);
- sleep(1000, 1500);
- if(interfaces.getInterface(182, 6).isValid())
- {
- mouse.moveMouse(640, 375, 4, 5);
- mouse.clickMouse(true);
- sleep(2500, 5000);
- return true;
- }
- else
- return false;
- }
- else
- return false;
- }
- public boolean myWorld() {
- if(interfaces.interfaceGroupExists(744))
- {
- myStatus = "Switching Worlds";
- clickMouse(new Point(378, 247), 3, 4, true);
- sleep(random(2000, 3000));
- if(interfaces.getInterface(744, 15).isValid())
- {
- clickMouse(new Point(596, 123), 2, 2, true);
- sleep(random(2000, 3000));
- clickMouse(new Point(700, 345), 2, 2, true);
- sleep(random(2000, 3000));
- clickMouse(new Point(130, 135), 0, 300, true);
- sleep(random(2000, 3000));
- return interfaces.getInterface(744, 70).isValid();
- }
- else
- return false;
- }
- else return false;
- }
- public boolean inMine() {
- return distanceTo(centerTile) < 50;
- }
- public boolean onStart() {
- startTime = System.currentTimeMillis();
- startTimeMain = System.currentTimeMillis();
- startExp = skills.getExperience(Skills.SKILL_MINING);
- startLevel = skills.getLevel(Skills.SKILL_MINING);
- essMined = 0;
- iBreaks = 0;
- iSwaps = 0;
- iLoads = 0;
- minBreak = ((minBreak * 60) * 1000);
- maxBreak = ((maxBreak * 60) * 1000);
- minLength = ((minLength * 60) * 1000);
- maxLength = ((maxLength * 60) * 1000);
- iBreak = (random(minBreak, maxBreak));
- iLength = (random(minLength, maxLength));
- return true;
- }
- public void onStop() {
- long runTimeMain = System.currentTimeMillis() - startTimeMain;
- int secs = ((int) ((runTimeMain / 1000) % 60));
- int mins = ((int) (((runTimeMain / 1000) / 60) % 60));
- int hours = ((int) ((((runTimeMain / 1000) / 60) / 60) % 60));
- DecimalFormat d = new DecimalFormat("#,#00");
- d.setMaximumFractionDigits(0);
- log("Run time: " + d.format(hours) + ":" + d.format(mins) + ":" + d.format(secs));
- log("Ess Mined: " + essMined);
- log("Experience gained: " + (skills.getExperience(Skills.SKILL_MINING) - startExp));
- log("Levels gained: " + (skills.getLevel(Skills.SKILL_MINING) - startLevel));
- }
- public int loop() {
- try {
- mouse.setMouseSpeed(1);
- if(walking.getEnergy() > 35)
- walking.setRunning(true);
- switch (iStatus) {
- /* Inventory Checks */
- case 0: {
- if(inventory.isFull() || inventory.contains(7936))
- iStatus = 5;
- else
- iStatus = 1;
- return random(500, 750);
- }
- /* To Aubury */
- case 1: {
- if(Breaks && SwitchWorlds && (System.currentTimeMillis() - startTime) > iBreak && random(1, 4) == 2) {
- iStatus = 6;
- return 1;
- }
- else if(Breaks && (System.currentTimeMillis() - startTime) > iBreak){
- iStatus = 7;
- return 1;
- }
- camera.setCompass('n');
- Obj myBank = getClosestObject(10, bankID);
- if(myBank != null)
- {
- myStatus = "Walking To Shop";
- walking.walkPath(walking.randomizePath(toShop, 2, 2));
- }
- else
- iStatus = 2;
- return random(500, 750);
- }
- /* At Aubury To Mine */
- case 2: {
- if(getMyPlayer().isMoving())
- return 1;
- NPC myAubury = npcs.getClosest(10, auburyID);
- if(myAubury != null)
- {
- Obj myDoor = getClosestObject(15, doorID);
- if(myDoor != null && myDoor.getLocation() == doorTile)
- {
- myStatus = "Opening Door";
- myDoor.doActionAtDoor('n', "Open");
- return random(500, 1000);
- }
- if(!Calculations.onScreen(myAubury.getScreenPos()))
- {
- myStatus = "Walking To Aubury";
- walking.walkToMM(myAubury.getLocation());
- return random(500, 750);
- }
- if(walking.atTile(myAubury.getLocation(), "Teleport"))
- return random(500, 750);
- }
- if(inMine())
- iStatus = 3;
- else
- return random(500, 750);
- return random(1000, 1250);
- }
- /* At Mine To Ess */
- case 3: {
- if(getMyPlayer().isMoving())
- return 1;
- if(distanceTo(centerTile) < 10)
- {
- myStatus = "Walking To Ess";
- walking.walkPath(walking.randomizePath(toEss, 2, 2));
- return random(500, 700);
- }
- iStatus = 4;
- return random(500, 700);
- }
- /* At Ess Lets Mine */
- case 4: {
- if(!inventory.isFull())
- {
- myStatus = "Mining Ess";
- camera.setAltitude(true);
- if(!getMyPlayer().isMoving() && getMyPlayer().getAnimation() == -1)
- {
- Tile myEss = getClosestEssence(25, mineID);
- if(myEss != null)
- {
- camera.getAngleTo(myEss);
- walking.atTile(myEss, "Mine");
- return random(3000, 4000);
- }
- }
- else
- return random(500, 750);
- }
- else {
- iStatus = 5;
- return random(500, 750);
- }
- }
- /* Got Ess To Bank */
- case 5: {
- if(getMyPlayer().isMoving())
- return 1;
- camera.setCompass('n');
- Obj myPortal = getClosestObject(25, portalID);
- if(myPortal != null)
- {
- sleep(500, 700);
- if(!Calculations.onScreen(myPortal.getScreenPos()))
- {
- myStatus = "Leaving Mine";
- walking.walkToMM(myPortal.getLocation());
- return random(500, 700);
- }
- myPortal.doAction("Use");
- }
- NPC myAubury = npcs.getClosest(10, auburyID);
- if(myAubury != null)
- {
- Obj myDoor = getClosestObject(15, doorID);
- if(myDoor != null && myDoor.getLocation() == doorTile)
- {
- myStatus = "Opening Door";
- myDoor.doActionAtDoor('n', "Open");
- return random(500, 1000);
- }
- myStatus = "Walking To Bank";
- walking.walkPath(walking.randomizePath(toBank, 2, 2));
- return random(500, 700);
- }
- Obj myBank = getClosestObject(10, bankID);
- if(myBank != null)
- {
- if(!Calculations.onScreen(myBank.getScreenPos()))
- {
- walking.walkToMM(myBank.getLocation());
- return random(500, 700);
- }
- sleep(500, 700);
- if(myBank.doAction("Use-quickly")) {
- sleep(1000, 2000);
- bank.depositAllExcept(axeID);
- while(inventory.contains(7936))
- bank.depositAllExcept(axeID);
- if(bank.getBankInterfaceGroup().isValid())
- {
- bank.close();
- iStatus = 0;
- iLoads++;
- return random(500, 750);
- }
- return random(500, 750);
- }
- }
- return random(500, 750);
- }
- case 6: {
- myLogout = true;
- if(!Logged) {
- if(myLogOut()) {
- Logged = true;
- return random(500, 750);
- }
- }
- else {
- if(myWorld())
- {
- myLogout = false;
- iStatus = 0;
- Logged = false;
- myStatus = "Taking A Break!";
- iBreaks++;
- iSwaps++;
- sleep(iLength);
- startTime = System.currentTimeMillis();
- Logged = false;
- return 1;
- }
- return random(500, 750);
- }
- return random(500, 750);
- }
- case 7: {
- myLogout = true;
- if(!Logged) {
- if(myLogOut()) {
- Logged = true;
- iStatus = 0;
- myStatus = "Taking A Break!";
- iBreaks++;
- sleep(iLength);
- startTime = System.currentTimeMillis();
- Logged = false;
- return 1;
- }
- }
- }
- }
- }
- catch(Exception err) {
- log("Exception thrown!");
- }
- return random(1000, 2000);
- }
- public boolean onRandomActivate(Random random) {
- return !(random.equals("AutoLogin") && !myLogout);
- }
- }
Add Comment
Please, Sign In to add comment