Guest User

Untitled

a guest
Jun 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.27 KB | None | 0 0
  1. import java.awt.BasicStroke;
  2. import java.awt.Color;
  3. import java.awt.Container;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.Graphics;
  7. import java.awt.Graphics2D;
  8. import java.awt.Insets;
  9. import java.awt.Point;
  10. import java.awt.Rectangle;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13. import java.awt.event.KeyEvent;
  14. import java.awt.event.MouseEvent;
  15. import java.awt.event.MouseListener;
  16.  
  17. import javax.swing.DefaultComboBoxModel;
  18. import javax.swing.JButton;
  19. import javax.swing.JCheckBox;
  20. import javax.swing.JComboBox;
  21. import javax.swing.JFrame;
  22. import javax.swing.JLabel;
  23. import javax.swing.SwingConstants;
  24.  
  25. import com.rarebot.event.events.MessageEvent;
  26. import com.rarebot.event.listeners.MessageListener;
  27. import com.rarebot.event.listeners.PaintListener;
  28. import com.rarebot.script.Script;
  29. import com.rarebot.script.ScriptManifest;
  30. import com.rarebot.script.methods.Equipment;
  31. import com.rarebot.script.methods.Magic;
  32. import com.rarebot.script.util.Timer;
  33. import com.rarebot.script.wrappers.RSArea;
  34. import com.rarebot.script.wrappers.RSComponent;
  35. import com.rarebot.script.wrappers.RSItem;
  36. import com.rarebot.script.wrappers.RSObject;
  37. import com.rarebot.script.wrappers.RSTile;
  38. import com.rarebot.script.wrappers.RSTilePath;
  39.  
  40. @ScriptManifest(authors = { "Tossut" }, keywords = "Prayer", name = "Tossut's Gilded Altar", version = 1.45, description = "Options in the GUI")
  41. public class TossutsGildedAltar extends Script implements PaintListener,
  42. MessageListener, MouseListener {
  43.  
  44. // INTS
  45. private int expPer, portalIn, bones, pouchID, startExp,
  46. startLevel, rnd, gainedExp, expToLevel, attempts;
  47. private int doorOpen = -1, doorClosed = -1, burner = -1,
  48. burnerBurning = -1, altar = -1, BoB = -1, usesCount = -1,
  49. bobRoom = -1;
  50. private int mspeed;
  51. private int tinderBoxID = 590;
  52. private int marrentillID = 251;
  53. private int hTabs = 8013;
  54. private int ringID[] = { 2564, 2562, 2560, 2558, 2556, 2554, 2552 };
  55. private int ringID8 = 2552;
  56. private int portalOut = 13405;
  57. private static final int INTERFACE_TAB_SUMMONING = 747;
  58. private static final int INTERFACE_TAB_SUMMONING_CHILD = 2;
  59. // TIMERS
  60. private Timer ABt = new Timer(random(10000, 20000));
  61. private Timer XPcheck = new Timer(random(120000, 180000));
  62. private Timer failSafeT = new Timer(5500);
  63. private Timer bankLoad = new Timer(5000);
  64. private Timer bw = new Timer(3000);
  65. private Timer failSafe = new Timer(1000);
  66. private Timer Zzz = new Timer(600000);
  67. private Timer SmeltedT = new Timer(45000);
  68. private Timer failSafeStuck = new Timer(360000);
  69. // BOOLEANS
  70. private boolean[] burnahs = { true, true };
  71. private boolean showPaint = true;
  72. private boolean guidone, useRod, useRunes, bankWalkYanille, useKinship,
  73. useFriends, allowTeleport, smelted, houseStyleDetected,
  74. itemsNeeded, BoBemptied, useBoB, timeToRefresh, altMethodb,
  75. houseLeech, needPouch;
  76. private boolean west = false, north = false, east = false, south = false;
  77. // TILES
  78. private RSArea bankCW = new RSArea(new RSTile(2440,3082),new RSTile(2446,3093));
  79. private RSTile chestL = new RSTile(2444, 3083);
  80. private RSTile tile4 = new RSTile(3449, 3718);
  81. private RSTile obeliskTile = new RSTile(2462, 3087);
  82. private RSTile burnerLoc, altarLoc, altarF, portalLoc, kBank = new RSTile(
  83. 3448, 3720);
  84. RSTile doorCoordinates;
  85. RSTile[] walkToKinshipB = { new RSTile(3448, 3698), new RSTile(3449, 3703),
  86. new RSTile(3449, 3709), new RSTile(3449, 3715),
  87. new RSTile(3449, 3719) };
  88. RSTile[] toObelisk = { new RSTile(2448, 3089), new RSTile(2455, 3090),
  89. new RSTile(2462, 3087) };
  90.  
  91. // OTHERS
  92. private Angle angle;
  93. private Pitch pitch;
  94. private String status, whichBones, whichBanking, whichMouseSpeed, whichBoB;
  95. private long startTime;
  96. private int bonesSmelt = 0;
  97. private long runTime = 0, seconds = 0, minutes = 0, hours = 0;
  98. private long secToLevel = 0;
  99. private long minutesToLevel = 0;
  100. private long hoursToLevel = 0;
  101. private float secExp = 0;
  102. private float minuteExp = 0;
  103. private float hourExp = 0;
  104. private RSItem ringItem;
  105. private RSItem ringItemTemp;
  106. RSObject chest, burnerX, burnerBurningX, altarX, Obelisk, box, yanille,
  107. taverley, pollnivneach, rimmington, rellekka, brimhaven, portalInX,
  108. portalOutX, doorOpenX, doorClosedX, booth, door, bankdoor;
  109. TGAninegui2 gui;
  110.  
  111. public boolean onStart() {
  112.  
  113. log.severe("Fill the GUI and hit start");
  114. java.awt.EventQueue.invokeLater(new Runnable() {
  115. public void run() {
  116. gui = new TGAninegui2();
  117. gui.setVisible(true);
  118. }
  119. });
  120. while (!guidone) {
  121. sleep(100);
  122. }
  123.  
  124. log("Please post your proggies and report bugs");
  125. startTime = System.currentTimeMillis();
  126. startLevel = skills.getRealLevel(5);
  127. startExp = skills.getCurrentExp(5);
  128. {
  129.  
  130. if (useRunes == true) {
  131. log("Have Staff of earth equipped and the runes needed in inv");
  132. }
  133. if (whichBones.equals("Bones")) {
  134. bones = 526;
  135. expPer = 14;
  136. }
  137. if (whichBones.equals("Big Bones")) {
  138. bones = 532;
  139. expPer = 105 / 2;
  140. }
  141. if (whichBones.equals("Dragon")) {
  142. bones = 536;
  143. expPer = 252;
  144. }
  145. if (whichBones.equals("Baby Dragon")) {
  146. bones = 534;
  147. expPer = 105;
  148. }
  149. if (whichBones.equals("Dagannoth Bones")) {
  150. bones = 6729;
  151. expPer = 875 / 2;
  152. }
  153. if (whichBones.equals("Frost Dragon")) {
  154. bones = 18832;
  155. expPer = 630;
  156. }
  157. if (whichBones.equals("Infernal Ashes")) {
  158. bones = 20268;
  159. expPer = 875 / 4;
  160. }
  161. if (whichMouseSpeed.equals("3 (Fastest)")) {
  162. mspeed = 3;
  163. }
  164. if (whichMouseSpeed.equals("4")) {
  165. mspeed = 4;
  166. }
  167. if (whichMouseSpeed.equals("5")) {
  168. mspeed = 5;
  169. }
  170. if (whichMouseSpeed.equals("6")) {
  171. mspeed = 6;
  172. }
  173. if (whichMouseSpeed.equals("7")) {
  174. mspeed = 7;
  175. }
  176. if (whichMouseSpeed.equals("8")) {
  177. mspeed = 8;
  178. }
  179. if (whichMouseSpeed.equals("9 (Slowest)")) {
  180. mspeed = 9;
  181. }
  182. if (altMethodb == true) {
  183. log("Script now clicks altar and opens closest door.");
  184. }
  185. if (whichBanking.equals("Duelling")) {
  186. useRod = true;
  187. log("Using Ring of Duellings");
  188. }
  189. if (whichBanking.equals("Yanille walk")) {
  190. bankWalkYanille = true;
  191. log("Walking to Yanille Bank, must have house in Yanille");
  192. }
  193. if (whichBanking.equals("Kinship")) {
  194. useKinship = true;
  195. log("Using Ring of Kinship");
  196. }
  197. if (whichBoB.equals("Don't use")) {
  198. useBoB = false;
  199. }
  200. if (whichBoB.equals("Spirit terrorbird")) {
  201. useBoB = true;
  202. pouchID = 12007;
  203. bobRoom = 11;
  204. }
  205. if (whichBoB.equals("War Tortoise")) {
  206. useBoB = true;
  207. pouchID = 12031;
  208. bobRoom = 17;
  209. }
  210. if (useBoB == true && useRod != true) {
  211. log
  212. .severe("Reminder: Beast of Burden only works with Duelling atm...");
  213. stopScript();
  214. }
  215. log("Mouse speed is: " + mouse.getSpeed());
  216. angle = new Angle();
  217. pitch = new Pitch();
  218. angle.start();
  219. pitch.start();
  220. Zzz.reset();
  221. failSafeStuck.reset();
  222. }
  223. return true;
  224. }
  225.  
  226. public int loop() {
  227. //Objects//
  228. com.rarebot.script.wrappers.RSNPC kinBank = npcs.getNearest(9710);
  229. chest = objects.getNearest(4483); // CW
  230. bankdoor = objects.getNearest(36315);
  231. burnerX = objects.getNearest(burner);
  232. burnerBurningX = objects.getNearest(burnerBurning);
  233. altarX = objects.getNearest(altar);
  234. doorClosedX = objects.getNearest(doorClosed);
  235. doorOpenX = objects.getNearest(doorOpen);
  236. taverley = objects.getNearest(15477);
  237. pollnivneach = objects.getNearest(15479);
  238. rimmington = objects.getNearest(15478);
  239. rellekka = objects.getNearest(15480);
  240. brimhaven = objects.getNearest(15481);
  241. yanille = objects.getNearest(15482);
  242. taverley = objects.getNearest(15477);
  243. pollnivneach = objects.getNearest(15479);
  244. rimmington = objects.getNearest(15478);
  245. rellekka = objects.getNearest(15480);
  246. brimhaven = objects.getNearest(15481);
  247. yanille = objects.getNearest(15482);
  248. portalInX = objects.getNearest(portalIn);
  249. portalOutX = objects.getNearest(portalOut); // Leave house
  250. Obelisk = objects.getNearest(29954); // CW
  251.  
  252. mouse.setSpeed(random(mspeed-1,mspeed+2));
  253.  
  254. if (game.getClientState() != 11) {
  255. if (!angle.pause)
  256. angle.pause = true;
  257. if (!pitch.pause)
  258. pitch.pause = true;
  259. }
  260.  
  261.  
  262.  
  263. // Beast of Burden Methods
  264. if (game.isLoggedIn() == true && useBoB == true
  265. && bank.isOpen() == false && game.getClientState() == 11) {
  266. needPouch();
  267. // Summon BoB
  268. if (chest != null || Obelisk != null) {
  269. if (summoning.isFamiliarSummoned() != true
  270. && inventory.contains(pouchID) && chest != null) {
  271. refreshBoB();
  272. }
  273. }
  274. if (game.isLoggedIn() == true && useBoB == true
  275. && bank.isOpen() == false && game.getClientState() == 11) {
  276. if (summoning.getSummoningPoints() <= 10
  277. && summoning.getTimeLeft() <= 7
  278. && calc.distanceTo(obeliskTile) <= 50
  279. && BoB == (bobRoom + 1)
  280. && inventory.getCount(bones) >= 20
  281. && inventory.getCount(marrentillID) == 2
  282. && usesCount > 1
  283. || summoning.isFamiliarSummoned() == true
  284. && summoning.getTimeLeft() <= 2.5
  285. && inventory.contains(pouchID)
  286. && bank.isOpen() == false
  287. && summoning.getSummoningPoints() >= 10) {
  288. timeToRefresh = true;
  289. refreshBoB();
  290. } else {
  291. timeToRefresh = false;
  292. }
  293.  
  294. if (BoB == -1 && summoning.isFamiliarSummoned() == true) {
  295. checkBoB();
  296. }
  297. if (smelted == true && summoning.isFamiliarSummoned() == true
  298. && inventory.getCount(bones) <= 4
  299. && BoBemptied == false) {
  300. emptyBoB();
  301. }
  302. }
  303.  
  304. // Fill beast of burden
  305. if (chest != null || kinBank != null) {
  306. while (summoning.isFamiliarSummoned() == true
  307. && BoB != (bobRoom + 1)
  308. && inventory.getCount(bones) > 20
  309. && game.getClientState() == 11) {
  310. fillBoB();
  311. }
  312. }
  313. }
  314.  
  315. // antiban
  316. final int AB = (random(1, 30));
  317. if (AB == 1 && ABt.isRunning() != true
  318. && getMyPlayer().isMoving() == true) {
  319. antiban();
  320. ABt.reset();
  321. }
  322.  
  323. // ring checks of doom
  324. if (useRod == true) {
  325. if (inventory.containsOneOf(ringID) && usesCount <= 1) {
  326. equipRing();
  327. duelCheck();
  328. }
  329. if (usesCount == -1) {
  330. duelCheck();
  331. }
  332. }
  333.  
  334. // Stay running
  335. if (walking.getEnergy() > random(20, 40)
  336. && walking.isRunEnabled() == false) {
  337. walking.setRun(true);
  338. sleep(1500);
  339. }
  340. // Got Items needed?
  341. if (useBoB == false && houseLeech == false) {
  342. if (inventory.getCount(bones) >= 20
  343. && inventory.getCount(marrentillID) == 2
  344. && portalOutX == null && inventory.contains(tinderBoxID)
  345. && !inventory.contains(2566)
  346. && !inventory.containsOneOf(ringID)) {
  347. itemsNeeded = true;
  348. } else {
  349. itemsNeeded = false;
  350. }
  351. }
  352.  
  353. // allow Teleport to house (without BoB).
  354. if (useBoB == false) {
  355. if (usesCount > 1 && itemsNeeded == true && useRod == true) {
  356. allowTeleport = true;
  357. } else if (itemsNeeded == true && useKinship == true) {
  358. allowTeleport = true;
  359. } else if (itemsNeeded == true && bankWalkYanille == true) {
  360. allowTeleport = true;
  361. } else {
  362. allowTeleport = false;
  363. }
  364. }
  365. // allow Teleport to house (with BoB).
  366. if (useBoB == true) {
  367. BoBTele();
  368. }
  369.  
  370. // Teleport to house
  371. if (allowTeleport == true) {
  372. if (useRunes == false && chest != null || useRunes == false
  373. && kinBank != null || useRunes == false && Obelisk != null) {
  374. teleHouse();
  375. }
  376. if (useRunes == true && chest != null || useRunes == true
  377. && kinBank != null || useRunes == true && Obelisk != null) {
  378. teleHouseR();
  379. }
  380. }
  381.  
  382. // Detect house objects
  383. if (portalOutX != null && houseStyleDetected == false) {
  384. detectHouse();
  385. }
  386. // Detect Location and the action to be done
  387.  
  388. if (yanille != null || taverley != null || brimhaven != null
  389. || pollnivneach != null || rimmington != null
  390. || rellekka != null) {
  391. if (!inventory.contains(bones) && useRod == true) {
  392. duelTele();
  393. }
  394. if (!inventory.contains(bones) && useKinship == true) {
  395. Kinshiptele();
  396. }
  397. if (inventory.contains(bones) == true && useFriends == false
  398. && bankWalkYanille == false) {
  399. usePortal();
  400. }
  401.  
  402. }
  403.  
  404. // Walk to banker
  405. // Castle wars
  406. if (chest != null || Obelisk != null) {
  407. if (calc.distanceTo(chestL) <= 100 && allowTeleport == false) {
  408. openbank();
  409. }
  410. }
  411. // Daemonheim
  412. if (calc.distanceTo(tile4) >= 5 && calc.distanceTo(tile4) < 100) {
  413. Kinshipwalk();
  414. }
  415. if (kinBank != null || getMyPlayer().getLocation() == kBank) {
  416. if (calc.distanceTo(kinBank.getLocation()) <= 10 && kinBank != null
  417. && allowTeleport == false
  418. || calc.tileOnScreen(kinBank.getLocation()) == true
  419. && kinBank != null && allowTeleport == false
  420. || getMyPlayer().getLocation() == kBank) {
  421. KinshipBanker();
  422. }
  423. }
  424.  
  425. // Door methods
  426. if (doorClosedX != null && doorOpenX == null
  427. && houseStyleDetected == true && inventory.contains(bones)
  428. && altMethodb == true) {
  429. walkToDoorOld();
  430. }
  431. // detect altar location
  432.  
  433. if (doorOpenX == null && doorClosedX != null && altarX != null
  434. && portalOutX != null && houseStyleDetected == true
  435. && inventory.contains(bones) && altMethodb == false
  436. && smelted == false) {
  437. newDoorMethod();
  438. }
  439.  
  440. if (calc.distanceTo(doorClosedX) <= 2 && doorClosedX != null
  441. && altMethodb == true && doorOpenX == null) {
  442. openDoor();
  443. }
  444. if (burnerX != null && inventory.contains(marrentillID)
  445. && doorOpenX != null && houseStyleDetected == true) {
  446. lightBurner();
  447. }
  448.  
  449. if (inventory.contains(bones) && burnerBurningX != null
  450. && !inventory.contains(marrentillID)
  451. && houseStyleDetected == true) {
  452. offer();
  453. }
  454. if (inventory.contains(bones) && burnerBurningX != null
  455. && burnerX == null && houseStyleDetected == true) {
  456. offer();
  457. }
  458.  
  459. // BANKING METHOD//
  460.  
  461. if (!inventory.contains(bones) && chest == null && useRod == true
  462. && BoB == 0 && useBoB == true || !inventory.contains(bones)
  463. && chest == null && useRod == true && useBoB == false
  464. || inventory.contains(bones)
  465. && !inventory.contains(marrentillID) && burnerBurningX == null
  466. && burnerX != null && houseStyleDetected == true
  467. && useRod == true && houseLeech == false || useRod == true
  468. && burnerBurningX == null && burnerX != null
  469. && !inventory.contains(marrentillID)) {
  470. duelTele();
  471. }
  472. if (altarX != null || taverley != null || portalOutX != null
  473. || pollnivneach != null || yanille != null | brimhaven != null
  474. || rimmington != null || rellekka != null) {
  475. if (!inventory.contains(bones)
  476. && box == null
  477. && useKinship == true
  478. && kinBank == null
  479. && BoB == 0
  480. && useBoB == true
  481. || (!inventory.contains(bones) && box == null
  482. && useKinship == true && kinBank == null || inventory
  483. .contains(bones)
  484. && !inventory.contains(marrentillID)
  485. && burnerBurningX == null
  486. && burnerX != null
  487. && houseStyleDetected == true
  488. && useKinship == true
  489. && box == null
  490. && kinBank == null
  491. && houseLeech == false)) {
  492. Kinshiptele();
  493. }
  494. }
  495. if (portalInX != null && inventory.contains(bones)
  496. && useFriends == false) {
  497. usePortal();
  498. }
  499. // Withdraw items
  500. if (bank.isOpen() == true) {
  501. withdrawitemsNeeded();
  502. }
  503.  
  504. // Failsafes//
  505. if (failSafeStuck.isRunning()!=true){
  506. log.severe("We're stuck?!");
  507. if (useRod){
  508. duelTele();
  509. } else {
  510. Kinshiptele();
  511. }
  512. }
  513. if (Zzz.isRunning() != true) {
  514. log.severe("No action for 10 min. Stopping script");
  515. stopScript();
  516. return -1;
  517. }
  518.  
  519.  
  520. return (random(100, 200));
  521.  
  522. }
  523.  
  524. // / finding out your house style
  525. public void detectHouse() {
  526. sleep(2000, 2500);
  527. if (objects.getNearest(13100) != null) {
  528. doorOpen = 13102;
  529. doorClosed = 13100;
  530. log("Detected house style: Basic Wood");
  531. } else if (objects.getNearest(13094) != null) {
  532. doorOpen = 13095;
  533. doorClosed = 13094;
  534. log("Detected house style: Basic Stone");
  535. } else if (objects.getNearest(13119) != null) {
  536. doorOpen = 13121;
  537. doorClosed = 13119;
  538. log("Detected House style: Fancy Stone");
  539. } else if (objects.getNearest(13016) != null) {
  540. doorOpen = 13018;
  541. doorClosed = 13016;
  542. log("Detected House style: Tropical Wood");
  543. } else if (objects.getNearest(13109) != null) {
  544. doorOpen = 13110;
  545. doorClosed = 13109;
  546. log("Detected House style: Fremmennik-style");
  547. } else if (objects.getNearest(13006) != null) {
  548. doorOpen = 13008;
  549. doorClosed = 13006;
  550. log("Detected House style: Whitewashed");
  551. } else if (objects.getNearest(36625) != null) {
  552. doorClosed = 36625;
  553. doorOpen = 36649;
  554. log("Detected House style: Dark Stone");
  555. }
  556. // Detect Altar. One altar type may have several IDs
  557. if (objects.getNearest(13197) != null) {
  558. altar = 13197;
  559. log("Detected Gilded Altar");
  560. } else if (objects.getNearest(13198) != null) {
  561. altar = 13198;
  562. log("Detected Gilded Altar");
  563. } else if (objects.getNearest(13199) != null) {
  564. altar = 13199;
  565. log("Detected Gilded Altar");
  566. } else if (objects.getNearest(13188) != null) {
  567. altar = 13188;
  568. log("Detected Mahogany Altar");
  569. }
  570. // Detect Burners.
  571. if (objects.getNearest(13208) != null
  572. || objects.getNearest(13209) != null) {
  573. burner = 13208;
  574. burnerBurning = 13209;
  575. log("Detected Incense Burners");
  576. } else if (objects.getNearest(13212) != null
  577. || objects.getNearest(13213) != null) {
  578. burner = 13212;
  579. burnerBurning = 13213;
  580. log("Detected Marble Burners");
  581. } else if (objects.getNearest(13210) != null
  582. || objects.getNearest(13211) != null) {
  583. burner = 13210;
  584. burnerBurning = 13211;
  585. log("Detected Mahogany Burners");
  586. }
  587.  
  588. if (doorOpen != -1 && doorClosed != -1 && altar != -1 && burner != -1
  589. && burnerBurning != -1) {
  590. houseStyleDetected = true;
  591. log(Color.green, "Detected all needed objects!");
  592. }
  593. }
  594.  
  595. public void openbank() {
  596. angle.pause = true;
  597. pitch.pause = true;
  598. status = "Banking";
  599.  
  600. if (calc.distanceTo(chestL) >= 5) {
  601. walking.walkTo(chestL);
  602. sleep(2000);
  603. }
  604. if (chest != null) {
  605. if (chest.isOnScreen() != true && getMyPlayer().isMoving() == false) {
  606. camera.turnTo(chest);
  607. walking.walkTileOnScreen(chestL);
  608. sleep(500);
  609. }
  610. }
  611. if (chest != null && (calc.distanceTo(chest) <= 5)) {
  612. if (chest.interact("Use") == true) {
  613. sleep(random(1000, 2000));
  614. bankLoad.reset();
  615.  
  616. }
  617. }
  618. }
  619. public void needPouch(){
  620. if (!inventory.contains(pouchID) && summoning.getTimeLeft() <= 5
  621. || !inventory.contains(pouchID)
  622. && summoning.isFamiliarSummoned() != true) {
  623. needPouch = true;
  624. } else if (summoning.getTimeLeft() > 5
  625. && summoning.isFamiliarSummoned() == true) {
  626. needPouch = false;
  627. }
  628. }
  629.  
  630. public void newDoorMethod() {
  631. try {
  632. angle.pause = true;
  633. pitch.pause = true;
  634. status = "Locating the altar room";
  635. int x = 0;
  636. int y = 0;
  637. if (objects.getNearest(altar) != null
  638. && objects.getNearest(portalOut) != null) {
  639. altarLoc = objects.getNearest(altar).getLocation();
  640. portalLoc = objects.getNearest(portalOut).getLocation();
  641. if (altarLoc.getX() > (portalLoc.getX() + 4)) {
  642. east = true;
  643. x = +4;
  644. y = 0;
  645. } else {
  646. east = false;
  647. }
  648. if (altarLoc.getY() > (portalLoc.getY() + 4)) {
  649. north = true;
  650. x = -1;
  651. y = +4;
  652. } else {
  653. north = false;
  654. }
  655. if (altarLoc.getX() < (portalLoc.getX() - 4)) {
  656. west = true;
  657. x = -5;
  658. y = -1;
  659.  
  660. } else {
  661. west = false;
  662. }
  663. if (altarLoc.getY() < (portalLoc.getY() - 4)) {
  664. south = true;
  665. x = 0;
  666. y = -5;
  667. } else {
  668. south = false;
  669. }
  670. doorOpenX = objects.getNearest(doorOpen);
  671. doorCoordinates = new RSTile(portalLoc.getX() + x, portalLoc
  672. .getY()
  673. + y);
  674. door = objects.getTopAt(doorCoordinates);
  675. attempts = 0;
  676.  
  677. if (door.getID() != doorOpen && door.isOnScreen() == true) {
  678. if (door.interact("Open Door") == true
  679. || door.interact("Open Large door") == true) {
  680. failSafe.reset();
  681. while(door.getID()!=doorOpen && failSafe.isRunning()){
  682. sleep(50);
  683. }
  684. }
  685. }
  686. if (calc.distanceTo(doorCoordinates) > 1
  687. && doorOpenX == null
  688. && getMyPlayer().isMoving() != true) {
  689. walking.walkTileMM(doorCoordinates);
  690. sleep(1000,1500);
  691. }
  692. if (calc.distanceTo(doorCoordinates) <= 1
  693. && calc.distanceTo(doorClosedX) <= 1
  694. && doorOpenX == null) {
  695. if (doorClosedX.interact("Open Door") == true
  696. || doorClosedX.interact("Open Large Door") == true) {
  697. sleep(1000, 1350);
  698.  
  699. }
  700. }
  701. }
  702.  
  703. } catch (final Exception e) {
  704. }
  705. }
  706.  
  707.  
  708. public void withdrawitemsNeeded() {
  709. try {
  710. if (!interfaces.get(13).isValid() && !interfaces.get(14).isValid()) {
  711. if (bank.isOpen() == true && game.getClientState() == 11) {
  712. angle.pause = true;
  713. pitch.pause = true;
  714. status = "Banking";
  715. smelted = false;
  716. attempts = 0;
  717. sleep(450, 550);
  718. if (bank.getCount(bones) == 0
  719. || bankLoad.isRunning() != true) {
  720. interfaces.getComponent(762, 63).doClick();
  721. }
  722. while (inventory.contains(2566) && bank.isOpen()) {
  723. if (inventory.getItem(2566).doClick(true) == true) {
  724. sleep(500);
  725. }
  726. }
  727. if (bankWalkYanille == true) {
  728. if (bank.depositAllExcept(bones, marrentillID,
  729. tinderBoxID) == true) {
  730. }
  731. }
  732. if (inventory.getCount(marrentillID) == 2) {
  733. bank.depositAllExcept(tinderBoxID, hTabs, bones,
  734. marrentillID, 563, 556, 15707, pouchID);
  735.  
  736. } else if (timeToRefresh == true
  737. && inventory.contains(pouchID) == false) {
  738. bank.depositAllExcept(tinderBoxID, marrentillID, hTabs,
  739. 563, 556, 15707, pouchID);
  740. } else if (inventory.getCount(marrentillID) == 1
  741. && inventory.getCount(bones) < 20
  742. && houseLeech == false) {
  743. bank.depositAllExcept(tinderBoxID, hTabs, 563, 556,
  744. 15707, pouchID, bones, marrentillID);
  745. bank.getItem(marrentillID).doClick(true);
  746. sleep(1500);
  747. } else if (inventory.getCount(marrentillID) == 1
  748. && inventory.isFull() == true) {
  749. if (bank.deposit(bones, 1) == true) {
  750. sleep(1500);
  751. }
  752. } else if (houseLeech == false) {
  753. bank.depositAllExcept(tinderBoxID, hTabs, 563, 556,
  754. 15707, pouchID);
  755. } else if (houseLeech == true) {
  756. bank.depositAllExcept(bones, hTabs, 563, 556, 15707,
  757. pouchID);
  758. }
  759. if (needPouch == true && !inventory.contains(pouchID)) {
  760. if (inventory.isFull()) {
  761. if (bank.deposit(bones, 1) == true) {
  762. sleep(1500);
  763. }
  764. }
  765. bank.withdraw(pouchID, 1);
  766. sleep(1500, 1750);
  767. } else if (needPouch == false
  768. && inventory.contains(pouchID)) {
  769. bank.deposit(pouchID, 0);
  770. sleep(1500);
  771. }
  772.  
  773. if (houseLeech == false) {
  774. if (!inventory.contains(tinderBoxID)) {
  775. log
  776. .severe("No tinderbox in inventory. Stopping script");
  777. stopScript();
  778. }
  779. if (bank.getCount(marrentillID) < 2
  780. && bank.isOpen() == true) {
  781. log.severe("out of marrentill. Stopping script");
  782. stopScript();
  783. }
  784. if (!inventory.contains(marrentillID)) {
  785. bank.withdraw(marrentillID, 2);
  786. bw.reset();
  787. }
  788. while (!inventory.contains(marrentillID)
  789. && bw.isRunning()) {
  790. sleep(50);
  791. }
  792. }
  793.  
  794. if (inventory.getCount(marrentillID) != 2) {
  795. withdrawitemsNeeded();
  796. }
  797. }
  798.  
  799. if (bank.getCount(hTabs) < 1 && bank.isOpen() == true
  800. && inventory.getCount(true, hTabs) < 1
  801. && useRunes == false && bankWalkYanille == false) {
  802. log.severe("Out of teleport tabs. Stopping script");
  803. stopScript();
  804. } else if (bank.getCount(hTabs) >= 1 && useRunes == false) {
  805. bank.withdraw(hTabs, 0);
  806. sleep(1500);
  807. }
  808. attempts = 0;
  809. if (bank.getCount(ringID8) < 1
  810. && (!inventory.containsOneOf(ringID))
  811. && usesCount <= 1 && useRod == true) {
  812. log.severe("Out of rings. Stopping script");
  813. stopScript();
  814.  
  815. } else {
  816. while (!inventory.contains(ringID8) && attempts <= 3 && usesCount <=1 && useRod == true) {
  817. sleep(150, 200);
  818. attempts++;
  819. bank.withdraw(ringID8, 1);
  820. bw.reset();
  821. while (!inventory.contains(ringID8) && bw.isRunning()) {
  822. sleep(50);
  823. }
  824. }
  825. }
  826. }
  827. attempts = 0;
  828. while (inventory.isFull() == false && attempts <= 3) {
  829. sleep(150, 200);
  830. attempts++;
  831. if (bank.getCount(bones) > 0) {
  832. if (bank.withdraw(bones, 0) == true) {
  833. bw.reset();
  834. while (!inventory.contains(bones) && bw.isRunning()) {
  835. sleep(50);
  836. }
  837. }
  838. } else if (bank.getCount(bones) == 0 && attempts >= 3) {
  839. log.severe("Out of bones. Stopping script");
  840. stopScript();
  841. }
  842. }
  843. if (bank.isOpen() == true) {
  844. bank.close();
  845. }
  846. } catch (final Exception e) {
  847. }
  848.  
  849. }
  850.  
  851. public void lightBurner() {
  852. angle.pause = true;
  853. pitch.pause = true;
  854. status = "Lighting the burners";
  855. if (burnerX != null && getMyPlayer().isMoving() == false) {
  856. burnerLoc = objects.getNearest(burner).getLocation();
  857. {
  858. if (!burnerX.isOnScreen() && game.getClientState() == 11
  859. || !calc.tileOnScreen(burnerX.getLocation())
  860. && game.getClientState() == 11) {
  861. camera.turnTo(burnerX, 20);
  862. camera.setPitch(random(40, 60));
  863. }
  864. }
  865. if (burnerX != null && getMyPlayer().isMoving() != true
  866. && getMyPlayer().getAnimation() == -1) {
  867. if (burnerX.interact("Light Incense Burner") == true) {
  868. smelted = false;
  869. attempts = 0;
  870. sleep(1500, 1750);
  871. }
  872. }
  873. if (calc.distanceTo(burnerX) >= 5
  874. && getMyPlayer().isMoving() != true
  875. && getMyPlayer().getAnimation() == -1) {
  876. walking.walkTileOnScreen(burnerLoc);
  877. attempts++;
  878. sleep(500, 750);
  879. if (attempts >= 5) {
  880. walking.walkTo(burnerLoc);
  881. sleep(1500, 2000);
  882. }
  883. }
  884. }
  885. }
  886.  
  887. public void usePortal() {
  888.  
  889. status = "House portal detected";
  890. int portalIn = 0;
  891. smelted = false;
  892. if (yanille != null) {
  893. portalIn = 15482;
  894. }
  895. if (taverley != null) {
  896. portalIn = 15477;
  897. }
  898. if (rimmington != null) {
  899. portalIn = 15478;
  900. }
  901. if (pollnivneach != null) {
  902. portalIn = 15479;
  903. }
  904. if (brimhaven != null) {
  905. portalIn = 15481;
  906. }
  907. if (rellekka != null) {
  908. portalIn = 15480;
  909. }
  910. final RSObject Portal = objects.getNearest(portalIn);
  911. RSComponent houseYanilleMenu = interfaces.getComponent(232, 2);
  912. RSComponent houseYanilleMenu2 = interfaces.getComponent(234, 2);
  913. if (Portal != null) {
  914. if (calc.distanceTo(Portal.getLocation()) <= 5
  915. && Portal.isOnScreen()) {
  916. Portal.interact("Enter Portal");
  917. sleep(random(1000, 1600));
  918. } if (!Portal.isOnScreen()|| calc.distanceTo(Portal.getLocation()) > 5){
  919. walking.walkTileMM(Portal.getLocation());
  920. sleep(3500, 4000);
  921. }
  922. if (houseYanilleMenu.isValid() || houseYanilleMenu2.isValid()) {
  923. interfaces.getComponent(234, 2).doClick();
  924. interfaces.getComponent(232, 2).doClick();
  925. Zzz.reset();
  926. sleep(random(3000, 4000));
  927. }
  928. }
  929. }
  930.  
  931. public void teleHouse() {
  932. status = "Teleporting home";
  933. com.rarebot.script.wrappers.RSNPC kinBank = npcs.getNearest(9710);
  934. RSItem item = inventory.getItem(hTabs);
  935. if (chest != null || kinBank != null) {
  936.  
  937. if (item.doClick(true) == true) {
  938. sleep(random(1500, 2000));
  939. }
  940. }
  941. while (getMyPlayer().getAnimation() != -1 && game.getClientState()==11) {
  942. sleep(100);
  943. }
  944. }
  945.  
  946. public void teleHouseR() {
  947.  
  948. status = "Casting house tele";
  949. com.rarebot.script.wrappers.RSNPC kinBank = npcs.getNearest(9710);
  950.  
  951. if (kinBank != null || chest != null) {
  952. if ((magic.castSpell(Magic.SPELL_TELEPORT_TO_HOUSE) == true)) {
  953. sleep(2000,3000);
  954. }
  955. }
  956. }
  957.  
  958. public void offer() {
  959. try {
  960. if (smelted == false) {
  961. angle.pause = true;
  962. pitch.pause = true;
  963. }
  964. status = "Offering the bones";
  965. if (north == true) {
  966. altarF = new RSTile(doorCoordinates.getX() + 0, doorCoordinates
  967. .getY() + 2);
  968. } else if (south == true) {
  969. altarF = new RSTile(doorCoordinates.getX() + 0, doorCoordinates
  970. .getY() - 2);
  971. } else if (west == true) {
  972. altarF = new RSTile(doorCoordinates.getX() - 2, doorCoordinates
  973. .getY() + 0);
  974. } else if (east == true) {
  975. altarF = new RSTile(doorCoordinates.getX() + 2, doorCoordinates
  976. .getY() + 0);
  977. }
  978. if (getMyPlayer().getAnimation() != -1) {
  979. failSafeT.reset();
  980. Zzz.reset();
  981. failSafeStuck.reset();
  982. } // is running
  983. if (failSafeT.isRunning() == true && inventory.getCount(bones) < 24) {
  984. int rnd3 = (random(0, 100));
  985. if (rnd3 == 7) {
  986. mouse.moveRandomly(50, 350);
  987. }
  988. if (ABt.isRunning() != true) {
  989. antiban();
  990. }
  991. }
  992. RSComponent uhrataValikko = interfaces.getComponent(905, 14);
  993.  
  994. if (calc.distanceTo(altarX) >= 5 && smelted == false) {
  995. walking.walkTo(altarF);
  996. sleep(2000);
  997. }
  998. if (uhrataValikko.isValid() == false) {
  999. if (getMyPlayer().getAnimation() == -1
  1000. && !uhrataValikko.isValid()
  1001. && failSafeT.isRunning() == false || smelted == false
  1002. || SmeltedT.isRunning() == false) {
  1003. if (altarX.isOnScreen()) {
  1004. if (!inventory.isItemSelected() ) {
  1005. inventory.getItem(bones).interact("Use");
  1006. sleep(200,350);
  1007. }
  1008. if (inventory.isItemSelected() ) {
  1009. altarX.interact("Use");
  1010. sleep(2500, 3000);
  1011. }
  1012. }
  1013. }
  1014. }
  1015.  
  1016. if ((uhrataValikko.interact("Offer All") == true)) {
  1017. smelted = true;
  1018. SmeltedT.reset();
  1019. sleep(random(500, 750));
  1020. angle.pause = false;
  1021. pitch.pause = false;
  1022. }
  1023. } catch (final Exception e) {
  1024. }
  1025. }
  1026.  
  1027. public void duelCheck() {
  1028. try {
  1029.  
  1030. if (equipment.containsOneOf(2564)) {
  1031. usesCount = 2;
  1032. }
  1033. if (equipment.containsOneOf(2562)) {
  1034. usesCount = 3;
  1035. }
  1036. if (equipment.containsOneOf(2560)) {
  1037. usesCount = 4;
  1038. }
  1039. if (equipment.containsOneOf(2558)) {
  1040. usesCount = 5;
  1041. }
  1042. if (equipment.containsOneOf(2556)) {
  1043. usesCount = 6;
  1044. }
  1045. if (equipment.containsOneOf(2554)) {
  1046. usesCount = 7;
  1047. }
  1048. if (equipment.containsOneOf(2552)) {
  1049. usesCount = 8;
  1050. }
  1051. if (equipment.containsOneOf(2566)) {
  1052. usesCount = 1;
  1053. }
  1054. if (usesCount <= 0) {
  1055. usesCount = 0;
  1056. }
  1057. } catch (final Exception e) {
  1058. }
  1059. }
  1060.  
  1061. public void equipRing() {
  1062. status = "Equipping ring";
  1063. try {
  1064. if (inventory.containsOneOf(ringID)) {
  1065. ringItem = inventory.getItem(ringID);
  1066. ringItemTemp = ringItem;
  1067. while (ringItem == ringItemTemp) {
  1068. if (failSafe.isRunning() != true) {
  1069. ringItem.doClick(true);
  1070. failSafe.reset();
  1071. }
  1072. ringItemTemp = inventory.getItem(ringID);
  1073. sleep(200, 300);
  1074. }
  1075. }
  1076. } catch (final Exception e) {
  1077. }
  1078. }
  1079.  
  1080. public void duelTele() {
  1081. status = "RoD teleport";
  1082. attempts = 0;
  1083. int anim = getMyPlayer().getAnimation();
  1084. while (anim ==-1 && game.getClientState() == 11 && chest == null && attempts <3) {
  1085. equipment.getItem(Equipment.RING).interact("Castle Wars");
  1086. sleep(500, 1000);
  1087. failSafeStuck.reset();
  1088. anim = getMyPlayer().getAnimation();
  1089. attempts++;
  1090. }
  1091.  
  1092. while (anim!= -1 && game.getClientState() == 12 ||
  1093. game.getClientState() == 11 && anim != -1) {
  1094. sleep(100);
  1095. anim = getMyPlayer().getAnimation();
  1096. status="CW teleing";
  1097. }
  1098. }
  1099.  
  1100.  
  1101. public void Kinshiptele() {
  1102. status = "Kinship teleport";
  1103. int anim = getMyPlayer().getAnimation();
  1104. attempts = 0;
  1105. while (anim==-1
  1106. && game.getClientState() == 11 && attempts <3) {
  1107. equipment.getItem(Equipment.RING)
  1108. .interact("Teleport to Daemonheim");
  1109. sleep(1000, 1500);
  1110. anim = getMyPlayer().getAnimation();
  1111. failSafeStuck.reset();
  1112. attempts++;
  1113. }
  1114. while (anim!= -1 && game.getClientState() == 12 ||
  1115. game.getClientState() == 11 && anim != -1) {
  1116. sleep(100);
  1117. status="Kinship teleing";
  1118. anim = getMyPlayer().getAnimation();
  1119. }
  1120. }
  1121.  
  1122. public void Kinshipwalk() {
  1123. status = "Kinship walk";
  1124. RSTilePath walktoKinshipBpath = walking.newTilePath(walkToKinshipB);
  1125. walktoKinshipBpath.traverse();
  1126. }
  1127.  
  1128. public void KinshipBanker() {
  1129. status = "Kinship banking";
  1130. com.rarebot.script.wrappers.RSNPC kinBank = npcs.getNearest(9710);
  1131. if (getMyPlayer().getLocation() == kBank) {
  1132. angle.pause = true;
  1133. pitch.pause = true;
  1134. RSTile kBank2;
  1135. kBank2 = new RSTile(3450, 3719);
  1136. walking.walkTileOnScreen(kBank2);
  1137. sleep(1500);
  1138. camera.turnTo(kinBank.getLocation());
  1139. camera.setPitch(random(40, 60));
  1140. }
  1141. if (calc.distanceTo(kinBank) <= 3
  1142. || calc.tileOnScreen(kinBank.getLocation()) == true) {
  1143. kinBank.interact("Bank Fremennik banker");
  1144. sleep(random(2000, 2500));
  1145. bankLoad.reset();
  1146. }
  1147. }
  1148.  
  1149. public void emptyBoB() {
  1150. status = "Emptying BoB";
  1151. if (summoning.doTakeBob() == true) {
  1152. SmeltedT.reset();
  1153. sleep(2000);
  1154. }
  1155. if (inventory.getCount(bones) >= bobRoom) {
  1156. BoBemptied = true;
  1157. BoB = 0;
  1158. } else if (inventory.contains(bones) == false && BoBemptied == false) {
  1159. emptyBoB();
  1160. }
  1161. }
  1162.  
  1163. public void checkBoB() {
  1164. try {
  1165. status = "Checking BoB";
  1166. RSComponent BoBslot = interfaces.getComponent(671, 27);
  1167. RSComponent BoBclose = interfaces.getComponent(671, 13);
  1168. if (!interfaces.get(228).isValid()
  1169. || interfaces.get(228).getComponent(3).getRelativeY() == -1) {
  1170. interfaces.getComponent(INTERFACE_TAB_SUMMONING,
  1171. INTERFACE_TAB_SUMMONING_CHILD).interact("Interact");
  1172. sleep(1000);
  1173. }
  1174. if (interfaces.get(228).isValid()) {
  1175. if (interfaces.get(228).getComponent(3).doClick() == true) {
  1176. sleep(500, 1000);
  1177. }
  1178. }
  1179. if (!interfaces.get(671).isValid()) {
  1180. sleep(1000);
  1181. }
  1182. if (interfaces.get(671).isValid()) {
  1183. if (BoBslot.getComponent(bobRoom).getComponentID() == bones) {
  1184. BoBemptied = false;
  1185. BoB = 18;
  1186. } else {
  1187. BoB = 0;
  1188. }
  1189. if (BoB == 18 || BoB == 0) {
  1190. BoBclose.doClick();
  1191. } else {
  1192. checkBoB();
  1193. {
  1194. }
  1195. }
  1196. }
  1197. } catch (final Exception e) {
  1198. }
  1199. }
  1200.  
  1201. public boolean BoBitems() {
  1202. if (useBoB == true) {
  1203. if (inventory.getCount(bones) >= 20
  1204. && inventory.getCount(marrentillID) == 2
  1205. && portalOutX == null && inventory.contains(tinderBoxID)
  1206. && !inventory.contains(2566)) {
  1207. return true;
  1208. }
  1209. }
  1210. return false;
  1211. }
  1212.  
  1213. public boolean BoBTele() {
  1214. if (useBoB == true && game.isLoggedIn() == true
  1215. && game.getClientState() == 11) {
  1216. if (timeToRefresh == false) {
  1217. if (BoBitems() == true
  1218. && summoning.isFamiliarSummoned() == true
  1219. && summoning.getTimeLeft() > 2
  1220. && summoning.getTimeLeft() < 7
  1221. && summoning.getSummoningPoints() > 10 && usesCount > 1
  1222. && useRod == true || BoBitems() == true
  1223. && summoning.getTimeLeft() > 7 && usesCount > 1
  1224. && summoning.isFamiliarSummoned() == true
  1225. && useRod == true) {
  1226. allowTeleport = true;
  1227. return true;
  1228. } else {
  1229. allowTeleport = false;
  1230. return false;
  1231. }
  1232. }
  1233. }
  1234. return false;
  1235. }
  1236.  
  1237. public void fillBoB() {
  1238. try {
  1239. status = "Filling BoB";
  1240. RSComponent BoBslot = interfaces.getComponent(671, 27);
  1241. RSComponent BoBclose = interfaces.getComponent(671, 13);
  1242. RSItem bones2 = inventory.getItem(bones);
  1243.  
  1244. if (!interfaces.get(228).isValid()
  1245. || interfaces.get(228).getComponent(3).getRelativeY() == -1) {
  1246. interfaces.getComponent(INTERFACE_TAB_SUMMONING,
  1247. INTERFACE_TAB_SUMMONING_CHILD).interact("Interact");
  1248. sleep(1000);
  1249. }
  1250. if (interfaces.get(228).isValid()) {
  1251. if (interfaces.get(228).getComponent(3).doClick() == true) {
  1252. sleep(500, 1000);
  1253. }
  1254. }
  1255. if (!interfaces.get(671).isValid()) {
  1256. sleep(1000);
  1257. }
  1258. if (interfaces.get(671).isValid() == true
  1259. && failSafeT.isRunning() != true) {
  1260. while (bones2 != null
  1261. && BoBslot.getComponent(bobRoom).getComponentID() != bones
  1262. && inventory.getCount(bones) >= bobRoom) {
  1263. if (bones2.interact("Store-All") == true) {
  1264. sleep(1000, 1500);
  1265. failSafeT.reset();
  1266. }
  1267. }
  1268. }
  1269. if (interfaces.get(671).isValid() == true) {
  1270. if (BoBslot.getComponent(bobRoom).getComponentID() == bones) {
  1271. BoBemptied = false;
  1272. BoB = (bobRoom + 1);
  1273. } else {
  1274. BoB = 0;
  1275. fillBoB();
  1276. }
  1277. if (BoB == (bobRoom + 1) || BoB == 0) {
  1278. BoBclose.doClick();
  1279. }
  1280. }
  1281. } catch (final Exception e) {
  1282. }
  1283. }
  1284.  
  1285. public void refreshBoB() {
  1286. angle.pause = false;
  1287. pitch.pause = false;
  1288. status = "Renewing BoB";
  1289. final RSObject Obelisk = objects.getNearest(29954);
  1290. while (bankdoor != null && bankCW.contains(getMyPlayer().getLocation()) && summoning.getSummoningPoints()<=10) {
  1291. camera.turnTo(bankdoor);
  1292. camera.setPitch((random(30,40)));
  1293. bankdoor.doClick();
  1294. sleep(1500, 2000);
  1295. }
  1296. while (calc.distanceTo((obeliskTile)) > 5
  1297. && calc.distanceTo(obeliskTile) < 30
  1298. && summoning.getSummoningPoints() <= 10) {
  1299. status = "Walking to obelisk";
  1300. RSTilePath toObeliskPath = walking.newTilePath(toObelisk);
  1301. toObeliskPath.traverse();
  1302. }
  1303. while (calc.distanceTo(obeliskTile) <= 5
  1304. && summoning.getSummoningPoints() <= 10) {
  1305. status = "Renewing points";
  1306. angle.pause = true;
  1307. pitch.pause = true;
  1308. while (Obelisk.isOnScreen() && summoning.getSummoningPoints()<=10){
  1309. angle.pause = true;
  1310. pitch.pause = true;
  1311. camera.turnTo(Obelisk, 20);
  1312. camera.setPitch(random(40,50));
  1313. Obelisk.interact("Renew-points");
  1314. sleep(2500, 3000);
  1315. }
  1316. }
  1317. if (summoning.isFamiliarSummoned() == false
  1318. && inventory.contains(pouchID)
  1319. && summoning.getSummoningPoints() >= 10) {
  1320. status = "Summoning BoB";
  1321. if (inventory.getItem(pouchID).interact("Summon") == true) {
  1322. needPouch = false;
  1323. log("Summoned Beast of Burden");
  1324. BoB = 0;
  1325. sleep(1000, 1500);
  1326. }
  1327. }
  1328. if (summoning.getSummoningPoints() >= 10 && inventory.contains(pouchID) && timeToRefresh==true) {
  1329. if (interfaces.getComponent(INTERFACE_TAB_SUMMONING,
  1330. INTERFACE_TAB_SUMMONING_CHILD).interact("Renew Familiar") == true) {
  1331. log.severe("Refreshed BoB?!");
  1332. timeToRefresh = false;
  1333. needPouch = false;
  1334. sleep(1500);
  1335. }
  1336. }
  1337. }
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343. public void openDoor() {
  1344. try {
  1345. status = "Opening the door";
  1346. final RSObject doorOpenX = objects.getNearest(doorOpen);
  1347. final RSObject doorClosedX = objects.getNearest(doorClosed);
  1348. if (doorClosedX != null && calc.distanceTo(doorClosedX) <= 1
  1349. && doorOpenX == null) {
  1350. if (doorClosedX.doClick() == true) {
  1351. sleep(1500);
  1352. }
  1353. }
  1354. } catch (final Exception e) {
  1355. }
  1356. }
  1357.  
  1358. public void walkToDoorOld() {
  1359. angle.pause = true;
  1360. pitch.pause = true;
  1361. status = "Locating the altar room";
  1362. altarX = objects.getNearest(altar);
  1363. doorClosedX = objects.getNearest(doorClosed);
  1364. if (altarX != null && calc.distanceTo(altarX.getLocation()) < 20
  1365. && calc.distanceTo(doorClosedX.getLocation()) > 1) {
  1366. walking.walkTileMM(altarX.getLocation());
  1367. sleep(2000);
  1368. }
  1369. }
  1370.  
  1371. public void antiban() {
  1372. status = "AntiBan";
  1373. rnd = random(0, 4);
  1374. switch (rnd) {
  1375. case 0:
  1376. angle.pause = false;
  1377. pitch.pause = false;
  1378. mouse.moveSlightly();
  1379. ABt.reset();
  1380. break;
  1381. case 1:
  1382. angle.pause = true;
  1383. pitch.pause = true;
  1384. mouse.moveSlightly();
  1385. ABt.reset();
  1386. break;
  1387. case 3:
  1388. angle.pause = true;
  1389. pitch.pause = true;
  1390. status = "Antiban - Mouse Off Screen";
  1391. mouse.moveOffScreen();
  1392. ABt.reset();
  1393. break;
  1394. case 2:
  1395. if (smelted == true && XPcheck.isRunning() != true) {
  1396. if (skills.doHover(70) == true) {
  1397. sleep(2500);
  1398. XPcheck.reset();
  1399. ABt.reset();
  1400. break;
  1401. } else {
  1402. mouse.moveOffScreen();
  1403. break;
  1404. }
  1405. }
  1406. }
  1407. }
  1408.  
  1409. class Angle extends Thread {
  1410.  
  1411. private volatile boolean stop = false;
  1412. private volatile boolean pause = false;
  1413.  
  1414. @Override
  1415. public void run() {
  1416. try {
  1417. while (!stop) {
  1418. if (pause) {
  1419. while (pause) {
  1420. Thread.sleep(random(25, 150));
  1421. }
  1422. }
  1423. if (random(1, 15000) == 342) {
  1424. char key = KeyEvent.VK_RIGHT;
  1425. if (random(1, 5) == 2) {
  1426. key = KeyEvent.VK_LEFT;
  1427. }
  1428. long endTime = System.currentTimeMillis()
  1429. + random(250, 1200);
  1430. keyboard.pressKey(key);
  1431. while (System.currentTimeMillis() < endTime) {
  1432. if (pause)
  1433. break;
  1434. Thread.sleep(random(5, 15));
  1435. }
  1436. keyboard.releaseKey(key);
  1437. Thread.sleep(random(random(1000, 5000), random(11000,
  1438. 17000)));
  1439. }
  1440. }
  1441. } catch (Exception ignored) {
  1442. }
  1443. }
  1444. }
  1445.  
  1446. class Pitch extends Thread {
  1447.  
  1448. private volatile boolean stop = false;
  1449. private volatile boolean pause = false;
  1450.  
  1451. @Override
  1452. public void run() {
  1453. try {
  1454. while (!stop) {
  1455. if (pause) {
  1456. while (pause)
  1457. Thread.sleep(random(25, 150));
  1458. }
  1459. if (camera.getPitch() < 40) {
  1460. camera.setPitch(100);
  1461. }
  1462. if (random(1, 15000) == 342) {
  1463. char key = KeyEvent.VK_UP;
  1464. if (camera.getPitch() >= random(random(50, 86), 100))
  1465. key = KeyEvent.VK_DOWN;
  1466. keyboard.pressKey(key);
  1467. long endTime = System.currentTimeMillis()
  1468. + random(random(50, 150), 500);
  1469. while (System.currentTimeMillis() < endTime) {
  1470. if (pause)
  1471. break;
  1472. else if (camera.getPitch() == 0) {
  1473. if (key == KeyEvent.VK_DOWN)
  1474. break;
  1475. } else if (camera.getPitch() == 100) {
  1476. if (key == KeyEvent.VK_UP)
  1477. break;
  1478. }
  1479. Thread.sleep(random(5, 15));
  1480. }
  1481. keyboard.releaseKey(key);
  1482. Thread.sleep(random(random(1000, 5000), 10001));
  1483. }
  1484. }
  1485. } catch (Exception ignored) {
  1486. }
  1487. }
  1488. }
  1489.  
  1490. private final Color color1 = new Color(0, 0, 0);
  1491. private final Color color2 = new Color(0, 0, 0);
  1492. private final Color color3 = new Color(255, 0, 0);
  1493. private final Color color4 = new Color(204, 0, 0);
  1494. private final Color color5 = new Color(255, 255, 255);
  1495. final Color GREEN = new Color(0, 255, 0, 255);
  1496.  
  1497. private final BasicStroke stroke1 = new BasicStroke(1);
  1498.  
  1499. private final Font font1 = new Font("Vijaya", 1, 25);
  1500. private final Font font2 = new Font("Miriam Fixed", 0, 14);
  1501. private final Font font3 = new Font("Miriam Fixed", 1, 14);
  1502.  
  1503. public void onRepaint(Graphics g1) {
  1504. if (!showPaint || g1 == null) {
  1505. return;
  1506. }
  1507.  
  1508. if (startTime == 0) {
  1509. startTime = System.currentTimeMillis();
  1510. }
  1511.  
  1512. if (startExp == 0) {
  1513. startExp = skills.getCurrentExp(5);
  1514. }
  1515.  
  1516. if (startLevel == 0) {
  1517. startLevel = skills.getRealLevel(5);
  1518. }
  1519.  
  1520. runTime = System.currentTimeMillis() - startTime;
  1521. seconds = runTime / 1000;
  1522. if (seconds >= 60) {
  1523. minutes = seconds / 60;
  1524. seconds -= minutes * 60;
  1525. }
  1526. if (minutes >= 60) {
  1527. hours = minutes / 60;
  1528. minutes -= hours * 60;
  1529. }
  1530.  
  1531. gainedExp = skills.getCurrentExp(5) - startExp;
  1532. expToLevel = skills.getExpToNextLevel(5);
  1533.  
  1534. if ((minutes > 0 || hours > 0 || seconds > 0) && gainedExp > 0) {
  1535. secExp = (float) gainedExp
  1536. / (float) (seconds + minutes * 60 + hours * 60 * 60);
  1537. }
  1538. minuteExp = secExp * 60;
  1539. hourExp = minuteExp * 60;
  1540.  
  1541. if (secExp > 0) {
  1542. secToLevel = (int) (expToLevel / secExp);
  1543. }
  1544. if (secToLevel >= 60) {
  1545. minutesToLevel = secToLevel / 60;
  1546. secToLevel -= minutesToLevel * 60;
  1547. } else {
  1548. minutesToLevel = 0;
  1549. }
  1550. if (minutesToLevel >= 60) {
  1551. hoursToLevel = minutesToLevel / 60;
  1552. minutesToLevel -= hoursToLevel * 60;
  1553. } else {
  1554. hoursToLevel = 0;
  1555. }
  1556. drawMouseLines(g1);
  1557. Graphics2D g = (Graphics2D) g1;
  1558. g.setColor(color1);
  1559. g.fillRoundRect(9, 346, 495, 125, 16, 16);
  1560. g.fillRoundRect(568, 149, 160, 17, 16, 16);
  1561. g.setColor(color2);
  1562. g.setStroke(stroke1);
  1563. g.drawRoundRect(9, 346, 495, 125, 16, 16);
  1564. g.fillRoundRect(568, 149, 160, 17, 16, 16);
  1565. g.setFont(font1);
  1566. double currentVer = TossutsGildedAltar.class.getAnnotation(
  1567. ScriptManifest.class).version();
  1568. g.drawString("TGA " + currentVer, 70, 366);
  1569. g.setColor(color3);
  1570. g.drawString("TGA " + currentVer, 69, 365);
  1571. g.setColor(GREEN);
  1572. g.fillRect(280, 360, 12, 100);
  1573. g.setColor(color4);
  1574. g.fillRect(280, 360, 12, 100 - skills.getPercentToNextLevel(5));
  1575. g.setColor(color2);
  1576. g.drawRect(280, 360, 12, 100);
  1577. g.setFont(font2);
  1578. g.setColor(color5);
  1579.  
  1580. g.drawString("Status: " + status, 12, 388);
  1581. g.drawString("Running for: " + hours + ":" + minutes + ":" + seconds,
  1582. 12, 408);
  1583. g.drawString("Exp Gained: " + gainedExp + " ("
  1584. + (skills.getRealLevel(5) - startLevel) + ")", 12, 420);
  1585. g.drawString("Bones smelt: " + bonesSmelt, 12, 432);
  1586. g.drawString("Exp per hour: " + (int) hourExp / 1000 + "k", 12, 444);
  1587. g.drawString("Exp TNL: " + expToLevel / 1000 + "k ("
  1588. + (int) (expToLevel / expPer) + " Offerings)", 12, 456);
  1589. g.drawString("Time to level: " + hoursToLevel + ":" + minutesToLevel
  1590. + ":" + secToLevel, 12, 468);
  1591. g.drawString("Stuck: " + failSafeStuck.toRemainingString().toString(),
  1592. 572, 161);
  1593. g.setFont(font3);
  1594. g.setColor(color2);
  1595. g.drawString(skills.getPercentToNextLevel(5) + "% to "
  1596. + (skills.getRealLevel(5) + 1), 300, 420);
  1597. g.setColor(color5);
  1598. g.drawString(skills.getPercentToNextLevel(5) + "% to "
  1599. + (skills.getRealLevel(5) + 1), 299, 419);
  1600. g.setFont(font2);
  1601. if (useRod == true) {
  1602. g.drawString("RoD charges: " + usesCount, 300, 456);
  1603. }
  1604. g.drawString("Click paint to hide it", 300, 468);
  1605. if (doorCoordinates != null) {
  1606. drawTile(g, doorCoordinates, new Color(0, 150, 150, 120), true);
  1607. }
  1608.  
  1609. for (RSObject burnah : objects.getAll()) {
  1610. if (burnahs[0]) {
  1611. if (burnah.getID() == burner) {
  1612. drawTile(g, burnah.getLocation(),
  1613. new Color(250, 0, 0, 120), true);
  1614. }
  1615. if (burnahs[1]) {
  1616. if (burnah.getID() == burnerBurning) {
  1617. drawTile(g, burnah.getLocation(), new Color(0, 250, 0,
  1618. 120), true);
  1619. }
  1620. }
  1621. }
  1622. }
  1623. }
  1624.  
  1625. private void drawTile(Graphics render, RSTile tile, Color color,
  1626. boolean drawCardinalDirections) {
  1627. Point southwest = calc.tileToScreen(tile, 0, 0, 0);
  1628. Point southeast = calc.tileToScreen(new RSTile(tile.getX() + 1, tile
  1629. .getY()), 0, 0, 0);
  1630. Point northwest = calc.tileToScreen(new RSTile(tile.getX(),
  1631. tile.getY() + 1), 0, 0, 0);
  1632. Point northeast = calc.tileToScreen(new RSTile(tile.getX() + 1, tile
  1633. .getY() + 1), 0, 0, 0);
  1634.  
  1635. if (calc.pointOnScreen(southwest) && calc.pointOnScreen(southeast)
  1636. && calc.pointOnScreen(northwest)
  1637. && calc.pointOnScreen(northeast)) {
  1638. render.setColor(Color.BLACK);
  1639. render.drawPolygon(new int[] { (int) northwest.getX(),
  1640. (int) northeast.getX(), (int) southeast.getX(),
  1641. (int) southwest.getX() }, new int[] {
  1642. (int) northwest.getY(), (int) northeast.getY(),
  1643. (int) southeast.getY(), (int) southwest.getY() }, 4);
  1644. render.setColor(color);
  1645. render.fillPolygon(new int[] { (int) northwest.getX(),
  1646. (int) northeast.getX(), (int) southeast.getX(),
  1647. (int) southwest.getX() }, new int[] {
  1648. (int) northwest.getY(), (int) northeast.getY(),
  1649. (int) southeast.getY(), (int) southwest.getY() }, 4);
  1650.  
  1651. if (drawCardinalDirections) {
  1652. render.setColor(Color.WHITE);
  1653.  
  1654. }
  1655. }
  1656. }
  1657.  
  1658. private void drawMouseLines(final Graphics render) {
  1659. try {
  1660. if (!mouse.isPresent())
  1661. return;
  1662. render.setColor(Color.BLACK);
  1663. render.drawLine(0, (int) mouse.getLocation().getY(), game
  1664. .getWidth(), (int) mouse.getLocation().getY());
  1665. render.drawLine((int) mouse.getLocation().getX(), 0, (int) mouse
  1666. .getLocation().getX(), game.getHeight());
  1667. } catch (Exception ex) {
  1668. }
  1669. }
  1670.  
  1671. public void mouseClicked(MouseEvent e) {
  1672. RSComponent inter = interfaces.get(137).getComponent(0);
  1673. if (inter.getArea().contains(e.getPoint())) {
  1674. showPaint = !showPaint;
  1675. }
  1676. }
  1677.  
  1678. public void mousePressed(MouseEvent e) {
  1679. }
  1680.  
  1681. public void mouseReleased(MouseEvent e) {
  1682. }
  1683.  
  1684. public void mouseEntered(MouseEvent e) {
  1685. }
  1686.  
  1687. public void mouseExited(MouseEvent e) {
  1688. }
  1689.  
  1690. /**
  1691. * @author Tossut
  1692. */
  1693. public class TGAninegui2 extends JFrame {
  1694.  
  1695. /**
  1696. *
  1697. */
  1698. private static final long serialVersionUID = 1L;
  1699.  
  1700. public TGAninegui2() {
  1701. initComponents();
  1702.  
  1703. }
  1704.  
  1705. private void startActionPerformed(ActionEvent e) {
  1706. whichBones = bonesCB.getSelectedItem().toString();
  1707. whichBanking = bankingCB.getSelectedItem().toString();
  1708. whichBoB = BoBCB.getSelectedItem().toString();
  1709. whichMouseSpeed = comboBox1.getSelectedItem().toString();
  1710. if (userunes.isSelected()) {
  1711. useRunes = true;
  1712. }
  1713. if (altMethod.isSelected()) {
  1714. altMethodb = true;
  1715. }
  1716. guidone = true;
  1717. dispose();
  1718. }
  1719.  
  1720. private void exitActionPerformed(ActionEvent e) {
  1721. dispose();
  1722. stopScript();
  1723. }
  1724.  
  1725. private void initComponents() {
  1726. // JFormDesigner - Component initialization - DO NOT MODIFY
  1727. // //GEN-BEGIN:initComponents
  1728. banking = new JLabel();
  1729. bonesl = new JLabel();
  1730. bankingCB = new JComboBox();
  1731. bonesCB = new JComboBox();
  1732. label4 = new JLabel();
  1733. userunes = new JCheckBox();
  1734. label5 = new JLabel();
  1735. BoBCB = new JComboBox();
  1736. start = new JButton();
  1737. exit = new JButton();
  1738. altMethod = new JCheckBox();
  1739. comboBox1 = new JComboBox();
  1740. label2 = new JLabel();
  1741.  
  1742. // ======== this ========
  1743. setTitle("Tossut Gilded Altar");
  1744. setResizable(false);
  1745. Container contentPane = getContentPane();
  1746. contentPane.setLayout(null);
  1747.  
  1748. // ---- banking ----
  1749. banking.setText("Banking Method:");
  1750. banking.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
  1751. contentPane.add(banking);
  1752. banking.setBounds(30, 170, 130, banking.getPreferredSize().height);
  1753.  
  1754. // ---- bonesl ----
  1755. bonesl.setText("Bones:");
  1756. bonesl.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
  1757. contentPane.add(bonesl);
  1758. bonesl.setBounds(30, 110, 55, bonesl.getPreferredSize().height);
  1759.  
  1760. // ---- bankingCB ----
  1761. bankingCB.setModel(new DefaultComboBoxModel(new String[] {
  1762. "Duelling", "Kinship",
  1763. // "Yanille walk"
  1764. }));
  1765. bankingCB.setSelectedIndex(1);
  1766. contentPane.add(bankingCB);
  1767. bankingCB.setBounds(195, 170, 120,
  1768. bankingCB.getPreferredSize().height);
  1769.  
  1770. // ---- bonesCB ----
  1771. bonesCB.setModel(new DefaultComboBoxModel(new String[] { "Bones",
  1772. "Big Bones", "Baby Dragon", "Dragon", "Dagannoth Bones",
  1773. "Frost Dragon", "Infernal Ashes" }));
  1774. bonesCB.setSelectedIndex(3);
  1775. contentPane.add(bonesCB);
  1776. bonesCB.setBounds(195, 110, 120, bonesCB.getPreferredSize().height);
  1777.  
  1778. // ---- label4 ----
  1779. label4.setText("Tossut's Gilded Altar");
  1780. label4.setFont(new Font("Gabriola", Font.ITALIC, 36));
  1781. label4.setHorizontalAlignment(SwingConstants.CENTER);
  1782. label4.setForeground(Color.red);
  1783. contentPane.add(label4);
  1784. label4.setBounds(0, 15, 285, 40);
  1785.  
  1786. // ---- userunes ----
  1787. userunes.setText("Use staff of earth and runes instead of tabs");
  1788. userunes.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
  1789. contentPane.add(userunes);
  1790. userunes.setBounds(30, 55, 335, userunes.getPreferredSize().height);
  1791.  
  1792. // ---- label5 ----
  1793. label5.setText("Beast of Burden:");
  1794. label5.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
  1795. contentPane.add(label5);
  1796. label5.setBounds(30, 140, 130, label5.getPreferredSize().height);
  1797.  
  1798. // ---- BoBCB ----
  1799. BoBCB.setModel(new DefaultComboBoxModel(new String[] { "Don't use",
  1800. "Spirit terrorbird", "War Tortoise",
  1801. // "Pack Yak"
  1802. }));
  1803. contentPane.add(BoBCB);
  1804. BoBCB.setBounds(195, 140, 120, BoBCB.getPreferredSize().height);
  1805.  
  1806. // ---- start ----
  1807. start.setText("Start");
  1808. start.setFont(new Font("Comic Sans MS", Font.BOLD, 14));
  1809. start.addActionListener(new ActionListener() {
  1810. public void actionPerformed(ActionEvent e) {
  1811. startActionPerformed(e);
  1812. }
  1813. });
  1814. contentPane.add(start);
  1815. start.setBounds(30, 235, 85, 30);
  1816.  
  1817. // ---- exit ----
  1818. exit.setText("Exit");
  1819. exit.setFont(new Font("Comic Sans MS", Font.BOLD, 14));
  1820. exit.addActionListener(new ActionListener() {
  1821. public void actionPerformed(ActionEvent e) {
  1822. exitActionPerformed(e);
  1823. }
  1824. });
  1825. contentPane.add(exit);
  1826. exit.setBounds(245, 235, 85, 30);
  1827.  
  1828. // ---- altMethod ----
  1829. altMethod.setText("Use alt. method for opening doors.");
  1830. altMethod.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
  1831. contentPane.add(altMethod);
  1832. altMethod.setBounds(30, 75, 305, 35);
  1833.  
  1834. // ---- comboBox1 ----
  1835. comboBox1.setModel(new DefaultComboBoxModel(new String[] {
  1836. "3 (Fastest)", "4", "5", "6", "7", "8", "9 (Slowest)" }));
  1837. comboBox1.setSelectedIndex(2);
  1838. contentPane.add(comboBox1);
  1839. comboBox1.setBounds(195, 200, 120,
  1840. comboBox1.getPreferredSize().height);
  1841.  
  1842. // ---- label2 ----
  1843. label2.setText("Mouse speed:");
  1844. label2.setFont(new Font("Comic Sans MS", Font.PLAIN, 14));
  1845. contentPane.add(label2);
  1846. label2.setBounds(30, 200, 105, 30);
  1847.  
  1848. { // compute preferred size
  1849. Dimension preferredSize = new Dimension();
  1850. for (int i = 0; i < contentPane.getComponentCount(); i++) {
  1851. Rectangle bounds = contentPane.getComponent(i).getBounds();
  1852. preferredSize.width = Math.max(bounds.x + bounds.width,
  1853. preferredSize.width);
  1854. preferredSize.height = Math.max(bounds.y + bounds.height,
  1855. preferredSize.height);
  1856. }
  1857. Insets insets = contentPane.getInsets();
  1858. preferredSize.width += insets.right;
  1859. preferredSize.height += insets.bottom;
  1860. contentPane.setMinimumSize(preferredSize);
  1861. contentPane.setPreferredSize(preferredSize);
  1862. }
  1863. setSize(395, 300);
  1864. setLocationRelativeTo(getOwner());
  1865. }
  1866.  
  1867. private JLabel banking;
  1868. private JLabel bonesl;
  1869. private JComboBox bankingCB;
  1870. private JComboBox bonesCB;
  1871. private JLabel label4;
  1872. private JCheckBox userunes;
  1873. private JLabel label5;
  1874. private JComboBox BoBCB;
  1875. private JButton start;
  1876. private JButton exit;
  1877. private JCheckBox altMethod;
  1878. private JComboBox comboBox1;
  1879. private JLabel label2;
  1880.  
  1881. }
  1882.  
  1883. public void onFinish() {
  1884. angle.stop = true;
  1885. pitch.stop = true;
  1886. int hourXp = (int) hourExp;
  1887. log("Thanks for using TGA!");
  1888. env.saveScreenshot(true);
  1889. log(Color.RED, "TGA ran for: " + Integer.toString((int) hours) + ":"
  1890. + Integer.toString((int) minutes) + ":"
  1891. + Integer.toString((int) seconds));
  1892. log(Color.DARK_GRAY, "$melted " + Integer.toString(bonesSmelt)
  1893. + " bones!");
  1894. log(Color.GREEN, "You gained: " + Integer.toString(gainedExp / 1000)
  1895. + "k exp @" + Integer.toString(hourXp / 1000)
  1896. + "k exp per hour!");
  1897.  
  1898. }
  1899.  
  1900. @Override
  1901. public void messageReceived(MessageEvent e) {
  1902. final String message = e.getMessage().toLowerCase();
  1903. final int s = e.getID();
  1904.  
  1905. if (message.contains("offer") && s == 109) {
  1906. bonesSmelt++;
  1907. }
  1908. if (message.contains("you've just")) {
  1909. smelted = false;
  1910. log(message);
  1911. }
  1912. if (message.contains("burden has no more items") && s == 0) {
  1913. BoBemptied = true;
  1914. BoB = 0;
  1915. }
  1916. if (message.contains("Your familiar cannot carry any more items")) {
  1917. BoBemptied = false;
  1918. BoB = bobRoom+1;
  1919. }
  1920. if (message.contains("duelling has seven") && s == 0) {
  1921. usesCount = 7;
  1922. }
  1923. if (message.contains("duelling has six") && s == 0) {
  1924. usesCount = 6;
  1925. }
  1926. if (message.contains("duelling has five") && s == 0) {
  1927. usesCount = 5;
  1928. }
  1929. if (message.contains("duelling has four") && s == 0) {
  1930. usesCount = 4;
  1931. }
  1932. if (message.contains("duelling has three") && s == 0) {
  1933. usesCount = 3;
  1934. }
  1935. if (message.contains("duelling has two") && s == 0) {
  1936. usesCount = 2;
  1937. }
  1938. if (message.contains("duelling has one") && s == 0) {
  1939. usesCount = 1;
  1940. }
  1941.  
  1942. }
  1943.  
  1944. }
Add Comment
Please, Sign In to add comment