Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.85 KB | None | 0 0
  1. public class Otherworldly extends Script {
  2.  
  3. private int fmode = 1;
  4. private int foodID = 546;
  5. private int eatAt = 60;
  6. private int[] drops = { 526, 527, 619, 795, 38, 40, 41, 42, 46, 1277, 1278 };
  7.  
  8. public Otherworldly(Extension e) {
  9. super(e);
  10. }
  11.  
  12. public void init(String params) {
  13. }
  14.  
  15. public int main() {
  16. if (getFightMode() != fmode) {
  17. setFightMode(fmode);
  18. return 600;
  19. }
  20. if (isSleeping()) {
  21. return 1000;
  22. }
  23. if (getFatigue() > 90) {
  24. useSleepingBag();
  25. return 1000;
  26. }
  27. if (isBanking()) {
  28. if (!invContains(foodID)) {
  29. withdraw(foodID, 12);
  30. return 800;
  31. }
  32. for (int d : drops) {
  33. if (invContains(d)) {
  34. depositAll(d);
  35. return 800;
  36. }
  37. }
  38. closeBank();
  39. return 1000;
  40. }
  41. if (!invContains(foodID) || getInventoryCount() == 30) {
  42. int[] banker = getNpcById(new int[] {224});
  43. if (banker[0] != -1 && banker[1] != -1) {
  44. openBank();
  45. return 1500;
  46. }
  47. walkTo(172, 3528);
  48. return 1000;
  49. }
  50. if (getCurrentLevel(3) <= eatAt) {
  51. if (inCombat()) {
  52. walkTo(getX(), getY());
  53. return random(600, 800);
  54. }
  55. useItem(getInventoryIndex(foodID));
  56. return random(600, 800);
  57. }
  58.  
  59. int[] groundItem = getItemById(drops);
  60. if (groundItem[0] != -1 && groundItem[1] != -1) {
  61. pickupItem(groundItem[0], groundItem[1], groundItem[2]);
  62. return 1000;
  63. }
  64.  
  65. int[] npc = getNpcById(new int[] {298});
  66. if (npc[0] != -1 && npc[1] != -1) {
  67. attackNpc(npc[0]);
  68. return random(800, 1200);
  69. }
  70.  
  71. walkTo(173, 3543);
  72. return 1000;
  73. }
  74.  
  75. private void openBank() {
  76. if (isQuestMenu()) {
  77. answer(0);
  78. return;
  79. }
  80. int[] banker = getNpcById(new int[] {224});
  81. talkToNpc(banker[0]);
  82. }
  83.  
  84. private boolean invContains(int id) {
  85. return (getInventoryCount(id) > 0);
  86. }
  87.  
  88. private void depositAll(int id) {
  89. deposit(id, getInventoryCount(id));
  90. }
  91. }
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120. /**
  121. * This is a blood rune chest script that will
  122. * collect blood runes from the Adrougne Chaos
  123. * druids tower. Start the script at the door
  124. * you must pick and select if you are a
  125. * veteran or not during script startup.
  126. *
  127. * This script will hop worlds for fresh chests
  128. * or if there are npc's in the way.
  129. */
  130.  
  131. // Created by: shauder
  132.  
  133. import java.util.concurrent.TimeUnit;
  134. import javax.swing.JOptionPane;
  135. import java.text.DecimalFormat;
  136.  
  137. public class A_BloodThiever extends Script
  138. {
  139. private long start_time;
  140. private long stuck_time;
  141. private long wait_time;
  142.  
  143. private int trips;
  144. private int last_x;
  145. private int last_y;
  146.  
  147. private boolean veteran;
  148. private boolean walking;
  149. private boolean pickChest;
  150. private boolean looting;
  151. private boolean stuck;
  152.  
  153. private final DecimalFormat int_format = new DecimalFormat("#,##0");
  154. private final DecimalFormat dec_format = new DecimalFormat("#,##0.00");
  155.  
  156. public A_BloodThiever(Extension e)
  157. {
  158. super(e);
  159. }
  160.  
  161. @Override
  162. public void init(String params)
  163. {
  164. Object[] vetOptions = {"Yes", "No"};
  165. String vet = (String)JOptionPane.showInputDialog(null, "Is this a veteran account?", "Setup", JOptionPane.PLAIN_MESSAGE, null, vetOptions, vetOptions[0]);
  166.  
  167. Object[] waitOptions = {"Short", "Medium", "Long"};
  168. String wait = (String)JOptionPane.showInputDialog(null, "Select wait time for NPC's in the way.", "Setup", JOptionPane.PLAIN_MESSAGE, null, waitOptions, waitOptions[1]);
  169.  
  170. if(vet.equals("Yes"))
  171. {
  172. veteran = true;
  173. }
  174. else
  175. {
  176. veteran = false;
  177. }
  178.  
  179. if(wait.equals("Short"))
  180. {
  181. wait_time = 3;
  182. }
  183. else if(wait.equals("Medium"))
  184. {
  185. wait_time = 5;
  186. }
  187. else if(wait.equals("Long"))
  188. {
  189. wait_time = 7;
  190. }
  191.  
  192. start_time = System.currentTimeMillis();
  193. trips = 0;
  194. stuck_time = 0;
  195.  
  196. walking = true;
  197. pickChest = false;
  198. looting = false;
  199. stuck = false;
  200. }
  201.  
  202. public int main()
  203. {
  204. if(getFightMode() != 2)
  205. {
  206. setFightMode(2);
  207. return random(300,2500);
  208. }
  209.  
  210. if(getFatigue() > 90)
  211. {
  212. useSleepingBag();
  213. return random(921,1000);
  214. }
  215.  
  216. if(walking && !pickChest)
  217. {
  218. if(getX() <= 617 && getX() >= 611 && getY() <= 572 && getY() >= 568)
  219. {
  220. int door = getWallObjectIdFromCoords(612, 573);
  221. if(door == 2)
  222. {
  223. atWallObject(612, 573);
  224. return random(1000,1500);
  225. }
  226. else if (door == 1)
  227. {
  228. walkTo(617, 556);
  229. }
  230. }
  231.  
  232. if (getX() <= 640 && getX() >= 590 && getY() <= 605 && getY() >= 556)
  233. {
  234. walkTo(617, 556);
  235. }
  236.  
  237. if(getX() == 617 && getY() == 556)
  238. {
  239. int lockedDoor[] = getWallObjectById(96);
  240. atWallObject2(lockedDoor[1], lockedDoor[2]);
  241. }
  242.  
  243. if(getX() >= 615 && getX() <= 620 && getY() <= 555 && getY() >= 550 && no_stick())
  244. {
  245. int ladder[] = getObjectById(6);
  246. atObject(ladder[1], ladder[2]);
  247.  
  248. }
  249.  
  250. if(getX() >= 610 && getX() <= 619 && getY() <= 3400 && getY() >= 3000 && no_stick())
  251. {
  252. walkTo(615, 3400);
  253. }
  254.  
  255. if(getX() <= 615 && getX() >= 614 && getY() == 3400)
  256. {
  257. pickChest = true;
  258. walking = false;
  259. return random(1000,1500);
  260. }
  261. return random(1000,1500);
  262. }
  263. if(pickChest && !walking)
  264. {
  265. int[] chest = getObjectById(337);
  266. if(chest[0] != -1)
  267. {
  268. looting = true;
  269. atObject2(chest[1], chest[2]);
  270. }
  271.  
  272. if(chest[0] == -1 && !looting)
  273. {
  274. print("Hopping cause no loot!");
  275. _hop();
  276. }
  277.  
  278. if(getY() >= 568 && getY() <= 3000)
  279. {
  280. trips++;
  281. looting = false;
  282. walking = true;
  283. pickChest = false;
  284. }
  285.  
  286. return random(1000,1500);
  287. }
  288. return random(1000,1500);
  289. }
  290.  
  291. public final void print(String gameText)
  292. {
  293. System.out.println(gameText);
  294. }
  295.  
  296. private String int_format(long l) {
  297. return int_format.format(l);
  298. }
  299.  
  300. private String dec_format(double l) {
  301. return dec_format.format(l);
  302. }
  303.  
  304. private String get_runspm() {
  305. if (trips < 1)
  306. {
  307. return "0.00";
  308. }
  309. return dec_format((trips) / ((System.currentTimeMillis() - start_time) / 60000.00));
  310. }
  311.  
  312. private String get_runtime() {
  313. long secs = ((System.currentTimeMillis() - start_time) / 1000L);
  314. if (secs >= 3600L) {
  315. return int_format((secs / 3600L)) + " hours, " +
  316. ((secs % 3600L) / 60L) + " mins, " +
  317. (secs % 60L) + " secs.";
  318. }
  319. if (secs >= 60L) {
  320. return secs / 60L + " mins, " +
  321. (secs % 60L) + " secs.";
  322. }
  323. return secs + " secs.";
  324. }
  325.  
  326. private void _walkApprox(int nx, int ny, int range) {
  327. int x, y;
  328. int loop = 0;
  329. do {
  330. x = nx + random(-range, range);
  331. y = ny + random(-range, range);
  332. if ((++loop) > 1000) return;
  333. } while (!isReachable(x, y));
  334. walkTo(x, y);
  335. }
  336.  
  337. private boolean no_stick() {
  338. if (last_x != getX() || last_y != getY())
  339. stuck = false;
  340.  
  341. if (last_x == getX() && last_y == getY() && !stuck && !inCombat())
  342. {
  343. stuck_time = System.currentTimeMillis();
  344. stuck = true;
  345. }
  346.  
  347. if (last_x == getX() && last_y == getY() && stuck)
  348. {
  349. if (inCombat())
  350. stuck = false;
  351.  
  352. if(!inCombat())
  353. {
  354. long secs = ((System.currentTimeMillis() - stuck_time) / 1000L);
  355. if (secs > 1)
  356. print("NPC has been blocking us for " + secs + " seconds.");
  357.  
  358. if (secs == 1)
  359. print("NPC has been blocking us for " + secs + " second.");
  360.  
  361. if ((secs % 60L) >= wait_time && stuck)
  362. {
  363. print("Hopping because the damn NPC wont move!");
  364. _hop();
  365. stuck_time = System.currentTimeMillis() + 2000L;
  366. stuck = false;
  367. return false;
  368. }
  369. }
  370. }
  371.  
  372. last_x = getX();
  373. last_y = getY();
  374. return true;
  375. }
  376.  
  377. @Override
  378. public void paint() {
  379. final int font = 2;
  380. final int white = 0xFFFFFF;
  381. int x = 12;
  382. int y = 45;
  383. drawString("@gre@Blood Thiever@whi@", x-4, y-17, 4, white);
  384. drawString("Trips: @gre@" + int_format(trips) + " @whi@ ", x, y, font, white);
  385. y += 15;
  386. drawString("Bloods: @gre@" + int_format(trips * 2) + " @whi@ ", x, y, font, white);
  387. y += 15;
  388. drawString("Gold: $@gre@" + int_format(trips * 500) + "@whi@ ", x, y, font, white);
  389. y += 15;
  390. drawString("Trips per minute: " + get_runspm() + "@whi@ ", x, y, font, white);
  391. y += 15;
  392. drawString("Total Thieving XP: " + dec_format(trips * 287.50) + "@whi@ ", x, y, font, white);
  393. y += 15;
  394. drawString("Total Runetime: " + get_runtime() + "@whi@ ", x, y, font, white);
  395. drawVLine(8, 35, y + 3 - 35, 0xFFFFFF);
  396. drawHLine(8, y + 3, 250, 0xFFFFFF);
  397. }
  398.  
  399. private void _hop() {
  400. switch (getWorld()) {
  401. case 1:
  402. hop(2);
  403. break;
  404. case 2:
  405. hop(3);
  406. break;
  407. case 3:
  408. if (veteran)
  409. hop(1);
  410. else
  411. hop(2);
  412. break;
  413. }
  414. }
  415. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement