Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Quest] Rune Mysteries

Featured Replies

Been working on an all-in-one trade restriction lifter, which includes getting 10qp. It's just easier to do Romeo & Juliet and Goblin Diplomacy. I doubt anyone will need it but here's a simple script to finish Rune Mysteries

	public Area dukeHoracioArea = new Area(3208, 3224, 3213, 3218).setPlane(1);
	public Area wizardTower = new Area(3102, 3164, 3104, 3163);
	public Area wizardTowerBasement = new Area(3101, 9574, 3107, 9567).setPlane(0);
	public Area varrockShop = new Area(3251, 3401, 3254, 3400);
	
	private void runeMysteries() throws InterruptedException
	{
		NPC dukeHoracio = getNpcs().closest("Duke Horacio");
		NPC sedridor = getNpcs().closest("Sedridor");
		NPC aubury = getNpcs().closest("Aubury");
		
		if (configs.get(63) == 0)
		{	
			walk(dukeHoracioArea);
		
			dukeHoracio.interact();
			Sleep.sleepUntil(() -> dialogues.clickContinue() && dialogues.completeDialogueU("Have you any quests for me?", "Sure, no problem."), 5000);
		}
		
		if (configs.get(63) == 1 || configs.get(63) == 2)
		{
			walk(wizardTowerBasement);
			
			sedridor.interact();
			Sleep.sleepUntil(() ->  dialogues.clickContinue() && dialogues.completeDialogueU("I'm looking for the head wizard.", "Ok, here you are.", "Yes, certainly."), 5000);
		}
		
		if (configs.get(63) == 3)
		{
			walk(varrockShop);

			aubury.interact();
			Sleep.sleepUntil(() -> dialogues.clickContinue() && dialogues.completeDialogueU("I have been sent here with a package for you."), 5000);
		}
		
		if (configs.get(63) == 4)
		{
			aubury.interact();
			Sleep.sleepUntil(() -> dialogues.clickContinue() && !getDialogues().inDialogue(), 5000);
		}
		
		if (configs.get(63) == 5)
		{
			walk(wizardTowerBasement);
	
			sedridor.interact();
			Sleep.sleepUntil(() -> dialogues.clickContinue() && !getDialogues().inDialogue(), 20000);
		}	
	}

	public void walk(Area x) throws InterruptedException
	{
		if (!x.contains(myPosition()))
			getWalking().webWalk(x);
	}

I'm sure there's plenty to be improved upon but I figured maybe it'll help someone.

Already have this but good job, should be useful for other scripters, especially the configs.

I recommend adding a few checks to prevent needless calls, and prevent nullpointers, e.g. checking if the npcs exist, check if store is open, check if dialogues are 'isPendingOption', and so on.

  • Author
2 minutes ago, Czar said:

Already have this but good job, should be useful for other scripters, especially the configs.

I recommend adding a few checks to prevent needless calls, and prevent nullpointers, e.g. checking if the npcs exist, check if store is open, check if dialogues are 'isPendingOption', and so on.

Will do, if not for this little script then for the other stuff I'm working. I definitely catch nullpointers in the log all the time, something I need to improve on. I just got more acquainted with the dialogue side of the API so I'll make sure to brush up on more. Thanks man

Awesome idea and thanks for sharing to the community!

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.