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.

~ RandQm's Tasker | Bot Everything! | Various scripts in one script | Scriptception! ~

Featured Replies

  • Author

UPDATES:

 

Combat:

* Will not take arrows when it's to far to walk

  (example at lumbridge goblins: if the bot killed a goblin from behind the fence, no human will run around 10 tiles just for those few arrows.

   This bot won't do that anymore either.)

* Enabled burying bones

* Experience trackers & other tracking info added

* Magic now works, will run away when you're out of runes

 

 

Other:

* Splashing added with random interactions and delays

-> Randomly clicks to stay active (also randomly performs a few random actions here)

-> Attacks a new target of the same type as you started with when out of combat

 

* A few new zombie walker locations added

 

 

Overall:

* Specific task info tracking is now displayed in the GUI in the tracking tab.

 

Click here to download version 1.1 Alpha

 

Note: I started on mining which will be visible as a task, but it does NOT work yet, still under development.

 

g9P0Nni.png

Edited by lisabe96

  • Author

Warning: The splasher will start attacking rats melee when you run out of runes.

This will be fixed on the next update somewhere this weekend together with mining.

  • Author

Mining update delayed due issues with webwalking. Get's stuck frequently when between rocks

Warning: The splasher will start attacking rats melee when you run out of runes.

This will be fixed on the next update somewhere this weekend together with mining.

Make a check for runes --> if no runes are left --> logout or something

 

private boolean isSupplied(){
                	 if(inventory.getAmount(Runes here) >runes amount needed for 1 cast) {
                         return true;
                	
                 }else{
                         return false;
                 }
             }

and then make a check for it -->

if (isSupplied()==false){
	            	status="Logging out";
	            	log("----------------------------------------------------------------");
               	 	log("No resources left, we're stopping the script!");
               	 	log("----------------------------------------------------------------");
               	 	getLogoutTab().logOut();
               	 	stop();
	                
	            }
  • Author

 

Make a check for runes --> if no runes are left --> logout or something

 

private boolean isSupplied(){
                	 if(inventory.getAmount(Runes here) >runes amount needed for 1 cast) {
                         return true;
                	
                 }else{
                         return false;
                 }
             }

and then make a check for it -->

if (isSupplied()==false){
	            	status="Logging out";
	            	log("----------------------------------------------------------------");
               	 	log("No resources left, we're stopping the script!");
               	 	log("----------------------------------------------------------------");
               	 	getLogoutTab().logOut();
               	 	stop();
	                
	            }

Yeah I did, it's already fixed. I just noticed the bug after I already released the new version.

So it will be fixed in the new version, which should have been today if webwalker wasn't broken.

 

Using an enum so I can easily control more spells in the future when I need it;

package rqtasker.utilities;

import org.osbot.rs07.script.Script;

import rqtasker.tasks.impl.combat.CombatUtility;

/**
 * 
 * @author randqm
 * 
 * The available spells.
 *
 */

public enum MagicSpell implements CombatUtility {
	
	WIND_STRIKE(new ItemRequirement("Mind rune", 1), new ItemRequirement("Air rune", 1)),
	WATER_STRIKE(new ItemRequirement("Water rune", 1)
		, new ItemRequirement("Air rune", 1), new ItemRequirement("Mind rune", 1)),
	EARTH_STRIKE(new ItemRequirement("Earth rune", 2)
		, new ItemRequirement("Air rune", 1), new ItemRequirement("Mind rune", 1)),
	FIRE_STRIKE(new ItemRequirement("Fire rune", 3)
		, new ItemRequirement("Air rune", 2), new ItemRequirement("Mind rune", 1)),
	WIND_BOLT(new ItemRequirement("Air rune", 2), new ItemRequirement("Chaos rune", 1)),
	WATER_BOLT(new ItemRequirement("Water rune", 2)
		, new ItemRequirement("Air rune", 2), new ItemRequirement("Chaos rune", 1)),
	EARTH_BOLT(new ItemRequirement("Earth rune", 3)
		, new ItemRequirement("Air rune", 2), new ItemRequirement("Chaos rune", 1)),
	FIRE_BOLT(new ItemRequirement("Fire rune", 4)
		, new ItemRequirement("Air rune", 3), new ItemRequirement("Chaos rune", 1)),
	WIND_BLAST(new ItemRequirement("Air rune", 3), new ItemRequirement("Death rune", 1)),
	WATER_BLAST(new ItemRequirement("Water rune", 3)
		, new ItemRequirement("Air rune", 3), new ItemRequirement("Death rune", 1)),
	EARTH_BLAST(new ItemRequirement("Earth rune", 4)
		, new ItemRequirement("Air rune", 3), new ItemRequirement("Death rune", 1)),
	FIRE_BLAST(new ItemRequirement("Fire rune", 5)
		, new ItemRequirement("Air rune", 4), new ItemRequirement("Death rune", 1)),
	WIND_WAVE(new ItemRequirement("Blood rune", 1), new ItemRequirement("Air rune", 5)),
	WATER_WAVE(new ItemRequirement("Blood rune", 1)
		, new ItemRequirement("Water rune", 7), new ItemRequirement("Air rune", 5)),
	EARTH_WAVE(new ItemRequirement("Blood rune", 1)
		, new ItemRequirement("Earth rune", 7), new ItemRequirement("Air rune", 5)),
	FIRE_WAVE(new ItemRequirement("Fire rune", 7)
		, new ItemRequirement("Blood rune", 1), new ItemRequirement("Air rune", 5)),
		
	SUPERHEAT(new ItemRequirement("Fire rune", 4), new ItemRequirement("Nature rune", 1));
	
	
	/* The requirements for the spell. */
	private final ItemRequirement[] reqs;
	
	
	/**
	 * Creates a new magic combat spell.
	 * 
	 * @param reqs The requirements for the spell.
	 */
	private MagicSpell(ItemRequirement... reqs) {
		this.reqs = reqs;
	}
	
	/**
	 * @return the reqs
	 */
	public ItemRequirement[] getReqs() {
		return reqs;
	}
	
	/**
	 * Retrieves whether we have the required utilities for the spell.
	 * 
	 * @param script The script.
	 * 
	 * @return The result.
	 */
	public boolean hasReqs(Script script) {
		for (ItemRequirement req : reqs) {
			if (req.getName().equals("Air rune")) {
				if (script.getEquipment().contains("Staff of air")
						|| script.getEquipment().contains("Air battlestaff")
						|| script.getEquipment().contains("Mystic air staff")) {
					continue;
				}
			}
			if (req.getName().equals("Fire rune")) {
				if (script.getEquipment().contains("Staff of fire")
						|| script.getEquipment().contains("Fire battlestaff")
						|| script.getEquipment().contains("Mystic fire staff")) {
					continue;
				}
			}
			if (req.getName().equals("Earth rune")) {
				if (script.getEquipment().contains("Staff of earth")
						|| script.getEquipment().contains("Earth battlestaff")
						|| script.getEquipment().contains("Mystic earth staff")) {
					continue;
				}
			}
			if (req.getName().equals("Water rune")) {
				if (script.getEquipment().contains("Staff of water")
						|| script.getEquipment().contains("Water battlestaff")
						|| script.getEquipment().contains("Mystic water staff")) {
					continue;
				}
			}
			int amt = (int)script.getInventory().getAmount(req.getName());
			
			if (amt < req.getAmount()) {
				return false;
			}
		}
		return true;
	}
	
	/**
	 * Retrieves the possible staffs for a rune.
	 * 
	 * @param rune The rune.
	 * 
	 * @return The staffs.
	 */
	public static String[] getStaffsForRune(String rune) {
		String[] staffs = new String[3];
		
		switch (rune) {
		case "Air rune":
			staffs[0] = "Staff of air";
			staffs[1] = "Air battlestaff";
			staffs[2] = "Mystic air staff";
			break;
			
		case "Fire rune":
			staffs[0] = "Staff of fire";
			staffs[1] = "Fire battlestaff";
			staffs[2] = "Mystic fire staff";
			break;
			
		case "Water rune":
			staffs[0] = "Staff of water";
			staffs[1] = "Water battlestaff";
			staffs[2] = "Mystic water staff";
			break;
			
		case "Earth rune":
			staffs[0] = "Staff of earth";
			staffs[1] = "Earth battlestaff";
			staffs[2] = "Mystic earth staff";
			break;
			
		default:
			return null;
		}
		return staffs;
	}
	
	@Override
	public String toString() {
		return StringUtil.formatString(name());
	}

}
 

Edited by lisabe96

Guest
This topic is now closed to further replies.

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.