Guest User

Untitled

a guest
Jun 21st, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 65.85 KB | None | 0 0
  1. import java.awt.event.*;
  2. import java.awt.*;
  3. import java.io.*;
  4. import java.util.*;
  5. import java.util.List;
  6.  
  7. import com.kbot2.scriptable.Script;
  8. import com.kbot2.scriptable.methods.Calculations;
  9. import com.kbot2.scriptable.methods.data.GameScreen;
  10. import com.kbot2.scriptable.methods.data.NPCs;
  11. import com.kbot2.scriptable.methods.data.Skills;
  12. import com.kbot2.scriptable.methods.wrappers.GroundItem;
  13. import com.kbot2.scriptable.methods.wrappers.Interface;
  14. import com.kbot2.scriptable.methods.wrappers.NPC;
  15. import com.kbot2.scriptable.methods.wrappers.Tile;
  16. import com.kbot2.handlers.eventSystem.eventListeners.PaintListener;
  17.  
  18. public class zKiller extends Script implements ActionListener, PaintListener {
  19.  
  20. /*****************************************************************************
  21. * \ SCRIPT DECLARATION \
  22. *****************************************************************************/
  23.  
  24. public boolean active() {
  25. return true;
  26. }
  27.  
  28. public String getAuthor() {
  29. return "Z.Darkness";
  30. }
  31.  
  32. public String getName() {
  33. return "zKiller";
  34. }
  35.  
  36. public double getVersion() {
  37. return 1.0;
  38. }
  39.  
  40. public String getDescription() {
  41. return "All settings can be set in the GUI!!";
  42. }
  43.  
  44. public boolean onStart() {
  45. settings.filename = SETTINGS_FILE_NAME;
  46. if (settings.settingsExist(SETTINGS_FILE_NAME)) {
  47. showSettingsInterface();
  48. try {
  49. settings.setSettings();
  50. npcIDs.setText(settings.intArrayToString(settings.npcIDs));
  51. specialCheck.setSelected(settings.useSpecialCheck);
  52. npcsInCageCheck.setSelected(settings.npcIsInCage);
  53. pickUpCheck.setSelected(settings.pickUpItems);
  54. if (settings.pickUpItems) {
  55. itemIDs
  56. .setText(settings
  57. .intArrayToString(settings.itemIDs));
  58. itemNamesText.setText(settings
  59. .stringArrayToString(settings.itemNames));
  60. pickUpSpeedCombo.setSelectedItem(settings.pickUpSpeed);
  61. }
  62. equipArrowsCheck.setSelected(settings.equipArrowsCheck);
  63. if (settings.equipArrowsCheck) {
  64. equipArrowText.setText("" + settings.equipArrowID);
  65. }
  66. bonesCheck.setSelected(settings.buryBonesCheck);
  67. if (settings.buryBonesCheck) {
  68. burySpeedCombo.setSelectedItem(settings.buryBonesSpeed);
  69. }
  70. usePotionsCheck.setSelected(settings.usePotionCheck);
  71. if (settings.usePotionCheck) {
  72. potionList.setListData(settings.potionList);
  73. }
  74. useItemAlchCheck.setSelected(settings.itemAlchCheck);
  75. if (settings.itemAlchCheck) {
  76. alchItemIDsText.setText(settings
  77. .intArrayToString(settings.alchItemIDs));
  78. }
  79. eatFoodCheck.setSelected(settings.eatFood);
  80. stopScriptWhenNoFoodCheck
  81. .setSelected(settings.stopScriptWhenNoFood);
  82. peachesCheck.setSelected(settings.bonesToPeachesCheck);
  83. reportCombo.setSelectedItem(settings.reportSetting);
  84. nextNPCCheck.setSelected(settings.moveMouseToNextNPC);
  85. specialCheck.setSelected(settings.useSpecialCheck);
  86. antibanCheck.setSelected(settings.antiBanCheck);
  87. } catch (Exception e) {
  88. System.out.print("error getting settings: " + e);
  89. }
  90. } else {
  91. showSettingsInterface();
  92. }
  93. while (!START_SCRIPT) {
  94. sleep(10);
  95. }
  96.  
  97. log("*******************************************");
  98. log("zKiller V" + getVersion() + " started!");
  99. log("*******************************************");
  100. START_SCRIPT = false;
  101. return true;
  102. }
  103.  
  104. /*****************************************************************************
  105. * \ STATE-MACHINE \
  106. *****************************************************************************/
  107. int pickUpFail = 0;
  108. int pickUpBoneFail = 0;
  109.  
  110. @Override
  111. public int loop() {
  112.  
  113. /**
  114. * Run check -turns run on when not running and energy is above a random
  115. * amount
  116. */
  117.  
  118. if (runCheck()) {
  119. walking.setRunning(true);
  120. return random(450, 950);
  121. }
  122.  
  123. Action action = getAction();
  124. if (action != null) {
  125. switch (action) {
  126. case ATTACK:
  127. if (currentNPC != null) {
  128. if (!clickNPC(currentNPC)) {
  129. return random(800, 1600);
  130. } else {
  131. return random(1000, 2500);
  132. }
  133. } else {
  134. return random(310, 510);
  135. }
  136. case WALK:
  137. if (currentWalkTile != null) {
  138. walking.walkToMM(currentWalkTile);
  139. return random(431, 910);
  140. Tile[] path = generatePath(currentWalkTile);
  141. if (path.length > 1) {
  142. Tile tile = nextTile(path, 10);
  143. if (tile != null) {
  144. walking.walkToMM(tile);
  145. return random(410, 800);
  146. }
  147. } else if (path.length == 1) {
  148. walking.walkToMM(currentWalkTile);
  149. return random(410, 910);
  150. } else {
  151. walking.walkToMM(currentWalkTile);
  152. return random(610, 1200);
  153. }
  154. } else {
  155. return random(410, 510);
  156. }
  157. case PICKUP:
  158. if (currentItemTile != null) {
  159. if (!pickUpItem(currentItemTile, settings.itemNames)) {
  160. pickUpFail++;
  161. if (pickUpFail >= 10) {
  162. camera.setAngleTo(currentItemTile.getLocation());
  163. pickUpFail = 0;
  164. return random(310, 910);
  165. }
  166. return random(140, 510);
  167. } else {
  168. pickUpFail = 0;
  169. return random(410, 870);
  170. }
  171. } else {
  172. return random(200, 500);
  173. }
  174. case PICKUPBONE:
  175. if (currentItemTile != null) {
  176. if (!pickUpItem(currentItemTile, BONE_NAMES)) {
  177. pickUpBoneFail++;
  178. if (pickUpBoneFail >= 10) {
  179. camera.setAngleTo(currentItemTile.getLocation());
  180. return random(310, 510);
  181. }
  182. return random(140, 510);
  183. } else {
  184. pickUpBoneFail = 0;
  185. return random(410, 870);
  186. }
  187. } else {
  188. return random(200, 500);
  189. }
  190. case USE_INVENTORY:
  191. if (currentInventoryIDs.length > 0) {
  192. if (!inventory.atItem(currentInventoryString,
  193. currentInventoryIDs)) {
  194. return random(180, 410);
  195. } else {
  196. return random(924, 2111);
  197. }
  198. } else {
  199. return random(200, 500);
  200. }
  201. case USE_SPECIAL:
  202. if (gameScreen.getCurrentTab() != GameScreen.TAB_ATTACK) {
  203. gameScreen.openTab(GameScreen.TAB_ATTACK);
  204. sleep(300, 900);
  205. }
  206. clickMouse(new Point(random(578, 705), random(414, 426)), true);
  207. return random(200, 1300);
  208. case USE_MAGIC:
  209. Interface iface = interfaces.getInterface(INTERFACE_MAGIC,
  210. currentMagicSpell);
  211. if (gameScreen.getCurrentTab() != GameScreen.TAB_MAGIC) {
  212. gameScreen.openTab(GameScreen.TAB_MAGIC);
  213. sleep(300, 1400);
  214. }
  215. try {
  216. if (iface != null) {
  217. iface.doClick();
  218. }
  219. return random(1200, 2400);
  220. } catch (Exception e) {
  221. System.out.print("error using spell: " + e);
  222. return random(100, 200);
  223. }
  224. case WAIT:
  225. return random(waitRandom[0], waitRandom[1]);
  226.  
  227. case KILLSCRIPT:
  228. log("Killing script...");
  229. stopAllScripts();
  230. return -1;
  231. case ANTIBAN:
  232. // TODO MAKE CUSTOM ANTI~BAN
  233. }
  234. }
  235. return random(340, 800);
  236. }
  237.  
  238. /*****************************************************************************
  239. * \ FUNCTIONS \
  240. *****************************************************************************/
  241. private Action getAction() {
  242.  
  243. /**
  244. * Variable reset
  245. */
  246. resetVariables();
  247.  
  248. /**
  249. * Dynamic variable setting to skill -magic alchmy spell low/high
  250. */
  251. setVariablesToSkill();
  252.  
  253. /**
  254. * Alch spell selected -Checks to see if a spell has been selected
  255. * -Clicks alch item
  256. */
  257.  
  258. if (settings.itemAlchCheck) {
  259. if (Bot.getClient().isSpellSelected()) {
  260. currentInventoryString = "Cast";
  261. currentInventoryIDs = settings.alchItemIDs;
  262. return Action.USE_INVENTORY;
  263. }
  264. }
  265.  
  266. /**
  267. * Eating procedure: -turns bones into peaches if peach count is
  268. * random(0,1) -if health is below the require eating level, will eat
  269. * -will stop script if so requested by 'stopScriptWhenNoFood'
  270. */
  271. if (settings.eatFood) {
  272. if (healthCheck()) {
  273. if (settings.bonesToPeachesCheck) {
  274. if (inventory.getCount(true, (FOODID)) == random(0, 1)) {
  275. if (inventory.getCount(true, (BONESPEACHTABID)) == 0) {
  276. log("Run out of Bones to Peaches Tabs, shutting down!");
  277. return Action.KILLSCRIPT;
  278. } else {
  279. if (inventory.getCount(true, (BONESID)) > 0) {
  280. currentInventoryString = "Break";
  281. currentInventoryIDs = new int[] { BONESPEACHTABID };
  282. return Action.USE_INVENTORY;
  283. } else {
  284. log("We are low on health and no bones, shutting down!");
  285. return Action.KILLSCRIPT;
  286. }
  287. }
  288. }
  289. }
  290. if (inventory.getCount(true, (FOODID)) == 0
  291. && settings.stopScriptWhenNoFood
  292. && interfaces.getInterfaceGroup(149) != null) {
  293. log("Can't find any food inside inventory, shutting down!");
  294. return Action.KILLSCRIPT;
  295. } else {
  296. currentInventoryString = "Eat";
  297. currentInventoryIDs = FOODID;
  298. return Action.USE_INVENTORY;
  299. }
  300. }
  301. }
  302.  
  303. /**
  304. * Arrow equip check -if inventory arrow count is between(100 - 200) it
  305. * will equip them
  306. */
  307. if (settings.equipArrowsCheck) {
  308. if (inventory.getCount(true, (settings.equipArrowID)) >= random(
  309. 100, 200)) {
  310. currentInventoryString = "Wield";
  311. currentInventoryIDs = new int[] { settings.equipArrowID };
  312. return Action.USE_INVENTORY;
  313. }
  314. }
  315.  
  316. /**
  317. * Potions check -Checks to see if the selected potion effect has run
  318. * out, uses selected potion if affected skill level is random 2 - 3
  319. * levels above real level
  320. */
  321. if (settings.usePotionCheck && currentPotionSet != null) {
  322. for (int a = 0; a < currentPotionSet.potions.size(); a++) {
  323. int affectedStat = currentPotionSet
  324. .getAffectedStat(currentPotionSet.potionNames[a]);
  325. if (skills.getCurrentSkillLevel(affectedStat)
  326. - skills.getRealSkillLevel(affectedStat) <= random(2, 3)) {
  327. int[] currentPotionIds = currentPotionSet
  328. .getPotionIDs(currentPotionSet.potionNames[a]);
  329. if (inventory.getCount(true, currentPotionIds) > 0) {
  330. currentInventoryString = "Drink";
  331. currentInventoryIDs = currentPotionIds;
  332. return Action.USE_INVENTORY;
  333. }
  334. }
  335. }
  336. }
  337.  
  338. /**
  339. * NPC Interactions Check -will pause if both the character and npc are
  340. * interacting with each other -moves mouse to next npc is enabled -does
  341. * antiban
  342. */
  343. NPC[] interNPCs = getInteractingNPCs();
  344. if (getMyPlayer().getInteracting() != null && interNPCs.length > 0) {
  345. if (interNPCs[0].getHPPercent() != 0) {
  346. if (settings.antiBanCheck) {
  347. if (System.currentTimeMillis() >= nextABTime) {
  348. return Action.ANTIBAN;
  349. }
  350. }
  351. if (settings.moveMouseToNextNPC && getMyPlayer().isInCombat()) {
  352. if (random(0, 5) == 3) {
  353. NPC nextNPC = getNearestNPC(settings.npcIDs,
  354. settings.npcIsInCage, false);
  355. if (nextNPC != null) {
  356. Point npcScreen = nextNPC.getScreenPos();
  357. if (Calculations.onScreen(npcScreen)) {
  358. Point randomP = new Point(
  359. random(npcScreen.x - 5, npcScreen.x + 5),
  360. random(npcScreen.y - 5, npcScreen.y + 5));
  361. moveMouse(randomP);
  362. waitRandom = new int[] { 300, 900 };
  363. }
  364. }
  365. }
  366. }
  367. return Action.WAIT;
  368. }
  369. }
  370.  
  371. /**
  372. * Player is moving check -wait untill player reaches around 3 tiles
  373. * away from the destination
  374. */
  375. if (getMyPlayer().isMoving()) {
  376. if (settings.antiBanCheck) {
  377. if (System.currentTimeMillis() >= nextABTime) {
  378. return Action.ANTIBAN;
  379. }
  380. }
  381. waitRandom = new int[] { 200, 600 };
  382. return Action.WAIT;
  383. }
  384.  
  385. /**
  386. * Item alching check -if alching item id found inside inventory, the
  387. * spell will be cast -checks for nature runes and fire runes
  388. */
  389. if (settings.itemAlchCheck) {
  390. if (inventory.getCount(true, NATURE_ID) == 0
  391. || inventory.getCount(true, FIRE_ID) == 0) {
  392. log("Run out of alchemy runes, disabling auto alch!");
  393. settings.itemAlchCheck = false;
  394. waitRandom = new int[] { 300, 900 };
  395. return Action.WAIT;
  396. }
  397. if (inventory.getCount(true, settings.alchItemIDs) > 0) {
  398. return Action.USE_MAGIC;
  399. }
  400. }
  401.  
  402. /**
  403. * Drop junk -just drops empty vials
  404. */
  405. if (inventory.getCount(true, JUNKIDS) > 0) {
  406. currentInventoryString = "Drop";
  407. currentInventoryIDs = JUNKIDS;
  408. return Action.USE_INVENTORY;
  409. }
  410.  
  411. /**
  412. * Bury bones check -if set amount of bones is reached(according to bury
  413. * bones speed) the bones inside inventory are buried *
  414. */
  415. if (settings.buryBonesCheck) {
  416. if (buryBonesTillNone && inventory.getCount(true, BONESID) == 0) {
  417. buryBonesTillNone = false;
  418. }
  419. if (buryBonesTillNone && inventory.getCount(true, BONESID) > 0) {
  420. currentInventoryString = "Bury";
  421. currentInventoryIDs = BONESID;
  422. return Action.USE_INVENTORY;
  423. }
  424. if (settings.buryBonesSpeed.equals("After picking up one")) {
  425. if (inventory.getCount(true, BONESID) > 0) {
  426. currentInventoryString = "Bury";
  427. currentInventoryIDs = BONESID;
  428. return Action.USE_INVENTORY;
  429. }
  430. }
  431. if (settings.buryBonesSpeed
  432. .equals("After picking up a random amount")) {
  433. if (inventory.getCount(true, BONESID) >= random(5, 15)) {
  434. buryBonesTillNone = true;
  435. currentInventoryString = "Bury";
  436. currentInventoryIDs = BONESID;
  437. return Action.USE_INVENTORY;
  438. }
  439. }
  440. if (settings.buryBonesSpeed.equals("When inventory is full")) {
  441. if (inventory.isFull() && inventory.getCount(true, BONESID) > 0) {
  442. buryBonesTillNone = true;
  443. currentInventoryString = "Bury";
  444. currentInventoryIDs = BONESID;
  445. return Action.USE_INVENTORY;
  446. }
  447. }
  448. }
  449.  
  450. /**
  451. * Special attack check -checks to see if there is enough special points
  452. * to use special attack
  453. */
  454. if (settings.useSpecialCheck) {
  455. if (canUseSpecial()) {
  456. return Action.USE_SPECIAL;
  457. }
  458. }
  459.  
  460. /**
  461. * Pick up items thread -makes sure the thread is not started again
  462. */
  463. if (itemPickUpThread != null) {
  464. if (itemPickUpThread.isAlive()) {
  465. return Action.WAIT;
  466. }
  467. }
  468.  
  469. /**
  470. * Pick up items check -picks up items to the set speed
  471. */
  472. if (settings.pickUpItems) {
  473. String pickUpSpeed = settings.pickUpSpeed;
  474. GroundItem itemTile = null;
  475. if (pickUpSpeed.equals("After each kill")) {
  476. itemTile = groundItems.getClosestItem(10, settings.itemIDs);
  477. }
  478. if (pickUpSpeed.equals("Random Occasions")) {
  479. if (random(0, 100) <= 10) {
  480. itemTile = groundItems.getClosestItem(10, settings.itemIDs);
  481. }
  482. }
  483. if (pickUpSpeed.equals("When no monsters around")) {
  484. if (npcCheck) {
  485. itemTile = groundItems.getClosestItem(10, settings.itemIDs);
  486. }
  487. }
  488. if (itemTile != null) {
  489. if (canPickUpItem(itemTile.getID(), true)) {
  490. try {
  491. Point itemScreen = getCalculations().tileToScreen(
  492. itemTile.getLocation());
  493. if (Calculations.onScreen(itemScreen)) {
  494. currentItemTile = itemTile;
  495. return Action.PICKUP;
  496. } else {
  497. currentWalkTile = (itemTile.getLocation());
  498. return Action.WALK;
  499. }
  500. } catch (Exception e) {
  501. System.out.print("picking up item error: " + e);
  502. waitRandom = new int[] { 700, 1500 };
  503. return Action.WAIT;
  504. }
  505. }
  506. }
  507. }
  508. if (settings.bonesToPeachesCheck || settings.buryBonesCheck) {
  509. GroundItem boneTile = groundItems.getClosestItem(5, BONESID);
  510. if (boneTile != null) {
  511. if (canPickUpItem(boneTile.getID(), false)) {
  512. try {
  513. Point boneScreen = getCalculations().tileToScreen(
  514. boneTile.getLocation());
  515. if (Calculations.onScreen(boneScreen)) {
  516. currentItemTile = boneTile;
  517. return Action.PICKUPBONE;
  518. } else {
  519. currentWalkTile = boneTile.getLocation();
  520. return Action.WALK;
  521. }
  522. } catch (Exception e) {
  523. System.out.print("picking up bones error: " + e);
  524. waitRandom = new int[] { 1000, 1900 };
  525. return Action.WAIT;
  526. }
  527. }
  528. }
  529. }
  530.  
  531. /**
  532. * Attacking npc -Searches for nearest npc and attacks it -Shuts down
  533. * script if no npcs around for random 1min - 3min
  534. */
  535. NPC npc = npcs.getClosest(10, settings.npcIDs);
  536. if (npc != null) {
  537. npcCheck = false;
  538. try {
  539. Point npcScreen = npc.getScreenPos();
  540. if (Calculations.onScreen(npcScreen)
  541. || distanceTo(npc.getLocation()) <= 1) {
  542. currentNPC = npc;
  543. return Action.ATTACK;
  544. } else {
  545. currentWalkTile = npc.getLocation();
  546. return Action.WALK;
  547. }
  548. } catch (Exception e) {
  549. System.out.print("attacking npc error: " + e);
  550. waitRandom = new int[] { 1300, 1900 };
  551. return Action.WAIT;
  552. }
  553. } else {
  554. if (!npcCheck) {
  555. lastNPCCheck = System.currentTimeMillis();
  556. npcCheck = true;
  557. }
  558. if (npcCheck) {
  559. if (System.currentTimeMillis() - lastNPCCheck >= random(60000,
  560. 180000)) {
  561. log("No npcs around for a while, shutting down script!");
  562. return Action.KILLSCRIPT;
  563. }
  564. }
  565. }
  566. return null;
  567. }
  568.  
  569. private void resetVariables() {
  570. currentNPC = null;
  571. currentItemTile = null;
  572. currentInventoryIDs = null;
  573. currentInventoryString = "";
  574. currentMagicSpell = 0;
  575. currentWalkTile = null;
  576. }
  577.  
  578. private void setVariablesToSkill() {
  579. if (skills.getLevel(Skills.SKILL_MAGIC) >= 55) {
  580. currentMagicSpell = INTERFACE_HIGH_ALCH;
  581. } else {
  582. currentMagicSpell = INTERFACE_LOW_ACLH;
  583. }
  584. }
  585.  
  586. int runEnergy = random(15, 50);
  587.  
  588. private boolean runCheck() {
  589. try {
  590. if (walking.getEnergy() >= runEnergy) {
  591. runEnergy = random(15, 50);
  592. return true;
  593. } else {
  594. return false;
  595. }
  596. } catch (Exception e) {
  597. System.out.print("runCheck() error: " + e);
  598. return false;
  599. }
  600. }
  601.  
  602. long healthRandomTime = 0;
  603. int hpToHealAt = 10;
  604.  
  605. private boolean healthCheck() {
  606. try {
  607. if (System.currentTimeMillis() - healthRandomTime > 120000) {
  608. healthRandomTime = System.currentTimeMillis();
  609. hpToHealAt = (int) random((int) (skills
  610. .getLevel(Skills.SKILL_HITPOINTS) / 3), (int) (skills
  611. .getLevel(Skills.SKILL_HITPOINTS) / 1.5));
  612. }
  613. return (skills.getLevel(Skills.SKILL_HITPOINTS) <= hpToHealAt);
  614. } catch (Exception e) {
  615. System.out.print("healthCheck() error: " + e);
  616. }
  617. return false;
  618. }
  619.  
  620. private boolean canPickUpItem(int itemID, boolean priority) {
  621. if (inventory.getCount() < 27) {
  622. return true;
  623. } else if (settings.itemAlchCheck && inventory.getCount() < 27
  624. || settings.itemAlchCheck && inventory.getCount() == 27
  625. && priority) {
  626. return true;
  627. } else if (!settings.itemAlchCheck && inventory.getCount() < 28) {
  628. return true;
  629. } else {
  630. if (inventory.getCount(true, itemID) > 0) {
  631. return true;
  632. }
  633. }
  634. return false;
  635. }
  636.  
  637. private boolean clickNPC(NPC npc) {
  638. try {
  639. if (!getMyPlayer().isInCombat()) {
  640. if (npc == null) {
  641. return false;
  642. }
  643. if (npc != null && !npc.isInCombat()
  644. && npc.getInteracting() == null) {
  645. npc.doAction("Attack");
  646. return true;
  647. }
  648. if (getMyPlayer().isInCombat()) {
  649. sleep(500, 1000);
  650. }
  651. }
  652. } catch (Exception e) {
  653. System.out.print("clickNPC(NPC, String) error: " + e);
  654. return false;
  655. }
  656. return false;
  657. }
  658.  
  659. class RFV2_ItemPickUpThread extends Thread {
  660.  
  661. private volatile boolean stop = false;
  662. GroundItem item;
  663. String[] itemNames;
  664.  
  665. public RFV2_ItemPickUpThread(GroundItem item, String[] itemNames) {
  666. this.item = item;
  667. this.itemNames = itemNames;
  668. }
  669.  
  670. @Override
  671. public void run() {
  672. while (!stop) {
  673. try {
  674. int a;
  675. int hoverRand = random(6, 12);
  676. Point itemScreen = getCalculations().tileToScreen(
  677. item.getLocation());
  678. for (a = hoverRand; a-- >= 0;) {
  679. if (stop || item == null) {
  680. break;
  681. }
  682. List<String> menuItems = getMenuItems();
  683. if (menuItems.size() > 1) {
  684. int b;
  685. int itemLength = itemNames.length;
  686. for (b = 0; b < itemLength; b++) {
  687. if (listContainsString(menuItems, itemNames[b])) {
  688. StringBuffer fullItemCommandBuf = new StringBuffer();
  689. fullItemCommandBuf.append("Take ");
  690. fullItemCommandBuf.append(itemNames[b]);
  691. String fullItemCommand = fullItemCommandBuf
  692. .toString();
  693. if (menuItems.get(0)
  694. .equals(fullItemCommand)) {
  695. stopThread();
  696. clickMouse(true);
  697. Thread.sleep(320, 620);
  698. } else {
  699. stopThread();
  700. clickMouse(false);
  701. Thread.sleep(120, 510);
  702. atMenu(fullItemCommand);
  703. }
  704. }
  705. }
  706. }
  707. Point randomP = new Point(random(itemScreen.x - 5,
  708. itemScreen.x + 5), random(itemScreen.y - 5,
  709. itemScreen.y + 5));
  710. moveMouse(randomP);
  711. }
  712. stopThread();
  713. } catch (Exception e) {
  714. System.out.print("menuListener error: " + e);
  715. }
  716. }
  717. }
  718.  
  719. public void stopThread() {
  720. stop = true;
  721. }
  722. };
  723.  
  724. // Optimized version of array contains string
  725. private boolean listContainsString(List<String> list, String string) {
  726. try {
  727. int a;
  728. for (a = list.size() - 1; a-- >= 0;) {
  729. if (list.get(a).contains(string)) {
  730. return true;
  731. }
  732. }
  733. } catch (Exception e) {
  734. }
  735. return false;
  736. }
  737.  
  738. public int distanceBetweenPoints(Point p1, Point p2) {
  739. return (int) Math.sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y)
  740. * (p2.y - p1.y));
  741. }
  742.  
  743. private Tile[] generatePath(Tile tile) {
  744. return generatePath(tile.getX(), tile.getY());
  745. }
  746.  
  747. // Thanks to aftermath for method
  748.  
  749. private Tile[] generatePath(int destinationX, int destinationY) {
  750. int startX = getMyPlayer().getLocation().getX();
  751. int startY = getMyPlayer().getLocation().getY();
  752. double dx, dy;
  753. ArrayList<Tile> list = new ArrayList<Tile>();
  754. list.add(new Tile(startX, startY));
  755. while (Math.hypot(destinationY - startY, destinationX - startX) > 8) {
  756. dx = destinationX - startX;
  757. dy = destinationY - startY;
  758. int gamble = random(10, 14);
  759. while (Math.hypot(dx, dy) > gamble) {
  760. dx *= .95;
  761. dy *= .95;
  762. }
  763. startX += (int) dx;
  764. startY += (int) dy;
  765. list.add(new Tile(startX, startY));
  766. }
  767. list.add(new Tile(destinationX, destinationY));
  768. return list.toArray(new Tile[list.size()]);
  769. }
  770.  
  771. private boolean pickUpItem(GroundItem item, String[] itemNames) {
  772. try {
  773. itemPickUpThread = new RFV2_ItemPickUpThread(item, itemNames);
  774. itemPickUpThread.start();
  775. return true;
  776. } catch (Exception e) {
  777. System.out.print("pickUPItem(GroundItem, String[]): " + e);
  778. return false;
  779. }
  780. }
  781.  
  782. int specialCost = 0;
  783. int lastSpecialValue = 0;
  784. long nextSpecialTime = 0;
  785.  
  786. private boolean canUseSpecial() {
  787. int SPECIAL_BAR_VAL = getSetting(300);
  788. int SPECIAL_IS_ON = getSetting(301);
  789. switch (SPECIAL_IS_ON) {
  790. case 0:
  791. if (specialCost == 0) {
  792. if (SPECIAL_BAR_VAL < lastSpecialValue) {
  793. specialCost = lastSpecialValue - SPECIAL_BAR_VAL;
  794. return false;
  795. }
  796. }
  797. if (SPECIAL_BAR_VAL >= specialCost
  798. && System.currentTimeMillis() >= nextSpecialTime) {
  799. nextSpecialTime = System.currentTimeMillis()
  800. + random(5000, 45000);
  801. return true;
  802. }
  803. case 1:
  804. lastSpecialValue = SPECIAL_BAR_VAL;
  805. return false;
  806. }
  807. return false;
  808. }
  809.  
  810. /*****************************************************************************
  811. * \ VARIABLES \
  812. *****************************************************************************/
  813. private long startTime = 0;
  814. private long nextABTime = 0;
  815. private boolean npcCheck = false;
  816. private long lastNPCCheck = 0;
  817. private boolean buryBonesTillNone = false;
  818. private RFV2_PotionSet currentPotionSet = null;
  819. private int[] waitRandom = { 200, 800 };
  820. private NPC currentNPC = null;
  821. private GroundItem currentItemTile = null;
  822. private int[] currentInventoryIDs = null;
  823. private String currentInventoryString = "";
  824. private Tile currentWalkTile = null;
  825. private int currentMagicSpell;
  826. private RFV2_ExperienceHandler experienceHandler = new RFV2_ExperienceHandler();
  827. private RFV2_ItemPickUpThread itemPickUpThread;
  828.  
  829. /*****************************************************************************
  830. * \ CONSTANTS \
  831. *****************************************************************************/
  832. private enum Action {
  833.  
  834. ATTACK, WALK, PICKUP, PICKUPBONE, USE_INVENTORY, USE_MAGIC, USE_SPECIAL, WAIT, KILLSCRIPT, ANTIBAN
  835. };
  836.  
  837. private RFV2_Settings settings = new RFV2_Settings();
  838. private final String SETTINGS_FILE_NAME = "RuskisFighterV2Settings.ini";
  839. private final int INTERFACE_MAGIC = 192;
  840. private final int INTERFACE_HIGH_ALCH = 34;
  841. private final int INTERFACE_LOW_ACLH = 13;
  842. private final int[] FOODID = { 1895, 1893, 1891, 4293, 2142, 291, 2140,
  843. 3228, 9980, 7223, 6297, 6293, 6295, 6299, 7521, 9988, 7228, 2878,
  844. 7568, 2343, 1861, 13433, 315, 325, 319, 3144, 347, 355, 333, 339,
  845. 351, 329, 3381, 361, 10136, 5003, 379, 365, 373, 7946, 385, 397,
  846. 391, 3369, 3371, 3373, 2309, 2325, 2333, 2327, 2331, 2323, 2335,
  847. 7178, 7180, 7188, 7190, 7198, 7200, 7208, 7210, 7218, 7220, 2003,
  848. 2011, 2289, 2291, 2293, 2295, 2297, 2299, 2301, 2303, 1891, 1893,
  849. 1895, 1897, 1899, 1901, 7072, 7062, 7078, 7064, 7084, 7082, 7066,
  850. 7068, 1942, 6701, 6703, 7054, 6705, 7056, 7060, 2130, 1985, 1993,
  851. 1989, 1978, 5763, 5765, 1913, 5747, 1905, 5739, 1909, 5743, 1907,
  852. 1911, 5745, 2955, 5749, 5751, 5753, 5755, 5757, 5759, 5761, 2084,
  853. 2034, 2048, 2036, 2217, 2213, 2205, 2209, 2054, 2040, 2080, 2277,
  854. 2225, 2255, 2221, 2253, 2219, 2281, 2227, 2223, 2191, 2233, 2092,
  855. 2032, 2074, 2030, 2281, 2235, 2064, 2028, 2187, 2185, 2229, 6883,
  856. 1971, 4608, 1883, 1885 };
  857. private final int NATURE_ID = 561;
  858. private final int FIRE_ID = 554;
  859. private final int[] BONESID = { 534, 530, 532, 526, 536 };
  860. private final int BONESPEACHTABID = 8015;
  861. private final int[] JUNKIDS = { 229 };
  862. private final String[] BONE_NAMES = { "Bones", "Big bones", "Wolf bones",
  863. "Bat bones", "Jogre bones", "Dragon bones", "Monkey bones",
  864. "Shaikahan bones", "Zogre bones", "Dagannoth bones" };
  865.  
  866. /*****************************************************************************
  867. * \ GRAPHICAL PAINT \
  868. *****************************************************************************/
  869. public void onRepaint(Graphics g) {
  870. int startAttackExp = 0, startStrengthExp = 0, startDefenseExp = 0, startHitpointsExp = 0, startRangeExp = 0, startMagicExp = 0, startPrayerExp = 0;
  871. if (settings.reportSetting.equals("Paint") && isLoggedIn()) {
  872. startAttackExp = experienceHandler.getSkillExp(Skills.SKILL_ATTACK);
  873. startStrengthExp = experienceHandler
  874. .getSkillExp(Skills.SKILL_STRENGTH);
  875. startDefenseExp = experienceHandler
  876. .getSkillExp(Skills.SKILL_DEFENSE);
  877. startHitpointsExp = experienceHandler
  878. .getSkillExp(Skills.SKILL_HITPOINTS);
  879. startRangeExp = experienceHandler.getSkillExp(Skills.SKILL_RANGE);
  880. startMagicExp = experienceHandler.getSkillExp(Skills.SKILL_MAGIC);
  881. startPrayerExp = experienceHandler.getSkillExp(Skills.SKILL_PRAYER);
  882. if (startTime == 0) {
  883. startTime = System.currentTimeMillis();
  884. }
  885. if (startAttackExp == 0) {
  886. experienceHandler.setExperiencePoints(Skills.SKILL_ATTACK,
  887. skills.getExperience(Skills.SKILL_ATTACK));
  888. }
  889. if (startStrengthExp == 0) {
  890. experienceHandler.setExperiencePoints(Skills.SKILL_STRENGTH,
  891. skills.getExperience(Skills.SKILL_STRENGTH));
  892. }
  893. if (startDefenseExp == 0) {
  894. experienceHandler.setExperiencePoints(Skills.SKILL_DEFENSE,
  895. skills.getExperience(Skills.SKILL_DEFENSE));
  896. }
  897. if (startHitpointsExp == 0) {
  898. experienceHandler.setExperiencePoints(Skills.SKILL_HITPOINTS,
  899. skills.getExperience(Skills.SKILL_HITPOINTS));
  900. }
  901. if (startRangeExp == 0) {
  902. experienceHandler.setExperiencePoints(Skills.SKILL_RANGE,
  903. skills.getExperience(Skills.SKILL_RANGE));
  904. }
  905. if (startMagicExp == 0) {
  906. experienceHandler.setExperiencePoints(Skills.SKILL_MAGIC,
  907. skills.getExperience(Skills.SKILL_MAGIC));
  908. }
  909. if (startPrayerExp == 0) {
  910. experienceHandler.setExperiencePoints(Skills.SKILL_PRAYER,
  911. skills.getExperience(Skills.SKILL_PRAYER));
  912. }
  913.  
  914. ArrayList<String> reportList = new ArrayList<String>();
  915. reportList.add(getName() + " V" + getVersion());
  916. int currentAttackExp = skills.getExperience(Skills.SKILL_ATTACK);
  917. int currentStrengthExp = skills
  918. .getExperience(Skills.SKILL_STRENGTH);
  919. int currentDefenseExp = skills.getExperience(Skills.SKILL_DEFENSE);
  920. int currentHitpointsExp = skills
  921. .getExperience(Skills.SKILL_HITPOINTS);
  922. int currentRangeExp = skills.getExperience(Skills.SKILL_RANGE);
  923. int currentMagicExp = skills.getExperience(Skills.SKILL_MAGIC);
  924. int currentPrayerExp = skills.getExperience(Skills.SKILL_PRAYER);
  925. int attackExpChange = currentAttackExp - startAttackExp;
  926. if (attackExpChange > 0) {
  927. reportList.add("Attack Exp: " + attackExpChange);
  928. }
  929. int strengthExpChange = currentStrengthExp - startStrengthExp;
  930. if (strengthExpChange > 0) {
  931. reportList.add("Strength Exp: " + strengthExpChange);
  932. }
  933. int defenseExpChange = currentDefenseExp - startDefenseExp;
  934. if (defenseExpChange > 0) {
  935. reportList.add("Defense Exp: " + defenseExpChange);
  936. }
  937. int hitpointsExpChange = currentHitpointsExp - startHitpointsExp;
  938. if (hitpointsExpChange > 0) {
  939. reportList.add("Hitpoints Exp: " + hitpointsExpChange);
  940. }
  941. int rangeExpChange = currentRangeExp - startRangeExp;
  942. if (rangeExpChange > 0) {
  943. reportList.add("Range Exp: " + rangeExpChange);
  944. }
  945. int magicExpChange = currentMagicExp - startMagicExp;
  946. if (magicExpChange > 0) {
  947. reportList.add("Magic Exp: " + magicExpChange);
  948. }
  949. int prayerExpChange = currentPrayerExp - startPrayerExp;
  950. if (prayerExpChange > 0) {
  951. reportList.add("Prayer Exp: " + prayerExpChange);
  952. }
  953.  
  954. long millis = System.currentTimeMillis() - startTime;
  955. long hours = millis / (1000 * 60 * 60);
  956. millis -= hours * 1000 * 60 * 60;
  957. long minutes = millis / (1000 * 60);
  958. millis -= minutes * 1000 * 60;
  959. long seconds = millis / 1000;
  960. reportList.add("Runtime: " + hours + ":" + minutes + ":" + seconds);
  961.  
  962. Point str = new Point(350, 25);
  963. g.setColor(new Color(60, 140, 200, 50));
  964. g.fill3DRect(340, 10, 165, reportList.size() * 20 + 6, true);
  965. g.setColor(new Color(60, 155, 159, 50));
  966. g.fill3DRect(341, 11, 163, reportList.size() * 20 + 4, true);
  967. g.setColor(Color.WHITE);
  968. for (int a = 0; a < reportList.size(); a++) {
  969. g.drawString(reportList.get(a), str.x, str.y);
  970. str = new Point(str.x, str.y + 20);
  971. }
  972. }
  973. }
  974.  
  975. public Tile nextTile(final Tile[] path, final int maxDist) {
  976. final Tile cur = getMyPlayer().getLocation();
  977. for (int i = path.length - 1; i >= 0; i--) {
  978. if ((cur.distanceTo(path[i])) <= maxDist
  979. && (cur.distanceTo(path[path.length - 1]) > 5)) {
  980. return path[i];
  981. }
  982. }
  983. return null;
  984. }
  985.  
  986. int x;
  987. int y;
  988.  
  989. public int getX() {
  990. return x;
  991. }
  992.  
  993. public int getY() {
  994. return y;
  995. }
  996.  
  997. public Tile randomizeTile(final int maxXDeviation, final int maxYDeviation) {
  998. int x = getX();
  999. int y = getY();
  1000. if (maxXDeviation > 0) {
  1001. double d = Math.random() * 2 - 1.0;
  1002. d *= maxXDeviation;
  1003. x += (int) d;
  1004. }
  1005. if (maxYDeviation > 0) {
  1006. double d = Math.random() * 2 - 1.0;
  1007. d *= maxYDeviation;
  1008. y += (int) d;
  1009. }
  1010. return new Tile(x, y);
  1011. }
  1012.  
  1013. /*****************************************************************************
  1014. * \ USER INTERFACE - Generate by Netbeans IDE 6.1 - edited by Ruski \
  1015. *****************************************************************************/
  1016. private void showSettingsInterface() {
  1017.  
  1018. mainFrame = new javax.swing.JFrame("Ruskis Fighter V" + getVersion());
  1019. jPanel1 = new javax.swing.JPanel();
  1020. jLabel111 = new javax.swing.JLabel();
  1021. jTabbedPane1 = new javax.swing.JTabbedPane();
  1022. jPanel2 = new javax.swing.JPanel();
  1023. jLabel222 = new javax.swing.JLabel();
  1024. jLabel333 = new javax.swing.JLabel();
  1025. npcIDs = new javax.swing.JTextField();
  1026. jLabel444 = new javax.swing.JLabel();
  1027. specialCheck = new javax.swing.JCheckBox();
  1028. npcsInCageCheck = new javax.swing.JCheckBox();
  1029. jPanel3 = new javax.swing.JPanel();
  1030. jLabel7 = new javax.swing.JLabel();
  1031. jLabel8 = new javax.swing.JLabel();
  1032. itemIDs = new javax.swing.JTextField();
  1033. jLabel10 = new javax.swing.JLabel();
  1034. itemNamesText = new javax.swing.JTextField();
  1035. pickUpCheck = new javax.swing.JCheckBox();
  1036. jLabel12 = new javax.swing.JLabel();
  1037. pickUpSpeedCombo = new javax.swing.JComboBox();
  1038. jLabel9 = new javax.swing.JLabel();
  1039. jLabel11 = new javax.swing.JLabel();
  1040. jPanel4 = new javax.swing.JPanel();
  1041. eatFoodCheck = new javax.swing.JCheckBox();
  1042. jLabel14 = new javax.swing.JLabel();
  1043. stopScriptWhenNoFoodCheck = new javax.swing.JCheckBox();
  1044. peachesCheck = new javax.swing.JCheckBox();
  1045. jLabel15 = new javax.swing.JLabel();
  1046. jLabel16 = new javax.swing.JLabel();
  1047. jPanel5 = new javax.swing.JPanel();
  1048. bonesCheck = new javax.swing.JCheckBox();
  1049. jLabel17 = new javax.swing.JLabel();
  1050. jLabel18 = new javax.swing.JLabel();
  1051. burySpeedCombo = new javax.swing.JComboBox();
  1052. jLabel19 = new javax.swing.JLabel();
  1053. jPanel6 = new javax.swing.JPanel();
  1054. usePotionsCheck = new javax.swing.JCheckBox();
  1055. jLabel20 = new javax.swing.JLabel();
  1056. jLabel21 = new javax.swing.JLabel();
  1057. potionCombo = new javax.swing.JComboBox();
  1058. addPotionButton = new javax.swing.JButton();
  1059. potionScroll = new javax.swing.JScrollPane();
  1060. potionList = new javax.swing.JList();
  1061. removePotionButton = new javax.swing.JButton();
  1062. jPanel8 = new javax.swing.JPanel();
  1063. useItemAlchCheck = new javax.swing.JCheckBox();
  1064. jLabel23 = new javax.swing.JLabel();
  1065. jLabel24 = new javax.swing.JLabel();
  1066. alchItemIDsText = new javax.swing.JTextField();
  1067. jLabel25 = new javax.swing.JLabel();
  1068. jLabel26 = new javax.swing.JLabel();
  1069. jPanel9 = new javax.swing.JPanel();
  1070. jLabel6 = new javax.swing.JLabel();
  1071. equipArrowsCheck = new javax.swing.JCheckBox();
  1072. jLabel13 = new javax.swing.JLabel();
  1073. equipArrowText = new javax.swing.JTextField();
  1074. jPanel7 = new javax.swing.JPanel();
  1075. jLabel27 = new javax.swing.JLabel();
  1076. antibanCheck = new javax.swing.JCheckBox();
  1077. nextNPCCheck = new javax.swing.JCheckBox();
  1078. jLabel28 = new javax.swing.JLabel();
  1079. jLabel5 = new javax.swing.JLabel();
  1080. reportCombo = new javax.swing.JComboBox();
  1081. startButton = new javax.swing.JButton();
  1082. saveFormSettingsCheck = new javax.swing.JCheckBox();
  1083.  
  1084. mainFrame
  1085. .setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  1086.  
  1087. jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
  1088. "Welcome",
  1089. javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
  1090. javax.swing.border.TitledBorder.DEFAULT_POSITION,
  1091. new java.awt.Font("Tahoma", 1, 11))); // NOI18N
  1092.  
  1093. jLabel111
  1094. .setText("<html>Fill out the below form to start auto fighting. You can also click on \"Save Settings\" to save the form input for future use.</html>");
  1095.  
  1096. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(
  1097. jPanel1);
  1098. jPanel1.setLayout(jPanel1Layout);
  1099. jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(
  1100. javax.swing.GroupLayout.Alignment.LEADING).addGroup(
  1101. jPanel1Layout.createSequentialGroup().addContainerGap()
  1102. .addComponent(jLabel111,
  1103. javax.swing.GroupLayout.PREFERRED_SIZE, 415,
  1104. javax.swing.GroupLayout.PREFERRED_SIZE)
  1105. .addContainerGap(110, Short.MAX_VALUE)));
  1106. jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(
  1107. javax.swing.GroupLayout.Alignment.LEADING).addGroup(
  1108. jPanel1Layout.createSequentialGroup().addComponent(jLabel111,
  1109. javax.swing.GroupLayout.DEFAULT_SIZE, 28,
  1110. Short.MAX_VALUE).addContainerGap()));
  1111.  
  1112. jLabel222
  1113. .setText("<html>Put in the monster IDs you would like to auto fight. Separate each ID with a comma, as shown in the example below.</html>");
  1114.  
  1115. jLabel333.setText("NPC IDs:");
  1116.  
  1117. jLabel444.setText("(separate each ID with a comma, e.g 123,23,12)");
  1118.  
  1119. specialCheck.setText("Use Special Attack?");
  1120.  
  1121. npcsInCageCheck.setText("NPCs are in cage (range, magic)");
  1122.  
  1123. javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(
  1124. jPanel2);
  1125. jPanel2.setLayout(jPanel2Layout);
  1126. jPanel2Layout
  1127. .setHorizontalGroup(jPanel2Layout
  1128. .createParallelGroup(
  1129. javax.swing.GroupLayout.Alignment.LEADING)
  1130. .addGroup(
  1131. jPanel2Layout
  1132. .createSequentialGroup()
  1133. .addGap(10, 10, 10)
  1134. .addGroup(
  1135. jPanel2Layout
  1136. .createParallelGroup(
  1137. javax.swing.GroupLayout.Alignment.LEADING)
  1138. .addGroup(
  1139. jPanel2Layout
  1140. .createSequentialGroup()
  1141. .addComponent(
  1142. jLabel333)
  1143. .addPreferredGap(
  1144. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1145. .addGroup(
  1146. jPanel2Layout
  1147. .createParallelGroup(
  1148. javax.swing.GroupLayout.Alignment.LEADING)
  1149. .addComponent(
  1150. npcIDs,
  1151. javax.swing.GroupLayout.PREFERRED_SIZE,
  1152. 236,
  1153. javax.swing.GroupLayout.PREFERRED_SIZE)
  1154. .addGroup(
  1155. jPanel2Layout
  1156. .createParallelGroup(
  1157. javax.swing.GroupLayout.Alignment.TRAILING,
  1158. false)
  1159. .addGroup(
  1160. javax.swing.GroupLayout.Alignment.LEADING,
  1161. jPanel2Layout
  1162. .createSequentialGroup()
  1163. .addComponent(
  1164. specialCheck)
  1165. .addPreferredGap(
  1166. javax.swing.LayoutStyle.ComponentPlacement.RELATED,
  1167. javax.swing.GroupLayout.DEFAULT_SIZE,
  1168. Short.MAX_VALUE)
  1169. .addComponent(
  1170. npcsInCageCheck))
  1171. .addComponent(
  1172. jLabel444,
  1173. javax.swing.GroupLayout.Alignment.LEADING))))
  1174. .addComponent(
  1175. jLabel222,
  1176. javax.swing.GroupLayout.PREFERRED_SIZE,
  1177. 429,
  1178. javax.swing.GroupLayout.PREFERRED_SIZE))
  1179. .addContainerGap(103, Short.MAX_VALUE)));
  1180. jPanel2Layout
  1181. .setVerticalGroup(jPanel2Layout
  1182. .createParallelGroup(
  1183. javax.swing.GroupLayout.Alignment.LEADING)
  1184. .addGroup(
  1185. jPanel2Layout
  1186. .createSequentialGroup()
  1187. .addContainerGap()
  1188. .addComponent(jLabel222)
  1189. .addPreferredGap(
  1190. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1191. .addGroup(
  1192. jPanel2Layout
  1193. .createParallelGroup(
  1194. javax.swing.GroupLayout.Alignment.BASELINE)
  1195. .addComponent(jLabel333)
  1196. .addComponent(
  1197. npcIDs,
  1198. javax.swing.GroupLayout.PREFERRED_SIZE,
  1199. javax.swing.GroupLayout.DEFAULT_SIZE,
  1200. javax.swing.GroupLayout.PREFERRED_SIZE))
  1201. .addPreferredGap(
  1202. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1203. .addComponent(jLabel444)
  1204. .addGap(18, 18, 18)
  1205. .addGroup(
  1206. jPanel2Layout
  1207. .createParallelGroup(
  1208. javax.swing.GroupLayout.Alignment.BASELINE)
  1209. .addComponent(
  1210. specialCheck)
  1211. .addComponent(
  1212. npcsInCageCheck))
  1213. .addContainerGap(93, Short.MAX_VALUE)));
  1214.  
  1215. jTabbedPane1.addTab("Monsters", jPanel2);
  1216.  
  1217. jLabel7
  1218. .setText("<html>Enter the IDs and the names of the items you wish to pick up. Please make sure you put in both the ID and the name for the item and the spelling of the item name is exactly as in the game.</html>");
  1219.  
  1220. jLabel8.setText("Item IDs:");
  1221.  
  1222. jLabel10.setText("Item Names:");
  1223.  
  1224. pickUpCheck.setText("Use Item Pick Up?");
  1225.  
  1226. jLabel12.setText("Pick Up Speed:");
  1227.  
  1228. pickUpSpeedCombo.setModel(new javax.swing.DefaultComboBoxModel(
  1229. new String[] { "After each kill", "Random Occasions",
  1230. "When no monsters around" }));
  1231.  
  1232. jLabel9.setText("(separate IDs with a comma, e.g 123,21,31)");
  1233.  
  1234. jLabel11.setText("(separate names with a comma, e.g Coins,Iron arrow)");
  1235.  
  1236. javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(
  1237. jPanel3);
  1238. jPanel3.setLayout(jPanel3Layout);
  1239. jPanel3Layout
  1240. .setHorizontalGroup(jPanel3Layout
  1241. .createParallelGroup(
  1242. javax.swing.GroupLayout.Alignment.LEADING)
  1243. .addGroup(
  1244. jPanel3Layout
  1245. .createSequentialGroup()
  1246. .addContainerGap()
  1247. .addGroup(
  1248. jPanel3Layout
  1249. .createParallelGroup(
  1250. javax.swing.GroupLayout.Alignment.LEADING)
  1251. .addGroup(
  1252. jPanel3Layout
  1253. .createSequentialGroup()
  1254. .addComponent(
  1255. pickUpCheck)
  1256. .addContainerGap())
  1257. .addGroup(
  1258. javax.swing.GroupLayout.Alignment.TRAILING,
  1259. jPanel3Layout
  1260. .createSequentialGroup()
  1261. .addPreferredGap(
  1262. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1263. .addGroup(
  1264. jPanel3Layout
  1265. .createParallelGroup(
  1266. javax.swing.GroupLayout.Alignment.TRAILING)
  1267. .addGroup(
  1268. javax.swing.GroupLayout.Alignment.LEADING,
  1269. jPanel3Layout
  1270. .createSequentialGroup()
  1271. .addGroup(
  1272. jPanel3Layout
  1273. .createParallelGroup(
  1274. javax.swing.GroupLayout.Alignment.LEADING)
  1275. .addGroup(
  1276. jPanel3Layout
  1277. .createSequentialGroup()
  1278. .addGap(
  1279. 8,
  1280. 8,
  1281. 8)
  1282. .addComponent(
  1283. jLabel10))
  1284. .addGroup(
  1285. jPanel3Layout
  1286. .createSequentialGroup()
  1287. .addGap(
  1288. 10,
  1289. 10,
  1290. 10)
  1291. .addComponent(
  1292. jLabel8)))
  1293. .addGap(
  1294. 18,
  1295. 18,
  1296. 18)
  1297. .addGroup(
  1298. jPanel3Layout
  1299. .createParallelGroup(
  1300. javax.swing.GroupLayout.Alignment.TRAILING,
  1301. false)
  1302. .addComponent(
  1303. itemNamesText,
  1304. javax.swing.GroupLayout.Alignment.LEADING)
  1305. .addComponent(
  1306. jLabel9,
  1307. javax.swing.GroupLayout.Alignment.LEADING,
  1308. javax.swing.GroupLayout.DEFAULT_SIZE,
  1309. javax.swing.GroupLayout.DEFAULT_SIZE,
  1310. Short.MAX_VALUE)
  1311. .addComponent(
  1312. jLabel11,
  1313. javax.swing.GroupLayout.Alignment.LEADING,
  1314. javax.swing.GroupLayout.DEFAULT_SIZE,
  1315. javax.swing.GroupLayout.DEFAULT_SIZE,
  1316. Short.MAX_VALUE)
  1317. .addComponent(
  1318. itemIDs,
  1319. javax.swing.GroupLayout.Alignment.LEADING,
  1320. javax.swing.GroupLayout.PREFERRED_SIZE,
  1321. 258,
  1322. javax.swing.GroupLayout.PREFERRED_SIZE)))
  1323. .addGroup(
  1324. javax.swing.GroupLayout.Alignment.LEADING,
  1325. jPanel3Layout
  1326. .createSequentialGroup()
  1327. .addComponent(
  1328. jLabel12)
  1329. .addGap(
  1330. 18,
  1331. 18,
  1332. 18)
  1333. .addComponent(
  1334. pickUpSpeedCombo,
  1335. javax.swing.GroupLayout.PREFERRED_SIZE,
  1336. javax.swing.GroupLayout.DEFAULT_SIZE,
  1337. javax.swing.GroupLayout.PREFERRED_SIZE))
  1338. .addComponent(
  1339. jLabel7,
  1340. javax.swing.GroupLayout.Alignment.LEADING,
  1341. javax.swing.GroupLayout.PREFERRED_SIZE,
  1342. 421,
  1343. javax.swing.GroupLayout.PREFERRED_SIZE))
  1344. .addContainerGap()))));
  1345. jPanel3Layout
  1346. .setVerticalGroup(jPanel3Layout
  1347. .createParallelGroup(
  1348. javax.swing.GroupLayout.Alignment.LEADING)
  1349. .addGroup(
  1350. jPanel3Layout
  1351. .createSequentialGroup()
  1352. .addContainerGap()
  1353. .addComponent(pickUpCheck)
  1354. .addPreferredGap(
  1355. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1356. .addComponent(
  1357. jLabel7,
  1358. javax.swing.GroupLayout.PREFERRED_SIZE,
  1359. 47,
  1360. javax.swing.GroupLayout.PREFERRED_SIZE)
  1361. .addPreferredGap(
  1362. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1363. .addGroup(
  1364. jPanel3Layout
  1365. .createParallelGroup(
  1366. javax.swing.GroupLayout.Alignment.BASELINE)
  1367. .addComponent(jLabel8)
  1368. .addComponent(
  1369. itemIDs,
  1370. javax.swing.GroupLayout.PREFERRED_SIZE,
  1371. javax.swing.GroupLayout.DEFAULT_SIZE,
  1372. javax.swing.GroupLayout.PREFERRED_SIZE))
  1373. .addPreferredGap(
  1374. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1375. .addComponent(jLabel9)
  1376. .addPreferredGap(
  1377. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1378. .addGroup(
  1379. jPanel3Layout
  1380. .createParallelGroup(
  1381. javax.swing.GroupLayout.Alignment.BASELINE)
  1382. .addComponent(jLabel10)
  1383. .addComponent(
  1384. itemNamesText,
  1385. javax.swing.GroupLayout.PREFERRED_SIZE,
  1386. javax.swing.GroupLayout.DEFAULT_SIZE,
  1387. javax.swing.GroupLayout.PREFERRED_SIZE))
  1388. .addPreferredGap(
  1389. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1390. .addComponent(jLabel11)
  1391. .addPreferredGap(
  1392. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1393. .addGroup(
  1394. jPanel3Layout
  1395. .createParallelGroup(
  1396. javax.swing.GroupLayout.Alignment.BASELINE)
  1397. .addComponent(jLabel12)
  1398. .addComponent(
  1399. pickUpSpeedCombo,
  1400. javax.swing.GroupLayout.PREFERRED_SIZE,
  1401. javax.swing.GroupLayout.DEFAULT_SIZE,
  1402. javax.swing.GroupLayout.PREFERRED_SIZE))
  1403. .addContainerGap(27, Short.MAX_VALUE)));
  1404.  
  1405. jTabbedPane1.addTab("Item Pick Up", jPanel3);
  1406.  
  1407. eatFoodCheck.setText("Eat Food?");
  1408.  
  1409. jLabel14
  1410. .setText("<html>Food is automatically found in your inventory and eaten at a random hp. You can select \"Stop script when no food\", so when you run out of food, the script is ended.</html>");
  1411.  
  1412. stopScriptWhenNoFoodCheck.setText("Stop script when no food?");
  1413.  
  1414. peachesCheck.setText("Use bones to peaches?");
  1415.  
  1416. jLabel15
  1417. .setText("<html>Bones to peaches useus \"Bones to Peaches\" tabs. The script will automatically pick up bones and when inventory full or more food is needed, it will turn the bones into peaches.</html>");
  1418.  
  1419. jLabel16.setFont(new java.awt.Font("Tahoma", 1, 11));
  1420. jLabel16.setForeground(new java.awt.Color(204, 0, 0));
  1421. jLabel16
  1422. .setText("<html>WARNING: \"Bury Bones\" function is automally disabled when this feature is used.</html>");
  1423.  
  1424. javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(
  1425. jPanel4);
  1426. jPanel4.setLayout(jPanel4Layout);
  1427. jPanel4Layout
  1428. .setHorizontalGroup(jPanel4Layout
  1429. .createParallelGroup(
  1430. javax.swing.GroupLayout.Alignment.LEADING)
  1431. .addGroup(
  1432. jPanel4Layout
  1433. .createSequentialGroup()
  1434. .addContainerGap()
  1435. .addGroup(
  1436. jPanel4Layout
  1437. .createParallelGroup(
  1438. javax.swing.GroupLayout.Alignment.LEADING)
  1439. .addComponent(
  1440. peachesCheck)
  1441. .addComponent(
  1442. jLabel14,
  1443. javax.swing.GroupLayout.DEFAULT_SIZE,
  1444. 522,
  1445. Short.MAX_VALUE)
  1446. .addGroup(
  1447. jPanel4Layout
  1448. .createSequentialGroup()
  1449. .addComponent(
  1450. eatFoodCheck)
  1451. .addGap(
  1452. 18,
  1453. 18,
  1454. 18)
  1455. .addComponent(
  1456. stopScriptWhenNoFoodCheck))
  1457. .addComponent(
  1458. jLabel15,
  1459. javax.swing.GroupLayout.DEFAULT_SIZE,
  1460. 522,
  1461. Short.MAX_VALUE)
  1462. .addComponent(
  1463. jLabel16,
  1464. javax.swing.GroupLayout.PREFERRED_SIZE,
  1465. 423,
  1466. javax.swing.GroupLayout.PREFERRED_SIZE))
  1467. .addContainerGap()));
  1468. jPanel4Layout
  1469. .setVerticalGroup(jPanel4Layout
  1470. .createParallelGroup(
  1471. javax.swing.GroupLayout.Alignment.LEADING)
  1472. .addGroup(
  1473. jPanel4Layout
  1474. .createSequentialGroup()
  1475. .addContainerGap()
  1476. .addGroup(
  1477. jPanel4Layout
  1478. .createParallelGroup(
  1479. javax.swing.GroupLayout.Alignment.BASELINE)
  1480. .addComponent(
  1481. eatFoodCheck)
  1482. .addComponent(
  1483. stopScriptWhenNoFoodCheck))
  1484. .addPreferredGap(
  1485. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1486. .addComponent(jLabel14)
  1487. .addPreferredGap(
  1488. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1489. .addComponent(peachesCheck)
  1490. .addPreferredGap(
  1491. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1492. .addComponent(jLabel15)
  1493. .addPreferredGap(
  1494. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1495. .addComponent(jLabel16)
  1496. .addContainerGap(65, Short.MAX_VALUE)));
  1497.  
  1498. jTabbedPane1.addTab("Food/Eating", jPanel4);
  1499.  
  1500. bonesCheck.setText("Collect and Bury Bones?");
  1501.  
  1502. jLabel17
  1503. .setText("<html>Will collect all types of bones and bury them according to \"When to bury\" is specified. Cannot be used with \"Bones to peaches\" functions.</html>");
  1504.  
  1505. jLabel18.setText("When to bury:");
  1506.  
  1507. burySpeedCombo.setModel(new javax.swing.DefaultComboBoxModel(
  1508. new String[] { "After picking up one",
  1509. "After picking up a random amount",
  1510. "When inventory is full" }));
  1511.  
  1512. jLabel19
  1513. .setText("<html>When random is selected, the script will bury bones when the bone count inside the inventory is between 5 - 15 bones.</html> ");
  1514.  
  1515. javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(
  1516. jPanel5);
  1517. jPanel5.setLayout(jPanel5Layout);
  1518. jPanel5Layout
  1519. .setHorizontalGroup(jPanel5Layout
  1520. .createParallelGroup(
  1521. javax.swing.GroupLayout.Alignment.LEADING)
  1522. .addGroup(
  1523. jPanel5Layout
  1524. .createSequentialGroup()
  1525. .addContainerGap()
  1526. .addGroup(
  1527. jPanel5Layout
  1528. .createParallelGroup(
  1529. javax.swing.GroupLayout.Alignment.LEADING,
  1530. false)
  1531. .addComponent(
  1532. bonesCheck)
  1533. .addGroup(
  1534. jPanel5Layout
  1535. .createSequentialGroup()
  1536. .addGap(
  1537. 10,
  1538. 10,
  1539. 10)
  1540. .addComponent(
  1541. jLabel18)
  1542. .addGap(
  1543. 18,
  1544. 18,
  1545. 18)
  1546. .addComponent(
  1547. burySpeedCombo,
  1548. javax.swing.GroupLayout.PREFERRED_SIZE,
  1549. javax.swing.GroupLayout.DEFAULT_SIZE,
  1550. javax.swing.GroupLayout.PREFERRED_SIZE))
  1551. .addComponent(
  1552. jLabel17,
  1553. javax.swing.GroupLayout.DEFAULT_SIZE,
  1554. 428,
  1555. Short.MAX_VALUE)
  1556. .addComponent(jLabel19,
  1557. 0, 0,
  1558. Short.MAX_VALUE))
  1559. .addContainerGap(104, Short.MAX_VALUE)));
  1560. jPanel5Layout
  1561. .setVerticalGroup(jPanel5Layout
  1562. .createParallelGroup(
  1563. javax.swing.GroupLayout.Alignment.LEADING)
  1564. .addGroup(
  1565. jPanel5Layout
  1566. .createSequentialGroup()
  1567. .addContainerGap()
  1568. .addComponent(bonesCheck)
  1569. .addPreferredGap(
  1570. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1571. .addComponent(jLabel17)
  1572. .addGap(11, 11, 11)
  1573. .addGroup(
  1574. jPanel5Layout
  1575. .createParallelGroup(
  1576. javax.swing.GroupLayout.Alignment.BASELINE)
  1577. .addComponent(jLabel18)
  1578. .addComponent(
  1579. burySpeedCombo,
  1580. javax.swing.GroupLayout.PREFERRED_SIZE,
  1581. javax.swing.GroupLayout.DEFAULT_SIZE,
  1582. javax.swing.GroupLayout.PREFERRED_SIZE))
  1583. .addPreferredGap(
  1584. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1585. .addComponent(
  1586. jLabel19,
  1587. javax.swing.GroupLayout.PREFERRED_SIZE,
  1588. 41,
  1589. javax.swing.GroupLayout.PREFERRED_SIZE)
  1590. .addContainerGap(81, Short.MAX_VALUE)));
  1591.  
  1592. jTabbedPane1.addTab("Bury Bones", jPanel5);
  1593.  
  1594. usePotionsCheck.setText("Use Potions?");
  1595.  
  1596. jLabel20
  1597. .setText("<html>When enabled, the script will automatically drink the desired potion(s) when the affected skill is only 2-3 above the actual skill level. Use the combo list of potions to selected the required potion and press add to add it to the potion list. To remove a potion from the list, select the potion in the list and press remove.</html>");
  1598.  
  1599. jLabel21.setText("Potion Combo:");
  1600.  
  1601. potionCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
  1602. "Regular Attack Potion", "Regular Strength Potion",
  1603. "Super Strength Potion", "Super Defense Potion",
  1604. "Super Attack Potion", "Magic Potion", "Ranging Potion" }));
  1605.  
  1606. addPotionButton.setText("ADD");
  1607. addPotionButton.addActionListener(this);
  1608. potionList
  1609. .setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);
  1610. potionScroll.setViewportView(potionList);
  1611.  
  1612. removePotionButton.setText("REMOVE");
  1613. removePotionButton.addActionListener(this);
  1614. javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(
  1615. jPanel6);
  1616. jPanel6.setLayout(jPanel6Layout);
  1617. jPanel6Layout
  1618. .setHorizontalGroup(jPanel6Layout
  1619. .createParallelGroup(
  1620. javax.swing.GroupLayout.Alignment.LEADING)
  1621. .addGroup(
  1622. jPanel6Layout
  1623. .createSequentialGroup()
  1624. .addContainerGap()
  1625. .addGroup(
  1626. jPanel6Layout
  1627. .createParallelGroup(
  1628. javax.swing.GroupLayout.Alignment.LEADING)
  1629. .addComponent(
  1630. usePotionsCheck)
  1631. .addGroup(
  1632. jPanel6Layout
  1633. .createSequentialGroup()
  1634. .addGroup(
  1635. jPanel6Layout
  1636. .createParallelGroup(
  1637. javax.swing.GroupLayout.Alignment.LEADING,
  1638. false)
  1639. .addGroup(
  1640. jPanel6Layout
  1641. .createSequentialGroup()
  1642. .addGap(
  1643. 10,
  1644. 10,
  1645. 10)
  1646. .addComponent(
  1647. jLabel21)
  1648. .addGap(
  1649. 18,
  1650. 18,
  1651. 18)
  1652. .addComponent(
  1653. potionCombo,
  1654. javax.swing.GroupLayout.PREFERRED_SIZE,
  1655. javax.swing.GroupLayout.DEFAULT_SIZE,
  1656. javax.swing.GroupLayout.PREFERRED_SIZE))
  1657. .addComponent(
  1658. potionScroll,
  1659. 0,
  1660. 0,
  1661. Short.MAX_VALUE))
  1662. .addPreferredGap(
  1663. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1664. .addGroup(
  1665. jPanel6Layout
  1666. .createParallelGroup(
  1667. javax.swing.GroupLayout.Alignment.LEADING,
  1668. false)
  1669. .addComponent(
  1670. removePotionButton,
  1671. javax.swing.GroupLayout.DEFAULT_SIZE,
  1672. javax.swing.GroupLayout.DEFAULT_SIZE,
  1673. Short.MAX_VALUE)
  1674. .addComponent(
  1675. addPotionButton,
  1676. javax.swing.GroupLayout.DEFAULT_SIZE,
  1677. 100,
  1678. Short.MAX_VALUE)))
  1679. .addComponent(
  1680. jLabel20,
  1681. javax.swing.GroupLayout.PREFERRED_SIZE,
  1682. 428,
  1683. javax.swing.GroupLayout.PREFERRED_SIZE))
  1684. .addContainerGap(104, Short.MAX_VALUE)));
  1685. jPanel6Layout
  1686. .setVerticalGroup(jPanel6Layout
  1687. .createParallelGroup(
  1688. javax.swing.GroupLayout.Alignment.LEADING)
  1689. .addGroup(
  1690. jPanel6Layout
  1691. .createSequentialGroup()
  1692. .addContainerGap()
  1693. .addComponent(usePotionsCheck)
  1694. .addPreferredGap(
  1695. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1696. .addComponent(jLabel20)
  1697. .addPreferredGap(
  1698. javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1699. .addGroup(
  1700. jPanel6Layout
  1701. .createParallelGroup(
  1702. javax.swing.GroupLayout.Alignment.TRAILING)
  1703. .addGroup(
  1704. jPanel6Layout
  1705. .createParallelGroup(
  1706. javax.swing.GroupLayout.Alignment.BASELINE)
  1707. .addComponent(
  1708. potionCombo,
  1709. javax.swing.GroupLayout.PREFERRED_SIZE,
  1710. javax.swing.GroupLayout.DEFAULT_SIZE,
  1711. javax.swing.GroupLayout.PREFERRED_SIZE)
  1712. .addComponent(
  1713. addPotionButton))
  1714. .addComponent(jLabel21))
  1715. .addPreferredGap(
  1716. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1717. .addGroup(
  1718. jPanel6Layout
  1719. .createParallelGroup(
  1720. javax.swing.GroupLayout.Alignment.LEADING)
  1721. .addComponent(
  1722. potionScroll,
  1723. javax.swing.GroupLayout.DEFAULT_SIZE,
  1724. 85,
  1725. Short.MAX_VALUE)
  1726. .addComponent(
  1727. removePotionButton))
  1728. .addContainerGap()));
  1729.  
  1730. jTabbedPane1.addTab("Potions", jPanel6);
  1731.  
  1732. useItemAlchCheck.setText("Use Item Alching?");
  1733.  
  1734. jLabel23
  1735. .setText("<html>To use this function, make sure that you have some kind of item(s) that you are picking to be alched. Also have the required runes. Below you can enter the item IDs that you wish to be alched, make sure they are also in the \"Item Pick Up\" functions.</html>");
  1736.  
  1737. jLabel24.setText("Alch Item IDs:");
  1738.  
  1739. jLabel25.setText("(separate each ID with a comma, e.g 123,23,12)");
  1740.  
  1741. jLabel26.setFont(new java.awt.Font("Tahoma", 1, 11));
  1742. jLabel26.setForeground(new java.awt.Color(204, 0, 0));
  1743. jLabel26
  1744. .setText("WARNING: Make sure you have enough inventory space for coins.");
  1745.  
  1746. javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(
  1747. jPanel8);
  1748. jPanel8.setLayout(jPanel8Layout);
  1749. jPanel8Layout
  1750. .setHorizontalGroup(jPanel8Layout
  1751. .createParallelGroup(
  1752. javax.swing.GroupLayout.Alignment.LEADING)
  1753. .addGroup(
  1754. jPanel8Layout
  1755. .createSequentialGroup()
  1756. .addContainerGap()
  1757. .addGroup(
  1758. jPanel8Layout
  1759. .createParallelGroup(
  1760. javax.swing.GroupLayout.Alignment.LEADING)
  1761. .addGroup(
  1762. jPanel8Layout
  1763. .createSequentialGroup()
  1764. .addGap(
  1765. 22,
  1766. 22,
  1767. 22)
  1768. .addGroup(
  1769. jPanel8Layout
  1770. .createParallelGroup(
  1771. javax.swing.GroupLayout.Alignment.LEADING)
  1772. .addComponent(
  1773. jLabel26)
  1774. .addGroup(
  1775. jPanel8Layout
  1776. .createSequentialGroup()
  1777. .addComponent(
  1778. jLabel24)
  1779. .addGap(
  1780. 18,
  1781. 18,
  1782. 18)
  1783. .addGroup(
  1784. jPanel8Layout
  1785. .createParallelGroup(
  1786. javax.swing.GroupLayout.Alignment.LEADING,
  1787. false)
  1788. .addComponent(
  1789. alchItemIDsText)
  1790. .addComponent(
  1791. jLabel25,
  1792. javax.swing.GroupLayout.DEFAULT_SIZE,
  1793. javax.swing.GroupLayout.DEFAULT_SIZE,
  1794. Short.MAX_VALUE)))))
  1795. .addComponent(
  1796. useItemAlchCheck)
  1797. .addGroup(
  1798. jPanel8Layout
  1799. .createSequentialGroup()
  1800. .addGap(
  1801. 12,
  1802. 12,
  1803. 12)
  1804. .addComponent(
  1805. jLabel23,
  1806. javax.swing.GroupLayout.PREFERRED_SIZE,
  1807. 461,
  1808. javax.swing.GroupLayout.PREFERRED_SIZE)))
  1809. .addContainerGap(63, Short.MAX_VALUE)));
  1810. jPanel8Layout
  1811. .setVerticalGroup(jPanel8Layout
  1812. .createParallelGroup(
  1813. javax.swing.GroupLayout.Alignment.LEADING)
  1814. .addGroup(
  1815. jPanel8Layout
  1816. .createSequentialGroup()
  1817. .addContainerGap()
  1818. .addComponent(useItemAlchCheck)
  1819. .addPreferredGap(
  1820. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1821. .addComponent(jLabel23)
  1822. .addGap(11, 11, 11)
  1823. .addGroup(
  1824. jPanel8Layout
  1825. .createParallelGroup(
  1826. javax.swing.GroupLayout.Alignment.BASELINE)
  1827. .addComponent(jLabel24)
  1828. .addComponent(
  1829. alchItemIDsText,
  1830. javax.swing.GroupLayout.PREFERRED_SIZE,
  1831. javax.swing.GroupLayout.DEFAULT_SIZE,
  1832. javax.swing.GroupLayout.PREFERRED_SIZE))
  1833. .addPreferredGap(
  1834. javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  1835. .addComponent(jLabel25).addGap(18, 18,
  1836. 18).addComponent(jLabel26)
  1837. .addContainerGap(85, Short.MAX_VALUE)));
  1838.  
  1839. jTabbedPane1.addTab("Item alching", jPanel8);
  1840.  
  1841. jLabel6
  1842. .setText("<html>Here you can specify if you would like to equip arrows or not, it will equip when there are random 100 - 200 arrows in the inventory. Also put in arrow id you would like to equip.</html>");
  1843.  
  1844. equipArrowsCheck.setText("Equip Arrows?");
  1845.  
  1846. jLabel13.setText("Arrow ID:");
  1847.  
  1848. javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(
  1849. jPanel9);
  1850. jPanel9.setLayout(jPanel9Layout);
  1851. jPanel9Layout
  1852. .setHorizontalGroup(jPanel9Layout
  1853. .createParallelGroup(
  1854. javax.swing.GroupLayout.Alignment.LEADING)
  1855. .addGroup(
  1856. jPanel9Layout
  1857. .createSequentialGroup()
  1858. .addContainerGap()
  1859. .addGroup(
  1860. jPanel9Layout
  1861. .createParallelGroup(
  1862. javax.swing.GroupLayout.Alignment.LEADING)
  1863. .addComponent(
  1864. equipArrowsCheck)
  1865. .addGroup(
  1866. jPanel9Layout
  1867. .createSequentialGroup()
  1868. .addComponent(
  1869. jLabel13)
  1870. .addGap(
  1871. 18,
  1872. 18,
  1873. 18)
  1874. .addComponent(
  1875. equipArrowText,
  1876. javax.swing.GroupLayout.PREFERRED_SIZE,
  1877. 227,
  1878. javax.swing.GroupLayout.PREFERRED_SIZE))
  1879. .addComponent(
  1880. jLabel6,
  1881. javax.swing.GroupLayout.PREFERRED_SIZE,
  1882. 457,
  1883. javax.swing.GroupLayout.PREFERRED_SIZE))
  1884. .addContainerGap(75, Short.MAX_VALUE)));
  1885. jPanel9Layout
  1886. .setVerticalGroup(jPanel9Layout
  1887. .createParallelGroup(
  1888. javax.swing.GroupLayout.Alignment.LEADING)
  1889. .addGroup(
  1890. jPanel9Layout
  1891. .createSequentialGroup()
  1892. .addContainerGap()
  1893. .addComponent(jLabel6)
  1894. .addGap(18, 18, 18)
  1895. .addComponent(equipArrowsCheck)
  1896. .addPreferredGap(
  1897. javax.swing.LayoutStyle.Compone
Add Comment
Please, Sign In to add comment