Jump to content

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


lisabe96

Recommended Posts

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
Link to comment
Share on other sites

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();
	                
	            }
Link to comment
Share on other sites

 

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
  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...