Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.osbot.rs07.api.filter.ContainsNameFilter;
- import org.osbot.rs07.api.map.Position;
- import org.osbot.rs07.api.map.constants.Banks;
- import org.osbot.rs07.api.ui.PrayerButton;
- import org.osbot.rs07.api.ui.Skill;
- import org.osbot.rs07.api.ui.Tab;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- import org.osbot.rs07.utility.ConditionalSleep;
- import java.awt.*;
- import javax.swing.text.html.HTMLDocument.HTMLReader.SpecialAction;
- @ScriptManifest(name = "NMZ", author = "Remi", version = 1.0, info = "", logo = "")
- public class NMZ extends Script {
- private long startTime, runTime;
- public String state;
- public int randomPrayerNum = 15;
- public boolean outOfPrayerPots = false, hasTalkedToDom = false;
- @Override
- public void onStart() {
- experienceTracker.startAll();
- startTime = System.currentTimeMillis();
- }
- public void timer(boolean why) {
- new ConditionalSleep(10000) {
- @Override
- public boolean condition() throws InterruptedException {
- return why;
- }
- }.sleep();
- }
- @SuppressWarnings("unchecked")
- @Override
- public int onLoop() throws InterruptedException {
- if (!combat.isSpecialActivated() && combat.getSpecialPercentage() >= 55) {
- if (!tabs.isOpen(Tab.ATTACK)) {
- tabs.open(Tab.ATTACK);
- sleep(600);
- }
- combat.toggleSpecialAttack(true);
- }
- if (skills.getDynamic(Skill.PRAYER) <= randomPrayerNum) {
- state = "Drinking potion";
- inventory.getItem(new ContainsNameFilter<>("Prayer")).interact();
- randomPrayerNum = random(10, 35);
- timer(skills.getDynamic(Skill.PRAYER) <= randomPrayerNum);
- }
- if (inventory.isItemSelected()) {
- state = "Deselecting item";
- inventory.deselectItem();
- }
- if (!inventory.contains(item -> item.getName().startsWith("Prayer"))) {
- outOfPrayerPots = true;
- }
- if (!Banks.YANILLE.contains(myPlayer()) && outOfPrayerPots && map.canReach(Banks.YANILLE.getRandomPosition())) {
- sleep(random(3500, 4000));
- state = "Walking to Yanille Bank";
- walking.webWalk(Banks.YANILLE.getRandomPosition());
- }
- if (Banks.YANILLE.contains(myPlayer()) && !inventory.contains(item -> item.getName().startsWith("Prayer")) && !bank.isOpen()) {
- state = "Opening bank";
- bank.open();
- timer(bank.isOpen());
- }
- if (objects.closestThatContains("Recurrent damage") != null && objects.closestThatContains("Recurrent damage").hasAction("Activate")) {
- objects.closestThatContains("Recurrent damage").interact();
- timer(objects.closestThatContains("Recurrent damage") == null);
- }
- if (objects.closestThatContains("Power surge") != null && objects.closestThatContains("Power surge").hasAction("Activate")) {
- objects.closestThatContains("Power surge").interact();
- timer(objects.closestThatContains("Power surge") == null);
- }
- if (objects.closestThatContains("Zapper") != null && objects.closestThatContains("Zapper").hasAction("Activate")) {
- objects.closestThatContains("Zapper").interact();
- timer(objects.closestThatContains("Zapper") == null);
- }
- if (bank.isOpen()) {
- if (!inventory.contains("Prayer potion(4)") && !inventory.isEmpty()) {
- state = "Depositing";
- bank.depositAllExcept("Prayer potion(4)");
- timer(inventory.isEmpty());
- }
- if (bank.contains("Prayer potion(4)")) {
- state = "Withdrawing";
- bank.withdrawAll("Prayer potion(4)");
- timer(inventory.contains("Prayer potion(4)"));
- outOfPrayerPots = false;
- bank.close();
- } else {
- state = "Stopping";
- bank.close();
- timer(!bank.isOpen());
- stop();
- }
- }
- if (Banks.YANILLE.contains(myPlayer()) && !outOfPrayerPots) {
- state = "Walking to Dominic";
- walking.webWalk(new Position(2609, 3114, 0));
- }
- if (inventory.contains(item -> item.getName().startsWith("Prayer")) && npcs.closest("Dominic onion") != null && !outOfPrayerPots && !hasTalkedToDom) {
- if (!dialogues.inDialogue()) {
- state = "Talking to Dominic";
- npcs.closest("Dominic onion").interact("Dream");
- sleep(random(3000, 3500));
- }
- if (widgets.getWidgetContainingText("in my coffer") != null) {
- stop();
- }
- widgets.getWidgetContainingText("Previous").interact();
- sleep(random(2500, 3500));
- dialogues.clickContinue();
- sleep(random(2500, 3500));
- widgets.getWidgetContainingText("Yes").interact();
- sleep(random(2500, 3500));
- dialogues.clickContinue();
- hasTalkedToDom = true;
- }
- if (objects.closestThatContains("Potion") != null && hasTalkedToDom && npcs.closest("Dominic onion") != null) {
- state = "Entering world";
- objects.closestThatContains("Potion").interact("Drink");
- sleep(random(2500, 3500));
- widgets.get(129, 6, 0).interact();
- timer(npcs.closest("Dominic onion") == null);
- sleep(random(5000, 12000));
- hasTalkedToDom = false;
- walking.walk(new Position(myPlayer().getX(), myPlayer().getY() + 10, 0));
- prayer.set(PrayerButton.PROTECT_FROM_MELEE, true);
- }
- if (!prayer.isActivated(PrayerButton.PROTECT_FROM_MELEE) && skills.getDynamic(Skill.PRAYER) > 0 && combat.isFighting()) {
- state = "Enabling prayer";
- prayer.set(PrayerButton.PROTECT_FROM_MELEE, true);
- }
- state = "Sleeping";
- return 600;
- }
- public final String formatTime(final long ms){
- long s = ms / 1000, m = s / 60, h = m / 60;
- s %= 60; m %= 60; h %= 24;
- return String.format("%02d:%02d:%02d", h, m, s);
- }
- private final RenderingHints antialiasing = new RenderingHints(
- RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- private final Color color1 = new Color(0, 0, 0, 230);
- private final Color color2 = new Color(255, 0, 51);
- private final Color color3 = new Color(255, 255, 255);
- private final BasicStroke stroke1 = new BasicStroke(1);
- private final Font font1 = new Font("Arial", 0, 12);
- @Override
- public void onPaint(Graphics2D g) {
- runTime = System.currentTimeMillis() - startTime;
- g.setRenderingHints(antialiasing);
- g.setColor(color1);
- g.fillRect(1, 336, 516, 105);
- g.setColor(color2);
- g.setStroke(stroke1);
- g.drawRect(1, 336, 516, 105);
- g.setFont(font1);
- g.setColor(color3);
- g.drawString("NMZ Slayer", 444, 355);
- g.drawString("Attack XP: " + experienceTracker.getGainedXP(Skill.ATTACK) + " / " + experienceTracker.getGainedXPPerHour(Skill.ATTACK) + "(Hour) Levels gained: " + experienceTracker.getGainedLevels(Skill.ATTACK), 10, 355);
- g.drawString("Strength XP: " + experienceTracker.getGainedXP(Skill.STRENGTH) + " / " + experienceTracker.getGainedXPPerHour(Skill.STRENGTH) + "(Hour) Levels gained: " + experienceTracker.getGainedLevels(Skill.STRENGTH), 10, 375);
- g.drawString("Defence XP: " + experienceTracker.getGainedXP(Skill.DEFENCE) + " / " + experienceTracker.getGainedXPPerHour(Skill.DEFENCE) + "(Hour) Levels gained: " + experienceTracker.getGainedLevels(Skill.DEFENCE), 10, 395);
- g.drawString("Hitpoints XP: " + experienceTracker.getGainedXP(Skill.HITPOINTS) + " / " + experienceTracker.getGainedXPPerHour(Skill.HITPOINTS) + "(Hour) Levels gained: " + experienceTracker.getGainedLevels(Skill.HITPOINTS), 10, 415);
- g.drawString("State: " + state, 10, 435);
- g.drawString("Drink potion at: " + randomPrayerNum, 410, 435);
- g.drawString("Runtime: " + formatTime(runTime), 200, 435);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement