Hi everyone! I have fixed the walking completely. It was unfortunate it wasn't tested that well before, but when I had a closer look the method to calculate minimap coordinates was completely off. I have also extend the api for walking, making it as customizable as you like:
/** * Walks to a location and makes sure your ending position is the specified destination. * @param dest The specified destination to go to. * @return * @throws InterruptedException */ public boolean walkExact(Position dest) throws InterruptedException /** * Walks to a location and makes sure your ending position is the specified destination. * @param dest The specified destination to go to. * @param mainScreenDistanceThreshold The distance to the destination for which this method will use main * screen walking. Beyond this distance, it will use minimap walking. * @return * @throws InterruptedException */ public boolean walkExact(Position dest, int mainScreenDistanceThreshold) throws InterruptedException /** * Walks to a location but doesn't make sure your ending destination is exactly as specified. Usually it will be, * but it could be 1 or 2 tiles off. * @param dest The specified destination to go to. * @return * @throws InterruptedException */ public boolean walk(Position dest) throws InterruptedException /** * Walks to a location with the specified distance threshold for main screen walking, but doesn't make sure * your ending destination is exactly as specified. Usually it will be, * but it could be 1 or 2 tiles off. * @param dest The destination specified to go to. * @param mainScreenDistanceThreshold The distance to the destination for which this method will use main * screen walking. Beyond this distance, it will use minimap walking. * @return * @throws InterruptedException */ public boolean walk(Position dest, int mainScreenDistanceThreshold) throws InterruptedException /** * Walks towards a position on the map. * @param dest The destination. * @param forcePosition Whether or not to make sure the ending position is the same as the specified destination. * @param mainScreenDistanceThreshold The distance to the destination for which this method will use main * screen walking. Beyond this distance, it will use minimap walking. * @throws InterruptedException */ public boolean walk(Position dest, boolean forcePosition, int mainScreenDistanceThreshold) throws InterruptedException