mirror of
https://github.com/2006-Scape/Parabot-317-API-Minified.git
synced 2026-07-07 16:49:11 +00:00
Merge pull request #47 from Parabot/Development
[FEATURE] Added Path Distance Calculations.
This commit is contained in:
@@ -2,19 +2,19 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Character {
|
public interface Character {
|
||||||
|
|
||||||
public int getX();
|
int getX();
|
||||||
|
|
||||||
public int getY();
|
int getY();
|
||||||
|
|
||||||
public int getAnimation();
|
int getAnimation();
|
||||||
|
|
||||||
public int getLoopCycleStatus();
|
int getLoopCycleStatus();
|
||||||
|
|
||||||
public int getCurrentHealth();
|
int getCurrentHealth();
|
||||||
|
|
||||||
public int getMaxHealth();
|
int getMaxHealth();
|
||||||
|
|
||||||
public int getInteractingEntity();
|
int getInteractingEntity();
|
||||||
|
|
||||||
String getName();
|
String getName();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,56 +2,56 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Client {
|
public interface Client {
|
||||||
|
|
||||||
public Scene getScene();
|
Scene getScene();
|
||||||
|
|
||||||
public Player getMyPlayer();
|
Player getMyPlayer();
|
||||||
|
|
||||||
public Interface[] getInterfaceCache();
|
Interface[] getInterfaceCache();
|
||||||
|
|
||||||
public Npc[] getNpcs();
|
Npc[] getNpcs();
|
||||||
|
|
||||||
public Player[] getPlayers();
|
Player[] getPlayers();
|
||||||
|
|
||||||
public int getOpenInterfaceId();
|
int getOpenInterfaceId();
|
||||||
|
|
||||||
public int getBaseX();
|
int getBaseX();
|
||||||
|
|
||||||
public int getBaseY();
|
int getBaseY();
|
||||||
|
|
||||||
public void setInterface(int id);
|
void setInterface(int id);
|
||||||
|
|
||||||
public int[] getCurrentExp();
|
int[] getCurrentExp();
|
||||||
|
|
||||||
public Deque[][][] getGroundItems();
|
Deque[][][] getGroundItems();
|
||||||
|
|
||||||
public int getLoopCycle();
|
int getLoopCycle();
|
||||||
|
|
||||||
public int getBackDialogId();
|
int getBackDialogId();
|
||||||
|
|
||||||
public int getPlane();
|
int getPlane();
|
||||||
|
|
||||||
public int[] getMenuActionId();
|
int[] getMenuActionId();
|
||||||
|
|
||||||
public int[] getMenuAction1();
|
int[] getMenuAction1();
|
||||||
|
|
||||||
public int[] getMenuAction2();
|
int[] getMenuAction2();
|
||||||
|
|
||||||
public int[] getMenuAction3();
|
int[] getMenuAction3();
|
||||||
|
|
||||||
public int[] getMenuAction4();
|
int[] getMenuAction4();
|
||||||
|
|
||||||
public CollisionMap[] getCollisionMap();
|
CollisionMap[] getCollisionMap();
|
||||||
|
|
||||||
// args switched
|
// args switched
|
||||||
public boolean walkTo(int clickType, int sizeX, int sizeY, int startX, int startY, int destX, int destY, int type, int face, boolean arbitrary, int rotation);
|
boolean walkTo(int clickType, int sizeX, int sizeY, int startX, int startY, int destX, int destY, int type, int face, boolean arbitrary, int rotation);
|
||||||
|
|
||||||
public void doAction(int i);
|
void doAction(int i);
|
||||||
|
|
||||||
public void dropClient();
|
void dropClient();
|
||||||
|
|
||||||
public int[] getCurrentStats();
|
int[] getCurrentStats();
|
||||||
|
|
||||||
public int[] getSettings();
|
int[] getSettings();
|
||||||
|
|
||||||
public boolean isLoggedIn();
|
boolean isLoggedIn();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface CollisionMap {
|
public interface CollisionMap {
|
||||||
|
|
||||||
public int[][] getFlags();
|
int[][] getFlags();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Deque {
|
public interface Deque {
|
||||||
|
|
||||||
public Node getHead();
|
Node getHead();
|
||||||
|
|
||||||
public Node getCurrent();
|
Node getCurrent();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,14 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Ground {
|
public interface Ground {
|
||||||
|
|
||||||
public SceneObjectTile getWallObject();
|
SceneObjectTile getWallObject();
|
||||||
|
|
||||||
public SceneObjectTile getWallDecoration();
|
SceneObjectTile getWallDecoration();
|
||||||
|
|
||||||
public SceneObjectTile getGroundDecoration();
|
SceneObjectTile getGroundDecoration();
|
||||||
|
|
||||||
public SceneObjectTile getGroundItem();
|
SceneObjectTile getGroundItem();
|
||||||
|
|
||||||
public SceneObjectTile[] getInteractiveObjects();
|
SceneObjectTile[] getInteractiveObjects();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Interface {
|
public interface Interface {
|
||||||
|
|
||||||
public int[] getItems();
|
int[] getItems();
|
||||||
|
|
||||||
public int[] getStackSizes();
|
int[] getStackSizes();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is meant for the clients that have a long value as their stacksizes, simply because they have no logic...
|
* This is meant for the clients that have a long value as their stacksizes, simply because they have no logic...
|
||||||
*
|
*
|
||||||
* @return long version of #getStackSizes
|
* @return long version of #getStackSizes
|
||||||
*/
|
*/
|
||||||
public long[] getLongStackSizes();
|
long[] getLongStackSizes();
|
||||||
|
|
||||||
public String getMessage();
|
String getMessage();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Item {
|
public interface Item {
|
||||||
|
|
||||||
public int getId();
|
int getId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Node {
|
public interface Node {
|
||||||
|
|
||||||
public Node getNext();
|
Node getNext();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Npc extends Character {
|
public interface Npc extends Character {
|
||||||
|
|
||||||
public NpcDef getDef();
|
NpcDef getDef();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,6 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface NpcDef {
|
public interface NpcDef {
|
||||||
|
|
||||||
public int getId();
|
int getId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface Scene {
|
public interface Scene {
|
||||||
|
|
||||||
public Ground[][][] getGroundArray();
|
Ground[][][] getGroundArray();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package org.rev317.min.accessors;
|
|||||||
|
|
||||||
public interface SceneObjectTile {
|
public interface SceneObjectTile {
|
||||||
|
|
||||||
public int getHash();
|
int getHash();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,6 @@ import org.rev317.min.api.events.GameActionEvent;
|
|||||||
*/
|
*/
|
||||||
public interface GameActionListener {
|
public interface GameActionListener {
|
||||||
|
|
||||||
public void onGameAction(GameActionEvent event);
|
void onGameAction(GameActionEvent event);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.rev317.min.api.events.MessageEvent;
|
|||||||
|
|
||||||
public interface MessageListener {
|
public interface MessageListener {
|
||||||
|
|
||||||
public void messageReceived(MessageEvent event);
|
void messageReceived(MessageEvent event);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,13 +12,13 @@ public interface Locatable {
|
|||||||
*
|
*
|
||||||
* @return location
|
* @return location
|
||||||
*/
|
*/
|
||||||
public Tile getLocation();
|
Tile getLocation();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets distance to this locatable instance
|
* Gets distance to this locatable instance
|
||||||
*
|
*
|
||||||
* @return distance from player to locatable
|
* @return distance from player to locatable
|
||||||
*/
|
*/
|
||||||
public int distanceTo();
|
int distanceTo();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ package org.rev317.min.api.interfaces;
|
|||||||
|
|
||||||
public interface TileFlags {
|
public interface TileFlags {
|
||||||
|
|
||||||
public int WALL_NORTHWEST = 0x1;
|
int WALL_NORTHWEST = 0x1;
|
||||||
public int WALL_NORTH = 0x2;
|
int WALL_NORTH = 0x2;
|
||||||
public int WALL_NORTHEAST = 0x4;
|
int WALL_NORTHEAST = 0x4;
|
||||||
public int WALL_EAST = 0x8;
|
int WALL_EAST = 0x8;
|
||||||
public int WALL_SOUTHEAST = 0x10;
|
int WALL_SOUTHEAST = 0x10;
|
||||||
public int WALL_SOUTH = 0x20;
|
int WALL_SOUTH = 0x20;
|
||||||
public int WALL_SOUTHWEST = 0x40;
|
int WALL_SOUTHWEST = 0x40;
|
||||||
public int WALL_WEST = 0x80;
|
int WALL_WEST = 0x80;
|
||||||
public int OBJECT_TILE = 0x100;
|
int OBJECT_TILE = 0x100;
|
||||||
public int UNKNOWN = 0x80000;
|
int UNKNOWN = 0x80000;
|
||||||
public int BLOCKED_TILE = 0x200000;
|
int BLOCKED_TILE = 0x200000;
|
||||||
public int UNLOADED_TILE = 0x1000000;
|
int UNLOADED_TILE = 0x1000000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ public class Calculations {
|
|||||||
* Calculates distance between local player and given tile
|
* Calculates distance between local player and given tile
|
||||||
*
|
*
|
||||||
* @param tile
|
* @param tile
|
||||||
*
|
|
||||||
* @return distance between local player and given tile
|
* @return distance between local player and given tile
|
||||||
*/
|
*/
|
||||||
public static final double distanceTo(Tile tile) {
|
public static final double distanceTo(Tile tile) {
|
||||||
@@ -23,7 +22,6 @@ public class Calculations {
|
|||||||
*
|
*
|
||||||
* @param a
|
* @param a
|
||||||
* @param b
|
* @param b
|
||||||
*
|
|
||||||
* @return distance between a and b
|
* @return distance between a and b
|
||||||
*/
|
*/
|
||||||
public static final double distanceBetween(Tile a, Tile b) {
|
public static final double distanceBetween(Tile a, Tile b) {
|
||||||
@@ -39,7 +37,6 @@ public class Calculations {
|
|||||||
* @param destX the destX (0 < destX < 104)
|
* @param destX the destX (0 < destX < 104)
|
||||||
* @param destY the destY (0 < destY < 104)
|
* @param destY the destY (0 < destY < 104)
|
||||||
* @param findAdjacent if it's an object, it will find path which touches it.
|
* @param findAdjacent if it's an object, it will find path which touches it.
|
||||||
*
|
|
||||||
* @return The distance of the shortest path to the destination; or -1 if no valid path to the destination was
|
* @return The distance of the shortest path to the destination; or -1 if no valid path to the destination was
|
||||||
* found.
|
* found.
|
||||||
*/
|
*/
|
||||||
@@ -153,6 +150,88 @@ public class Calculations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses Dijkstra path finding algorithm to find shortest path returns false if path isn't found.
|
||||||
|
*
|
||||||
|
* @param from Start Tile.
|
||||||
|
* @param to Destination Tile.
|
||||||
|
* @return True if Path is found.
|
||||||
|
*/
|
||||||
|
public static boolean foundPath(Tile from, Tile to) {
|
||||||
|
return dijkstraDist(from.getX(), from.getY(), to.getX(), to.getY(), false) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses Dijkstra path finding algorithm to find shortest path returns false if path isn't found.
|
||||||
|
*
|
||||||
|
* @param from Start Tile.
|
||||||
|
* @param to Destination Tile.
|
||||||
|
* @param isObject Is destination an Object.
|
||||||
|
* @return True if Path is found.
|
||||||
|
*/
|
||||||
|
public static boolean foundPath(Tile from, Tile to, boolean isObject) {
|
||||||
|
return dijkstraDist(from.getX(), from.getY(), to.getX(), to.getY(), isObject) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the Shortest Path distance between two tiles.
|
||||||
|
*
|
||||||
|
* @param from Start Tile.
|
||||||
|
* @param to Destination Tile.
|
||||||
|
* @return Shortest Path distance between two tiles using Dijkstra algorithm, returns -1 if path isn't found.
|
||||||
|
*/
|
||||||
|
public static int pathDistanceBetween(Tile from, Tile to) {
|
||||||
|
if (foundPath(from, to)) {
|
||||||
|
return dijkstraDist(from.getX(), from.getY(), to.getX(), to.getY(), false);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the Shortest Path distance between two tiles.
|
||||||
|
*
|
||||||
|
* @param from Start Tile.
|
||||||
|
* @param to Destination Tile.
|
||||||
|
* @param isObject Is destination an Object.
|
||||||
|
* @return Shortest Path distance between two tiles using Dijkstra algorithm, returns -1 if path isn't found.
|
||||||
|
*/
|
||||||
|
public static int pathDistanceBetween(Tile from, Tile to, boolean isObject) {
|
||||||
|
if (foundPath(from, to)) {
|
||||||
|
return dijkstraDist(from.getX(), from.getY(), to.getX(), to.getY(), isObject);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the shortest distance to a tile.
|
||||||
|
*
|
||||||
|
* @param tile Destination Tile.
|
||||||
|
* @return Shortest distance to tile.
|
||||||
|
*/
|
||||||
|
public static int pathDistanceTo(Tile tile) {
|
||||||
|
return pathDistanceBetween(Players.getMyPlayer().getLocation(), tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the shortest distance to a tile.
|
||||||
|
*
|
||||||
|
* @param tile Destination Tile.
|
||||||
|
* @param isObject Is destination an Object.
|
||||||
|
* @return Shortest distance to tile.
|
||||||
|
*/
|
||||||
|
public static int pathDistanceTo(Tile tile, boolean isObject) {
|
||||||
|
return pathDistanceBetween(Players.getMyPlayer().getLocation(), tile, isObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares Coordinate data from the first and second tile data.
|
||||||
|
*
|
||||||
|
* @param first First tile.
|
||||||
|
* @param second Second tile.
|
||||||
|
* @return True if Coordinate data from first and second tiles match.
|
||||||
|
*/
|
||||||
|
public static boolean isSameTile(Tile first, Tile second) {
|
||||||
|
return first.getX() == second.getX() && first.getY() == second.getY() && first.getPlane() == second.getPlane();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,134 @@
|
|||||||
|
package org.rev317.min.api.methods;
|
||||||
|
|
||||||
|
import org.parabot.environment.api.utils.Time;
|
||||||
|
import org.parabot.environment.scripts.framework.SleepCondition;
|
||||||
|
import org.rev317.min.Loader;
|
||||||
|
import org.rev317.min.api.wrappers.Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Piet Jetse Heeringa
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Equipment {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Equips an Item based on the ID of that item.
|
||||||
|
*
|
||||||
|
* @param id Item ID to Equip.
|
||||||
|
*/
|
||||||
|
public static void equip(final int id) {
|
||||||
|
Item item = Inventory.getItem(id);
|
||||||
|
if (item != null) {
|
||||||
|
item.interact(Items.Option.WEAR);
|
||||||
|
Time.sleep(new SleepCondition() {
|
||||||
|
@Override
|
||||||
|
public boolean isValid() {
|
||||||
|
return isWearing(id);
|
||||||
|
}
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unequips an Item based on the ID of that item.
|
||||||
|
*
|
||||||
|
* @param id Item ID to Unequip.
|
||||||
|
*/
|
||||||
|
public static void unequip(int id) {
|
||||||
|
for (Slot slot : Slot.values()) {
|
||||||
|
if (slot.id() == id) {
|
||||||
|
unequip(slot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unequips the item from the given Slot.
|
||||||
|
*
|
||||||
|
* @param slot Slot to Unequip the item from.
|
||||||
|
*/
|
||||||
|
public static void unequip(final Slot slot) {
|
||||||
|
Menu.sendAction(632, slot.id() - 1, slot.slot, 1688, -1, 3);
|
||||||
|
Time.sleep(new SleepCondition() {
|
||||||
|
@Override
|
||||||
|
public boolean isValid() {
|
||||||
|
return slot.id() == 0;
|
||||||
|
}
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the Player is Wearing an Item based on the ID.
|
||||||
|
*
|
||||||
|
* @param id ID of the item to check for.
|
||||||
|
* @return True if the Player is wearing the Item.
|
||||||
|
*/
|
||||||
|
public static boolean isWearing(int id) {
|
||||||
|
for (Slot slot : Slot.values()) {
|
||||||
|
if (slot.id() == id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get's the item ID in slot.
|
||||||
|
*
|
||||||
|
* @param slot Slot to get the item ID from.
|
||||||
|
* @return Item ID from given slot.
|
||||||
|
*/
|
||||||
|
public static int getItemId(Slot slot) {
|
||||||
|
return slot.id();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check's if there is an item in the given slot.
|
||||||
|
*
|
||||||
|
* @param slot Slot to check for Item.
|
||||||
|
* @return True if there is an Item in the given slot.
|
||||||
|
*/
|
||||||
|
public static boolean hasItem(Slot slot) {
|
||||||
|
return getItemId(slot) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check's if the given slot is empty.
|
||||||
|
*
|
||||||
|
* @param slot Slot to check for Item.
|
||||||
|
* @return True if the given slot is empty.
|
||||||
|
*/
|
||||||
|
public static boolean isEmpty(Slot slot) {
|
||||||
|
return getItemId(slot) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Slot {
|
||||||
|
HEAD(0),
|
||||||
|
CAPE(1),
|
||||||
|
AMMULET(2),
|
||||||
|
WEAPON(3),
|
||||||
|
BODY(4),
|
||||||
|
SHIELD(5),
|
||||||
|
LEGS(7),
|
||||||
|
GLOVES(9),
|
||||||
|
BOOTS(10),
|
||||||
|
RING(12),
|
||||||
|
AMMO(13);
|
||||||
|
|
||||||
|
private int slot;
|
||||||
|
private final int INTERFACE_ID = 1688;
|
||||||
|
|
||||||
|
Slot(int slot) {
|
||||||
|
this.slot = slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get's the ID of the item in slot.
|
||||||
|
*
|
||||||
|
* @return ID of the item in slot.
|
||||||
|
*/
|
||||||
|
public int id() {
|
||||||
|
return Loader.getClient().getInterfaceCache()[INTERFACE_ID].getItems()[slot];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user