-
Posts
5883 -
Joined
-
Last visited
-
Days Won
18 -
Feedback
100%
Everything posted by Botre
-
Please do elaborate then ^^
-
script.getMap().distance(bestPosition) <= MethodProvider.gRandom(5, 3) fixed I didn't add tile deviation because I usually make it choose from a list of paths therefore reducing the probability of hot tile detection. though I will probably add that feature soon, it will however require collision flag checking and therefore even more complexity, the thing you criticized me for in the first place :p
-
When trying to emulate human behavior one can't be complex enough
-
The imports in question have their own custom imports, etc... Won't be giving out my whole library ^^
-
package pathwalking.Botrepreneur; import java.util.LinkedList; import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.api.util.LocalPathFinder; import org.osbot.rs07.input.mouse.MiniMapTileDestination; import org.osbot.rs07.script.MethodProvider; import org.osbot.rs07.script.Script; import sleep.Botrepreneur.SleepMethods; import time.Botrepreneur.Timer; import energy.Botrepreneur.RunMethods; public class PathWalkMethods { /** * @author Botrepreneur * @Version: 00.41 *Deux* */ public static boolean traversePath(Script script, Position[] path, boolean reversed, int toggleRunOnAt, int toggleRunOffAt, boolean toggleRunOnInCombat, long timeout) throws InterruptedException { Timer timer = new Timer(); int attempts = 0; while ((!reversed ? !script.myPosition().equals(path[path.length - 1]) : !script.myPosition().equals(path[0])) && timer.getElapsed() < timeout && attempts <= 10) { RunMethods.manage(script, toggleRunOnAt, toggleRunOffAt, toggleRunOnInCombat); Position bestPosition = null; if (!reversed) { for (int i = 1; i < path.length; i++) { MiniMapTileDestination mmtd; if (script.getMap().canReach(path) && (mmtd = new MiniMapTileDestination(script.getBot(), path)) != null && mmtd.isVisible()) { bestPosition = path; } } } else { for (int i = path.length - 1; i > 0; i--) { MiniMapTileDestination mmtd; if (script.getMap().canReach(path) && (mmtd = new MiniMapTileDestination(script.getBot(), path)) != null && mmtd.isVisible()) { bestPosition = path; } } } if (bestPosition != null) { boolean clicked = false; if (script.getMap().distance(bestPosition) <= 5 && bestPosition.isVisible(script.getBot())) { clicked = bestPosition.interact(script.getBot(), "Walk here"); } else { clicked = script.getMouse().click(new MiniMapTileDestination(script.getBot(), bestPosition)); } if (clicked) { SleepMethods.untilMoving(script, 900L); if (script.myPlayer().isMoving()) { int speed = MethodProvider.gRandom(script.getSettings().isRunning() ? 250 : 500, 100); MethodProvider.sleep(script.getMap().distance(bestPosition) * speed); } } else { script.getCamera().moveYaw(script.getCamera().getYawAngle() + MethodProvider.gRandom(50, 20)); attempts++; } } else { script.getCamera().moveYaw(script.getCamera().getYawAngle() + MethodProvider.gRandom(50, 20)); attempts++; } } return !reversed ? script.myPosition().equals(path[path.length - 1]) : script.myPosition().equals(path[0]); } public static boolean traversePath(Script script, Position position, boolean reversed, int toggleRunOnAt, int toggleRunOffAt, boolean toggleRunOnInCombat, long timeout) throws InterruptedException { if (position == null || !script.getMap().canReach(position)) { return false; } LinkedList<Position> pathList; Position[] path = null; if ((pathList = new LocalPathFinder(script.getBot()).findPath(position)) != null) { path = (Position[]) pathList.toArray(new Position[pathList.size()]); } return path != null ? traversePath(script, path, reversed, toggleRunOnAt, toggleRunOffAt, toggleRunOnInCombat, timeout) : false; } public static boolean traversePath(Script script, Entity entity, boolean reversed, int toggleRunOnAt, int toggleRunOffAt, boolean toggleRunOnInCombat, long timeout) throws InterruptedException { Position position; LinkedList<Position> pathList; Position[] path = null; if (entity != null && entity.exists() && (position = entity.getPosition()) != null && script.getMap().canReach(position) && (pathList = new LocalPathFinder(script.getBot()).findPath(position)) != null) { path = (Position[]) pathList.toArray(new Position[pathList.size()]); } else { return false; } return traversePath(script, path, reversed, toggleRunOnAt, toggleRunOffAt, toggleRunOnInCombat, timeout); } }
-
To all users who put my signature on their ignore list:
-
(Lumbridge) Combat Suicider - Submit your monster ideas!
Botre replied to Botre's topic in Spam/Off Topic
do not suggest chickens or cows as these will not be added. If you're asking why: too crowded + too high banrate, +no point unless I add banking have this on my list but as a separate script, though I could merge them ^^ -
I am writing a free script, a combat suicider (start at lumbridge, walk to monster, kill monster until player dies, walk back to monster, etc...) It currently supports the following monsters: Lumbridge forest goblins Lumbridge east bank goblins (near the al-kharid gates) Lumbridge swamp giant rats Lumbridge castle giant rats please suggest some more spots, do not suggest chickens or cows as these will not be added. Peace!
-
Meh I'm not even going to bother. I don't blame you for not seeing their scheme, it's a brilliant one after all, hence why I'm impressed by it
-
-
That's what I'm talking about. Fan-funded as in fan-bough and not fan-donated :p
-
Would be against the forums rules. If I were to bet I wouldn't take the first bet without the second one though ^^
-
Micro transactions at its finest, I'm impressed.
-
I bet you 100$ they won't even poll it. I bet you 500$ that if / when they poll it, it'll never reach > 75%.
-
Yeah no, no way it'll pass a poll, ever. Check out the official announcement's forum discussion.
-
I can kinda confirm this. This: has reduced bans virtually to zero for myself :p
-
More like the headphones of apple
-
My free : premium ratio on the SDN is 1:1
-
Yes you can still register a new account and get F2P access on it for 14 days.