Guest User

Untitled

a guest
Jun 24th, 2018
488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.36 KB | None | 0 0
  1. // Credits to Atomic for Script
  2. // Credits to 0x098b4a40 for Dropping Method
  3.  
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.util.Map;
  7.  
  8. import com.speljohan.rsbot.bot.Bot;
  9. import com.speljohan.rsbot.event.events.ServerMessageEvent;
  10. import com.speljohan.rsbot.event.listeners.PaintListener;
  11. import com.speljohan.rsbot.event.listeners.ServerMessageListener;
  12. import com.speljohan.rsbot.script.Constants;
  13. import com.speljohan.rsbot.script.Script;
  14. import com.speljohan.rsbot.script.wrappers.RSObject;
  15. import com.speljohan.rsbot.script.wrappers.RSTile;
  16. import com.speljohan.rsbot.script.wrappers.*;
  17. import com.speljohan.rsbot.script.wrappers.RSInterface;
  18.  
  19. public class MortalTeaks extends Script implements ServerMessageListener,
  20. PaintListener {
  21.  
  22. int loops = 0;
  23. int logs = 0;
  24. int fxp = 0;
  25. boolean loads = false;
  26. boolean dropping = false;
  27. boolean cutting = false;
  28. boolean adze = false;
  29. boolean leftToRight = false;
  30. public final RSTile treetile = new RSTile(2774, 2698);
  31. public long startTime = System.currentTimeMillis();
  32. RSObject tree;
  33.  
  34. public void antiBan() {
  35.  
  36. switch (random(0, 150)) {
  37. case 0:
  38. moveMouse(random(0, 600), random(0, 600));
  39. wait(random(200, 400));
  40. break;
  41. case 1:
  42. moveMouse(random(0, 600), random(0, 600));
  43. wait(random(200, 400));
  44. break;
  45. case 2:
  46. moveMouse(random(0, 600), random(0, 600));
  47. wait(random(200, 400));
  48. break;
  49. case 3:
  50. moveMouse(random(0, 600), random(0, 600));
  51. wait(random(200, 400));
  52. break;
  53. case 4:
  54. setCameraRotation(random(1, 300));
  55. wait(random(200, 400));
  56. break;
  57. case 5:
  58. setCameraRotation(random(1, 300));
  59. wait(random(200, 400));
  60. break;
  61. case 7:
  62. setCameraAltitude(true);
  63. wait(random(200, 400));
  64. break;
  65. case 8:
  66. openTab(Constants.TAB_INVENTORY);
  67. wait(random(200, 400));
  68. break;
  69. case 9:
  70. openTab(Constants.TAB_STATS);
  71. wait(random(200, 400));
  72. break;
  73. }
  74. }
  75.  
  76. @Override
  77. public String getAuthor() {
  78. return "The Immortal";
  79. }
  80.  
  81. @Override
  82. public String getName() {
  83. return "Mortal Teaks";
  84. }
  85.  
  86. @Override
  87. public String getScriptCategory() {
  88. return "Woodcutting";
  89. }
  90.  
  91. @Override
  92. public String getScriptDescription() {
  93. return "<html>\n"
  94. + "<head></head>\n"
  95. + "<body bgcolor=\"black\" text=\"green\">\n"
  96. + "<center>"
  97. + "<h2>"
  98. + getName()
  99. + "</h2>"
  100. + "</center>\n"
  101. + "<b> Author:</b> "
  102. + getAuthor()
  103. + "<b> Version:</b> "
  104. + getVersion()
  105. + "<b><br> Start near teak trees"
  106. + "<br>"
  107. + "<br>"
  108. + "<br>"
  109. + "<input type=\"checkbox\" name=\"doadze\" value=\"true\"><B>Using Inferno Adze? </b>"
  110. + "<b><br><br><br> <i>Note: Credits to Atomic for script/0x098b4a40 for drop!</body>\n"
  111. + "</html>";
  112. }
  113.  
  114. @Override
  115. public double getVersion() {
  116. return 1.0;
  117. }
  118.  
  119. @Override
  120. public int loop() {
  121.  
  122. if (dropping) {
  123.  
  124. if (getInventoryCount(6333) > 0) {
  125. dropInventoryExcluding(false, 1349, 1353, 1355, 1357, 1359, 1361, 6739, 13661);
  126. wait(random(200, 400));
  127. }
  128.  
  129. else if (getInventoryCount(6333) == 0) {
  130. dropping = false;
  131. cutting = false;
  132. }
  133. }
  134.  
  135. else if (!dropping) {
  136.  
  137.  
  138. if (distanceTo(treetile) >= 10) {
  139. walkTileMM(treetile);
  140. wait(random(800, 1200));
  141. }
  142.  
  143. else if (distanceTo(treetile) < 10) {
  144.  
  145. if (!cutting) {
  146. //setRun(true);
  147. tree = getNearestObjectByID(9036);
  148.  
  149. if (tree != null) {
  150.  
  151. if (!tileOnScreen(tree.getLocation())) {
  152. turnToTile(tree.getLocation());
  153. wait(random(200, 400));
  154. }
  155.  
  156. else if (tileOnScreen(tree.getLocation())) {
  157. atObject(tree, "Chop");
  158. wait(random(800, 1200));
  159. }
  160. }
  161. }
  162.  
  163. else if (cutting) {
  164. final RSTile interacting = tree.getLocation();
  165. loops++;
  166.  
  167. if (loops < 200) {
  168. if (getObjectAt(interacting).getID() != 9036) {
  169. cutting = false;
  170. loops = 0;
  171. }
  172.  
  173. else if (getObjectAt(interacting).getID() == 9036) {
  174. antiBan();
  175. }
  176. }
  177.  
  178. else if (loops > 200) {
  179. log("Ignore this!");
  180. cutting = false;
  181. loops = 0;
  182. }
  183. }
  184. }
  185. }
  186.  
  187. return random(100, 150);
  188. }
  189.  
  190. @Override
  191. public void onFinish() {
  192. }
  193.  
  194. public void onRepaint(final Graphics g) {
  195. if (isLoggedIn()) {
  196. if (fxp == 0) {
  197. fxp = skills.getCurrentSkillExp(Constants.STAT_FIREMAKING);
  198. }
  199. final int xp = skills.getCurrentSkillExp(Constants.STAT_FIREMAKING);
  200. long millis = System.currentTimeMillis() - startTime;
  201. final long hours = millis / (1000 * 60 * 60);
  202. millis -= hours * 1000 * 60 * 60;
  203. final long minutes = millis / (1000 * 60);
  204. millis -= minutes * 1000 * 60;
  205. final long seconds = millis / 1000;
  206. final int x = 388;
  207. final int y = 20;
  208. g.setColor(Color.red);
  209. g.drawString("Teaks v1.0", x, y);
  210. g.setColor(Color.white);
  211. g.drawString("Runtime: " + hours + ":" + minutes + ":" + seconds
  212. + "", x, y + 15);
  213. g.drawString("Cut: " + logs / 1, x, y + 30);
  214. g.drawString("WC Exp: " + logs / 1 * 85 + " ("
  215. + skills.getPercentToNextLevel(8) + "%)", x, y + 45);
  216. if (adze) {
  217. g.drawString("FM Exp: " + (xp - fxp) + " ("
  218. + skills.getPercentToNextLevel(11) + "%)", x, y + 60);
  219. }
  220. }
  221. }
  222.  
  223. @Override
  224. public boolean onStart(final Map<String, String> args) {
  225. adze = args.get("doadze") != null ? true : false;
  226. return true;
  227. }
  228.  
  229. public void dropItem(int col, int row){
  230. if (getCurrentTab() != TAB_INVENTORY
  231. && !RSInterface.getInterface(INTERFACE_BANK).isValid()
  232. && !RSInterface.getInterface(INTERFACE_STORE).isValid())
  233. openTab(TAB_INVENTORY);
  234. if(col<0||col>3||row<0||row>6)
  235. return;
  236. if(getInventoryArray()[col+row*4] == -1)
  237. return;
  238. clickMouse(563+col*42+random(0,32), 213+row*36+random(0,32),false);
  239. wait(random(100,250));
  240. atMenu("drop");
  241. wait(random(100,250));
  242. }
  243.  
  244. public void dropInventoryExcluding(boolean leftToRight, int ... ids){
  245. if(!leftToRight)
  246. for(int c = 0; c < 4; c++)
  247. for(int r = 0; r < 7; r++){
  248. boolean found = false;
  249. for(int i = 0; i < ids.length && !found; i++)
  250. found = ids[i] == getInventoryArray()[c+r*4];
  251. if(!found)
  252. dropItem(c, r);
  253. }
  254. else
  255. for(int r = 0; r < 7; r++)
  256. for(int c = 0; c < 4; c++){
  257. boolean found = false;
  258. for(int i = 0; i < ids.length && !found; i++)
  259. found = ids[i] == getInventoryArray()[c+r*4];
  260. if(!found)
  261. dropItem(c, r);
  262. }
  263. }
  264.  
  265. public void serverMessageRecieved(final ServerMessageEvent e) {
  266. if (e.getMessage().equalsIgnoreCase(
  267. "You swing your hatchet at the tree.")) {
  268. cutting = true;
  269. }
  270.  
  271. if (e.getMessage().equalsIgnoreCase("You get some teak logs.")) {
  272. logs++;
  273. }
  274.  
  275. if (e.getMessage().equalsIgnoreCase(
  276. "Your inventory is too full to hold any more logs.")) {
  277. dropping = true;
  278. }
  279. }
  280.  
  281. public void setCameraRotation2(int degrees) {
  282. final char left = 37;
  283. final char right = 39;
  284. char whichDir = left;
  285. int start = getCameraAngle();
  286.  
  287. if (start < 180) {
  288. start += 360;
  289. }
  290.  
  291. if (degrees < 180) {
  292. degrees += 360;
  293. }
  294.  
  295. if (degrees > start) {
  296.  
  297. if (degrees - 180 < start) {
  298. whichDir = right;
  299. }
  300. }
  301.  
  302. else if (start > degrees) {
  303.  
  304. if (start - 180 >= degrees) {
  305. whichDir = right;
  306. }
  307. }
  308. degrees %= 360;
  309.  
  310. Bot.getInputManager().pressKey(whichDir);
  311. int timeWaited = 0;
  312.  
  313. while (getCameraAngle() > degrees + 5 || getCameraAngle() < degrees - 5) {
  314. wait(10);
  315. timeWaited += 10;
  316.  
  317. if (timeWaited > 500) {
  318. final int time = timeWaited - 500;
  319.  
  320. if (time == 0) {
  321. Bot.getInputManager().pressKey(whichDir);
  322. } else if (time % 40 == 0) {
  323. Bot.getInputManager().pressKey(whichDir);
  324. }
  325. }
  326. }
  327. Bot.getInputManager().releaseKey(whichDir);
  328. }
  329.  
  330. @Override
  331. public void turnToTile(final RSTile tile) { // I can't remember
  332. int angle = getAngleToCoordinates(tile.getX(), tile.getY()); // where I
  333. // took
  334. // this
  335. angle = angle + random(-20, 20); // from, but credits
  336. // to whoever made it!
  337. if (angle < 0) {
  338. angle = 360 + angle;
  339. }
  340.  
  341. if (angle >= 360) {
  342. angle -= 360;
  343. }
  344. setCameraRotation2(angle);
  345. }
  346. }
Add Comment
Please, Sign In to add comment