Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package scripts.runecrafting.abysscrafter;
- import org.tribot.api.General;
- import org.tribot.api.util.ABCUtil;
- import org.tribot.api2007.Camera;
- import org.tribot.api2007.Combat;
- import org.tribot.api2007.Game;
- import org.tribot.api2007.NPCs;
- import org.tribot.api2007.Player;
- import org.tribot.api2007.Walking;
- import org.tribot.api2007.types.RSNPC;
- import org.tribot.api2007.types.RSObject;
- import scripts.methods.Methods;
- public class Obstacles {
- private Main main;
- private RSObject obstacle;
- public Obstacles(Main main) {
- setMain(main);
- }
- public void setMain(Main main) {
- this.main = main;
- }
- public Main getMain() {
- return main;
- }
- public boolean isHealthLow() {
- return Combat.getHP() <= (Combat.getMaxHP() * 0.3);
- }
- public boolean findClosest() {
- if(Locations.isInsideInnerRing()) {
- if(getMain().pouchNeedsRepair()) {
- getMain().setState(State.REPAIRING_POUCH);
- return false;
- } else {
- getMain().setState(State.ENTERING_RIFT);
- return false;
- }
- }
- if(isHealthLow()) {
- int teles = getMain().getEmergencyTeleports();
- getMain().setEmergencyTeleports(teles + 1);
- getMain().setState(State.TELEPORTING_TO_HOUSE);
- return false;
- }
- if(getObstacle() != null) {
- return false;
- }
- RSObject obstacle = Methods.findObjectByModelPoints(new int[] { Constants.GAP, Constants.ROCKS/*, Constants.BOIL, Constants.BLOCKAGE, Constants.EYES*/ });
- if(obstacle != null) {
- setObstacle(obstacle);
- if(Methods.distanceTo(getMain(), obstacle.getPosition()) > 4) {
- Walking.walkTo(obstacle);
- if(!obstacle.isOnScreen())
- Camera.turnToTile(obstacle);
- }
- return true;
- } else {
- walkOutterRing();
- }
- return false;
- }
- private int outterRingPath = 0;
- private boolean walkOutterRing() {
- if(isHealthLow()) {
- int teles = getMain().getEmergencyTeleports();
- getMain().setEmergencyTeleports(teles + 1);
- getMain().setState(State.TELEPORTING_TO_HOUSE);
- return false;
- }
- switch(getOutterRingPath()) {
- case 0:
- if(!Walking.walkPath(Constants.OUTTER_RING_PATH_1)) {
- setOutterRingPath(2);
- } else {
- setOutterRingPath(1);
- }
- break;
- case 1:
- Walking.walkPath(Constants.OUTTER_RING_PATH_1);
- break;
- case 2:
- Walking.walkPath(Constants.OUTTER_RING_PATH_2);
- break;
- }
- return false;
- }
- private long last_idle_time = 0L;
- private boolean checkIdle = false;
- public boolean passObstacle() {
- if(!Player.isMoving() && !checkIdle) {
- last_idle_time = System.currentTimeMillis();
- checkIdle = true;
- }
- if(!Player.isMoving() && System.currentTimeMillis() - last_idle_time > 4000) {
- setObstacle(null);
- checkIdle = false;
- findClosest();
- return passObstacle();
- }
- if(Locations.isInsideInnerRing() && getMonsterDistance() > 2) {
- if(getMain().pouchNeedsRepair()) {
- getMain().setState(State.REPAIRING_POUCH);
- return false;
- } else {
- getMain().setState(State.ENTERING_RIFT);
- return false;
- }
- }
- if(isHealthLow()) {
- int teles = getMain().getEmergencyTeleports();
- getMain().setEmergencyTeleports(teles + 1);
- getMain().setState(State.TELEPORTING_TO_HOUSE);
- return false;
- }
- if(getObstacle() == null) {
- findClosest();
- } else {
- if(getObstacle().getPosition().distanceTo(Player.getPosition()) <= 2) {
- Camera.turnToTile(getObstacle());
- } else {
- if(!Player.isMoving())
- Walking.walkTo(getObstacle());
- }
- getMain().sleep(250, 500);
- boolean safe = false;
- String[] actions = getObstacle().getDefinition().getActions();
- for(int i = 0; i < actions.length; i++) {
- if(actions[i].contains("Squeeze-through")
- || actions[i].contains("Mine")) {
- safe = true;
- }
- }
- if(!safe) {
- setObstacle(null);
- return false;
- }
- int distance = Methods.distanceTo(getMain(), getObstacle().getPosition());
- if(distance <= 4) {
- getObstacle().click("Squeeze-through", "Mine");
- General.sleep(abc.DELAY_TRACKER.SWITCH_OBJECT_COMBAT.next());
- abc.DELAY_TRACKER.SWITCH_OBJECT_COMBAT.reset();
- }
- //getMain().sleep(General.random(50, 200), General.random(250, 350));
- }
- return false;
- }
- private ABCUtil abc = new ABCUtil();
- public int getMonsterDistance() {
- RSNPC monster = getClosestMonster();
- if(monster != null) {
- return monster.getPosition().distanceTo(Player.getPosition());
- }
- return 64;
- }
- private RSNPC getClosestMonster() {
- RSNPC[] npc = NPCs.findNearest("Abyssal guardian", "Abyssal walker", "Abyssal leech");
- if(npc != null && npc.length > 0) {
- return npc[0];
- }
- return null;
- }
- public void setObstacle(RSObject obstacle) {
- this.obstacle = obstacle;
- }
- public RSObject getObstacle() {
- return obstacle;
- }
- public void setOutterRingPath(int outterRingPath) {
- this.outterRingPath = outterRingPath;
- }
- public int getOutterRingPath() {
- return outterRingPath;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement