Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*
- import org.osbot.script.Script
- import org.osbot.script.ScriptManifest
- import org.osbot.script.mouse.*
- import org.osbot.script.rs2.*
- import org.osbot.script.rs2.map.Position
- import org.osbot.script.rs2.model.GroundItem
- import org.osbot.script.rs2.model.Item
- import org.osbot.script.rs2.model.PrimaryObject
- import org.osbot.script.rs2.model.RS2Object
- import org.osbot.script.rs2.ui.*
- import java.rmi.server.LogStream
- @ScriptManifest(name = "LmapleChopper", author = "Linkcg0", version = 1.1D, info="Cuts maples at seers and banks them for you. Supports Bird's Nests. Made by Link.")
- class LmapleChopper extends Script {
- private final Color color = new Color(0, 0, 0)
- private final Color rectColor = new Color(0.6f, 0.7f, 0.4f, 0.7f)
- private final Font font = new Font("Georgia", 0, 18)
- private final Image img1 = getImage("http://oi48.tinypic.com/29kw4rr.jpg")
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url))
- } catch(IOException e) {
- return null;
- }
- }
- void onExit() {
- log("Maplechopper by link")
- }
- int[] bankId = 25808
- int[] axeIds = [1352, 1360, 1350, 1354, 1362, 1358, 1356]
- int[] treeId = 1307
- int[] nests = [5071, 5072, 5073, 5074, 5075, 5070, 7413, 5076]
- enum State {
- IDLE, CHOPPING, WALK_TO_BANK, PIN, BANKING, WALK_TO_MAPLES, CLOSE_BANK
- }
- def nearestevilTree = null
- def evilTree = 1735
- def maples = 0
- def state = State.IDLE
- def currentTree = !null
- def starttime = null;
- void onStart() {
- starttime = System.currentTimeMillis()
- if (client.getInventory().isFull())
- state = State.WALK_TO_BANK
- }
- int onLoop() {
- switch (state) {
- case State.IDLE:
- return onIdle()
- case State.CHOPPING:
- return onChopping()
- case State.WALK_TO_BANK:
- return walkToBank()
- case State.BANKING:
- return bank()
- case State.CLOSE_BANK:
- return closeBank()
- case State.WALK_TO_MAPLES:
- return walkToMaples()
- }
- return 300 + random(500)
- }
- int onIdle() {
- if (!client.getMyPlayer().isAnimating()) {
- state = State.WALK_TO_MAPLES
- }
- else if (client.getBank().isOpen()) {
- client.getBank().close()
- state = State.WALK_TO_MAPLES
- }
- else if (client.getInventory().isFull()) {
- state = State.WALK_TO_BANK
- //client.moveCameraToEntity(closestObject(bankId))
- return 500 + gRandom(100, 400)
- }
- if (random(10) == 0) {
- client.moveCameraToEntity(currentTree)
- sleep(3000 + gRandom(500, 200))
- }
- return 100 + gRandom(600, 500);
- }
- int onChopping() {
- nearestevilTree = closestObject(evilTree)
- if (client.getInventory().isFull()) {
- state = State.WALK_TO_BANK
- //client.moveCameraToEntity(closestObject(bankId))
- return 300 + gRandom(100, 400)
- }
- if (random(60) == 0 && currentTree != null && currentTree.exists())
- antiban()
- client.moveCameraToEntity(currentTree)
- if (currentTree == null) {
- state = State.IDLE
- log("Chopped down Maple!")
- return 500 + gRandom(1000, 500)
- }
- if (!currentTree.exists()) {
- state = State.IDLE
- currentTree = null
- log("Chopped down Maple!")
- }
- if (nearestevilTree != null) {
- log("Found Evil tree. Banking logs.")
- state = State.WALK_TO_BANK
- }
- return 500 + gRandom(100, 500)
- }
- int walkToBank() {
- selectEntityOption(closestObject(bankId), "Bank", "Bank booth")
- sleep(8000 + gRandom(300, 50))
- if (client.getBank().isOpen())
- state = State.BANKING
- return 200 + gRandom(100, 200)
- }
- int bank() {
- selectInventoryOption(client.inventory.getSlotForId(1518), "Store All")
- state = State.CLOSE_BANK
- return 500 + gRandom(200, 300)
- }
- int closeBank() {
- client.getBank().close()
- state = State.WALK_TO_MAPLES
- return 500 + gRandom(200, 300)
- }
- int antiban() {
- log("Starting antiban.")
- if (currentTab() != Tab.SETTINGS){
- openTab(Tab.SETTINGS)
- sleep(5000 + gRandom(300, 50))
- openTab(Tab.MUSIC)
- }
- return 500 + gRandom(200, 300)
- }
- int walkToMaples() {
- log("Walking to Maple trees")
- currentTree = closestObject(treeId)
- if (currentTree != null) {
- log("Found Maple tree.")
- selectEntityOption(currentTree, "Chop down", "Maple tree")
- client.moveCameraToEntity(currentTree)
- sleep(3000 + gRandom(500, 200))
- }
- return 200 + gRandom(800, 300)
- }
- void onPaint(Graphics g) {
- g.setColor(rectColor)
- g.fillRect(250, 200, 266, 138)
- g.setFont(font)
- g.setColor(color)
- g.drawImage(img1, 1, 339, null)
- g.drawString("Maples Cut: ${maples}", 290, 300)
- g.drawString("Time: " + format(System.currentTimeMillis() - starttime), 290, 330)
- }
- String format(final long time) {
- final StringBuilder t = new StringBuilder();
- final long total_secs = time / 1000;
- final long total_mins = total_secs / 60;
- final long total_hrs = total_mins / 60;
- final int secs = (int) total_secs % 60;
- final int mins = (int) total_mins % 60;
- final int hrs = (int) total_hrs % 24;
- if (hrs < 10) {
- t.append("0");
- }
- t.append(hrs);
- t.append(":");
- if (mins < 10) {
- t.append("0");
- }
- t.append(mins);
- t.append(":");
- if (secs < 10) {
- t.append("0");
- }
- else if (secs < 0){
- t.append("0")
- }
- else{
- t.append(secs);
- }
- return t.toString();
- }
- void onMessage(String message) {
- if (message == "You swing your axe at the tree.") {
- log("Chopping down tree!")
- state = State.CHOPPING
- } else if (message == "You get some logs.") {
- state = State.IDLE
- } else if (message == "Your inventory is too full to hold any more logs.") {
- log("Banking!")
- state = State.WALK_TO_BANK
- } else if (message == "You get some maple logs.") {
- maples++
- } else if (message == "A bird's nest falls out of the tree.") {
- //selectEntityOption(nests, "Pick up", "Bird's nest")
- log("Found Bird's Nest!")
- sleep(1000 + gRandom(300, 50))
- log("Hook is currently broken...")
- sleep(1000 + gRandom(300, 50))
- log("Oh well...no nest for you.")
- state = State.IDLE
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement