September 17, 201312 yr http://osbot.org/forum/topic/16551-cow-hide-killer/ REALLY need it. Just got 4 free lvl 3's.
September 17, 201312 yr I wouldn't risk it, I've heard that botting cows will get you banned really quickly. If you're just looking for combat xp, try seagulls at port sarim using Ande's fighter.
September 17, 201312 yr Do you mean the script is safe as in no suspicious wares/loggers or do you mean by safe from being banned from jagex?
September 17, 201312 yr Yes it is safe, not sure about the banrates though... package source; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import org.osbot.script.Script; import org.osbot.script.ScriptManifest; import org.osbot.script.rs2.Client; import org.osbot.script.rs2.map.Position; import org.osbot.script.rs2.model.GroundItem; import org.osbot.script.rs2.model.NPC; import org.osbot.script.rs2.model.Player; import org.osbot.script.rs2.model.RS2Object; import org.osbot.script.rs2.ui.Bank; import org.osbot.script.rs2.ui.Inventory; import org.osbot.script.rs2.utility.Area; @ScriptManifest(author="Zach (LifezHatred)", info="Kills cows and collect hides", name="CowHideKiller", version=1.0D) public class Main extends Script { public long startTime; public int hours; public int minutes; public int seconds; public Area cowArea1 = new Area(3253, 3255, 3265, 3271); public Area cowArea2 = new Area(3235, 3272, 3265, 3300); public boolean killingCows = false; public int cowHideId = 1739; public int[] cowIds = { 2974, 2975, 2976, 2977 }; public boolean checkTheWalk = false; public String status = "Going to gateFS"; public int laps = 0; public int cowHidesCollected = 0; public int banked = 0; public Position[] pathToGate = { new Position(3249, 3256, 0), new Position(3254, 3250, 0), new Position(3259, 3240, 0), new Position(3260, 3231, 0), new Position(3264, 3228, 0) }; public Position[] pathToBank = { new Position(3270, 3228, 0), new Position(3273, 3219, 0), new Position(3273, 3210, 0), new Position(3270, 3201, 0), new Position(3271, 3202, 0), new Position(3267, 3195, 0), new Position(3268, 3192, 0), new Position(3267, 3187, 0), new Position(3268, 3179, 0), new Position(3269, 3169, 0) }; public int randomDis = 0; public long lastRun = 0L; public boolean start = true; public int positionQue = 0; public void onStart() { this.startTime = System.currentTimeMillis(); } public int onLoop() { checkArea(); if (isRunning()) { this.lastRun = System.currentTimeMillis(); } else if (this.lastRun > System.currentTimeMillis() + 300000L) { try { setRunning(true); } catch (InterruptedException e) { e.printStackTrace(); } } if (this.killingCows) { if (myPlayer().isMoving()) return 600; try { NPC cow = closestAttackableNPC(this.cowIds); GroundItem cowHide = closestGroundItem(new int[] { this.cowHideId }); if ((cowHide != null) && (cowHide.exists()) && (cowHide.isVisible())) { cowHide.interact("Take"); long startTimer = System.currentTimeMillis(); while (cowHide.exists()) { if (System.currentTimeMillis() - startTimer > 2000L) { cowHide.interact("Take"); } sleep((int)(100.0D + Math.random() * 600.0D)); } return 600; } if (myPlayer().isUnderAttack()) { return 600; } if (cow.isUnderAttack()) { return 600; } cow.interact("Attack"); sleep(1200); } catch (InterruptedException e) { e.printStackTrace(); } } else { switch ((e = this.status).hashCode()) { case -1591360525: if (e.equals("Going to Bank...")); break; case -1039830248: if (e.equals("Walk to cows...")) break; break; case -804339118: if (e.equals("Open Bank")); break; case -804189983: if (e.equals("Open Gate")); break; case -294498713: if (e.equals("Going to Cows...")); break; case -100260521: if (e.equals("Going to gateFS")); break; case 1469339573: if (e.equals("Walk To Gate...")); break; case 2059411461: if (!e.equals("Walking To Gate2...")) { break label1104; RS2Object gate2 = closestObject(new int[] { 20798 }); if ((gate2 != null) && (gate2.exists()) && (gate2.getY() < 3270)) { try { gate2.interact("Open"); } catch (InterruptedException e) { e.printStackTrace(); } } try { walk(this.cowArea1); } catch (InterruptedException e2) { e2.printStackTrace(); } if (myPlayer().isMoving()) { return 600; } if (this.cowArea2.contains(myPlayer())) { try { walk(this.cowArea1); } catch (InterruptedException e) { e.printStackTrace(); } } RS2Object gate = closestObject(new int[] { 20798 }); if ((gate.exists()) && (gate.getY() < 3270)) try { gate.interact("Open"); } catch (InterruptedException e) { e.printStackTrace(); } else { try { walk(new Position(3249 + (int)(Math.random() * 2.0D), 3265 + (int)(Math.random() * 2.0D), 0)); } catch (InterruptedException e) { e.printStackTrace(); } } if ((!this.cowArea1.contains(myPlayer())) && (myPlayer().getClient().getInventory().getEmptySlots() == 0)) { this.status = "Walking To Gate2..."; } } else { performWalk(0, false); break label1104; RS2Object gatePay = closestObject(new int[] { 2883 }); try { this.client.moveCameraToEntity(gatePay); } catch (InterruptedException e1) { e1.printStackTrace(); } if (gatePay.isVisible()) try { gatePay.interact("Pay-toll(10gp)"); } catch (InterruptedException e) { e.printStackTrace(); } else try { this.client.moveCameraToEntity(gatePay); } catch (InterruptedException e) { e.printStackTrace(); } try { sleep(3000); } catch (InterruptedException e1) { e1.printStackTrace(); } if (this.client.getInventory().getEmptySlots() == 0) { if (myPlayer().getX() == 3268) { this.status = "Going to Bank..."; } } else if (myPlayer().getX() == 3267) { this.status = "Going to Cows..."; } return (int)(Math.random() * 1000.0D); performWalk(1, false); break label1104; performWalk(0, true); break label1104; RS2Object bankBooth = closestObjectForName(new String[] { "Bank booth" }); if (this.client.getBank().isOpen()) { this.banked = ((int)(this.banked + this.client.getInventory().getAmount(this.cowHideId))); this.laps += 1; try { this.client.getBank().depositAllExcept(new int[] { 995 }); } catch (InterruptedException e) { e.printStackTrace(); } if (this.client.getInventory().getAmount(995) < 20L) try { this.client.getBank().withdraw(995, 10000); } catch (InterruptedException e) { e.printStackTrace(); } try { this.client.getBank().close(); this.status = "Going to gateFS"; return 2000; } catch (InterruptedException e) { e.printStackTrace(); } } else { if (bankBooth.isVisible()) { try { bankBooth.interact("Bank"); } catch (InterruptedException e) { e.printStackTrace(); } return 1200 + (int)(Math.random() * 600.0D); } try { this.client.moveCameraToEntity(bankBooth); } catch (InterruptedException e) { e.printStackTrace(); } performWalk(1, true); } } break; } } label1104: return 600; } public void checkArea() { if ((this.cowArea1.contains(myPlayer())) || (this.cowArea2.contains(myPlayer()))) if (myPlayer().getClient().getInventory().getEmptySlots() == 0) { this.killingCows = false; this.status = "Walk To Gate..."; } else if (!this.killingCows) { this.killingCows = true; } } public boolean performWalk(int path, boolean way) { if ((way) && (this.start)) { if (path == 0) this.positionQue = (this.pathToGate.length - 1); else this.positionQue = (this.pathToBank.length - 1); } else if (this.start) this.positionQue = 0; try { if (this.start) { if (path == 0) walk(this.pathToGate[this.positionQue]); else { walk(this.pathToBank[this.positionQue]); } this.randomDis = (3 + (int)(Math.random() * 3.0D)); this.start = false; } int distance = 0; if (path == 0) distance = this.pathToGate[this.positionQue].distance(myPlayer().getPosition()); else { distance = this.pathToBank[this.positionQue].distance(myPlayer().getPosition()); } if (!myPlayer().isMoving()) { if (path == 0) walk(this.pathToGate[this.positionQue]); else { walk(this.pathToBank[this.positionQue]); } } if (distance < this.randomDis) { if (way) { this.positionQue -= 1; if (this.positionQue < 0) this.positionQue = 0; } else { this.positionQue += 1; } if (path == 0) walk(this.pathToGate[this.positionQue]); else { walk(this.pathToBank[this.positionQue]); } this.randomDis = (3 + (int)(Math.random() * 3.0D)); } if (way) { if (path == 0) { if (this.pathToGate[0].distance(myPlayer().getPosition()) < 6) { this.positionQue = 0; this.status = "Walk to cows..."; this.start = true; return true; } } else if (this.pathToBank[0].distance(myPlayer().getPosition()) < 6) { this.positionQue = 0; this.status = "Open Gate"; this.start = true; return true; } } else if (path == 0) { if (this.pathToGate[4].distance(myPlayer().getPosition()) < 6) { this.positionQue = 0; this.status = "Open Gate"; this.start = true; return true; } } else if (this.pathToBank[9].distance(myPlayer().getPosition()) < 6) { this.positionQue = 0; this.status = "Open Bank"; this.start = true; return true; } } catch (Exception localException) { } return false; } public void updateStats() { long runTime = System.currentTimeMillis() - this.startTime; this.hours = ((int)runTime / 1000 / 60 / 60); this.minutes = ((int)runTime / 1000 / 60 - this.hours * 60); this.seconds = ((int)runTime / 1000 - this.hours * 60 * 60 - this.minutes * 60); } private long actionsPerHour(long actions, long startTime) { return ()(3600000.0D / (System.currentTimeMillis() - startTime) * actions); } public void onPaint(Graphics g) { updateStats(); int cowHides = (int)(this.banked + this.client.getInventory().getAmount(this.cowHideId)); int cowHidesPerHour = (int)actionsPerHour(cowHides, this.startTime); Graphics2D g2 = (Graphics2D)g; g2.setColor(Color.WHITE); g2.setFont(new Font("Ariel", 0, 12)); g2.drawString("Created by LifezHatred", 375, 225); g2.drawString("Cow Hides Per Hour: " + cowHidesPerHour, 375, 250); g2.drawString("Cow Hides Collected: " + cowHides, 375, 275); g2.drawString("Trips Completed: " + this.laps, 375, 300); String hz = ""; String mz = ""; String sz = ""; if (this.hours < 10) { hz = "0"; } if (this.minutes < 10) { mz = "0"; } if (this.seconds < 10) { sz = "0"; } g2.drawString("Time Elapsed: " + hz + this.hours + ":" + mz + this.minutes + ":" + sz + this.seconds, 375, 325); } }