Advertisement
Guest User

Untitled

a guest
Sep 1st, 2015
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.19 KB | None | 0 0
  1. package utill;
  2.  
  3.  
  4.  
  5. import java.awt.Color;
  6. import java.awt.Font;
  7. import java.awt.Graphics;
  8. import java.awt.Graphics2D;
  9. import java.awt.Image;
  10. import java.net.URL;
  11.  
  12. import javax.imageio.ImageIO;
  13.  
  14. import org.tbot.bot.TBot;
  15. import org.tbot.client.Widget;
  16. import org.tbot.graphics.SkillPaint;
  17. import org.tbot.internal.AbstractScript;
  18. import org.tbot.internal.Manifest;
  19. import org.tbot.internal.event.listeners.PaintListener;
  20. import org.tbot.internal.handlers.LogHandler;
  21. import org.tbot.methods.Bank;
  22. import org.tbot.methods.Camera;
  23. import org.tbot.methods.Game;
  24. import org.tbot.methods.GameObjects;
  25. import org.tbot.methods.Mouse;
  26. import org.tbot.methods.Npcs;
  27. import org.tbot.methods.Players;
  28. import org.tbot.methods.Random;
  29. import org.tbot.methods.Skills;
  30. import org.tbot.methods.Skills.Skill;
  31. import org.tbot.methods.Time;
  32. import org.tbot.methods.Widgets;
  33. import org.tbot.methods.combat.magic.Magic;
  34. import org.tbot.methods.combat.magic.Spell;
  35. import org.tbot.methods.combat.magic.SpellBooks;
  36. import org.tbot.methods.tabs.Inventory;
  37. import org.tbot.methods.walking.Path;
  38. import org.tbot.methods.walking.Walking;
  39. import org.tbot.methods.web.banks.WebBank;
  40. import org.tbot.util.Condition;
  41. import org.tbot.util.Filter;
  42. import org.tbot.wrappers.Area;
  43. import org.tbot.wrappers.GameObject;
  44. import org.tbot.wrappers.Item;
  45. import org.tbot.wrappers.Locatable;
  46. import org.tbot.wrappers.NPC;
  47. import org.tbot.wrappers.Tile;
  48. import org.tbot.wrappers.Timer;
  49.  
  50. /**
  51. * Created by home on 27/07/15.
  52. */
  53. @Manifest( name = "Rock Crabs Pro", authors = "dazz", version = 1.0 )
  54. public class Fighter extends AbstractScript implements PaintListener{
  55. GameObject altar= GameObjects.getNearest("Altar");
  56. Tile start = new Tile(3115, 3449, 0);
  57. 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)});
  58. 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)});
  59. 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)});
  60. 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)});
  61. GameObject booth= GameObjects.getNearest("Bank booth");
  62. public static Spell spellToCast = SpellBooks.Lunar.HUMIDIFY;
  63. private final int magicTabID = Widgets.TAB_MAGIC;
  64. public static boolean bank = false;
  65. NPC druid;
  66. public int current = -1;
  67. boolean reset = false;
  68. boolean walkBank = false;
  69. Timer t = new Timer(10003, 10014);
  70. Long timer;
  71. Image paintImage = null;
  72. private long startTime = 0;
  73. long startXp;
  74. long currXp;
  75. static enum Action {
  76. FIND, TELEPORT, RESET, WALK, SLEEP, IDLE, BANK, EAT, CANNON;
  77. }
  78.  
  79. public Image getImage(String url) {
  80. try {
  81. return ImageIO.read(new URL(url)); }
  82. catch(Exception e) {
  83. System.err.println(e);
  84. return null;
  85. }
  86. }
  87.  
  88. @SuppressWarnings("deprecation")
  89. public Action getAction(){
  90. Action state = Action.IDLE;
  91. if( !hasFood() && !Inventory.contains("Lobster") )
  92. {
  93. LogHandler.log("Banking");
  94. return Action.BANK;
  95. }
  96. if( Skills.getCurrentLevel(Skill.Hitpoints) < 40 )
  97. {
  98. LogHandler.log("EATING");
  99. return Action.EAT;
  100. }
  101. if( Players.getLocal().isHealthBarVisible())
  102. {
  103. LogHandler.log("Sleeping");
  104. return Action.SLEEP;
  105. }
  106. if( inArea(fighting) == false && reset == false )
  107. {
  108. LogHandler.log("walkking");
  109. return Action.WALK;
  110. }
  111. if( reset == true )
  112. {
  113. LogHandler.log("Resetting combat agro");
  114. return Action.RESET;
  115. }
  116. if( !Players.getLocal().isHealthBarVisible() )
  117. {
  118. LogHandler.log("Finding a rock crab to fight");
  119. return Action.FIND;
  120. }
  121. return state;
  122. }
  123.  
  124. @Override
  125. public boolean onStart() {
  126.  
  127. Mouse.setSpeed(Random.nextInt(11, 17));
  128. startTime = System.currentTimeMillis();
  129. startXp = Skills.getExperience(Skill.Strength);
  130. paintImage = getImage("http://oi59.tinypic.com/httg8y.jpg");
  131. return true;
  132. }
  133. int end;
  134. long xpGained;
  135. public void onRepaint(final Graphics g1) {
  136.  
  137. Graphics2D g = (Graphics2D) g1;
  138. g.setFont(new Font( "Serif", Font.BOLD, 20));
  139. g.drawImage(paintImage, 0, 340, null);
  140. g.setColor(Color.WHITE);
  141. g.drawString("Time Running: " + getFormattedTime(System.currentTimeMillis() - startTime), 170, 375);
  142. currXp = Skills.getExperience(Skill.Strength);
  143. end = Skills.getExperience(Skill.Strength);
  144. xpGained = (Skills.getExperience(Skill.Strength) - startXp);
  145. Long xp = Math.round(xpGained * 3600000D / (System.currentTimeMillis() - startTime));
  146. g.drawString("xp p/h: " + xp , 170, 415);
  147. }
  148.  
  149. public int loop() {
  150.  
  151. switch( getAction() ) {
  152. case FIND: find();
  153. break;
  154. case IDLE: playerCombat();
  155. break;
  156. case RESET: reset = true; reset();
  157. break;
  158. case WALK: walk();
  159. break;
  160. case EAT: eat().interact("Eat");
  161. break;
  162. case BANK: bank();
  163. break;
  164. default:
  165. break;
  166. }
  167. return Random.nextInt(31,44);
  168. }
  169.  
  170. @SuppressWarnings( "deprecation" )
  171. public void find() {
  172. Path path;
  173. Tile t;
  174. this.druid = Npcs.getNearest("Rocks");
  175. if( druid != null && !druid.isHealthBarVisible() ) {
  176. LogHandler.log("Crab has been found, walking to it.");
  177. t = druid.getLocation();
  178. path = Walking.findPath(druid);
  179.  
  180. if(path.traverse() == true){
  181. Camera.turnTo(druid);
  182. Time.sleep(2322, 2444);
  183. druid.interact("Attack");
  184. if( druid != null && !Players.getLocal().inCombat()
  185. && druid.getLocation().equals(Players.getLocal().getLocation()) && druid.getAnimation() != 1314
  186. && !druid.isHealthBarVisible() && druid.isOnScreen())
  187. {
  188. reset = true;
  189. }
  190. }
  191. }
  192. }
  193.  
  194. public void reset(){
  195. Path path;
  196. path = Walking.findPath(resetArea.getCentralTile());
  197. path.traverse();
  198. for(Tile t:resetArea.getTileArray()){
  199. if(Players.getLocal().getLocation().equals(t)){
  200. reset = false;
  201. break;
  202. }
  203. }
  204. }
  205.  
  206. public void walk(){
  207.  
  208. Path path;
  209. path = Walking.findPath(fighting.getCentralTile());
  210. if(path != null){
  211. path.traverse();
  212. Time.sleep(534,834);
  213. }
  214. }
  215.  
  216. public Boolean teleport(){
  217.  
  218. if( getTab() != null && !camelot.contains(Players.getLocal()) && !walkBank){
  219. if(getTab().interact("Break")){
  220. walkBank = true;
  221. return true;
  222. }
  223. }
  224. return false;
  225. }
  226.  
  227. public Item getTab(){
  228. for(Item i: Inventory.getItems()){
  229. if( i.getName().equals("Camelot teleport")){
  230. return i;
  231. }
  232. }
  233. return null;
  234. }
  235.  
  236. /**
  237. * Banking after the combat
  238. */
  239. public void bank(){
  240. booth = GameObjects.getNearest("Bank booth");
  241. if(walkBank && !bankArea.contains(Players.getLocal())){
  242. if( booth != null && !booth.isOnScreen()){
  243. Path p = Walking.findLocalPath(bankArea.getCentralTile());
  244. p.traverse();
  245. }
  246. } else if(!walkBank){
  247. teleport(); Time.sleep(2002, 2103);
  248. }
  249.  
  250. if(booth != null && booth.isOnScreen()){
  251. LogHandler.log("In Bank");
  252. booth.interact("Bank");
  253. if(Bank.isOpen() && !Inventory.contains("Camelot teleport") || !Inventory.contains("Lobster") ){
  254. Bank.depositAll();
  255. } else{
  256. Bank.withdraw("Camelot teleport", 1);
  257. Bank.withdrawAll("Lobster");
  258. if(Inventory.contains("Lobster")){
  259. walkBank = false;
  260. }
  261. }
  262.  
  263. }
  264. }
  265.  
  266.  
  267. public void playerCombat(){
  268. Time.sleep(1, 11);
  269. }
  270.  
  271. public boolean inCamelot(){
  272. if(camelot.contains(Players.getLocal())){
  273.  
  274. return true;
  275. }
  276. else return false;
  277. }
  278.  
  279.  
  280. /**
  281. * Check if a player is in a created area
  282. * @param Area to check
  283. * @return True or false
  284. */
  285. public boolean inArea(Area a){
  286. if(a.contains(Players.getLocal()))
  287. return true;
  288. else
  289. return false;
  290. }
  291.  
  292. public boolean inReset(Area a){
  293. if(a.contains(Players.getLocal()))
  294. return true;
  295. else
  296. return false;
  297. }
  298.  
  299. public Item eat(){
  300. Item eat = null;
  301. for(Item i: Inventory.getItems()){
  302. if( i.getName().equals("Lobster")){
  303. return i;
  304. }
  305. }
  306. return eat;
  307. }
  308.  
  309. public Item itemCheck(){
  310. for(Item i: Inventory.getItems()){
  311. if( !i.getName().equals("Lobster") || !i.getName().equals("Camelot teleport")){
  312. return i;
  313. }
  314. }
  315. return null;
  316. }
  317.  
  318. /**
  319. * Compare the tile location of a given player, to a given NPCs location
  320. * returns boolean if they are on the same tile
  321. * @param p Player to compare
  322. * @param n Npc to compare
  323. * @return true if on same tile
  324. */
  325. public boolean compareLocation(Tile p, Tile n){
  326. Tile player = p;
  327. Tile Npcs = n;
  328. int px = player.getX();
  329. int py = player.getY();
  330. int nx = Npcs.getX();
  331. int ny = Npcs.getY();
  332.  
  333. if( px == nx && py == ny){
  334. return true;
  335. } else
  336. return false;
  337. }
  338.  
  339. public boolean hasFood(){
  340. for(Item i: Inventory.getItems()){
  341. if( !i.getName().equals("Lobster")){
  342. return false;
  343. }
  344. }
  345. return true;
  346. }
  347. private String getFormattedTime(final long timeMillis) {
  348. long millis = timeMillis;
  349. final long seconds2 = millis / 1000;
  350. final long hours = millis / (1000 * 60 * 60);
  351. millis -= hours * 1000 * 60 * 60;
  352. final long minutes = millis / (1000 * 60);
  353. millis -= minutes * 1000 * 60;
  354. final long seconds = millis / 1000;
  355. String hoursString = "";
  356. String minutesString = "";
  357. String secondsString = seconds + "";
  358. String type = "seconds";
  359.  
  360. if (minutes > 0) {
  361. minutesString = minutes + ":";
  362. type = "minutes";
  363. } else if (hours > 0 && seconds2 > 0) {
  364. minutesString = "0:";
  365. }
  366. if (hours > 0) {
  367. hoursString = hours + ":";
  368. type = "hours";
  369. }
  370. if (minutes < 10 && !type.equals("seconds")) {
  371. minutesString = "0" + minutesString;
  372. }
  373. if (hours < 10 && type.equals("hours")) {
  374. hoursString = "0" + hoursString;
  375. }
  376. if (seconds < 10 && !type.equals("seconds")) {
  377. secondsString = "0" + secondsString;
  378. }
  379.  
  380. if (timeMillis == 1000) {
  381. type = "second";
  382. } else if (timeMillis == 60000) {
  383. type = "minute";
  384. } else if (timeMillis == 3600000) {
  385. type = "hour";
  386. }
  387.  
  388. return hoursString + minutesString + secondsString;
  389. }
  390. public void random(){
  391. // ANTI RANDOM METHOD NOT IMPLEMENTED
  392. }
  393. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement