Guest User

Untitled

a guest
Jun 23rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.32 KB | None | 0 0
  1. package com.scripts;
  2.  
  3. import com.kbot2.handlers.eventSystem.eventListeners.PaintListener;
  4. import com.kbot2.scriptable.Script;
  5. import com.kbot2.scriptable.methods.wrappers.*;
  6. import com.kbot2.scriptable.methods.data.Skills;
  7. import com.kbot2.scriptable.methods.Calculations;
  8.  
  9. import java.awt.*;
  10. import java.util.*;
  11. import java.text.DecimalFormat;
  12.  
  13. public class iSlavery extends Script implements PaintListener {
  14.  
  15. /* Configuration */
  16.  
  17. boolean Breaks = true;
  18. boolean SwitchWorlds = true;
  19.  
  20. int minBreak = 800; // (Min Amount Of Time Passed Before Break) Minutes
  21. int maxBreak = 900; // (Max Amount Of Time Passed Before Break) Minutes
  22. int minLength = 180; // (Min Amount Of Time To Break For) Minutes
  23. int maxLength = 300; // (Max Amount Of Time To Break For) Minutes
  24.  
  25. /* Tiles / Locations */
  26.  
  27. /* Credits to Kryptoxx For Mine Tiles - No internet while writing this so i couldn't get them */
  28.  
  29. int mineID = 2491;
  30. int portalID = 2492;
  31. int auburyID = 553;
  32. int bankID = 11402;
  33. int doorID = 24381;
  34. int[] axeID = new int[]{ 1265, 1269, 1267, 1273, 1271, 1275 };
  35.  
  36. Tile doorTile = new Tile( 3253, 3398 );
  37. Tile centerTile = new Tile( 2911, 4832 );
  38.  
  39. Tile[] toEss = new Tile[]{
  40. new Tile(2911,4832), new Tile(2914,4837),
  41. new Tile(2919,4840), new Tile(2919,4845),
  42. new Tile(2923,4848)
  43. };
  44.  
  45. Tile[] toShop = new Tile[]{
  46. new Tile(3258,3407), new Tile(3253,3401)
  47.  
  48. };
  49.  
  50. Tile[] toBank = new Tile[]{
  51. new Tile(3260,3411), new Tile(3253,3420)
  52. };
  53.  
  54. /* Variables / Objects */
  55.  
  56. int iStatus = 0;
  57. int iBreak;
  58. int iLength;
  59. int iBreaks;
  60. int iSwaps;
  61. int iLoads;
  62.  
  63. long runTime;
  64.  
  65. boolean Logged = false;
  66. boolean myLogout = false;
  67.  
  68. /* GUI / Paint */
  69.  
  70. int startExp;
  71. int startLevel;
  72. long startTimeMain;
  73. long startTime;
  74. int essMined;
  75.  
  76. boolean myBreak;
  77.  
  78. String myStatus = "Loading...";
  79.  
  80. /* Script Information */
  81.  
  82. public String getName() {
  83. return "iSlavery";
  84. }
  85.  
  86. public String getAuthor() {
  87. return "Yumil";
  88. }
  89.  
  90. public double getVersion() {
  91. return 2.0;
  92. }
  93.  
  94. public String getDescription() {
  95. return "Please read forum post!";
  96. }
  97.  
  98. public String[] getTags() {
  99. return new String[]{"Yumil", "Ess"};
  100. }
  101.  
  102. /* Script Listener/Paint */
  103.  
  104. public void onRepaint(Graphics g) {
  105.  
  106. long runTimeMain = System.currentTimeMillis() - startTimeMain;
  107. runTime = System.currentTimeMillis() - startTime;
  108.  
  109. int secs = ((int) ((runTimeMain / 1000) % 60));
  110. int mins = ((int) (((runTimeMain / 1000) / 60) % 60));
  111. int hours = ((int) ((((runTimeMain / 1000) / 60) / 60) % 60));
  112.  
  113. int x = 30;
  114. int y = 30;
  115.  
  116. essMined = (skills.getExperience(Skills.SKILL_MINING) - startExp) / 5;
  117.  
  118. DecimalFormat d = new DecimalFormat("#,#00");
  119. d.setMaximumFractionDigits(0);
  120.  
  121. g.setColor(Color.RED);
  122. g.drawString(getName() + " " + getVersion() + " | Created By: " + getAuthor(), x, y);
  123.  
  124. g.setColor(Color.WHITE);
  125. y += 30;
  126. g.drawString("Current Runtime: " + d.format(hours) + ":" + d.format(mins) + ":" + d.format(secs), x, y);
  127.  
  128. y += 30;
  129. g.drawString("Breaks Taken: " + iBreaks, x, y);
  130. y += 15;
  131. g.drawString("Worlds Swaps: " + iSwaps, x, y);
  132.  
  133. y += 30;
  134. g.drawString("Ess Mined: " + essMined, x, y);
  135. y += 15;
  136. g.drawString("Loads Banked: " + iLoads, x, y);
  137. y += 15;
  138. g.drawString("Levels gained: " + (skills.getLevel(Skills.SKILL_MINING) - startLevel), x, y);
  139. y += 15;
  140. g.drawString("Current level: " + skills.getLevel(Skills.SKILL_MINING), x, y);
  141. y += 15;
  142. g.drawString("Experience gained: " + (skills.getExperience(Skills.SKILL_MINING) - startExp), x, y);
  143. y += 15;
  144. g.drawString("Next level: " + (skills.getLevel(Skills.SKILL_MINING) + 1), x, y);
  145. y += 15;
  146. g.drawString("Exp Required: " + (skills.getExperienceToNextLevel(Skills.SKILL_MINING)), x, y);
  147.  
  148. y += 30;
  149. g.setColor(Color.RED);
  150. g.drawString("Status: " + myStatus, x, y);
  151. }
  152.  
  153. /* Script Methods */
  154.  
  155. /* Credits To Kryptoxx for getClosestEssence */
  156.  
  157. public Tile getClosestEssence(int range, int... ids) {
  158. Tile myPos = getMyPlayer().getLocation();
  159. Tile emptyTile = new Tile(1,1);
  160. int minX = myPos.getX() - range;
  161. int minY = myPos.getY() - range;
  162. int maxX = myPos.getX() + range;
  163. int maxY = myPos.getY() + range;
  164. java.util.List<Tile> tileList = new ArrayList<Tile>();
  165. for (int x = minX; x < maxX; x++) {
  166. for (int y = minY; y < maxY; y++) {
  167. Obj o = getObjectAt(new Tile(x, y));
  168. if (o != null) {
  169. for (int id : ids) {
  170. if (o.getID() == id) {
  171. if(random(1,6) == 2)
  172. {
  173. tileList.add(new Tile(x,y));
  174. }
  175. }
  176. }
  177. }
  178. }
  179. }
  180. if (tileList.isEmpty())
  181. return emptyTile;
  182. double closest = 9999;
  183. Tile closestTile = null;
  184. for (Tile tile : tileList) {
  185. double distance = myPos.distanceToPrecise(tile);
  186. if (distance < closest) {
  187. closest = distance;
  188. closestTile = tile;
  189. }
  190. }
  191. return closestTile;
  192. }
  193.  
  194. public boolean myLogOut() {
  195.  
  196. if(interfaces.interfaceGroupExists(751))
  197. {
  198. myStatus = "Logging Out";
  199.  
  200. mouse.moveMouse(752, 10, 4, 4);
  201. mouse.clickMouse(true);
  202.  
  203. sleep(1000, 1500);
  204.  
  205. if(interfaces.getInterface(182, 6).isValid())
  206. {
  207. mouse.moveMouse(640, 375, 4, 5);
  208. mouse.clickMouse(true);
  209.  
  210. sleep(2500, 5000);
  211.  
  212. return true;
  213. }
  214. else
  215. return false;
  216. }
  217. else
  218. return false;
  219. }
  220.  
  221. public boolean myWorld() {
  222.  
  223. if(interfaces.interfaceGroupExists(744))
  224. {
  225. myStatus = "Switching Worlds";
  226.  
  227. clickMouse(new Point(378, 247), 3, 4, true);
  228. sleep(random(2000, 3000));
  229.  
  230. if(interfaces.getInterface(744, 15).isValid())
  231. {
  232. clickMouse(new Point(596, 123), 2, 2, true);
  233. sleep(random(2000, 3000));
  234.  
  235. clickMouse(new Point(700, 345), 2, 2, true);
  236. sleep(random(2000, 3000));
  237.  
  238. clickMouse(new Point(130, 135), 0, 300, true);
  239. sleep(random(2000, 3000));
  240.  
  241. return interfaces.getInterface(744, 70).isValid();
  242. }
  243. else
  244. return false;
  245. }
  246. else return false;
  247. }
  248.  
  249. public boolean inMine() {
  250. return distanceTo(centerTile) < 50;
  251. }
  252.  
  253. public boolean onStart() {
  254.  
  255. startTime = System.currentTimeMillis();
  256. startTimeMain = System.currentTimeMillis();
  257. startExp = skills.getExperience(Skills.SKILL_MINING);
  258. startLevel = skills.getLevel(Skills.SKILL_MINING);
  259. essMined = 0;
  260. iBreaks = 0;
  261. iSwaps = 0;
  262. iLoads = 0;
  263.  
  264.  
  265. minBreak = ((minBreak * 60) * 1000);
  266. maxBreak = ((maxBreak * 60) * 1000);
  267. minLength = ((minLength * 60) * 1000);
  268. maxLength = ((maxLength * 60) * 1000);
  269.  
  270. iBreak = (random(minBreak, maxBreak));
  271. iLength = (random(minLength, maxLength));
  272.  
  273. return true;
  274. }
  275.  
  276. public void onStop() {
  277.  
  278. long runTimeMain = System.currentTimeMillis() - startTimeMain;
  279. int secs = ((int) ((runTimeMain / 1000) % 60));
  280. int mins = ((int) (((runTimeMain / 1000) / 60) % 60));
  281. int hours = ((int) ((((runTimeMain / 1000) / 60) / 60) % 60));
  282.  
  283. DecimalFormat d = new DecimalFormat("#,#00");
  284. d.setMaximumFractionDigits(0);
  285.  
  286. log("Run time: " + d.format(hours) + ":" + d.format(mins) + ":" + d.format(secs));
  287. log("Ess Mined: " + essMined);
  288. log("Experience gained: " + (skills.getExperience(Skills.SKILL_MINING) - startExp));
  289. log("Levels gained: " + (skills.getLevel(Skills.SKILL_MINING) - startLevel));
  290. }
  291.  
  292. public int loop() {
  293. try {
  294. mouse.setMouseSpeed(1);
  295.  
  296. if(walking.getEnergy() > 35)
  297. walking.setRunning(true);
  298.  
  299. switch (iStatus) {
  300.  
  301. /* Inventory Checks */
  302.  
  303. case 0: {
  304. if(inventory.isFull() || inventory.contains(7936))
  305. iStatus = 5;
  306. else
  307. iStatus = 1;
  308.  
  309. return random(500, 750);
  310. }
  311.  
  312. /* To Aubury */
  313.  
  314. case 1: {
  315.  
  316. if(Breaks && SwitchWorlds && (System.currentTimeMillis() - startTime) > iBreak && random(1, 4) == 2) {
  317. iStatus = 6;
  318.  
  319. return 1;
  320. }
  321. else if(Breaks && (System.currentTimeMillis() - startTime) > iBreak){
  322. iStatus = 7;
  323.  
  324. return 1;
  325. }
  326.  
  327. camera.setCompass('n');
  328.  
  329. Obj myBank = getClosestObject(10, bankID);
  330.  
  331. if(myBank != null)
  332. {
  333. myStatus = "Walking To Shop";
  334. walking.walkPath(walking.randomizePath(toShop, 2, 2));
  335. }
  336. else
  337. iStatus = 2;
  338.  
  339. return random(500, 750);
  340. }
  341.  
  342. /* At Aubury To Mine */
  343.  
  344. case 2: {
  345. if(getMyPlayer().isMoving())
  346. return 1;
  347.  
  348. NPC myAubury = npcs.getClosest(10, auburyID);
  349.  
  350. if(myAubury != null)
  351. {
  352. Obj myDoor = getClosestObject(15, doorID);
  353.  
  354. if(myDoor != null && myDoor.getLocation() == doorTile)
  355. {
  356. myStatus = "Opening Door";
  357. myDoor.doActionAtDoor('n', "Open");
  358.  
  359. return random(500, 1000);
  360. }
  361.  
  362. if(!Calculations.onScreen(myAubury.getScreenPos()))
  363. {
  364. myStatus = "Walking To Aubury";
  365. walking.walkToMM(myAubury.getLocation());
  366.  
  367. return random(500, 750);
  368. }
  369.  
  370. if(walking.atTile(myAubury.getLocation(), "Teleport"))
  371. return random(500, 750);
  372. }
  373.  
  374. if(inMine())
  375. iStatus = 3;
  376. else
  377. return random(500, 750);
  378.  
  379. return random(1000, 1250);
  380. }
  381.  
  382. /* At Mine To Ess */
  383.  
  384. case 3: {
  385. if(getMyPlayer().isMoving())
  386. return 1;
  387.  
  388. if(distanceTo(centerTile) < 10)
  389. {
  390. myStatus = "Walking To Ess";
  391. walking.walkPath(walking.randomizePath(toEss, 2, 2));
  392.  
  393. return random(500, 700);
  394. }
  395.  
  396. iStatus = 4;
  397.  
  398. return random(500, 700);
  399. }
  400.  
  401. /* At Ess Lets Mine */
  402.  
  403. case 4: {
  404. if(!inventory.isFull())
  405. {
  406. myStatus = "Mining Ess";
  407.  
  408. camera.setAltitude(true);
  409.  
  410. if(!getMyPlayer().isMoving() && getMyPlayer().getAnimation() == -1)
  411. {
  412. Tile myEss = getClosestEssence(25, mineID);
  413.  
  414. if(myEss != null)
  415. {
  416. camera.getAngleTo(myEss);
  417. walking.atTile(myEss, "Mine");
  418. return random(3000, 4000);
  419. }
  420. }
  421. else
  422. return random(500, 750);
  423. }
  424. else {
  425. iStatus = 5;
  426. return random(500, 750);
  427. }
  428. }
  429.  
  430. /* Got Ess To Bank */
  431.  
  432. case 5: {
  433. if(getMyPlayer().isMoving())
  434. return 1;
  435.  
  436. camera.setCompass('n');
  437. Obj myPortal = getClosestObject(25, portalID);
  438.  
  439. if(myPortal != null)
  440. {
  441. sleep(500, 700);
  442.  
  443. if(!Calculations.onScreen(myPortal.getScreenPos()))
  444. {
  445. myStatus = "Leaving Mine";
  446.  
  447. walking.walkToMM(myPortal.getLocation());
  448.  
  449. return random(500, 700);
  450. }
  451. myPortal.doAction("Use");
  452. }
  453.  
  454. NPC myAubury = npcs.getClosest(10, auburyID);
  455.  
  456. if(myAubury != null)
  457. {
  458. Obj myDoor = getClosestObject(15, doorID);
  459.  
  460. if(myDoor != null && myDoor.getLocation() == doorTile)
  461. {
  462. myStatus = "Opening Door";
  463. myDoor.doActionAtDoor('n', "Open");
  464.  
  465. return random(500, 1000);
  466. }
  467.  
  468. myStatus = "Walking To Bank";
  469.  
  470. walking.walkPath(walking.randomizePath(toBank, 2, 2));
  471.  
  472. return random(500, 700);
  473. }
  474.  
  475. Obj myBank = getClosestObject(10, bankID);
  476.  
  477. if(myBank != null)
  478. {
  479. if(!Calculations.onScreen(myBank.getScreenPos()))
  480. {
  481. walking.walkToMM(myBank.getLocation());
  482.  
  483. return random(500, 700);
  484. }
  485. sleep(500, 700);
  486.  
  487. if(myBank.doAction("Use-quickly")) {
  488.  
  489. sleep(1000, 2000);
  490.  
  491. bank.depositAllExcept(axeID);
  492.  
  493. while(inventory.contains(7936))
  494. bank.depositAllExcept(axeID);
  495.  
  496. if(bank.getBankInterfaceGroup().isValid())
  497. {
  498. bank.close();
  499. iStatus = 0;
  500.  
  501. iLoads++;
  502.  
  503. return random(500, 750);
  504. }
  505.  
  506. return random(500, 750);
  507. }
  508. }
  509. return random(500, 750);
  510. }
  511.  
  512. case 6: {
  513. myLogout = true;
  514.  
  515. if(!Logged) {
  516. if(myLogOut()) {
  517. Logged = true;
  518. return random(500, 750);
  519. }
  520. }
  521. else {
  522. if(myWorld())
  523. {
  524. myLogout = false;
  525. iStatus = 0;
  526. Logged = false;
  527.  
  528. myStatus = "Taking A Break!";
  529.  
  530. iBreaks++;
  531. iSwaps++;
  532.  
  533. sleep(iLength);
  534.  
  535. startTime = System.currentTimeMillis();
  536. Logged = false;
  537. return 1;
  538. }
  539. return random(500, 750);
  540. }
  541. return random(500, 750);
  542. }
  543.  
  544. case 7: {
  545. myLogout = true;
  546.  
  547. if(!Logged) {
  548. if(myLogOut()) {
  549. Logged = true;
  550. iStatus = 0;
  551.  
  552. myStatus = "Taking A Break!";
  553.  
  554. iBreaks++;
  555.  
  556. sleep(iLength);
  557.  
  558. startTime = System.currentTimeMillis();
  559. Logged = false;
  560. return 1;
  561. }
  562. }
  563. }
  564. }
  565. }
  566. catch(Exception err) {
  567. log("Exception thrown!");
  568. }
  569.  
  570. return random(1000, 2000);
  571. }
  572.  
  573. public boolean onRandomActivate(Random random) {
  574. return !(random.equals("AutoLogin") && !myLogout);
  575. }
  576. }
Add Comment
Please, Sign In to add comment