Chaos Temple Bone Burier
My first and probably last script I made purely for fun. It picks up the bones in Chaos Temple and buries them when the inventory gets full, quite simple, eh?
import java.awt.*;
import org.osbot.script.Script;
import org.osbot.script.ScriptManifest;
import org.osbot.script.mouse.*;
import org.osbot.script.rs2.*;
import org.osbot.script.rs2.map.Position;
import org.osbot.script.rs2.model.GroundItem;
import org.osbot.script.rs2.model.Item;
import org.osbot.script.rs2.model.PrimaryObject;
import org.osbot.script.rs2.model.RS2Object;
import org.osbot.script.rs2.ui.*;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.net.URL;
import org.osbot.script.rs2.model.*;
import javax.swing.*;
import java.awt.Image;
import java.awt.*;
import java.awt.event.*;
import java.rmi.server.LogStream;
@ScriptManifest(name = "ChaosTempleBoneBurier", author = "Harha", version = 0.1D, info="Picks up bones inside the Chaos Temple and then buries them.")
class CTBB extends Script {
Position start = new Position(3236, 3605, 0)
Area area = new Area(3231, 3612, 3244, 3603)
enum State {
PICKING, BURYING
}
def slot = null
def buried = 0
def expGained = 0
def state = State.PICKING
def startTime = null
def nearestBone = null
private final Font font1 = new Font("Calibri", 1, 12)
private final Color color1 = new Color(255, 255, 255);
void onStart() {
startTime = System.currentTimeMillis();
if (client.getInventory().isFull())
state = State.BURYING
log("Chaos Temple Bone Burier Started!")
}
int onLoop() throws InterruptedException {
try {
switch(state) {
case State.PICKING:
return onPicking();
case State.BURYING:
return onBurying();
}
return 20 + gRandom(100, 100);
} catch (InterruptedException e) {
throw e;
} catch (Exception e) {
e.printStackTrace();
return 100 + gRandom(200, 100);
}
}
void onMessage(String message) {
if (message == "You bury the bones.") {
buried++
expGained += 4.5
}
log(message)
}
void onPaint(Graphics g) {
g.setFont(font1)
g.setColor(color1)
g.drawString(":: Chaos Temple Bone Burier by Harha", 325, 12)
g.drawString(":: Bones buried: ${buried}", 325, 24)
g.drawString(":: Experinece gained: ${expGained}", 325, 36)
}
int onBurying() {
if (currentTab() != Tab.INVENTORY){
openTab(Tab.INVENTORY)
}
for (int slot = 0; slot < 28; slot++) {
Item item = client.getInventory().getItems()[slot]
if (item == null) {
log("Unknown item at slot "+slot+", skipping...")
continue;
}
if (item.getId() == 526) {
client.getInventory().interactWithSlot(slot, "Bury")
sleep(925 + gRandom(750, 1000))
}
if (item.getId() == 1971) {
client.getInventory().interactWithSlot(slot, "Eat")
}
if (item.getId() == 1917) {
client.getInventory().interactWithSlot(slot, "Drink")
}
}
state = State.PICKING
}
int onPicking() {
if (client.getInventory().isFull())
state = State.BURYING
if (!isRunning() && random(25) == 12){
setRunning(true)
}
else if (client.getMyPlayer().isMoving() == false) {
GroundItem grounditem = closestGroundItem(area, 526)
if (random(100) > 90) {
client.moveCameraToPosition(grounditem.getPosition())
}
grounditem.interact("Take")
}
sleep(500 + gRandom(250, 666))
}
}
Save as CTBB.groovy in your scripts folder.