Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.92 KB | None | 0 0
  1. package asdf;
  2.  
  3. import org.rspeer.runetek.adapter.Interactable;
  4. import org.rspeer.runetek.adapter.component.InterfaceComponent;
  5. import org.rspeer.runetek.adapter.scene.SceneObject;
  6. import org.rspeer.runetek.api.Game;
  7. import org.rspeer.runetek.api.Varps;
  8. import org.rspeer.runetek.api.commons.Time;
  9. import org.rspeer.runetek.api.commons.math.Random;
  10. import org.rspeer.runetek.api.component.Interfaces;
  11. import org.rspeer.runetek.api.component.ItemTables;
  12. import org.rspeer.runetek.api.component.tab.Inventory;
  13. import org.rspeer.runetek.api.component.tab.Tab;
  14. import org.rspeer.runetek.api.component.tab.Tabs;
  15. import org.rspeer.runetek.api.input.Mouse;
  16. import org.rspeer.runetek.api.movement.Movement;
  17. import org.rspeer.runetek.api.movement.position.Position;
  18. import org.rspeer.runetek.api.scene.Npcs;
  19. import org.rspeer.runetek.api.scene.Players;
  20. import org.rspeer.runetek.api.scene.SceneObjects;
  21. import org.rspeer.script.Script;
  22. import org.rspeer.script.ScriptMeta;
  23. import org.rspeer.ui.Log;
  24.  
  25. import java.awt.*;
  26. import java.util.function.Predicate;
  27.  
  28. @ScriptMeta(name = "tutorial island", developer = "", desc = "")
  29. public class TutorialScript extends Script {
  30. public static final int VARP = 281;
  31. private static final Position STRIKE_POS = new Position(3139, 3091);
  32.  
  33. private int config;
  34.  
  35. @Override
  36. public int loop() {
  37. config = Varps.get(VARP);
  38. boolean doDefault = false;
  39. Predicate<String> defaultAction = a -> true;
  40.  
  41. Log.fine("" + config);
  42.  
  43. if (Players.getLocal().getAnimation() != -1) {
  44. return 1000;
  45. }
  46.  
  47. switch (config) {
  48. case 0:
  49. if (Interfaces.isViewingChatOptions()) {
  50. Interfaces.processDialog(0);
  51. } else {
  52. doDefault = true;
  53. }
  54. break;
  55. case 3:
  56. if (Tabs.getOpen() == Tab.OPTIONS) {
  57. doDefault = true;
  58. } else {
  59. Tabs.open(Tab.OPTIONS);
  60. }
  61. break;
  62. case 7: case 10:
  63. int componentIndex = -1;
  64. if (Varps.get(168) != 4) {
  65. componentIndex = 24;
  66. } else if (Varps.get(169) != 4) {
  67. componentIndex = 30;
  68. } else if (Varps.get(872) != 4) {
  69. componentIndex = 36;
  70. }
  71.  
  72. if (componentIndex == -1) {
  73. doDefault = true;
  74. break;
  75. }
  76.  
  77. InterfaceComponent mute = Interfaces.getComponent(261, componentIndex);
  78. if (mute == null) {
  79. Interfaces.getComponent(261, 1, 2).interact(a -> true);
  80. } else {
  81. mute.interact(a -> true);
  82. }
  83. break;
  84. case 20:
  85. if (!Movement.isRunEnabled()) {
  86. Movement.toggleRun(true);
  87. Time.sleep(500);
  88. }
  89.  
  90. doDefault = true;
  91. break;
  92. case 30:
  93. if (Interfaces.canContinue()) {
  94. Interfaces.processContinue();
  95. } else {
  96. Interfaces.getComponent(548, 51).interact(a->true);
  97. }
  98. break;
  99. case 50:
  100. SceneObject fire = SceneObjects.getFirstAt(Players.getLocal().getPosition());
  101. if (fire == null || !fire.getName().equals("Fire")) {
  102. useItemOn("Logs", Inventory.getFirst("Tinderbox"));
  103. } else {
  104. Movement.walkTo(Players.getLocal().getPosition().translate(Random.nextInt(-1, 1), Random.nextInt(-1, 1)));
  105. Time.sleep(3000);
  106. }
  107. break;
  108. case 60:
  109. Tabs.open(Tab.STATS);
  110. break;
  111. case 90:
  112. case 100:
  113. useItemOn("Raw shrimp", SceneObjects.getNearest("Fire"));
  114. break;
  115. case 110:
  116. if (Inventory.contains("Raw shrimp")) {
  117. useItemOn("Raw shrimp", SceneObjects.getNearest("Fire"));
  118. } else {
  119. Npcs.getNearest("Fishing spot").interact("Net");
  120. }
  121. break;
  122. case 150:
  123. useItemOn("Pot of flour", Inventory.getFirst("Bucket of water"));
  124. break;
  125. case 160:
  126. if (Inventory.isItemSelected()) {
  127. doDefault = true;
  128. } else {
  129. Inventory.getFirst("Bread dough").interact("Use");
  130. }
  131. break;
  132. case 170:
  133. Tabs.open(Tab.MUSIC_PLAYER);
  134. break;
  135. case 183:
  136. Tabs.open(Tab.EMOTES);
  137. break;
  138. case 187:
  139. Interfaces.getComponent(216, 1, 0).interact("Yes");
  140. break;
  141. case 190:
  142. Tabs.open(Tab.OPTIONS);
  143. break;
  144. case 200:
  145. Interfaces.getComponent(160, 22).interact("Toggle Run");
  146. break;
  147. case 210:
  148. if (!Movement.isRunEnabled()) {
  149. Movement.toggleRun(true);
  150. Time.sleep(500);
  151. }else {
  152. doDefault = true;
  153. }
  154. break;
  155. case 230:
  156. Tabs.open(Tab.QUEST_LIST);
  157. break;
  158. case 260:
  159. if (Players.getLocal().getY() > 9517) {
  160. Movement.walkTo(new Position(3081, 9509));
  161. } else {
  162. doDefault = true;
  163. }
  164. break;
  165. case 270: case 280:
  166. defaultAction = a -> a.equals("Prospect");
  167. doDefault = true;
  168. break;
  169. case 320:
  170. if (Inventory.isItemSelected()) {
  171. doDefault = true;
  172. } else {
  173. Inventory.getFirst("Tin ore").interact("Use");
  174. }
  175. break;
  176. case 330:
  177. InterfaceComponent irregularContinue = Interfaces.getComponent(162, 36);
  178. if (irregularContinue != null && irregularContinue.isVisible()) {
  179. Mouse.click((int) irregularContinue.getBounds().getCenterX(), (int) irregularContinue.getBounds().getCenterY());
  180. }
  181.  
  182. doDefault = true;
  183. break;
  184. case 350:
  185. Interfaces.getComponent(312, 2).interact("Smith 1");
  186. break;
  187. case 390:
  188. Tabs.open(Tab.EQUIPMENT);
  189. break;
  190. case 400:
  191. Interfaces.getComponent(387, 17).interact("View equipment stats");
  192. break;
  193. case 405:
  194. Interfaces.getComponent(85, 0, 9).interact("Equip");
  195. break;
  196. case 420:
  197. if (ItemTables.contains(ItemTables.EQUIPMENT, s -> s.equalsIgnoreCase("Bronze sword"))) {
  198. Inventory.getFirst("Wooden shield").interact(a -> true);
  199. } else {
  200. Inventory.getFirst("Bronze sword").interact("Wield");
  201. }
  202. break;
  203. case 430:
  204. Tabs.open(Tab.COMBAT);
  205. break;
  206. case 440:
  207. SceneObjects.getNearest(so -> so.getName().equalsIgnoreCase("Gate") && so.getY() > 9515).interact("Open");
  208. break;
  209. case 450:
  210. if (Players.getLocal().getTargetIndex() == -1) {
  211. Npcs.getNearest(n -> n.getName().equals("Giant rat") && n.getTargetIndex() == -1).interact(a -> true);
  212. }
  213. break;
  214. case 470:
  215. if (Movement.isReachable(Npcs.getNearest(3307))) {
  216. doDefault = true;
  217. } else {
  218. SceneObjects.getNearest(so -> so.getName().equalsIgnoreCase("Gate") && so.getY() > 9515).interact("Open");
  219. }
  220. break;
  221. case 490:
  222. if (!ItemTables.contains(ItemTables.EQUIPMENT, s -> s.equalsIgnoreCase("Shortbow"))) {
  223. Inventory.getFirst("Shortbow").interact(a -> true);
  224. } else if (!ItemTables.contains(ItemTables.EQUIPMENT, s -> s.equalsIgnoreCase("Bronze arrow"))) {
  225. Inventory.getFirst("Bronze arrow").interact(a -> true);
  226. } else if (Players.getLocal().getTargetIndex() == -1) {
  227. Npcs.getNearest(n -> n.getName().equals("Giant rat") && n.getTargetIndex() == -1).interact(a -> true);
  228. }
  229. break;
  230. case 510:
  231. if (Interfaces.isViewingChatOptions()) {
  232. Interfaces.processDialog(0);
  233. } else {
  234. doDefault = true;
  235. }
  236. break;
  237.  
  238. case 550:
  239. if (Players.getLocal().getY() > 3116) {
  240. Movement.walkTo(new Position(3134, 3116));
  241. } else {
  242. doDefault = true;
  243. }
  244. break;
  245. case 560:
  246. Tabs.open(Tab.PRAYER);
  247. break;
  248. case 580:
  249. Tabs.open(Tab.FRIENDS_LIST);
  250. break;
  251. case 590:
  252. Tabs.open(Tab.IGNORE_LIST);
  253. break;
  254. case 620:
  255. if (Players.getLocal().getY() > 3100) {
  256. Movement.walkTo(new Position(3131, 3088));
  257. } else {
  258. doDefault = true;
  259. }
  260. break;
  261. case 630:
  262. Tabs.open(Tab.MAGIC);
  263. break;
  264. case 650:
  265.  
  266. if (STRIKE_POS.equals(Players.getLocal().getPosition())) {
  267. if (Game.getClient().isSpellSelected()) {
  268. Npcs.getNearest("Chicken").interact(8);
  269. } else {
  270. Interfaces.getComponent(218, 2).interact("Cast");
  271. }
  272. } else {
  273. Movement.walkTo(STRIKE_POS);
  274. }
  275. break;
  276. case 670:
  277. if (Interfaces.isViewingChatOptions()) {
  278. if (Interfaces.getComponent(219, 0, 0).getText().contains("o you want to go to")) {
  279. Interfaces.processDialog(0);
  280. } else {
  281. Interfaces.processDialog(1);
  282. }
  283. } else {
  284. doDefault = true;
  285. }
  286. break;
  287. case 1000:
  288. if (!Players.getLocal().isMoving()) {
  289. if (Players.getLocal().getY() < 3307) {
  290. Movement.walkTo(new Position(3237, 3308, 0));
  291. } else {
  292. Movement.walkTo(new Position(3163, 3472, 0));
  293. }
  294. }
  295.  
  296. break;
  297. default:
  298. doDefault = true;
  299. break;
  300. }
  301.  
  302. if (doDefault) {
  303. if (Interfaces.canContinue()) {
  304. Interfaces.processContinue();
  305. } else if (!Interfaces.isDialogProcessing()) {
  306. switch (Game.getClient().getHintArrowType()) {
  307. case 0:
  308. Log.info("no hint arrow");
  309. break;
  310. case 1:
  311. Npcs.getAt(Game.getClient().getHintArrowNpcIndex()).interact(defaultAction);
  312. break;
  313. case 2:
  314. Position hintPos = new Position(Game.getClient().getHintArrowX(), Game.getClient().getHintArrowY(), Players.getLocal().getFloorLevel());
  315. Log.info(hintPos.toString());
  316. for (SceneObject so : SceneObjects.getAt(hintPos)) {
  317. Log.info(so.getName() + " id: " + so.getId());
  318. if(so.containsAction(defaultAction)){
  319. Log.info("interacting with" + so.getName());
  320. so.interact(defaultAction);
  321. break;
  322. }
  323. }
  324. break;
  325. }
  326. }
  327. }
  328. return 1000;
  329. }
  330.  
  331. private void useItemOn(String itemName, Interactable target) {
  332. if (Inventory.isItemSelected()) {
  333. if (target.interact("Use")) {
  334. Time.sleepUntil(() -> Varps.get(VARP) != config, 30 * 1000);
  335. }
  336. } else {
  337. Inventory.getFirst(itemName).interact("Use");
  338. }
  339. }
  340. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement