Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.24 KB | None | 0 0
  1. import org.rsbot.event.listeners.PaintListener;
  2. import org.rsbot.script.Script;
  3. import org.rsbot.script.ScriptManifest;
  4. import org.rsbot.script.methods.Skills;
  5. import org.rsbot.script.wrappers.RSItem;
  6. import org.rsbot.script.wrappers.RSObject;
  7. import org.rsbot.script.wrappers.RSTile;
  8. import org.rsbot.script.wrappers.RSWeb;
  9.  
  10. import java.awt.Color;
  11. import java.awt.Font;
  12. import java.awt.Graphics;
  13. import java.awt.event.MouseEvent;
  14. import java.awt.event.MouseListener;
  15. import java.util.Date;
  16.  
  17. @ScriptManifest(authors = {"TechGuard"}, keywords = "Smithing", name = "TechSmither", version = 1.0, description = "Smelts Everything at Al Kharid")
  18. public class TechSmither extends Script implements PaintListener, MouseListener {
  19. public boolean running, usedBank = false, paint = true;
  20. public long startTime;
  21. public int startExp = 0, startLevel = 0, gainedExp = 0, gainedLevel = 0,
  22. smeltedBars = 0, barID = 0, runEnergy = 50, interfaceID = 0, barGP = 0, oreGP;
  23. public int[] oreID;
  24.  
  25. RSTile bankTile, furnaceTile;
  26.  
  27. public boolean onStart(){
  28. camera.setPitch(true);
  29. camera.setPitch(true);
  30. startTime = System.currentTimeMillis();
  31. startExp = skills.getCurrentExp(Skills.SMITHING);
  32. startLevel = skills.getCurrentLevel(Skills.SMITHING);
  33. trentCrafterGUI g = new trentCrafterGUI();
  34. g.setVisible(true);
  35. while(g.isVisible()){
  36. sleep(100);
  37. }
  38. running = true;
  39. Date date = new Date(startTime);
  40. log("Started at "+String.format("%02d:%02d:%02d", date.getHours(), date.getMinutes(), date.getSeconds()));
  41. return true;
  42. }
  43.  
  44. public void onFinish(){
  45. running = false;
  46. Date date = new Date(System.currentTimeMillis());
  47. log("Stopped at "+String.format("%02d:%02d:%02d", date.getHours(), date.getMinutes(), date.getSeconds()));
  48. Date date2 = new Date(System.currentTimeMillis()-startTime);
  49. log("Runned for "+String.format("%02d:%02d:%02d", date2.getHours(), date2.getMinutes(), date2.getSeconds()));
  50. }
  51.  
  52. public static String getName(){
  53. return "TechSmither v1.0";
  54. }
  55.  
  56. public boolean onBreakStart(){
  57. running = false;
  58. return true;
  59. }
  60.  
  61. public void onBreakFinish(){
  62. running = true;
  63. }
  64.  
  65. public void mouseEntered(MouseEvent m) {
  66. }
  67.  
  68. public void mouseExited(MouseEvent m) {
  69. }
  70.  
  71. public void mousePressed(MouseEvent m) {
  72. }
  73.  
  74. public void mouseReleased(MouseEvent m) {
  75. }
  76.  
  77. public int loop(){
  78. if(!running) return 50;
  79. if(game.isLoggedIn()){
  80. mouse.setSpeed(random(6, 8));
  81. }
  82. while(interfaces.get(906).containsText("Logging")){
  83. sleep(10000);
  84. }
  85. if(walking.getEnergy() >= runEnergy && getMyPlayer().isMoving()){
  86. walking.setRun(true);
  87. return random(500, 1000);
  88. }
  89. if(getMyPlayer().isMoving()){
  90. antiBan();
  91. }
  92. if(inventory.getCount(oreID) > 0 && usedBank){
  93. if(!atBank()) usedBank = false;
  94. walkTo(furnaceTile);
  95. return random(1000, 1500);
  96. }
  97. if(atBank()){
  98. if(bank.isOpen()){
  99. sleep(random(500, 800));
  100. if(inventory.getCount(barID) > 0){
  101. smeltedBars += inventory.getCount(barID);
  102. deposit(barID, 0);
  103. sleep(random(600, 1200));
  104. }
  105. for(int i = 0; i < oreID.length; i++){
  106. if(inventory.getCount(oreID[i]) > 0){
  107. deposit(oreID[i], 0);
  108. sleep(random(600, 1200));
  109. }
  110. }
  111. int j = (int)(28 / oreID.length);
  112. for(int i = 0; i < oreID.length; i++){
  113. if(bank.getCount(oreID[i]) > 0){
  114. bank.withdraw(oreID[i], j);
  115. sleep(random(500, 1000));
  116. }
  117. }
  118. bank.close();
  119. usedBank = true;
  120. return random(500, 100);
  121. } else {
  122. RSObject banker = objects.getNearest(35647);
  123. if(banker != null){
  124. if(!calc.tileOnScreen(banker.getLocation())){
  125. walkTo(bankTile);
  126. return random(500, 1000);
  127. }
  128. if(!banker.doAction("Use-quickly")){
  129. camera.turnTo(banker);
  130. } else {
  131. sleep(800, 900);
  132. }
  133. return random(500, 900);
  134. }
  135. }
  136. }
  137. if(atFurnace()){
  138. if(inventory.getCount(oreID) < 1 && !isSmelting()){
  139. walkTo(bankTile);
  140. return random(1000, 1500);
  141. }
  142. int length = 0;for(int i = 0; i < oreID.length; i++)if(inventory.contains(oreID[i])) length++;
  143. if(length < oreID.length){
  144. walkTo(bankTile);
  145. return random(1000, 1500);
  146. }
  147. if(isSmelting()){
  148. antiBan();
  149. return random(100, 1500);
  150. } else {
  151. RSObject furnace = objects.getNearest(11666);
  152. if(furnace != null){
  153. if(!furnace.isOnScreen()){
  154. walkTo(furnaceTile);
  155. return random(500, 1000);
  156. }
  157. if(!furnace.doAction("Smelt")){
  158. camera.turnTo(furnace);
  159. } else {
  160. if(interfaces.getComponent(905, interfaceID).isValid()){
  161. interfaces.getComponent(905, interfaceID).doClick();
  162. }
  163. sleep(800, 900);
  164. }
  165. return random(500, 900);
  166. }
  167. }
  168. }
  169. int length = 0;for(int i = 0; i < oreID.length; i++)if(inventory.contains(oreID[i])) length++;
  170. if(length < oreID.length){
  171. walkTo(bankTile);
  172. return random(500, 1000);
  173. }
  174. if(inventory.getCount(oreID) > 0){
  175. walkTo(furnaceTile);
  176. return random(500, 1000);
  177. }
  178. if(inventory.getCount(oreID) < 1){
  179. walkTo(bankTile);
  180. return random(500, 1000);
  181. }
  182. return 50;
  183. }
  184.  
  185. public boolean atBank(){
  186. return calc.distanceTo(bankTile) <= 5;
  187. }
  188.  
  189. public boolean atFurnace(){
  190. return calc.distanceTo(furnaceTile) <= 5;
  191. }
  192.  
  193. public boolean isSmelting() {
  194. if(getMyPlayer().getAnimation() == -1){
  195. sleep(random(500, 1000));
  196. if(getMyPlayer().getAnimation() == -1){
  197. sleep(random(300, 800));
  198. if(getMyPlayer().getAnimation() == -1){
  199. sleep(random(100, 600));
  200. if(getMyPlayer().getAnimation() == -1){
  201. return false;
  202. }
  203. }
  204. }
  205. }
  206. return true;
  207. }
  208.  
  209. public void deposit(int itemId, int amount){
  210. RSItem item = inventory.getItem(itemId);
  211. String action = "";
  212. if(amount == 1){
  213. item.doClick(true);
  214. return;
  215. }
  216. if(amount == 0){
  217. action = "Deposit-All";
  218. } else
  219. if(item.getComponent().containsAction("Deposit-"+amount)){
  220. action = "Deposit-"+amount;
  221. } else {
  222. action = "Deposit-X";
  223. }
  224. item.getComponent().doAction(action);
  225. if(action.equals("Deposit-X")){
  226. sleep(random(1000, 1500));
  227. keyboard.sendText(""+amount, true);
  228. }
  229. }
  230.  
  231. public void walkTo(RSTile to){
  232. RSWeb path = web.getWeb(getMyPlayer().getLocation(), to);
  233. path.step();
  234. }
  235.  
  236. private final Font font1 = new Font("Arial", 0, 14);
  237. private final Font font2 = new Font("Arial", 1, 24);
  238.  
  239. public void onRepaint(Graphics g){
  240. if(!game.isLoggedIn() && !running) return;
  241. gainedExp = skills.getCurrentExp(Skills.SMITHING)-startExp;
  242. gainedLevel = skills.getCurrentLevel(Skills.SMITHING)-startLevel;
  243. String time = String.format("%02d:%02d",((new Date(System.currentTimeMillis()-startTime)).getHours()-1),
  244. (new Date(System.currentTimeMillis()-startTime)).getMinutes());
  245.  
  246. int percent = skills.getPercentToLevel(Skills.SMITHING, skills.getCurrentLevel(Skills.SMITHING)+1);
  247. double min = percent; min /= 100;
  248. int length = (int)(min*263);
  249.  
  250. if(paint){
  251. //Title and Background
  252. g.setColor(new Color(217, 199, 163));
  253. g.fillRect(7, 345, 505, 128);
  254. String str = getName();
  255. g.setFont(font2);
  256. g.setColor(new Color(0, 0, 0));
  257. g.drawString(str, 250, 400);
  258. //Info
  259. g.setFont(font1);
  260. g.drawString("Gained Exp: "+parse(gainedExp), 15, 363);
  261. g.drawString("Gained Level(s): "+gainedLevel, 15, 378);
  262. g.drawString("Bars Smelted: "+parse(smeltedBars), 15, 393);
  263. g.drawString("Profit Made? "+parse((barGP-oreGP)*smeltedBars), 15, 408);
  264. g.drawString("Running For: "+time, 15, 423);
  265. //Percent bar
  266. g.setColor(new Color(0, 0, 0));
  267. g.fillRect(226, 441, 265, 20);
  268. g.setColor(new Color(255, 0, 0));
  269. g.fillRect(227+length, 442, 263-length, 18);
  270. g.setColor(new Color(0, 255, 0));
  271. g.fillRect(227, 442, length, 18);
  272. String str2 = percent+"% Till lvl "+(skills.getCurrentLevel(Skills.SMITHING)+1);
  273. g.setFont(font1);
  274. g.setColor(new Color(0, 0, 0));
  275. g.drawString(str2, 320, 456);
  276. }
  277. g.setColor(new Color(0, 0, 0, 70));
  278. g.fillRect(477, 345, 35, 15);
  279. Color color1 = paint ? new Color(0, 255, 0, 70) : new Color(255, 0, 0, 70);
  280. g.setColor(color1);
  281. g.fillRect(478, 346, 33, 13);
  282. }
  283.  
  284. public void mouseClicked(MouseEvent m) {
  285. if(m.getX() >= 477 && m.getX() <= 512 && m.getY() >= 345 && m.getY() <= 360){
  286. paint = !paint;
  287. }
  288. }
  289.  
  290. public String parse(int x){
  291. String parsed = ""+x;
  292. String temp = ""+x;
  293. String Final = "";
  294. if(x < 0) parsed = parsed.substring(1);
  295. for(int i = 0; i < parsed.length(); i++){
  296. if(i == 3 || i == 6 || i == 9 || i == 12)
  297. Final = parsed.substring(0, temp.length()-1)+"."+parsed.substring(temp.length()-i, temp.length());
  298. }
  299. if(x < 0) Final = "-"+Final;
  300. if(Final.endsWith(".")) Final = Final.substring(0, Final.length()-1);
  301. return parsed;
  302. }
  303.  
  304. public class trentCrafterGUI extends javax.swing.JFrame {
  305. public trentCrafterGUI() {
  306. initComponents();
  307. }
  308. @SuppressWarnings("unchecked")
  309. private void initComponents() {
  310. jLabel1 = new javax.swing.JLabel();
  311. jComboBox1 = new javax.swing.JComboBox();
  312. jComboBox2 = new javax.swing.JComboBox();
  313. jLabel2 = new javax.swing.JLabel();
  314. jLabel3 = new javax.swing.JLabel();
  315. jButton1 = new javax.swing.JButton();
  316. jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
  317. jLabel1.setText(TechSmither.getName());
  318. String[] bars = {"Bronze Bar", "Iron Bar", "Silver Bar",
  319. "Steel Bar", "Gold Bar", "Mithril Bar", "Adamant Bar", "Rune Bar"};
  320. jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(bars));
  321. jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Al Kharid"}));
  322. jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  323. jLabel2.setText("Bar to Smelt:");
  324. jLabel3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  325. jLabel3.setText("Location:");
  326. jButton1.setText("Start");
  327. jButton1.addActionListener(new java.awt.event.ActionListener() {
  328. public void actionPerformed(java.awt.event.ActionEvent evt) {
  329. jButton1ActionPerformed(evt);
  330. }
  331. });
  332. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  333. getContentPane().setLayout(layout);
  334. layout.setHorizontalGroup(layout
  335. .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  336. .addGroup(layout.createSequentialGroup()
  337. .addContainerGap()
  338. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  339. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()
  340. .addComponent(jLabel1)
  341. .addGap(174,174,174))
  342. .addGroup(layout.createSequentialGroup()
  343. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  344. .addComponent(jComboBox1,javax.swing.GroupLayout.PREFERRED_SIZE,276,javax.swing.GroupLayout.PREFERRED_SIZE)
  345. .addComponent(jComboBox2,javax.swing.GroupLayout.PREFERRED_SIZE,276,javax.swing.GroupLayout.PREFERRED_SIZE)
  346. .addGroup(layout.createSequentialGroup()
  347. .addComponent(jLabel2)
  348. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,168,javax.swing.GroupLayout.PREFERRED_SIZE))
  349. .addGroup(layout.createSequentialGroup()
  350. .addComponent(jLabel3)
  351. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,219,javax.swing.GroupLayout.PREFERRED_SIZE)))
  352. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE))
  353. .addGroup(layout.createSequentialGroup()
  354. .addComponent(jButton1,javax.swing.GroupLayout.DEFAULT_SIZE,276,Short.MAX_VALUE)
  355. .addContainerGap()))));
  356. layout.setVerticalGroup(layout
  357. .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  358. .addGroup(layout.createSequentialGroup()
  359. .addContainerGap()
  360. .addComponent(jLabel1)
  361. .addGap(18, 18, 18)
  362. .addComponent(jLabel2)
  363. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  364. .addComponent(jComboBox1,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)
  365. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  366. .addComponent(jLabel3)
  367. .addGap(4, 4, 4)
  368. .addComponent(jComboBox2,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)
  369. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  370. .addComponent(jButton1)
  371. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)));
  372. pack();
  373. }
  374. private javax.swing.JButton jButton1;
  375. private javax.swing.JComboBox jComboBox1;
  376. private javax.swing.JComboBox jComboBox2;
  377. private javax.swing.JLabel jLabel1;
  378. private javax.swing.JLabel jLabel2;
  379. private javax.swing.JLabel jLabel3;
  380.  
  381. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
  382. String itemName = jComboBox1.getSelectedItem().toString();
  383. String location = jComboBox2.getSelectedItem().toString();
  384. if(location.contains("Al Kharid")){
  385. bankTile = new RSTile(3269, 3168);
  386. furnaceTile = new RSTile(3274, 3186);
  387. }
  388. if(itemName.equals("Bronze Bar")){
  389. barID = 2349;
  390. interfaceID = 14;
  391. oreID = new int[]{436,438};
  392. }
  393. if(itemName.equals("Iron Bar")){
  394. barID = 2351;
  395. interfaceID = 16;
  396. oreID = new int[]{440};
  397. }
  398. if(itemName.equals("Silver Bar")){
  399. barID = 2355;
  400. interfaceID = 17;
  401. oreID = new int[]{442};
  402. }
  403. if(itemName.equals("Steel Bar")){
  404. barID = 2353;
  405. interfaceID = 18;
  406. oreID = new int[]{440,453,453};
  407. }
  408. if(itemName.equals("Gold Bar")){
  409. barID = 2357;
  410. interfaceID = 19;
  411. oreID = new int[]{444};
  412. }
  413. if(itemName.equals("Mithril Bar")){
  414. barID = 2359;
  415. interfaceID = 20;
  416. oreID = new int[]{447,453,453,453};
  417. }
  418. if(itemName.equals("Adamant Bar")){
  419. barID = 2361;
  420. interfaceID = 21;
  421. oreID = new int[]{449,453,453,453,453,453,453};
  422. }
  423. if(itemName.equals("Rune Bar")){
  424. barID = 2363;
  425. interfaceID = 22;
  426. oreID = new int[]{451,453,453,453,453,453,453,453,453};
  427. }
  428. barGP = grandExchange.lookup(barID).getGuidePrice();
  429. for(int i = 0; i < oreID.length; i++)
  430. oreGP += grandExchange.lookup(oreID[i]).getGuidePrice();
  431. this.setVisible(false);
  432. }
  433. }
  434.  
  435. /*
  436. * Anti-ban
  437. */
  438. public void mouseHandler(){
  439. switch(random(0, 5)) {
  440. case 0: mouse.moveOffScreen();break;
  441. case 1: mouse.moveOffScreen();break;
  442. case 2: mouse.moveSlightly();break;
  443. case 3: mouse.moveSlightly();break;
  444. }
  445. }
  446.  
  447. public void superAntiMoveMouse(){
  448. switch(random(0, 5)) {
  449. case 0: mouse.setSpeed(random(6, 9));
  450. mouse.moveSlightly();
  451. mouse.moveSlightly();
  452. mouse.moveSlightly();break;
  453. case 1: mouse.setSpeed(random(6, 9));
  454. mouse.moveSlightly();
  455. mouse.moveSlightly();break;
  456. case 2: mouse.setSpeed(random(6, 9));
  457. mouse.moveSlightly();
  458. mouse.moveSlightly();
  459. mouse.moveSlightly();
  460. mouse.moveSlightly();break;
  461. }
  462. }
  463.  
  464. public void randomtab(){
  465. switch(random(0, 12)) {
  466. case 0: game.openTab(game.TAB_STATS);sleep(random(700, 1200));
  467. game.openTab(game.TAB_INVENTORY);break;
  468. case 1: game.openTab(game.TAB_INVENTORY);break;
  469. case 2: game.openTab(game.TAB_CLAN);sleep(random(700, 1200));
  470. game.openTab(game.TAB_INVENTORY);break;
  471. case 3: game.openTab(game.TAB_FRIENDS);sleep(random(700, 1200));
  472. game.openTab(game.TAB_INVENTORY);break;
  473. case 4: game.openTab(game.TAB_EQUIPMENT);sleep(random(700, 1200));
  474. game.openTab(game.TAB_INVENTORY);break;
  475. case 5: game.openTab(game.TAB_MAGIC);sleep(random(700, 1200));
  476. game.openTab(game.TAB_INVENTORY);break;
  477. case 6: game.openTab(game.TAB_QUESTS);sleep(random(700, 1200));
  478. game.openTab(game.TAB_INVENTORY);break;
  479. case 7: game.openTab(game.TAB_NOTES);sleep(random(700, 1200));
  480. game.openTab(game.TAB_INVENTORY);break;
  481. case 8: game.openTab(game.TAB_PRAYER);sleep(random(700, 1200));
  482. game.openTab(game.TAB_INVENTORY);break;
  483. case 9: game.openTab(game.TAB_MUSIC);sleep(random(700, 1200));
  484. game.openTab(game.TAB_INVENTORY);break;
  485. }
  486. }
  487.  
  488. public void randomXPcheck(){
  489. game.openTab(game.TAB_STATS);
  490. switch(random(0, 20)) {
  491. case 0: skills.doHover(skills.INTERFACE_FISHING);break;
  492. case 1: skills.doHover(skills.INTERFACE_WOODCUTTING);break;
  493. case 2: skills.doHover(skills.INTERFACE_ATTACK);break;
  494. case 3: skills.doHover(skills.INTERFACE_STRENGTH);break;
  495. case 4: skills.doHover(skills.INTERFACE_COOKING);break;
  496. case 5: skills.doHover(skills.INTERFACE_RANGE);break;
  497. case 6: skills.doHover(skills.INTERFACE_FIREMAKING);break;
  498. case 7: skills.doHover(skills.INTERFACE_CONSTRUCTION);break;
  499. case 8: skills.doHover(skills.INTERFACE_RUNECRAFTING);break;
  500. case 9: skills.doHover(skills.INTERFACE_SUMMONING);break;
  501. case 10: skills.doHover(skills.INTERFACE_SLAYER);break;
  502. case 11: skills.doHover(skills.INTERFACE_CRAFTING);break;
  503. case 12: skills.doHover(skills.INTERFACE_FARMING);break;
  504. case 13: skills.doHover(skills.INTERFACE_AGILITY);break;
  505. case 14: skills.doHover(skills.INTERFACE_THIEVING);break;
  506. case 15: skills.doHover(skills.INTERFACE_HUNTER);break;
  507. case 16: skills.doHover(skills.INTERFACE_MINING);break;
  508. case 17: skills.doHover(skills.INTERFACE_SMITHING);break;
  509. case 18: skills.doHover(skills.INTERFACE_MAGIC);break;
  510. case 19: skills.doHover(skills.INTERFACE_FLETCHING);break;
  511. case 20: skills.doHover(skills.INTERFACE_PRAYER);break;
  512. }
  513. }
  514.  
  515. public void antiBan(){
  516. switch(random(0, 7)){
  517. case 0: mouseHandler();break;
  518. case 1: superAntiMoveMouse();break;
  519. case 2: randomXPcheck();break;
  520. case 3: randomtab();break;
  521. case 4: runEnergy = random(30, 80);break;
  522. case 5: mouse.setSpeed(random(6, 8));break;
  523. default: break;
  524. }
  525. }
  526. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement