import java.awt.Graphics2D; import java.awt.Point; import org.vinsert.bot.script.Script; import org.vinsert.bot.script.ScriptManifest; import org.vinsert.bot.script.api.GameObject; import org.vinsert.bot.script.api.Npc; import org.vinsert.bot.script.api.Path; import org.vinsert.bot.script.api.Tile; import org.vinsert.bot.script.api.generic.Filters; import org.vinsert.bot.script.api.tools.Navigation.NavigationPolicy; import org.vinsert.bot.util.Utils; @ScriptManifest(name = "iSilk", description = "Flawless Silk Buyer!", authors = {"xavier786"}, version = 1.0) public class SilkBuyer extends Script { public Tile banktile = new Tile(3269,3167); public Tile silktile = new Tile(3301,3206); public int silkid = 951; public int goldid = 996; public Tile[] tiles = { new Tile(3269, 3167), new Tile(3275, 3168), new Tile(3276, 3173), new Tile(3277, 3178), new Tile(3277, 3183), new Tile(3281, 3186), new Tile(3286, 3187), new Tile(3290, 3190), new Tile(3293, 3194), new Tile(3296, 3198), new Tile(3298, 3203), new Tile(3301, 3206) }; public Path toBank = new Path(tiles).reverse(); public Path toSilk = new Path(tiles); public void GetSilk(){ GameObject bankbooth = getContext().objects.getNearest(Filters.objectId(new int[]{2213})); if (players.getLocalPlayer().getLocation().distanceTo(banktile) > 2 && inventory.contains(Filters.itemId(silkid)) && inventory.isFull() && !this.camera.isVisible(bankbooth)) { navigation.navigate(toBank, 0, NavigationPolicy.MINIMAP); navigation.navigate(banktile, NavigationPolicy.MINIMAP); } if (players.getLocalPlayer().getLocation().distanceTo(banktile) <= 4 && inventory.isFull() && this.camera.isVisible(bankbooth)){ bankbooth.interact("Bank"); } if (bank.isOpen()) { bank.depositAllExcept(Filters.itemId(goldid)); bank.close(); } if (players.getLocalPlayer().getLocation().distanceTo(silktile) > 2 && inventory.contains(Filters.itemId(goldid)) && !inventory.isFull()){ navigation.navigate(toSilk, 0, NavigationPolicy.MINIMAP); } Npc trader = npcs.getNearest(539); if (players.getLocalPlayer().getLocation().distanceTo(trader.getLocation()) < 5 && inventory.contains(Filters.itemId(goldid)) && !inventory.isFull() && trader != null && !trader.isMoving() && !localPlayer.isMoving()) { sleep(500,1000); interact(trader, "Talk-to"); sleep(1000); mouse.click(308, 448); sleep(1000); mouse.click(257, 402); sleep(1000); mouse.click(218, 453); sleep(1000); mouse.click(308, 448); sleep(1000); mouse.click(264, 434); sleep(1000); mouse.click(218, 453); sleep(1000); mouse.click(218, 453); } } @Override public boolean init() { log("Welcome to " + getManifest().name() + " version: " + getManifest().version()); return true; } @Override public void close() { log("Thanks for using " + getManifest().name() + "! See you next time."); } public void interact(Npc npc, String action) { Point p = npc.hullPoint(npc.hull()); mouse.move(p.x, p.y); if(menu.getChoices().contains(action)) if(((String)menu.getChoices().get(0)).toLowerCase().contains(action.toLowerCase())) { mouse.click(); Utils.sleep(200); } else { mouse.click(true); Point p2 = menu.getClickPoint(menu.getIndex(action)); mouse.click(p2.x, p2.y); Utils.sleep(200); } } public int pulse() { try { GetSilk(); } catch (Exception e) { System.err.println("Caught Exception: " + e.getMessage()); } return 500; } @Override public void render(Graphics2D arg0) { arg0.drawString("Interacting with: " + (localPlayer.isInteracting() ? localPlayer.getInteracting().getName() : "none"), 5, 50); } }