Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package utill;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import org.tbot.bot.TBot;
- import org.tbot.client.Widget;
- import org.tbot.graphics.SkillPaint;
- import org.tbot.internal.AbstractScript;
- import org.tbot.internal.Manifest;
- import org.tbot.internal.event.listeners.PaintListener;
- import org.tbot.internal.handlers.LogHandler;
- import org.tbot.methods.Bank;
- import org.tbot.methods.Camera;
- import org.tbot.methods.Game;
- import org.tbot.methods.GameObjects;
- import org.tbot.methods.Mouse;
- import org.tbot.methods.Npcs;
- import org.tbot.methods.Players;
- import org.tbot.methods.Random;
- import org.tbot.methods.Skills;
- import org.tbot.methods.Skills.Skill;
- import org.tbot.methods.Time;
- import org.tbot.methods.Widgets;
- import org.tbot.methods.combat.magic.Magic;
- import org.tbot.methods.combat.magic.Spell;
- import org.tbot.methods.combat.magic.SpellBooks;
- import org.tbot.methods.tabs.Inventory;
- import org.tbot.methods.walking.Path;
- import org.tbot.methods.walking.Walking;
- import org.tbot.methods.web.banks.WebBank;
- import org.tbot.util.Condition;
- import org.tbot.util.Filter;
- import org.tbot.wrappers.Area;
- import org.tbot.wrappers.GameObject;
- import org.tbot.wrappers.Item;
- import org.tbot.wrappers.Locatable;
- import org.tbot.wrappers.NPC;
- import org.tbot.wrappers.Tile;
- import org.tbot.wrappers.Timer;
- /**
- * Created by home on 27/07/15.
- */
- @Manifest( name = "Rock Crabs Pro", authors = "dazz", version = 1.0 )
- public class Fighter extends AbstractScript implements PaintListener{
- GameObject altar= GameObjects.getNearest("Altar");
- Tile start = new Tile(3115, 3449, 0);
- Area resetArea = new Area(new Tile[] {new Tile(2704,3691,0),new Tile(2704,3691,0),new Tile(2713,3690,0),new Tile(2715,3694,0),new Tile(2706,3694,0)});
- Area fighting = new Area(new Tile[] {new Tile(2719,3712,0),new Tile(2702,3713,0),new Tile(2702,3726,0),new Tile(2718,3728,0)});
- Area camelot = new Area(new Tile[] {new Tile(2752,3475,0),new Tile(2752,3481,0),new Tile(2761,3481,0),new Tile(2761,3475,0)});
- Area bankArea = new Area(new Tile[] {new Tile(2722,3490,0),new Tile(2727,3490,0),new Tile(2729,3493,0),new Tile(2723,3493,0)});
- GameObject booth= GameObjects.getNearest("Bank booth");
- public static Spell spellToCast = SpellBooks.Lunar.HUMIDIFY;
- private final int magicTabID = Widgets.TAB_MAGIC;
- public static boolean bank = false;
- NPC druid;
- public int current = -1;
- boolean reset = false;
- boolean walkBank = false;
- Timer t = new Timer(10003, 10014);
- Long timer;
- Image paintImage = null;
- private long startTime = 0;
- long startXp;
- long currXp;
- static enum Action {
- FIND, TELEPORT, RESET, WALK, SLEEP, IDLE, BANK, EAT, CANNON;
- }
- public Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url)); }
- catch(Exception e) {
- System.err.println(e);
- return null;
- }
- }
- @SuppressWarnings("deprecation")
- public Action getAction(){
- Action state = Action.IDLE;
- if( !hasFood() && !Inventory.contains("Lobster") )
- {
- LogHandler.log("Banking");
- return Action.BANK;
- }
- if( Skills.getCurrentLevel(Skill.Hitpoints) < 40 )
- {
- LogHandler.log("EATING");
- return Action.EAT;
- }
- if( Players.getLocal().isHealthBarVisible())
- {
- LogHandler.log("Sleeping");
- return Action.SLEEP;
- }
- if( inArea(fighting) == false && reset == false )
- {
- LogHandler.log("walkking");
- return Action.WALK;
- }
- if( reset == true )
- {
- LogHandler.log("Resetting combat agro");
- return Action.RESET;
- }
- if( !Players.getLocal().isHealthBarVisible() )
- {
- LogHandler.log("Finding a rock crab to fight");
- return Action.FIND;
- }
- return state;
- }
- @Override
- public boolean onStart() {
- Mouse.setSpeed(Random.nextInt(11, 17));
- startTime = System.currentTimeMillis();
- startXp = Skills.getExperience(Skill.Strength);
- paintImage = getImage("http://oi59.tinypic.com/httg8y.jpg");
- return true;
- }
- int end;
- long xpGained;
- public void onRepaint(final Graphics g1) {
- Graphics2D g = (Graphics2D) g1;
- g.setFont(new Font( "Serif", Font.BOLD, 20));
- g.drawImage(paintImage, 0, 340, null);
- g.setColor(Color.WHITE);
- g.drawString("Time Running: " + getFormattedTime(System.currentTimeMillis() - startTime), 170, 375);
- currXp = Skills.getExperience(Skill.Strength);
- end = Skills.getExperience(Skill.Strength);
- xpGained = (Skills.getExperience(Skill.Strength) - startXp);
- Long xp = Math.round(xpGained * 3600000D / (System.currentTimeMillis() - startTime));
- g.drawString("xp p/h: " + xp , 170, 415);
- }
- public int loop() {
- switch( getAction() ) {
- case FIND: find();
- break;
- case IDLE: playerCombat();
- break;
- case RESET: reset = true; reset();
- break;
- case WALK: walk();
- break;
- case EAT: eat().interact("Eat");
- break;
- case BANK: bank();
- break;
- default:
- break;
- }
- return Random.nextInt(31,44);
- }
- @SuppressWarnings( "deprecation" )
- public void find() {
- Path path;
- Tile t;
- this.druid = Npcs.getNearest("Rocks");
- if( druid != null && !druid.isHealthBarVisible() ) {
- LogHandler.log("Crab has been found, walking to it.");
- t = druid.getLocation();
- path = Walking.findPath(druid);
- if(path.traverse() == true){
- Camera.turnTo(druid);
- Time.sleep(2322, 2444);
- druid.interact("Attack");
- if( druid != null && !Players.getLocal().inCombat()
- && druid.getLocation().equals(Players.getLocal().getLocation()) && druid.getAnimation() != 1314
- && !druid.isHealthBarVisible() && druid.isOnScreen())
- {
- reset = true;
- }
- }
- }
- }
- public void reset(){
- Path path;
- path = Walking.findPath(resetArea.getCentralTile());
- path.traverse();
- for(Tile t:resetArea.getTileArray()){
- if(Players.getLocal().getLocation().equals(t)){
- reset = false;
- break;
- }
- }
- }
- public void walk(){
- Path path;
- path = Walking.findPath(fighting.getCentralTile());
- if(path != null){
- path.traverse();
- Time.sleep(534,834);
- }
- }
- public Boolean teleport(){
- if( getTab() != null && !camelot.contains(Players.getLocal()) && !walkBank){
- if(getTab().interact("Break")){
- walkBank = true;
- return true;
- }
- }
- return false;
- }
- public Item getTab(){
- for(Item i: Inventory.getItems()){
- if( i.getName().equals("Camelot teleport")){
- return i;
- }
- }
- return null;
- }
- /**
- * Banking after the combat
- */
- public void bank(){
- booth = GameObjects.getNearest("Bank booth");
- if(walkBank && !bankArea.contains(Players.getLocal())){
- if( booth != null && !booth.isOnScreen()){
- Path p = Walking.findLocalPath(bankArea.getCentralTile());
- p.traverse();
- }
- } else if(!walkBank){
- teleport(); Time.sleep(2002, 2103);
- }
- if(booth != null && booth.isOnScreen()){
- LogHandler.log("In Bank");
- booth.interact("Bank");
- if(Bank.isOpen() && !Inventory.contains("Camelot teleport") || !Inventory.contains("Lobster") ){
- Bank.depositAll();
- } else{
- Bank.withdraw("Camelot teleport", 1);
- Bank.withdrawAll("Lobster");
- if(Inventory.contains("Lobster")){
- walkBank = false;
- }
- }
- }
- }
- public void playerCombat(){
- Time.sleep(1, 11);
- }
- public boolean inCamelot(){
- if(camelot.contains(Players.getLocal())){
- return true;
- }
- else return false;
- }
- /**
- * Check if a player is in a created area
- * @param Area to check
- * @return True or false
- */
- public boolean inArea(Area a){
- if(a.contains(Players.getLocal()))
- return true;
- else
- return false;
- }
- public boolean inReset(Area a){
- if(a.contains(Players.getLocal()))
- return true;
- else
- return false;
- }
- public Item eat(){
- Item eat = null;
- for(Item i: Inventory.getItems()){
- if( i.getName().equals("Lobster")){
- return i;
- }
- }
- return eat;
- }
- public Item itemCheck(){
- for(Item i: Inventory.getItems()){
- if( !i.getName().equals("Lobster") || !i.getName().equals("Camelot teleport")){
- return i;
- }
- }
- return null;
- }
- /**
- * Compare the tile location of a given player, to a given NPCs location
- * returns boolean if they are on the same tile
- * @param p Player to compare
- * @param n Npc to compare
- * @return true if on same tile
- */
- public boolean compareLocation(Tile p, Tile n){
- Tile player = p;
- Tile Npcs = n;
- int px = player.getX();
- int py = player.getY();
- int nx = Npcs.getX();
- int ny = Npcs.getY();
- if( px == nx && py == ny){
- return true;
- } else
- return false;
- }
- public boolean hasFood(){
- for(Item i: Inventory.getItems()){
- if( !i.getName().equals("Lobster")){
- return false;
- }
- }
- return true;
- }
- private String getFormattedTime(final long timeMillis) {
- long millis = timeMillis;
- final long seconds2 = millis / 1000;
- final long hours = millis / (1000 * 60 * 60);
- millis -= hours * 1000 * 60 * 60;
- final long minutes = millis / (1000 * 60);
- millis -= minutes * 1000 * 60;
- final long seconds = millis / 1000;
- String hoursString = "";
- String minutesString = "";
- String secondsString = seconds + "";
- String type = "seconds";
- if (minutes > 0) {
- minutesString = minutes + ":";
- type = "minutes";
- } else if (hours > 0 && seconds2 > 0) {
- minutesString = "0:";
- }
- if (hours > 0) {
- hoursString = hours + ":";
- type = "hours";
- }
- if (minutes < 10 && !type.equals("seconds")) {
- minutesString = "0" + minutesString;
- }
- if (hours < 10 && type.equals("hours")) {
- hoursString = "0" + hoursString;
- }
- if (seconds < 10 && !type.equals("seconds")) {
- secondsString = "0" + secondsString;
- }
- if (timeMillis == 1000) {
- type = "second";
- } else if (timeMillis == 60000) {
- type = "minute";
- } else if (timeMillis == 3600000) {
- type = "hour";
- }
- return hoursString + minutesString + secondsString;
- }
- public void random(){
- // ANTI RANDOM METHOD NOT IMPLEMENTED
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement