Guest User

Untitled

a guest
Jun 21st, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.42 KB | None | 0 0
  1. package com.scripts;
  2.  
  3. import com.kbot2.scriptable.methods.Calculations;
  4. import com.kbot2.scriptable.Script;
  5. import com.kbot2.scriptable.methods.data.Skills;
  6. import com.kbot2.scriptable.methods.data.GameScreen;
  7. import com.kbot2.handlers.eventSystem.eventListeners.PaintListener;
  8. import com.kbot2.handlers.eventSystem.eventListeners.ServerMessageListener;
  9. import com.kbot2.scriptable.methods.wrappers.GroundItem;
  10. import com.kbot2.scriptable.methods.wrappers.NPC;
  11. import com.kbot2.scriptable.methods.wrappers.Interface;
  12. import com.kbot2.scriptable.methods.wrappers.Tile;
  13.  
  14. import java.awt.*;
  15. import java.awt.Color;
  16.  
  17. /**
  18. * Created by IntelliJ IDEA.
  19. * User: Koh-Koh
  20. * Date: 12/06/2009
  21. * Time: 9:25:03 AM
  22. * To change this template use File | Settings | File Templates.
  23. */
  24. public class KohtaOgreRanger extends Script implements PaintListener, ServerMessageListener {
  25.  
  26. int hitpointStartExp = 0;
  27. int rangeStartExp = 0;
  28. final int[] OGRE_ID = new int[]{2801};
  29. int snappy = 0;
  30. int ranarry = 0;
  31. int watery = 0;
  32. int strawy = 0;
  33. int dwarfey = 0;
  34. int kwuarmy = 0;
  35. int latadymey = 0;
  36. int state=1;
  37. int prev=0;
  38. private long nextABTime = 0;
  39. private NPC currentNPC = null;
  40.  
  41. boolean snap = false;
  42. boolean ranar = false;
  43. boolean watermelo = false;
  44. boolean strawberr = false;
  45. boolean dwar = false;
  46. boolean kwuar = false;
  47. boolean latadym = false;
  48. boolean bigBoner = false;
  49. int [] itemIDs = new int[] {5259, 5300, 5321, 5323, 5303, 5299, 5302};
  50. private final static Rectangle trainingArea = new Rectangle(2523, 3371, 8, 1);
  51. Tile walkToCage = new Tile(2523 + random(0,8), 3371 + random(0,1));
  52.  
  53. long startTime = System.currentTimeMillis();
  54.  
  55. public boolean itemsOnFloor() {
  56. Interface i;
  57. GroundItem itemTile = groundItems.getClosestItem(25, itemIDs);
  58. if (itemTile != null) {
  59. final Point itemScreen = itemTile.getScreenPos();
  60. if (Calculations.onScreen(itemScreen)) {
  61. Point magTab = new Point(random(730, 751), random(173, 194));
  62. clickMouse(magTab, true);
  63. i = interfaces.getInterface(192, 19);
  64. if (i != null) {
  65. i.doClick();
  66. }
  67. itemTile.doAction("Telekinetic Grab");
  68. try {
  69. Thread.sleep(random(1500,2300));
  70. }
  71. catch (InterruptedException ie) { }
  72.  
  73. return true;
  74. }
  75. }
  76. return false;
  77. }
  78.  
  79. public int loop() {
  80. interfaces.clickContinue();
  81.  
  82. if(!trainingArea.contains(new Point(getMyPlayer().getLocation().getX(), getMyPlayer().getLocation().getY())) && !getMyPlayer().isInCombat())
  83. walking.walkToMM(walkToCage);
  84. switch(state){
  85. case 0:
  86. if(getAnimation2()) { }
  87. else {
  88. state = prev;
  89. }
  90. return random(20,100);
  91.  
  92. case 1:
  93. if (itemsOnFloor()) {
  94. state = 2;
  95. return random(300, 1000);
  96. }
  97. state = 2;
  98. return random(20, 100);
  99.  
  100. case 2:
  101. NPC Ogre = getClosestFree(256, OGRE_ID);
  102. if (Ogre != null && !Ogre.isInCombat()) {
  103. if(Ogre.doAction("Attack")) {
  104. currentNPC = Ogre;
  105. state = 0;
  106. prev = 1;
  107. return random(25, 50);
  108. } else
  109. state = 2;
  110. return random(25, 50);
  111. }
  112. return random(25, 50);
  113. }
  114.  
  115. return random(25, 50);
  116. }
  117.  
  118.  
  119. boolean getAnimation2() {
  120. long timer = System.currentTimeMillis();
  121. while(System.currentTimeMillis() - timer < 1300) {
  122. if (System.currentTimeMillis() >= nextABTime)
  123. antiBan();
  124. if(getMyPlayer().getAnimation() != -1 || getMyPlayer().getInteracting() != null)
  125. timer = System.currentTimeMillis();
  126.  
  127. if(System.currentTimeMillis() - timer > 1300)
  128. return false;
  129. }
  130. return true;
  131. }
  132.  
  133. public NPC getClosestFree(int range, int... ids) {
  134. Tile myLoc = players.getMyPlayer().getLocation();
  135. double closestDist = 256;
  136. NPC[] allNPCs = npcs.getNPCs();
  137. NPC closestNPC = null;
  138. try {
  139. mainLoop: for(NPC tempNPC : allNPCs) {
  140. for(int i : ids) {
  141. if (tempNPC.isInCombat())
  142. continue;
  143. int tempDist = tempNPC.getLocation().distanceTo(myLoc);
  144. if(i == tempNPC.getID() && tempDist <= range && tempDist < closestDist) {
  145. closestNPC = tempNPC;
  146. closestDist = tempDist;
  147. continue mainLoop;
  148. }
  149. }
  150. }
  151. } catch (Exception betterSafeThanSorry) {
  152. return null;
  153. }
  154. return closestNPC;
  155. }
  156.  
  157. private int antiBan() {
  158. nextABTime = System.currentTimeMillis() + (1000 * random(2, 40) + random(0, 1000));
  159. final int randomAction = random(0, 5);
  160. switch (randomAction) {
  161. case 0:
  162. if (gameScreen.getCurrentTab() != GameScreen.TAB_INVENTORY) {
  163. gameScreen.openTab(GameScreen.TAB_INVENTORY);
  164. sleep(random(310, 610));
  165. final Point invPoint = new Point(random(558, 723), random(215, 440));
  166. moveMouse(invPoint);
  167. return random(510, 1300);
  168. } else {
  169. final int random = random(0, 10);
  170. final Point rndPoint = new Point(random(558, 723), random(215, 440));
  171. if (random == 0) {
  172. if (gameScreen.getCurrentTab() != GameScreen.TAB_STATS) {
  173. gameScreen.openTab(GameScreen.TAB_STATS);
  174. sleep(random(310, 610));
  175. }
  176. moveMouse(rndPoint);
  177. return random(200, 2300);
  178. } else if (random >= 1 && random <= 6) {
  179. final int randomTab = random(0, 13);
  180. if (randomTab != gameScreen.getCurrentTab()) {
  181. gameScreen.openTab(random(0, 13));
  182. sleep(random(310, 610));
  183. }
  184. moveMouse(rndPoint);
  185. return random(300, 1200);
  186. } else {
  187. final int randomTab = random(0, 13);
  188. if (randomTab != gameScreen.getCurrentTab()) {
  189. gameScreen.openTab(random(0, 13));
  190. return random(310, 1200);
  191. }
  192. }
  193. }
  194.  
  195. case 1:
  196. Point randomMouse = null;
  197. final int rndMovement = random(1, 5);
  198. for (int a = 0; a < rndMovement; a++) {
  199. randomMouse = new Point(random(15, 730), random(15, 465));
  200. moveMouse(randomMouse);
  201. sleep(random(50, 800));
  202. }
  203. return random(130, 810);
  204.  
  205. case 2:
  206. final int currentAngle = botEnv.camera.getAngle();
  207. switch (random(0, 1)) {
  208. case 0:
  209. botEnv.camera.setAngle(currentAngle + random(0, 650));
  210. return random(710, 1100);
  211. case 1:
  212. botEnv.camera.setAngle(currentAngle - random(0, 650));
  213. return random(710, 1100);
  214. }
  215.  
  216. case 3:
  217. int currentAngle2 = botEnv.camera.getAngle();
  218. switch (random(0, 1)) {
  219. case 0:
  220. botEnv.camera.setAngle(currentAngle2 + random(0, 650));
  221. return random(410, 1130);
  222. case 1:
  223. botEnv.camera.setAngle(currentAngle2 - random(0, 650));
  224. return random(410, 1130);
  225. }
  226.  
  227. case 4:
  228. return random(310, 1400);
  229.  
  230. case 5:
  231. if (currentNPC != null && getMyPlayer().getInteracting() != null) {
  232. botEnv.camera.setAngleTo(currentNPC.getLocation());
  233. return random(120, 1300);
  234. } else {
  235. currentAngle2 = botEnv.camera.getAngle();
  236. switch (random(0, 1)) {
  237. case 0:
  238. botEnv.camera.setAngle(currentAngle2 + random(0, 650));
  239. return random(410, 1130);
  240. case 1:
  241. botEnv.camera.setAngle(currentAngle2 - random(0, 650));
  242. return random(410, 1130);
  243. }
  244. }
  245.  
  246. }
  247. return random(100, 200);
  248. }
  249.  
  250.  
  251. public boolean onStart() {
  252. rangeStartExp = skills.getExperience(Skills.SKILL_RANGE);
  253. hitpointStartExp = skills.getExperience(Skills.SKILL_HITPOINTS);
  254. return true;
  255. }
  256.  
  257. public String getName() {
  258. return "King Lathas Orge Ranger";
  259. }
  260.  
  261. public String getAuthor() {
  262. return "Kohta && Fatality";
  263. }
  264.  
  265. public String getDescription() {
  266. return "Kills Orges using range at the training camp.";
  267. }
  268.  
  269. public int getRealLevel(int skill) {
  270. int exp = skills.getExperience(skill);
  271. for(int i = 0; i < expTable.length; i++)
  272. if(exp < expTable[i])
  273. return i-1;
  274. return 99;
  275. }
  276.  
  277. public int getRealExperienceToNextLevel(int skill) {
  278. int level = getRealLevel(skill);
  279.  
  280. if(level == -1)
  281. return -1;
  282.  
  283. if(level == 99)
  284. return 0;
  285.  
  286. int experience = skills.getExperience(skill);
  287. int needed = expTable[level+1];
  288.  
  289. return needed - experience;
  290. }
  291.  
  292. private static final int[] expTable = {
  293. 0 , 0, 83, 174, 276, 388, 512, 650, 801,
  294. 969, 1154, 1358, 1584, 1833, 2107, 2411, 2746, 3115, 3523, 3973,
  295. 4470, 5018, 5624, 6291, 7028, 7842, 8740, 9730, 10824, 12031,
  296. 13363, 14833, 16456, 18247, 20224, 22406, 24815, 27473, 30408,
  297. 33648, 37224, 41171, 45529, 50339, 55649, 61512, 67983, 75127,
  298. 83014, 91721, 101333, 111945, 123660, 136594, 150872, 166636,
  299. 184040, 203254, 224466, 247886, 273742, 302288, 333804, 368599,
  300. 407015, 449428, 496254, 547953, 605032, 668051, 737627, 814445,
  301. 899257, 992895, 1096278, 1210421, 1336443, 1475581, 1629200,
  302. 1798808, 1986068, 2192818, 2421087, 2673114, 2951373, 3258594,
  303. 3597792, 3972294, 4385776, 4842295, 5346332, 5902831, 6517253,
  304. 7195629, 7944614, 8771558, 9684577, 10692629, 11805606, 13034431
  305. };
  306.  
  307. public int getPercentageToNextLevel2(int skill){
  308. int level = skills.getLevel(skill);
  309. if(level == -1)
  310. return -1;
  311.  
  312. if(level == 99)
  313. return 0;
  314.  
  315. int experience = skills.getExperience(skill);
  316. int needed = expTable[level+1];
  317. int lastLvl = expTable[level];
  318. double notYet = (double)(needed - experience) / (double)(experience - lastLvl)* (double)100;
  319.  
  320. return (int)notYet;
  321. }
  322.  
  323. public void onRepaint(Graphics g) {
  324. long runTime = System.currentTimeMillis() - startTime;
  325.  
  326. int secs = ((int) ((runTime / 1000) % 60));
  327. int mins = ((int) (((runTime / 1000) / 60) % 60));
  328. int hours = ((int) ((((runTime / 1000) / 60) / 60) % 60));
  329.  
  330.  
  331.  
  332. int RANGE_CUR_LEVEL = skills.getLevel(Skills.SKILL_RANGE);
  333. int rangeNegativeExp = skills.getExperience(Skills.SKILL_RANGE);
  334. int RNGXP_TO_LVL = skills.getExperienceToNextLevel(Skills.SKILL_RANGE);
  335. int RANGE_GAINED_XP = rangeNegativeExp - rangeStartExp;
  336.  
  337. if (rangeStartExp == 0)
  338. rangeStartExp = skills.getExperience(Skills.SKILL_RANGE);
  339.  
  340. int hpNegativeExp = skills.getExperience(Skills.SKILL_HITPOINTS);
  341. int HITPOINT_CUR_LEVEL = skills.getLevel(Skills.SKILL_HITPOINTS);
  342. int HITPOINT_XP_TO_LVL = skills.getExperienceToNextLevel(Skills.SKILL_HITPOINTS);
  343. int HITPOINT_XP_GAINED = hpNegativeExp - hitpointStartExp;
  344.  
  345. if (hitpointStartExp == 0)
  346. hitpointStartExp = skills.getExperience(Skills.SKILL_HITPOINTS);
  347.  
  348. int x = 13;
  349. int y = 13;
  350. //g.setColor(new Color(222, 64, 64, 100));
  351. //g.fill3DRect(x, y, 246, 230, true);
  352. x += 5;
  353. y += 15;
  354. g.setColor(Color.white);
  355. g.setFont(new Font("Lucida Grande", Font.BOLD, 11));
  356. y += 11;
  357. g.drawString("Kohta's Private Orge Ranger v2.0", x, y);
  358. y += 11;
  359. g.setColor(Color.black);
  360. y += 11;
  361. g.drawString("Run time: " + (hours < 10 ? "0" : "") + hours + ":" + (mins < 10 ? "0" : "") + mins + ":" + (secs < 10 ? "0" : "") + secs, x, y);
  362. y += 11;
  363. g.setColor(Color.blue);
  364. y += 11;
  365. g.drawString("Current Hitpoint level: " + HITPOINT_CUR_LEVEL, x, y);
  366. y += 11;
  367. g.drawString("Experience till next Hitpoint level: " + HITPOINT_XP_TO_LVL, x, y);
  368. y += 11;
  369. g.drawString("Hitpoint experience gained: " + HITPOINT_XP_GAINED, x, y);
  370. y += 11;
  371. g.setColor(Color.green);
  372. y += 11;
  373. g.drawString("Current Range level: " + RANGE_CUR_LEVEL, x, y);
  374. y += 11;
  375. g.drawString("Experience till next Range level: " + RNGXP_TO_LVL, x, y);
  376. y += 11;
  377. g.drawString("Range experience gained: " + RANGE_GAINED_XP, x, y);
  378. y += 11;
  379. g.drawString ((getRealExperienceToNextLevel(Skills.SKILL_RANGE)/240) + " Ogres Till Level: " + (getRealLevel(Skills.SKILL_RANGE) + 1), x, y);
  380. y += 11;
  381.  
  382. int Rangepercentage = getPercentageToNextLevel2(Skills.SKILL_RANGE);
  383. int barsize = 15;
  384. int barheight = 100;
  385. int transparancy = 160;
  386. int xBar = 20;
  387. int yBar = 368;
  388. g.setColor(new Color(0, 255, 0, transparancy));
  389. g.fillRect(xBar, yBar, barsize, barheight);
  390. g.setColor(new Color(255, 0, 0, transparancy));
  391. g.fillRect(xBar, yBar, barsize, barheight/100*Rangepercentage);
  392. g.setColor(new Color(255, 255, 255, transparancy));
  393. g.drawRect(xBar, yBar, barsize, barheight);
  394.  
  395. }
  396.  
  397. public void onServerMessage(String e) {
  398. if (e.contains("There is no ammo left in your quiver.")) {
  399. log("Oh shi-! No ammo logging out!");
  400. gameScreen.logout();
  401. stopAllScripts();
  402. } else if (e.contains("You do not have enough law runes to cast this spell.")) {
  403. log("Oh shi-! Out of runes, logging out!");
  404. gameScreen.logout();
  405. stopAllScripts();
  406. } else if (e.contains("I can't reach that!")) {
  407. log("We are lost. Logging out.");
  408. gameScreen.logout();
  409. stopAllScripts();
  410. }
  411. }
  412. }
Add Comment
Please, Sign In to add comment