Advertisement
Guest User

Untitled

a guest
Dec 26th, 2018
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.24 KB | None | 0 0
  1. import org.osbot.rs07.api.filter.ContainsNameFilter;
  2. import org.osbot.rs07.api.map.Position;
  3. import org.osbot.rs07.api.map.constants.Banks;
  4. import org.osbot.rs07.api.ui.PrayerButton;
  5. import org.osbot.rs07.api.ui.Skill;
  6. import org.osbot.rs07.api.ui.Tab;
  7. import org.osbot.rs07.script.Script;
  8. import org.osbot.rs07.script.ScriptManifest;
  9. import org.osbot.rs07.utility.ConditionalSleep;
  10.  
  11. import java.awt.*;
  12.  
  13. import javax.swing.text.html.HTMLDocument.HTMLReader.SpecialAction;
  14. @ScriptManifest(name = "NMZ", author = "Remi", version = 1.0, info = "", logo = "")
  15.  
  16. public class NMZ extends Script {
  17.  
  18.     private long startTime, runTime;
  19.     public String state;
  20.     public int randomPrayerNum = 15;
  21.     public boolean outOfPrayerPots = false, hasTalkedToDom = false;
  22.  
  23.     @Override
  24.     public void onStart() {
  25.         experienceTracker.startAll();
  26.         startTime = System.currentTimeMillis();
  27.     }
  28.  
  29.  
  30.     public void timer(boolean why) {
  31.         new ConditionalSleep(10000) {
  32.             @Override
  33.             public boolean condition() throws InterruptedException {
  34.                 return why;
  35.             }
  36.         }.sleep();
  37.     }
  38.  
  39.     @SuppressWarnings("unchecked")
  40.     @Override
  41.     public int onLoop() throws InterruptedException {
  42.        
  43.         if (!combat.isSpecialActivated() && combat.getSpecialPercentage() >= 55) {
  44.             if (!tabs.isOpen(Tab.ATTACK)) {
  45.                 tabs.open(Tab.ATTACK);
  46.                 sleep(600);
  47.             }
  48.             combat.toggleSpecialAttack(true);
  49.         }
  50.  
  51.         if (skills.getDynamic(Skill.PRAYER) <= randomPrayerNum) {
  52.             state = "Drinking potion";
  53.             inventory.getItem(new ContainsNameFilter<>("Prayer")).interact();
  54.             randomPrayerNum = random(10,  35);
  55.             timer(skills.getDynamic(Skill.PRAYER) <= randomPrayerNum);
  56.         }
  57.  
  58.         if (inventory.isItemSelected()) {
  59.             state = "Deselecting item";
  60.             inventory.deselectItem();
  61.         }
  62.  
  63.         if (!inventory.contains(item -> item.getName().startsWith("Prayer"))) {
  64.             outOfPrayerPots = true;
  65.         }
  66.  
  67.         if (!Banks.YANILLE.contains(myPlayer()) && outOfPrayerPots && map.canReach(Banks.YANILLE.getRandomPosition())) {
  68.             sleep(random(3500, 4000));
  69.             state = "Walking to Yanille Bank";
  70.             walking.webWalk(Banks.YANILLE.getRandomPosition());
  71.         }
  72.        
  73.         if (Banks.YANILLE.contains(myPlayer()) && !inventory.contains(item -> item.getName().startsWith("Prayer")) && !bank.isOpen()) {
  74.             state = "Opening bank";
  75.             bank.open();
  76.             timer(bank.isOpen());
  77.         }
  78.        
  79.         if (objects.closestThatContains("Recurrent damage") != null && objects.closestThatContains("Recurrent damage").hasAction("Activate")) {
  80.             objects.closestThatContains("Recurrent damage").interact();
  81.             timer(objects.closestThatContains("Recurrent damage") == null);
  82.         }
  83.        
  84.         if (objects.closestThatContains("Power surge") != null && objects.closestThatContains("Power surge").hasAction("Activate")) {
  85.             objects.closestThatContains("Power surge").interact();
  86.             timer(objects.closestThatContains("Power surge") == null);
  87.         }
  88.        
  89.         if (objects.closestThatContains("Zapper") != null && objects.closestThatContains("Zapper").hasAction("Activate")) {
  90.             objects.closestThatContains("Zapper").interact();
  91.             timer(objects.closestThatContains("Zapper") == null);
  92.         }
  93.        
  94.        
  95.         if (bank.isOpen()) {
  96.             if (!inventory.contains("Prayer potion(4)") && !inventory.isEmpty()) {
  97.                 state = "Depositing";
  98.                 bank.depositAllExcept("Prayer potion(4)");
  99.                 timer(inventory.isEmpty());
  100.             }
  101.            
  102.             if (bank.contains("Prayer potion(4)")) {
  103.                 state = "Withdrawing";
  104.                 bank.withdrawAll("Prayer potion(4)");
  105.                 timer(inventory.contains("Prayer potion(4)"));
  106.                 outOfPrayerPots = false;
  107.                 bank.close();
  108.             } else {
  109.                 state = "Stopping";
  110.                 bank.close();
  111.                 timer(!bank.isOpen());
  112.                 stop();
  113.             }  
  114.         }
  115.        
  116.         if (Banks.YANILLE.contains(myPlayer()) && !outOfPrayerPots) {
  117.             state = "Walking to Dominic";
  118.             walking.webWalk(new Position(2609, 3114, 0));
  119.         }
  120.        
  121.         if (inventory.contains(item -> item.getName().startsWith("Prayer")) && npcs.closest("Dominic onion") != null && !outOfPrayerPots && !hasTalkedToDom) {
  122.             if (!dialogues.inDialogue()) {
  123.                 state = "Talking to Dominic";
  124.                 npcs.closest("Dominic onion").interact("Dream");
  125.                 sleep(random(3000, 3500));
  126.             }
  127.            
  128.             if (widgets.getWidgetContainingText("in my coffer") != null) {
  129.                 stop();
  130.             }
  131.            
  132.             widgets.getWidgetContainingText("Previous").interact();
  133.             sleep(random(2500, 3500));
  134.             dialogues.clickContinue();
  135.             sleep(random(2500, 3500));
  136.             widgets.getWidgetContainingText("Yes").interact();
  137.             sleep(random(2500, 3500));
  138.             dialogues.clickContinue();
  139.             hasTalkedToDom = true;
  140.         }
  141.        
  142.         if (objects.closestThatContains("Potion") != null && hasTalkedToDom && npcs.closest("Dominic onion") != null) {
  143.             state = "Entering world";
  144.             objects.closestThatContains("Potion").interact("Drink");
  145.             sleep(random(2500, 3500));
  146.             widgets.get(129, 6, 0).interact();
  147.             timer(npcs.closest("Dominic onion") == null);
  148.             sleep(random(5000, 12000));
  149.             hasTalkedToDom = false;
  150.             walking.walk(new Position(myPlayer().getX(), myPlayer().getY() + 10, 0));
  151.             prayer.set(PrayerButton.PROTECT_FROM_MELEE, true);
  152.         }
  153.        
  154.         if (!prayer.isActivated(PrayerButton.PROTECT_FROM_MELEE) && skills.getDynamic(Skill.PRAYER) > 0 && combat.isFighting()) {
  155.             state = "Enabling prayer";
  156.             prayer.set(PrayerButton.PROTECT_FROM_MELEE, true);
  157.         }
  158.  
  159.         state = "Sleeping";
  160.         return 600;
  161.     }
  162.  
  163.     public final String formatTime(final long ms){
  164.         long s = ms / 1000, m = s / 60, h = m / 60;
  165.         s %= 60; m %= 60; h %= 24;
  166.         return String.format("%02d:%02d:%02d", h, m, s);
  167.     }
  168.  
  169.     private final RenderingHints antialiasing = new RenderingHints(
  170.             RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  171.  
  172.     private final Color color1 = new Color(0, 0, 0, 230);
  173.     private final Color color2 = new Color(255, 0, 51);
  174.     private final Color color3 = new Color(255, 255, 255);
  175.  
  176.     private final BasicStroke stroke1 = new BasicStroke(1);
  177.  
  178.     private final Font font1 = new Font("Arial", 0, 12);
  179.  
  180.     @Override
  181.     public void onPaint(Graphics2D g) {
  182.         runTime = System.currentTimeMillis() - startTime;
  183.         g.setRenderingHints(antialiasing);
  184.         g.setColor(color1);
  185.         g.fillRect(1, 336, 516, 105);
  186.         g.setColor(color2);
  187.         g.setStroke(stroke1);
  188.         g.drawRect(1, 336, 516, 105);
  189.         g.setFont(font1);
  190.         g.setColor(color3);
  191.         g.drawString("NMZ Slayer", 444, 355);
  192.         g.drawString("Attack XP: " + experienceTracker.getGainedXP(Skill.ATTACK) + " / " + experienceTracker.getGainedXPPerHour(Skill.ATTACK) + "(Hour) Levels gained: " +  experienceTracker.getGainedLevels(Skill.ATTACK), 10, 355);
  193.         g.drawString("Strength XP: " + experienceTracker.getGainedXP(Skill.STRENGTH) + " / " + experienceTracker.getGainedXPPerHour(Skill.STRENGTH) + "(Hour) Levels gained: " +  experienceTracker.getGainedLevels(Skill.STRENGTH), 10, 375);
  194.         g.drawString("Defence XP: " + experienceTracker.getGainedXP(Skill.DEFENCE) + " / " + experienceTracker.getGainedXPPerHour(Skill.DEFENCE) + "(Hour) Levels gained: " +  experienceTracker.getGainedLevels(Skill.DEFENCE), 10, 395);
  195.         g.drawString("Hitpoints XP: " + experienceTracker.getGainedXP(Skill.HITPOINTS) + " / " + experienceTracker.getGainedXPPerHour(Skill.HITPOINTS) + "(Hour) Levels gained: " +  experienceTracker.getGainedLevels(Skill.HITPOINTS), 10, 415);
  196.         g.drawString("State: " + state, 10, 435);
  197.         g.drawString("Drink potion at: " + randomPrayerNum, 410, 435);
  198.         g.drawString("Runtime: " + formatTime(runTime), 200, 435);
  199.     }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement