Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package asdf;
- import org.rspeer.runetek.adapter.Interactable;
- import org.rspeer.runetek.adapter.component.InterfaceComponent;
- import org.rspeer.runetek.adapter.scene.SceneObject;
- import org.rspeer.runetek.api.Game;
- import org.rspeer.runetek.api.Varps;
- import org.rspeer.runetek.api.commons.Time;
- import org.rspeer.runetek.api.commons.math.Random;
- import org.rspeer.runetek.api.component.Interfaces;
- import org.rspeer.runetek.api.component.ItemTables;
- import org.rspeer.runetek.api.component.tab.Inventory;
- import org.rspeer.runetek.api.component.tab.Tab;
- import org.rspeer.runetek.api.component.tab.Tabs;
- import org.rspeer.runetek.api.input.Mouse;
- import org.rspeer.runetek.api.movement.Movement;
- import org.rspeer.runetek.api.movement.position.Position;
- import org.rspeer.runetek.api.scene.Npcs;
- import org.rspeer.runetek.api.scene.Players;
- import org.rspeer.runetek.api.scene.SceneObjects;
- import org.rspeer.script.Script;
- import org.rspeer.script.ScriptMeta;
- import org.rspeer.ui.Log;
- import java.awt.*;
- import java.util.function.Predicate;
- @ScriptMeta(name = "tutorial island", developer = "", desc = "")
- public class TutorialScript extends Script {
- public static final int VARP = 281;
- private static final Position STRIKE_POS = new Position(3139, 3091);
- private int config;
- @Override
- public int loop() {
- config = Varps.get(VARP);
- boolean doDefault = false;
- Predicate<String> defaultAction = a -> true;
- Log.fine("" + config);
- if (Players.getLocal().getAnimation() != -1) {
- return 1000;
- }
- switch (config) {
- case 0:
- if (Interfaces.isViewingChatOptions()) {
- Interfaces.processDialog(0);
- } else {
- doDefault = true;
- }
- break;
- case 3:
- if (Tabs.getOpen() == Tab.OPTIONS) {
- doDefault = true;
- } else {
- Tabs.open(Tab.OPTIONS);
- }
- break;
- case 7: case 10:
- int componentIndex = -1;
- if (Varps.get(168) != 4) {
- componentIndex = 24;
- } else if (Varps.get(169) != 4) {
- componentIndex = 30;
- } else if (Varps.get(872) != 4) {
- componentIndex = 36;
- }
- if (componentIndex == -1) {
- doDefault = true;
- break;
- }
- InterfaceComponent mute = Interfaces.getComponent(261, componentIndex);
- if (mute == null) {
- Interfaces.getComponent(261, 1, 2).interact(a -> true);
- } else {
- mute.interact(a -> true);
- }
- break;
- case 20:
- if (!Movement.isRunEnabled()) {
- Movement.toggleRun(true);
- Time.sleep(500);
- }
- doDefault = true;
- break;
- case 30:
- if (Interfaces.canContinue()) {
- Interfaces.processContinue();
- } else {
- Interfaces.getComponent(548, 51).interact(a->true);
- }
- break;
- case 50:
- SceneObject fire = SceneObjects.getFirstAt(Players.getLocal().getPosition());
- if (fire == null || !fire.getName().equals("Fire")) {
- useItemOn("Logs", Inventory.getFirst("Tinderbox"));
- } else {
- Movement.walkTo(Players.getLocal().getPosition().translate(Random.nextInt(-1, 1), Random.nextInt(-1, 1)));
- Time.sleep(3000);
- }
- break;
- case 60:
- Tabs.open(Tab.STATS);
- break;
- case 90:
- case 100:
- useItemOn("Raw shrimp", SceneObjects.getNearest("Fire"));
- break;
- case 110:
- if (Inventory.contains("Raw shrimp")) {
- useItemOn("Raw shrimp", SceneObjects.getNearest("Fire"));
- } else {
- Npcs.getNearest("Fishing spot").interact("Net");
- }
- break;
- case 150:
- useItemOn("Pot of flour", Inventory.getFirst("Bucket of water"));
- break;
- case 160:
- if (Inventory.isItemSelected()) {
- doDefault = true;
- } else {
- Inventory.getFirst("Bread dough").interact("Use");
- }
- break;
- case 170:
- Tabs.open(Tab.MUSIC_PLAYER);
- break;
- case 183:
- Tabs.open(Tab.EMOTES);
- break;
- case 187:
- Interfaces.getComponent(216, 1, 0).interact("Yes");
- break;
- case 190:
- Tabs.open(Tab.OPTIONS);
- break;
- case 200:
- Interfaces.getComponent(160, 22).interact("Toggle Run");
- break;
- case 210:
- if (!Movement.isRunEnabled()) {
- Movement.toggleRun(true);
- Time.sleep(500);
- }else {
- doDefault = true;
- }
- break;
- case 230:
- Tabs.open(Tab.QUEST_LIST);
- break;
- case 260:
- if (Players.getLocal().getY() > 9517) {
- Movement.walkTo(new Position(3081, 9509));
- } else {
- doDefault = true;
- }
- break;
- case 270: case 280:
- defaultAction = a -> a.equals("Prospect");
- doDefault = true;
- break;
- case 320:
- if (Inventory.isItemSelected()) {
- doDefault = true;
- } else {
- Inventory.getFirst("Tin ore").interact("Use");
- }
- break;
- case 330:
- InterfaceComponent irregularContinue = Interfaces.getComponent(162, 36);
- if (irregularContinue != null && irregularContinue.isVisible()) {
- Mouse.click((int) irregularContinue.getBounds().getCenterX(), (int) irregularContinue.getBounds().getCenterY());
- }
- doDefault = true;
- break;
- case 350:
- Interfaces.getComponent(312, 2).interact("Smith 1");
- break;
- case 390:
- Tabs.open(Tab.EQUIPMENT);
- break;
- case 400:
- Interfaces.getComponent(387, 17).interact("View equipment stats");
- break;
- case 405:
- Interfaces.getComponent(85, 0, 9).interact("Equip");
- break;
- case 420:
- if (ItemTables.contains(ItemTables.EQUIPMENT, s -> s.equalsIgnoreCase("Bronze sword"))) {
- Inventory.getFirst("Wooden shield").interact(a -> true);
- } else {
- Inventory.getFirst("Bronze sword").interact("Wield");
- }
- break;
- case 430:
- Tabs.open(Tab.COMBAT);
- break;
- case 440:
- SceneObjects.getNearest(so -> so.getName().equalsIgnoreCase("Gate") && so.getY() > 9515).interact("Open");
- break;
- case 450:
- if (Players.getLocal().getTargetIndex() == -1) {
- Npcs.getNearest(n -> n.getName().equals("Giant rat") && n.getTargetIndex() == -1).interact(a -> true);
- }
- break;
- case 470:
- if (Movement.isReachable(Npcs.getNearest(3307))) {
- doDefault = true;
- } else {
- SceneObjects.getNearest(so -> so.getName().equalsIgnoreCase("Gate") && so.getY() > 9515).interact("Open");
- }
- break;
- case 490:
- if (!ItemTables.contains(ItemTables.EQUIPMENT, s -> s.equalsIgnoreCase("Shortbow"))) {
- Inventory.getFirst("Shortbow").interact(a -> true);
- } else if (!ItemTables.contains(ItemTables.EQUIPMENT, s -> s.equalsIgnoreCase("Bronze arrow"))) {
- Inventory.getFirst("Bronze arrow").interact(a -> true);
- } else if (Players.getLocal().getTargetIndex() == -1) {
- Npcs.getNearest(n -> n.getName().equals("Giant rat") && n.getTargetIndex() == -1).interact(a -> true);
- }
- break;
- case 510:
- if (Interfaces.isViewingChatOptions()) {
- Interfaces.processDialog(0);
- } else {
- doDefault = true;
- }
- break;
- case 550:
- if (Players.getLocal().getY() > 3116) {
- Movement.walkTo(new Position(3134, 3116));
- } else {
- doDefault = true;
- }
- break;
- case 560:
- Tabs.open(Tab.PRAYER);
- break;
- case 580:
- Tabs.open(Tab.FRIENDS_LIST);
- break;
- case 590:
- Tabs.open(Tab.IGNORE_LIST);
- break;
- case 620:
- if (Players.getLocal().getY() > 3100) {
- Movement.walkTo(new Position(3131, 3088));
- } else {
- doDefault = true;
- }
- break;
- case 630:
- Tabs.open(Tab.MAGIC);
- break;
- case 650:
- if (STRIKE_POS.equals(Players.getLocal().getPosition())) {
- if (Game.getClient().isSpellSelected()) {
- Npcs.getNearest("Chicken").interact(8);
- } else {
- Interfaces.getComponent(218, 2).interact("Cast");
- }
- } else {
- Movement.walkTo(STRIKE_POS);
- }
- break;
- case 670:
- if (Interfaces.isViewingChatOptions()) {
- if (Interfaces.getComponent(219, 0, 0).getText().contains("o you want to go to")) {
- Interfaces.processDialog(0);
- } else {
- Interfaces.processDialog(1);
- }
- } else {
- doDefault = true;
- }
- break;
- case 1000:
- if (!Players.getLocal().isMoving()) {
- if (Players.getLocal().getY() < 3307) {
- Movement.walkTo(new Position(3237, 3308, 0));
- } else {
- Movement.walkTo(new Position(3163, 3472, 0));
- }
- }
- break;
- default:
- doDefault = true;
- break;
- }
- if (doDefault) {
- if (Interfaces.canContinue()) {
- Interfaces.processContinue();
- } else if (!Interfaces.isDialogProcessing()) {
- switch (Game.getClient().getHintArrowType()) {
- case 0:
- Log.info("no hint arrow");
- break;
- case 1:
- Npcs.getAt(Game.getClient().getHintArrowNpcIndex()).interact(defaultAction);
- break;
- case 2:
- Position hintPos = new Position(Game.getClient().getHintArrowX(), Game.getClient().getHintArrowY(), Players.getLocal().getFloorLevel());
- Log.info(hintPos.toString());
- for (SceneObject so : SceneObjects.getAt(hintPos)) {
- Log.info(so.getName() + " id: " + so.getId());
- if(so.containsAction(defaultAction)){
- Log.info("interacting with" + so.getName());
- so.interact(defaultAction);
- break;
- }
- }
- break;
- }
- }
- }
- return 1000;
- }
- private void useItemOn(String itemName, Interactable target) {
- if (Inventory.isItemSelected()) {
- if (target.interact("Use")) {
- Time.sleepUntil(() -> Varps.get(VARP) != config, 30 * 1000);
- }
- } else {
- Inventory.getFirst(itemName).interact("Use");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement