Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.20 KB | None | 0 0
  1. import impsoft.bots.ColorBot;
  2. import impsoft.bots.input.MouseCommand;
  3. import impsoft.bots.reflection.GroundItem;
  4. import impsoft.bots.reflection.NPC;
  5. import impsoft.bots.reflection.NPCIterator;
  6. import impsoft.bots.reflection.PhysicalObject;
  7. import impsoft.bots.reflection.Player;
  8. import impsoft.bots.reflection.WorldObject;
  9. import impsoft.painting.PaintJob;
  10. import impsoft.scripting.ibot.builtin.itemrec.ItemSlot;
  11. import impsoft.scripting.ibot.enums.BotStates;
  12. import impsoft.scripting.ibot.enums.Skill;
  13. import impsoft.scripting.ibot.interfaces.AutoPaint;
  14. import impsoft.scripting.ibot.interfaces.ChatListener;
  15. import impsoft.scripting.ibot.itemrec.ItemIdExact;
  16. import impsoft.scripting.ibot.itemrec.ItemNameExact;
  17. import impsoft.scripting.ibot.structs.AryanTile;
  18. import impsoft.scripting.ibot.structs.AryanTileZone;
  19. import impsoft.scripting.ibot.structs.RGB;
  20. import impsoft.scripting.ibot.structs.XY;
  21. import impsoft.scripting.types.ColorScript;
  22. import impsoft.scripting.types.ColorSkeltonScriptable;
  23. import impsoft.scripting.types.parallel.scriptjobs.WorldObjectClickingScriptJob;
  24. import impsoft.utils.general.Timer;
  25. import impsoft.utils.ibot.Pixel;
  26. import impsoft.utils.ruler.RulerClickOptions;
  27. import impsoft.utils.ruler.RulerScriptUtils;
  28. import impsoft.utils.uber.UberScriptUtils;
  29. import impsoft.values.constant.Areas;
  30.  
  31. import java.awt.BasicStroke;
  32. import java.awt.Color;
  33. import java.awt.Dimension;
  34. import java.awt.Font;
  35. import java.awt.GradientPaint;
  36. import java.awt.Graphics;
  37. import java.awt.Graphics2D;
  38. import java.awt.Image;
  39. import java.awt.Point;
  40. import java.awt.Polygon;
  41. import java.awt.Rectangle;
  42. import java.awt.event.ActionEvent;
  43. import java.awt.event.ActionListener;
  44. import java.awt.geom.Ellipse2D;
  45. import java.awt.geom.RoundRectangle2D;
  46. import java.io.BufferedReader;
  47. import java.io.BufferedWriter;
  48. import java.io.File;
  49. import java.io.FileNotFoundException;
  50. import java.io.FileReader;
  51. import java.io.FileWriter;
  52. import java.io.IOException;
  53. import java.net.URL;
  54. import java.util.ArrayList;
  55. import java.util.Collections;
  56. import java.util.EnumSet;
  57. import java.util.Iterator;
  58. import java.util.regex.Pattern;
  59.  
  60. import javax.imageio.ImageIO;
  61. import javax.swing.BorderFactory;
  62. import javax.swing.DefaultListModel;
  63. import javax.swing.JButton;
  64. import javax.swing.JCheckBox;
  65. import javax.swing.JComboBox;
  66. import javax.swing.JComponent;
  67. import javax.swing.JFrame;
  68. import javax.swing.JLabel;
  69. import javax.swing.JList;
  70. import javax.swing.JOptionPane;
  71. import javax.swing.JPanel;
  72. import javax.swing.JScrollPane;
  73. import javax.swing.JSlider;
  74. import javax.swing.JSpinner;
  75. import javax.swing.JTabbedPane;
  76. import javax.swing.JTextField;
  77. import javax.swing.ListSelectionModel;
  78. import javax.swing.SpinnerModel;
  79. import javax.swing.SpinnerNumberModel;
  80. import javax.swing.UIManager;
  81. import javax.swing.UnsupportedLookAndFeelException;
  82. import javax.swing.event.ChangeEvent;
  83. import javax.swing.event.ChangeListener;
  84.  
  85. import bergCoder.BergUtils;
  86.  
  87. public class ZRockCrab extends ColorScript implements AutoPaint, ChatListener {
  88.  
  89. public ZRockCrab(ColorBot c) {
  90. super(c);
  91.  
  92. }
  93.  
  94. BergUtils util = new BergUtils(this);
  95.  
  96. Timer Time = new Timer(0);
  97. Timer t = new Timer((random(13,20)) * (1000 * 60));
  98. Timer Tabs = new Timer((random(4, 25)) * (1000 * 60));
  99. Timer HourPic = new Timer(60 * (1000 * 60));
  100. Timer f = new Timer((random(15, 54)) * (1000 * 60));
  101. long scriptStartTIME = System.currentTimeMillis();
  102.  
  103. public static String author = "ZBUBBLEZ";
  104. public static String description = "Fights Rock Crabs, good for pures :)";
  105. public static String Version = "1.00";
  106. public static String Credits = "ZBUBBLEZ";
  107.  
  108. String food = "Lobster";
  109. String Status = "Setting Up";
  110.  
  111. int currentXp = 0;
  112. int startXp = 0;
  113.  
  114. AryanTile home;
  115.  
  116. AryanTileZone renew = new AryanTileZone(new AryanTile(2661,3662),new AryanTile(2667,3658));
  117.  
  118. public int[] exptolevel = { 0, 83, 174, 276, 388, 512, 650, 801, 969, 1154,
  119. 1358, 1584, 1833, 2107, 2411, 2746, 3115, 3523, 3973, 4470, 5018,
  120. 5624, 6291, 7028, 7842, 8740, 9730, 10824, 12031, 13363, 14833,
  121. 16456, 18247, 20224, 22406, 24815, 27473, 30408, 33648, 37224,
  122. 41171, 45529, 50339, 55649, 61512, 67983, 75127, 83014, 91721,
  123. 101333, 111945, 123660, 136594, 150872, 166636, 184040, 203254,
  124. 224466, 247886, 273742, 302288, 333804, 368599, 407015, 449428,
  125. 496254, 547953, 605032, 668051, 737627, 814445, 899257, 992895,
  126. 1096278, 1210421, 1336443, 1475581, 1629200, 1798808, 1986068,
  127. 2192818, 2421087, 2673114, 2951373, 3258594, 3597792, 3972294,
  128. 4385776, 4842295, 5346332, 5902831, 6517253, 7195629, 7944614,
  129. 8771558, 9684577, 10692629, 11805606, 13034431, 200000001 };
  130.  
  131. public void script() throws InterruptedException, Exception {
  132. while (!isLoggedIn()) {
  133. sleep(1000);
  134. log("Not Logged In");
  135. }
  136.  
  137. log("Welcome!");
  138. log("ZRockCrab V" + Version);
  139. log("Updated: 5/25/11");
  140. log("Made by zbubblez");
  141. log("Loading GUI");
  142. sleep(3000);
  143. food = JOptionPane.showInputDialog("FOOD NAME: ");
  144. log("Food Name: " + food);
  145. log("Starting");
  146. home = getLocation();
  147. log("Home Tile: " + home);
  148.  
  149. startXp = theTabs.Statistics.getStatExperience(Skill.ATTACK)
  150. + theTabs.Statistics.getStatExperience(Skill.STRENGTH)
  151. + theTabs.Statistics.getStatExperience(Skill.DEFENSE)
  152. + theTabs.Statistics.getStatExperience(Skill.RANGED)
  153. + theTabs.Statistics.getStatExperience(Skill.MAGIC)
  154. + theTabs.Statistics.getStatExperience(Skill.HITPOINTS);
  155. t.reset();
  156. while (true) {
  157. currentXp = theTabs.Statistics.getStatExperience(Skill.ATTACK)
  158. + theTabs.Statistics.getStatExperience(Skill.STRENGTH)
  159. + theTabs.Statistics.getStatExperience(Skill.DEFENSE)
  160. + theTabs.Statistics.getStatExperience(Skill.RANGED)
  161. + theTabs.Statistics.getStatExperience(Skill.MAGIC)
  162. + theTabs.Statistics.getStatExperience(Skill.HITPOINTS);
  163. Check();
  164. sleep(200, 600);
  165. }
  166. }
  167.  
  168. public void Check() throws InterruptedException, Exception {
  169. NPC crab = util.getNPCByName("Rock crab");
  170. NPC rocks = util.getNPCByName("Rocks");
  171.  
  172. if(t.isUp())
  173. {
  174. Status = "Making Crabs Aggressive";
  175. theWorldMap.walkTo(renew.random());
  176. this.SleepTillStill();
  177. t.reset();
  178. }
  179.  
  180. if (theMiniMapIndicators.getHealthPoints() < (theTabs.Statistics
  181. .getStatBottom(Skill.HITPOINTS) / 2 + random(-5, 5))) {
  182. log("Health Low");
  183. if (theTabs.Inventory.count(food) == 0) {
  184. Status = "Banking";
  185. Bank();
  186. } else {
  187. Status = "Eating";
  188. theTabs.Inventory.doAction(food, null, 1, false);
  189. sleep(500, 1000);
  190. }
  191. }
  192.  
  193. if (!getMyPlayer().inCombat()
  194. || getMyPlayer().getInteractingNPC() == null) {
  195. if (rocks != null) {
  196. Status = "Click Rocks";
  197. util.clickTile(rocks.getLocation(), "Rocks", "Walk here");
  198. mMove();
  199. sleep(1000, 2000);
  200. this.SleepTillStill();
  201. } else if (crab != null && !crab.inCombat()
  202. && !crab.isInteractingWithOtherPlayer()) {
  203. Status = "Clicking Rock Crab";
  204. RulerScriptUtils.clickWorldObject(this, null, crab, null,
  205. Pattern.compile(".*Attack.*"), Pattern
  206. .compile(".*Rock.*"), EnumSet.of(
  207. RulerClickOptions.GOAL_NORMAL_CLICK,
  208. RulerClickOptions.WALK_USING_ANY,
  209. RulerClickOptions.PAINT_GAMESCREEN_WALKING,
  210. RulerClickOptions.PAINT_PREDICTION_POLYGON));
  211. mMove();
  212. sleep(4000, 6000);
  213. } else if (crab == null && rocks == null) {
  214. Status = "Walking";
  215. log("Far From Home");
  216. theWorldMap.walkTo(new AryanTile(home.x - random(-7, 7), home.y
  217. - random(-7, 7)));
  218. this.SleepTillStill();
  219. }
  220. } else {
  221. Status = "In Combat";
  222. switch (random(0, 100)) {
  223. case 25:
  224. AntiBan();
  225. case 75:
  226. AntiBan();
  227. case 99:
  228. TabSelector();
  229. }
  230. }
  231.  
  232. }
  233.  
  234. public void Bank() throws InterruptedException, Exception {
  235. theWorldMap.walkToBank();
  236. this.SleepTillStill();
  237. theBank.open();
  238. theBank.doDepositAll();
  239. theBank.doWithDrawAll(food, true);
  240. theBank.exit();
  241. }
  242.  
  243. public void AntiBan() throws InterruptedException, Exception {
  244.  
  245. switch (random(0, 250)) {
  246. case 12:
  247. theCamera.setYawRandom();
  248. break;
  249. case 18:
  250. mouseMove(Areas.GAME);
  251. break;
  252. case 24:
  253. theCamera.setYawRandom();
  254. break;
  255. case 35:
  256. mouseMove(Areas.GAME);
  257. mouseMove(Areas.INVENTORY);
  258. break;
  259. case 67:
  260. theCamera.setYawRandom();
  261. break;
  262. case 77:
  263. mouseMove(Areas.GAME);
  264. break;
  265. case 86:
  266. theCamera.setYawRandom();
  267. break;
  268. case 96:
  269. mouseMove(Areas.ENTIRE);
  270. break;
  271. case 103:
  272. theCamera.setYawRandom();
  273. break;
  274. case 134:
  275. theCamera.setYawRandom();
  276. break;
  277. case 155:
  278. theCamera.setYawRandom();
  279. break;
  280. case 173:
  281. mouseMove(Areas.GAME);
  282. break;
  283. case 200:
  284. theCamera.setYawRandom();
  285. break;
  286. }
  287. }
  288.  
  289. public void TabSelector() throws InterruptedException, Exception {
  290. if (Tabs.isUp()) {
  291. switch (random(0, 5)) {
  292. case 0:
  293. mouseClickLeft(new Rectangle(525, 171, 233, 30));
  294. break;
  295. case 1:
  296. mouseClickLeft(new Rectangle(526, 469, 234, 29));
  297. break;
  298. case 2:
  299. mouseClickLeft(new Rectangle(525, 171, 233, 30));
  300. break;
  301. case 3:
  302. mouseClickLeft(new Rectangle(526, 469, 234, 29));
  303. break;
  304. case 4:
  305. mouseClickLeft(new Rectangle(525, 171, 233, 30));
  306. break;
  307. case 5:
  308. mouseClickLeft(new Rectangle(526, 469, 234, 29));
  309. break;
  310. }
  311. Tabs.reset();
  312. log("RandomTabSelector = Action Complete");
  313. } else {
  314.  
  315. }
  316. }
  317.  
  318. public void mMove() throws InterruptedException, Exception {
  319. switch (random(1, 20)) {
  320. case 2:
  321. mouseMove(Areas.ENTIRE);
  322. log("MouseMovement = true");
  323. break;
  324. case 3:
  325. mouseMove(Areas.INVENTORY);
  326. log("MouseMovement = true");
  327. break;
  328. case 8:
  329. mouseMove(Areas.GAME);
  330. log("MouseMovement = true");
  331. break;
  332. case 13:
  333. mouseMove(Areas.GAME);
  334. log("MouseMovement = true");
  335. break;
  336. case 17:
  337. mouseMove(getMyPlayer().getRecommendPointToClick());
  338. log("MouseMovement = true");
  339. break;
  340. case 20:
  341. mouseMove(Areas.ENTIRE);
  342. log("MouseMovement = true");
  343. break;
  344. }
  345. }
  346.  
  347. /** RANDOM METHODS **/
  348.  
  349. public void SleepTillStill() throws InterruptedException, Exception {
  350. boolean Done = false;
  351. int Count = 0;
  352. while (Done == false) {
  353. sleep(700);
  354. if (!getMyPlayer().isMoving()) {
  355. Count++;
  356. }
  357. if (Count > 2) {
  358. Done = true;
  359. }
  360. }
  361. }
  362.  
  363. public NPC getNearestNpcByName(String npcname) {
  364. NPC closest = null;
  365. double closeDistance = 800;
  366. AryanTile here = getLocation();
  367. for (NPCIterator po = getNPCIterator(); po.hasNext();) {
  368. NPC npc = po.next();
  369. String name = npc.getName();
  370. if (name.contains(npcname)) {
  371. double distance = npc.getLocation().distanceToPrecise(here);
  372. if (npc.inCombat() && npc.isInteractingWithMyPlayer())
  373. distance = -1;
  374. if (npc.inCombat() && npc.isInteractingWithOtherPlayer())
  375. distance = 1000000000;
  376. if (distance < closeDistance) {
  377. closest = npc;
  378. closeDistance = distance;
  379. }
  380. }
  381.  
  382. }
  383. return closest;
  384. }
  385.  
  386. public PhysicalObject getPhysicalObjectByInt(int poid) {
  387. PhysicalObject closest = null;
  388. double closeDistance = 800;
  389. AryanTile here = getLocation();
  390. for (PhysicalObject po : getAllPhysicalObjects()) {
  391. int ID = po.getID();
  392. if (ID == poid) {
  393. double distance = po.getLocation().distanceToPrecise(here);
  394. if (distance < closeDistance) {
  395. closest = po;
  396. closeDistance = distance;
  397. }
  398. }
  399.  
  400. }
  401. return closest;
  402. }
  403.  
  404. @Override
  405. public void paint(Graphics g) {
  406. final StringBuilder ggg = new StringBuilder();
  407. final long runtime = Time.timePassed();
  408. final long TotalSec = runtime / 1000;
  409. final long TotalMin = TotalSec / 60;
  410. final long TotalHour = TotalMin / 60;
  411. final int second = (int) TotalSec % 60;
  412. final int minute = (int) TotalMin % 60;
  413. final int hour = (int) TotalHour % 60;
  414. long runTime = 0;
  415. runTime = System.currentTimeMillis() - scriptStartTIME;
  416.  
  417. int PerHour = 0;
  418. if ((runTime / 1000) > 0) {
  419. PerHour = (int) ((3600000.0 / (double) runTime) * ((currentXp - startXp)));
  420. }
  421.  
  422. if (hour < 10)
  423. ggg.append("0");
  424. ggg.append(hour);
  425. ggg.append(" : ");
  426. if (minute < 10)
  427. ggg.append("0");
  428. ggg.append(minute);
  429. ggg.append(" : ");
  430. if (second < 10)
  431. ggg.append("0");
  432. ggg.append(second);
  433.  
  434. final Color color1 = new Color(102, 102, 102);
  435. final Color color2 = new Color(0, 0, 0);
  436. final Color color3 = new Color(255, 255, 255);
  437.  
  438. final BasicStroke stroke1 = new BasicStroke(1);
  439.  
  440. final Font font1 = new Font("Arial", 1, 16);
  441. final Font font2 = new Font("Arial", 0, 9);
  442.  
  443. int X = 298;
  444. int Y = 258;
  445.  
  446. g.setColor(color1);
  447. g.fillRect(293, 225, 224, 113);
  448. g.setColor(color2);
  449.  
  450. g.drawRect(293, 225, 224, 113);
  451. g.setFont(font1);
  452. g.setColor(color3);
  453. g.drawString("ZRockCrab", 430, 241);
  454. g.setFont(font2);
  455. g.drawString("Time Running: " + String.valueOf(ggg.toString()), X, Y);
  456. g.drawString("XP Gained: " + (currentXp - startXp) + " (" + PerHour
  457. + "/H)", X, Y + 15);
  458. g.drawString("Home Tile: " + home, X, Y + 30);
  459. g.drawString("Status: " + Status, X, Y + 45);
  460. g.drawString("Food Name: " + food, X, Y + 60);
  461.  
  462. }
  463.  
  464. @Override
  465. public void chat(String arg0) throws InterruptedException {
  466. // TODO Auto-generated method stub
  467.  
  468. }
  469.  
  470. }// END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement