LoudPacks Posted March 31, 2016 Share Posted March 31, 2016 Written for lem0n api but you can easily change the imports and TaskScript to Script. import org.osbot.rs07.api.def.ItemDefinition; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.api.ui.RS2Widget; import org.osbot.rs07.utility.ConditionalSleep; import lemons.api.script.TaskScript; public class SafeDepositBox { private TaskScript script; private Area bank; public SafeDepositBox(TaskScript script, Area bank) { this.script = script; this.bank = bank; } public boolean isOpen() { RS2Widget openWidget = script.getWidgets().get(230, 4, 1); if (openWidget != null) { return true; } return false; } public boolean openBox() { NPC wizard = script.getNpcs().closest("Financial Wizard"); if (wizard != null && !isOpen() && bank.contains(script.myPlayer())) { wizard.interact("Deposit-box"); new ConditionalSleep(1500, 2000) { public boolean condition() { return isOpen(); } }.sleep(); return true; } script.log("Not in bank! Unable to interact with financial wizard!"); return false; } public boolean closeBox() { RS2Widget closeWidget = script.getWidgets().get(230, 4, 13); if (closeWidget != null && isOpen()) { closeWidget.interact("Close"); new ConditionalSleep(1500, 2000) { public boolean condition() { return !isOpen(); } }.sleep(); } return true; } public boolean depositAll() { RS2Widget depositAllWidget = script.getWidgets().get(230, 10); long freeInventCount = script.getInventory().getEmptySlots(); if (depositAllWidget != null) { depositAllWidget.interact("Deposit inventory"); new ConditionalSleep(1500, 2000) { public boolean condition() { return script.getInventory().getEmptySlots() > freeInventCount; } }.sleep(); } return true; } public boolean depositAllWorn() { RS2Widget depositAllWornWidget = script.getWidgets().get(230, 11); long freeInventCount = script.getInventory().getEmptySlots(); if (depositAllWornWidget != null) { depositAllWornWidget.interact("Deposit worn items"); new ConditionalSleep(1500, 2000) { public boolean condition() { return script.getInventory().getEmptySlots() > freeInventCount; } }.sleep(); } return true; } public boolean withdrawOne(String itemName) { RS2Widget containerParentWidget = script.getWidgets().get(230, 5); if (containerParentWidget != null) { for (RS2Widget child : containerParentWidget.getChildWidgets()) { if (child != null && getName(child.getItemId()).equalsIgnoreCase(itemName)) { child.interact("Withdraw-1"); new ConditionalSleep(950, 1500) { public boolean condition() { return false; } }.sleep(); } } } return true; } public String getName(int itemID) { ItemDefinition itemDef = ItemDefinition.forId(itemID); if (itemDef != null) { String itemName = itemDef.getName(); if (itemName != null) { return itemName; } } return ""; } } Quote Link to comment Share on other sites More sharing options...