lisabe96 Posted January 14, 2016 Author Share Posted January 14, 2016 (edited) 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. Edited January 14, 2016 by lisabe96 Link to comment Share on other sites More sharing options...
lisabe96 Posted January 14, 2016 Author Share Posted January 14, 2016 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. Link to comment Share on other sites More sharing options...
lisabe96 Posted January 17, 2016 Author Share Posted January 17, 2016 Mining update delayed due issues with webwalking. Get's stuck frequently when between rocks Link to comment Share on other sites More sharing options...
Eagle Scripts Posted January 17, 2016 Share Posted January 17, 2016 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 More sharing options...
lisabe96 Posted January 17, 2016 Author Share Posted January 17, 2016 (edited) 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 January 17, 2016 by lisabe96 1 Link to comment Share on other sites More sharing options...