import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import org.powerbot.core.event.listeners.PaintListener; import org.powerbot.core.script.ActiveScript; import org.powerbot.core.script.job.Task; import org.powerbot.game.api.Manifest; import org.powerbot.game.api.methods.Tabs; import org.powerbot.game.api.methods.Walking; import org.powerbot.game.api.methods.input.Mouse; import org.powerbot.game.api.methods.interactive.NPCs; import org.powerbot.game.api.methods.interactive.Players; import org.powerbot.game.api.methods.node.GroundItems; import org.powerbot.game.api.methods.node.SceneEntities; import org.powerbot.game.api.methods.tab.Inventory; import org.powerbot.game.api.methods.widget.Bank; import org.powerbot.game.api.util.Timer; import org.powerbot.game.api.wrappers.Area; import org.powerbot.game.api.wrappers.Tile; import org.powerbot.game.api.wrappers.interactive.NPC; import org.powerbot.game.api.wrappers.node.SceneObject; @Manifest(authors = { "dj_pon3" }, description = "no", name = "test") public class ManKiller extends ActiveScript implements PaintListener{ final Timer timer = new Timer(0); //area Area ManArea = new Area(new Tile[] { new Tile(3088, 3516, 0), new Tile(3092, 3518, 0), new Tile(3103, 3518, 0), new Tile(3105, 3508, 0), new Tile(3103, 3504, 0), new Tile(3088, 3503, 0) }); Area BankArea = new Area(new Tile[] { new Tile(3098, 3499, 0), new Tile(3098, 3496, 0), new Tile(3096, 3495, 0), new Tile(3093, 3495, 0), new Tile(3091, 3498, 0), new Tile(3092, 3499, 0) }); Area LadderArea = new Area(new Tile[] { new Tile(3093, 3509, 1), new Tile(3093, 3513, 1), new Tile(3098, 3513, 1), new Tile(3098, 3509, 1) }); //paths Tile[] BanktoMan = new Tile[] { new Tile(3096, 3509, 0) }; Tile[] MantoBank = new Tile[] { new Tile(3095, 3497, 0) }; // int itemIDs[] = {526, 877, 199, 205, 207, 213, 209, 211, 215, 217, 2485, 1440, 1381}; public static int getPrice(int id) { try { final URL url = new URL("http://scripts.audefy.com/l/" + id); final BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); final String line = reader.readLine(); reader.close(); return Integer.parseInt(line); } catch (Exception e) { e.printStackTrace(); } return -1; } // /* public void loot() { for (GroundItem g : GroundItems.getLoaded(itemIDs.length)) { if (g != null && g.isOnScreen()){ Arrays.asList(g).contains(itemIDs); GroundItems.getNearest(itemIDs).interact("Take"); System.out.println("Looting "+g.getId()); Task.sleep(250,400); while (!Players.getLocal().isIdle()){ if (Players.getLocal().isIdle()){ break; } else Task.sleep(25,40); } } } }*/ public void loot(){ GroundItems.getNearest(itemIDs).interact("Take"); System.out.println("looting"); Task.sleep(250); } public void walktoBank(){ if (Inventory.isFull()){ while (ManArea.contains(Players.getLocal().getLocation())){ Walking.newTilePath(MantoBank).randomize(1, 1).traverse(); Task.sleep(650, 1200); } while (!BankArea.contains(Players.getLocal().getLocation())){ Walking.newTilePath(MantoBank).randomize(1,1).traverse(); Task.sleep(450,1020); } if (BankArea.contains(Players.getLocal().getLocation())){ bank(); Task.sleep(600,650); } } } public void walktoMan(){ if (!Inventory.isFull()){ while (BankArea.contains(Players.getLocal().getLocation())){ Walking.newTilePath(BanktoMan).randomize(1,1).traverse(); Task.sleep(650,800); } while (!ManArea.contains(Players.getLocal().getLocation())){ Walking.newTilePath(BanktoMan).randomize(1, 1).traverse(); Task.sleep(650, 1200); } } } private void fightMan() { while (!Players.getLocal().isIdle() || Players.getLocal().isMoving() || Players.getLocal().isInCombat() || Players.getLocal().getInteracting() != null || Players.getLocal().getAnimation() != -1){ Task.sleep(20,50); } while (!Players.getLocal().isMoving() && (Players.getLocal().isIdle() || !Players.getLocal().isInCombat()|| Players.getLocal().getInteracting() == null )){ NPC n = NPCs.getNearest(1, 2, 3); if(n.isOnScreen() && Players.getLocal().getInteracting() == null && n != null ){ n.interact("attack"); Task.sleep(50,100); } } } private void bank() { if (Bank.isOpen()){ if (Inventory.isFull()){ Bank.depositInventory(); while (Inventory.getCount() != 0){ Task.sleep(25,50); if (Inventory.getCount() == 0){ break; } } } if (!Inventory.isFull()){ Bank.close(); } } else { Bank.open(); Task.sleep(200,350); bank(); } } private void descend() { SceneObject ladder = SceneEntities.getNearest(26983); if (ladder.isOnScreen()) { ladder.interact("Climb"); sleep(1000, 1200); } } @Override public int loop() { if(Tabs.getCurrent() != Tabs.INVENTORY) { System.out.println("swithing to inv"); Tabs.INVENTORY.open(); } if (LadderArea.contains(Players.getLocal().getLocation())){ descend(); } if (ManArea.contains(Players.getLocal().getLocation())){ if (Inventory.isFull()){ walktoBank(); } if (!Inventory.isFull()){ if (GroundItems.getNearest(itemIDs) != null && Players.getLocal().getInteracting() == null && !Inventory.isFull()) { System.out.println("bouttoloot"); loot(); } if (GroundItems.getNearest(itemIDs) == null && !Inventory.isFull() && Players.getLocal().isIdle()){ System.out.println("fightsoon"); fightMan(); } } } if (!ManArea.contains(Players.getLocal().getLocation())){ if (Inventory.isFull()){ walktoBank(); } if (!Inventory.isFull()){ walktoMan(); } } if (BankArea.contains(Players.getLocal().getLocation())){ if (Inventory.isFull()){ bank(); } if (!Inventory.isFull()){ walktoMan(); } } return 80; } @Override public void onRepaint(Graphics g1) { final Graphics2D g = (Graphics2D) g1; final Point p = Mouse.getLocation(); g.drawString(String.format("Time running: %s", timer.toElapsedString()), 400, 80); g.setColor(Mouse.isPressed() ? Color.BLUE : Color.CYAN); g.drawOval(p.x -2, p.y -2, 4,4); } }