Advertisement
Guest User

Untitled

a guest
Aug 12th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.87 KB | None | 0 0
  1. import org.rsbot.script.Script;
  2. import org.rsbot.script.ScriptManifest;
  3. import org.rsbot.script.wrappers.*;
  4. import org.rsbot.event.events.MessageEvent;
  5. import org.rsbot.event.listeners.MessageListener;
  6. import org.rsbot.script.methods.Mouse;
  7.  
  8. @ScriptManifest (
  9. authors = { "WinblowsME" },
  10. keywords = { "runescape", "runecraft", "master", "slave" },
  11. name = ">>> Slave Crafter <<<",
  12. description = "Carries Essence to the Master Crafter at the Earth Altar",
  13. version = 1.5
  14. )
  15.  
  16. public class slave extends Script implements MessageListener
  17. {
  18. private String MASTER_NAME = "Change Master Name";
  19. private int RUNE_ESS_ID = 1436;
  20. private int EARTH_RUNE_ID = 557;
  21. private int RUINS_ID = 2455;
  22. private int ALTAR_ID = 2481;
  23. private int PORTAL_ID = 2468;
  24. private int BANK_BOOTH_ID = 782;
  25. private RSTilePath ruins_path;
  26. private RSTilePath altar_path;
  27.  
  28. private RSTile [] BANK_TO_RUINS = { new RSTile ( 3253, 3420 ),
  29. new RSTile ( 3253, 3423 ),
  30. new RSTile ( 3254, 3426 ),
  31. new RSTile ( 3257, 3428 ),
  32. new RSTile ( 3260, 3428 ),
  33. new RSTile ( 3263, 3428 ),
  34. new RSTile ( 3266, 3428 ),
  35. new RSTile ( 3269, 3428 ),
  36. new RSTile ( 3272, 3429 ),
  37. new RSTile ( 3275, 3430 ),
  38. new RSTile ( 3275, 3433 ),
  39. new RSTile ( 3275, 3436 ),
  40. new RSTile ( 3275, 3439 ),
  41. new RSTile ( 3275, 3442 ),
  42. new RSTile ( 3277, 3446 ),
  43. new RSTile ( 3280, 3446 ),
  44. new RSTile ( 3283, 3449 ),
  45. new RSTile ( 3286, 3452 ),
  46. new RSTile ( 3289, 3455 ),
  47. new RSTile ( 3291, 3458 ),
  48. new RSTile ( 3294, 3461 ),
  49. new RSTile ( 3296, 3464 ),
  50. new RSTile ( 3297, 3467 ),
  51. new RSTile ( 3300, 3470 ),
  52. new RSTile ( 3303, 3470 ),
  53. new RSTile ( 3304, 3472 ) };
  54.  
  55. private RSArea bank_area = new RSArea ( new RSTile ( 3250, 3419 ), new RSTile ( 3257, 3423 ) );
  56. private RSArea ruins_area = new RSArea ( new RSTile ( 3303, 3470 ), new RSTile ( 3307, 3482 ) );
  57. private RSArea portal_area = new RSArea ( new RSTile ( 2647, 4830 ), new RSTile ( 2661, 4836 ) );
  58. private RSArea altar_area = new RSArea ( new RSTile ( 2652, 4837 ), new RSTile ( 2663, 4844 ) );
  59. private RSArea exit_area = new RSArea ( new RSTile ( 3299, 3477 ), new RSTile ( 3302, 3479 ) );
  60.  
  61. ////////////////////////////////////////////////////////////////////////////////////
  62. // ON START
  63. ////////////////////////////////////////////////////////////////////////////////////
  64.  
  65. public boolean onStart()
  66. {
  67. ruins_path = walking.newTilePath ( BANK_TO_RUINS );
  68.  
  69. return true;
  70. }
  71.  
  72. ////////////////////////////////////////////////////////////////////////////////////
  73. // LOOP
  74. ////////////////////////////////////////////////////////////////////////////////////
  75.  
  76. public int loop()
  77. {
  78. main_function();
  79.  
  80. return 0;
  81. }
  82.  
  83. ////////////////////////////////////////////////////////////////////////////////////
  84. // MAIN FUNCTION
  85. ////////////////////////////////////////////////////////////////////////////////////
  86.  
  87. private void main_function()
  88. {
  89. mouse.setSpeed ( random ( 7, 10 ) );
  90. anti_ban_camera();
  91.  
  92. if ( walking.getEnergy() > random ( 50, 100 ) )
  93. {
  94. if ( !walking.isRunEnabled() )
  95. {
  96. walking.setRun ( true );
  97. }
  98. }
  99.  
  100. if ( at_bank() )
  101. {
  102. if ( inventory.contains ( EARTH_RUNE_ID ) )
  103. {
  104. bank();
  105. }
  106. else if ( inventory.contains ( RUNE_ESS_ID ) )
  107. {
  108. walk_to_ruins();
  109. }
  110. else
  111. {
  112. bank();
  113. }
  114. }
  115. else if ( at_ruins() )
  116. {
  117. if ( inventory.contains ( RUNE_ESS_ID ) )
  118. {
  119. enter_ruins();
  120. }
  121. else
  122. {
  123. walk_to_bank();
  124. }
  125. }
  126. else if ( at_portal() )
  127. {
  128. if ( inventory.contains ( RUNE_ESS_ID ) )
  129. {
  130. walk_to_altar();
  131. }
  132. else
  133. {
  134. enter_portal();
  135. }
  136. }
  137. else if ( at_altar() )
  138. {
  139. if ( inventory.contains ( EARTH_RUNE_ID ) )
  140. {
  141. walk_to_portal();
  142. }
  143.  
  144. if ( on_trade_window_1() )
  145. {
  146. trade_1();
  147. }
  148.  
  149. if ( on_trade_window_2() )
  150. {
  151. trade_2();
  152. }
  153. }
  154. else if ( at_exit() )
  155. {
  156. if ( inventory.contains ( RUNE_ESS_ID ) )
  157. {
  158. walk_to_ruins();
  159. }
  160. else
  161. {
  162. walk_to_bank();
  163. }
  164. }
  165. else
  166. {
  167. if ( inventory.contains ( RUNE_ESS_ID ) )
  168. {
  169. walk_to_ruins();
  170. }
  171. else
  172. {
  173. walk_to_bank();
  174. }
  175. }
  176. }
  177.  
  178. ////////////////////////////////////////////////////////////////////////////////////
  179. // VALID MASTER
  180. ////////////////////////////////////////////////////////////////////////////////////
  181.  
  182. private boolean valid_master ( String curr_player )
  183. {
  184. int result = curr_player.compareTo ( MASTER_NAME );
  185.  
  186. if ( result == 0 || result == 128 )
  187. {
  188. return ( true );
  189. }
  190. else
  191. {
  192. return ( false );
  193. }
  194. }
  195.  
  196. ////////////////////////////////////////////////////////////////////////////////////
  197. // ACTIONS
  198. ////////////////////////////////////////////////////////////////////////////////////
  199.  
  200. private void enter_ruins()
  201. {
  202. try
  203. {
  204. RSObject ruins = objects.getNearest ( RUINS_ID );
  205. ruins.doAction ( "Enter" );
  206. }
  207. catch ( Exception e ) {}
  208. }
  209.  
  210. private void enter_portal()
  211. {
  212. try
  213. {
  214. RSObject portal = objects.getNearest ( PORTAL_ID );
  215. portal.doAction ( "Enter" );
  216. }
  217. catch ( Exception e ) {}
  218. }
  219.  
  220. ////////////////////////////////////////////////////////////////////////////////////
  221. // LOCATION CHECK
  222. ////////////////////////////////////////////////////////////////////////////////////
  223.  
  224. private boolean at_bank()
  225. {
  226. return ( bank_area.contains ( getMyPlayer().getLocation() ) );
  227. }
  228.  
  229. private boolean at_altar()
  230. {
  231. return ( altar_area.contains ( getMyPlayer().getLocation() ) );
  232. }
  233.  
  234. private boolean at_ruins()
  235. {
  236. return ( ruins_area.contains ( getMyPlayer().getLocation() ) );
  237. }
  238.  
  239. private boolean at_portal()
  240. {
  241. return ( portal_area.contains ( getMyPlayer().getLocation() ) );
  242. }
  243.  
  244. private boolean at_exit()
  245. {
  246. return ( exit_area.contains ( getMyPlayer().getLocation() ) );
  247. }
  248.  
  249. ////////////////////////////////////////////////////////////////////////////////////
  250. // MOVEMENT
  251. ////////////////////////////////////////////////////////////////////////////////////
  252.  
  253. private void walk_to_ruins()
  254. {
  255. ruins_path.traverse();
  256. }
  257.  
  258. private void walk_to_bank()
  259. {
  260. ruins_path.reverse();
  261. ruins_path.traverse();
  262. ruins_path.reverse();
  263. }
  264.  
  265. private void walk_to_altar()
  266. {
  267. int rand_x = random ( 2654, 2658 );
  268. int rand_y = random ( 4838, 4840 );
  269.  
  270. RSTile [] TO_ALTAR = { new RSTile ( 2657, 4830 ),
  271. new RSTile ( 2657, 4833 ),
  272. new RSTile ( 2658, 4836 ),
  273. new RSTile ( rand_x, rand_y ) };
  274.  
  275. altar_path = walking.newTilePath ( TO_ALTAR );
  276. altar_path.traverse();
  277. }
  278.  
  279. private void walk_to_portal()
  280. {
  281. int rand_x = random ( 2654, 2658 );
  282. int rand_y = random ( 4838, 4840 );
  283.  
  284. RSTile [] TO_ALTAR = { new RSTile ( 2657, 4830 ),
  285. new RSTile ( 2657, 4833 ),
  286. new RSTile ( 2658, 4836 ),
  287. new RSTile ( rand_x, rand_y ) };
  288.  
  289. altar_path = walking.newTilePath ( TO_ALTAR );
  290. altar_path.reverse();
  291. altar_path.traverse();
  292. altar_path.reverse();
  293. }
  294.  
  295. ////////////////////////////////////////////////////////////////////////////////////
  296. // BANK
  297. ////////////////////////////////////////////////////////////////////////////////////
  298.  
  299. private void bank()
  300. {
  301. try
  302. {
  303. RSObject bank_booth = objects.getNearest ( BANK_BOOTH_ID );
  304.  
  305. bank_booth.doAction ( "Use-quickly" );
  306. sleep ( 1000, 1500 );
  307.  
  308. bank.depositAll();
  309. sleep ( 1000, 1200 );
  310.  
  311. bank.withdraw ( RUNE_ESS_ID, 28 );
  312. sleep ( 1000, 1200 );
  313.  
  314. bank.close();
  315.  
  316. if ( inventory.getCount() != 28 )
  317. {
  318. bank();
  319. }
  320. }
  321. catch ( Exception e ) {}
  322. }
  323.  
  324. ////////////////////////////////////////////////////////////////////////////////////
  325. // TRADE 1
  326. ////////////////////////////////////////////////////////////////////////////////////
  327.  
  328. private void trade_1()
  329. {
  330. RSItem essence = inventory.getItem ( RUNE_ESS_ID );
  331. RSInterface trade_window_1 = interfaces.get ( 335 );
  332. RSComponent accept_button_1 = trade_window_1.getComponent ( 17 );
  333. RSComponent wealth_trans_1 = trade_window_1.getComponent ( 43 );
  334. RSComponent wealth_trans_2 = trade_window_1.getComponent ( 44 );
  335.  
  336. sleep ( 200, 300 );
  337.  
  338. if ( trade_window_1.isValid() )
  339. {
  340. sleep ( 200, 300 );
  341.  
  342. while ( wealth_trans_1.getText().contains ( "Nothing" ) )
  343. {
  344. essence.doAction ( "Offer-All" );
  345. sleep ( 500, 750 );
  346. }
  347.  
  348. while ( wealth_trans_2.getText().contains ( "Nothing" ) )
  349. {
  350. sleep ( 500, 750 );
  351. }
  352.  
  353. accept_button_1.doAction ( "Accept" );
  354. }
  355. }
  356.  
  357. ////////////////////////////////////////////////////////////////////////////////////
  358. // TRADE 2
  359. ////////////////////////////////////////////////////////////////////////////////////
  360.  
  361. private void trade_2()
  362. {
  363. RSInterface trade_window_2 = interfaces.get ( 334 );
  364. RSComponent trade_status = trade_window_2.getComponent ( 34 );
  365. RSComponent accept_button_2 = trade_window_2.getComponent ( 36 );
  366.  
  367. sleep ( 200, 300 );
  368.  
  369. if ( trade_window_2.isValid() )
  370. {
  371. sleep ( 200, 300 );
  372.  
  373. while ( trade_status.getText().contains ( "player has accepted" ) )
  374. {
  375. accept_button_2.doAction ( "Accept" );
  376. }
  377. }
  378. }
  379.  
  380. ////////////////////////////////////////////////////////////////////////////////////
  381. // CHECK TRADE WINDOW 1
  382. ////////////////////////////////////////////////////////////////////////////////////
  383.  
  384. private boolean on_trade_window_1()
  385. {
  386. return ( interfaces.get ( 335 ).isValid() );
  387. }
  388.  
  389. ////////////////////////////////////////////////////////////////////////////////////
  390. // CHECK TRADE WINDOW 2
  391. ////////////////////////////////////////////////////////////////////////////////////
  392.  
  393. private boolean on_trade_window_2()
  394. {
  395. return ( interfaces.get ( 334 ).isValid() );
  396. }
  397.  
  398. ////////////////////////////////////////////////////////////////////////////////////
  399. // CHECK TRADE WINDOW
  400. ////////////////////////////////////////////////////////////////////////////////////
  401.  
  402. private boolean on_trade_window()
  403. {
  404. return ( interfaces.get ( 334 ).isValid() || interfaces.get ( 335 ).isValid() );
  405. }
  406.  
  407. ////////////////////////////////////////////////////////////////////////////////////
  408. // ANTI-BAN
  409. ////////////////////////////////////////////////////////////////////////////////////
  410.  
  411. private void anti_ban_camera()
  412. {
  413. int randomNum = random ( 1, 50 );
  414.  
  415. if ( randomNum == 1 || randomNum == 2 || randomNum == 3 )
  416. {
  417. camera.moveRandomly ( random ( 2000, 5500 ) );
  418. }
  419.  
  420. if ( randomNum == 4 || randomNum == 5 )
  421. {
  422. camera.setAngle ( random ( 10, 40 ) );
  423. }
  424.  
  425. if ( randomNum == 6 )
  426. {
  427. camera.setPitch ( random ( 40, 68 ) );
  428. }
  429.  
  430. if ( randomNum == 7 )
  431. {
  432. camera.setPitch ( random ( 20, 45 ) );
  433. }
  434.  
  435. if ( randomNum == 8 )
  436. {
  437. camera.setPitch ( random ( 68, 90 ) );
  438. }
  439. else
  440. {
  441. sleep ( 50, 70 );
  442. }
  443. }
  444.  
  445. ////////////////////////////////////////////////////////////////////////////////////
  446. // MESSAGE RECEIVED
  447. ////////////////////////////////////////////////////////////////////////////////////
  448.  
  449. public void messageReceived ( MessageEvent e )
  450. {
  451. String sender_name = e.getSender();
  452. int message_result = sender_name.compareTo ( MASTER_NAME );
  453.  
  454. int rand_x = random ( 10, 200 );
  455. int rand_y = random ( 445, 455 );
  456.  
  457. if ( message_result == 0 || message_result == 128 )
  458. {
  459. if ( !inventory.contains ( EARTH_RUNE_ID ) )
  460. {
  461. mouse.click ( rand_x, rand_y, true );
  462. }
  463. }
  464. }
  465. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement