rendered paste bodyimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.rsbot.event.events.MessageEvent;
import org.rsbot.event.listeners.MessageListener;
import org.rsbot.event.listeners.PaintListener;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.methods.Skills;
import org.rsbot.script.wrappers.RSItem;
@ScriptManifest(name = "Soviet's Bone Burier", authors = {"Soviet"}, keywords = "Flip Merchant", version = 1.1,
description = "Flip Merchanter")
public class SovietsBoneBurier extends Script implements PaintListener,
MessageListener{
// Bone IDs
public int normalBonesID = 526;
public int monkeyBonesID = 528;
public int bigBonesID = 532;
public int babyDragonBonesID = 534;
public int dragonBonesID = 536;
public int dagannothBonesID = 6729;
public int frostDragonBonesID = 18832;
public int boneID;
public int bones[] = {526, 528, 532, 534, 536, 6729, 18832};
// Paint Variables
public int startLevel =0;
public int startExp = 0;
public int bonesBuried = 0;
public int bonesPH = 0;
public int expGained = 0;
public int expPH = 0;
public long startTime = 0;
public String stats;
// GUI Variables
private boolean guiWait = true;
Gui g = new Gui();
// Method Helpers
boolean all = false;
int count;
// Burial Path
private final static int[] path = { 0, 1, 2, 3, 7, 6, 5, 4, 8, 9, 10, 11,
15, 14, 13, 12, 16, 17, 18, 19, 23, 22, 21, 20, 24, 25, 26, 27 };
public int slot;
public boolean onStart(){
startTime = System.currentTimeMillis();
startLevel = skills.getRealLevel(Skills.PRAYER);
startExp = skills.getCurrentExp(Skills.PRAYER);
g.setVisible(true);
while(guiWait) sleep (500);
return true;
}
public int loop(){
boneID = bones[count];
if(all == true){
bury();
}
else {
if (inventory.contains(boneID)) {
bury();
return 0;
} else if (!inventory.contains(boneID)) {
bank();
return 0;
}
}
return 100;
}
private int bury() {
boneID = bones[count];
int sleep = random(100, 400);
if(inventory.containsOneOf(boneID)) {
RSItem bone = inventory.getItems()[path[slot]];
if (bone != null && bone.getID() == boneID) {
bone.doAction("Bury");
} else
sleep = random(10, 20);
slot++;
if(slot >= path.length)
slot = 0;
return sleep;
}
return sleep;
}
private int bank() {
slot = 0;
mouse.setSpeed(random(3,5));
if (!bank.isOpen()) {
bank.open();
return 0;
} else if (bank.isOpen()) {
for (int i = 0; i < 100 && bank.getItem(boneID) == null; i++) {
sleep(20);
}
bank.depositAll();
if (bank.getItem(boneID) != null) {
if (withdraw(boneID, 0)) {
if (bank.close()) {
for (int i = 0; i < 200 && bank.isOpen() || i < 200
&& !inventory.contains(boneID); i++) {
sleep(10);
}
}
}
}
else if (bank.getItem(boneID) == null && all == true){
count++;
boneID = bones[count];
if (count == 7){
log("Out of bones to bury, stopping script!");
env.saveScreenshot(true);
stopScript();
}
else if(bank.getItem(boneID) == null && all == false){
log("Out of bones to bury, stopping script!");
env.saveScreenshot(true);
stopScript();
}
return 0;
}
}
return 0;
}
// Credit to Apex for custom bank methods
private boolean withdraw(int itemId, int amount) {
if (bank.isOpen()) {
if (bank.getItem(itemId) == null) {
for (int i = 0; i < 100 && bank.getItem(itemId) == null; i++) {
sleep(10);
}
}
if (bank.getItem(itemId) != null) {
if (amount == 0) {
if (bank.getItem(itemId).doAction("Withdraw-All")) {
for (int i = 0; i < 100
&& inventory.getItem(itemId) == null; i++) {
sleep(25);
}
if (inventory.getItem(itemId) != null) {
return true;
}
}
} else if (amount != 0) {
if (bank.getItem(itemId).doAction("Withdraw-" + amount)) {
for (int i = 0; i < 100
&& inventory.getItem(itemId) == null; i++) {
sleep(25);
}
if (inventory.getItem(itemId) != null) {
return true;
}
} else if (!bank.getItem(itemId).doAction(
"Withdraw-" + amount)) {
if (bank.getItem(itemId).doAction("Withdraw-X")) {
sleep(random(1000, 1300));
keyboard.sendText("" + amount, true);
for (int i = 0; i < 100
&& inventory.getItem(itemId) == null; i++) {
sleep(25);
}
if (inventory.getItem(itemId) != null) {
return true;
}
}
}
}
}
}
return false;
}
public void onRepaint(Graphics g) {
long millis = System.currentTimeMillis() - startTime;
long hours = millis / (1000 * 60 * 60);
millis -= hours * (1000 * 60 * 60);
long minutes = millis / (1000 * 60);
millis -= minutes * (1000 * 60);
long seconds = millis / 1000;
stats = "TR: " + hours + ":" + minutes + ":" + seconds + " | BB: " + bonesBuried +
" | B/H: " + bonesPH + " | XP " + expGained + " | XP/H: " + expPH + " | Soviet's Bone Burier v1.1 ";
/* Cast object for rendering extended graphics and turn on antialiasing for text. */
final Graphics2D graphics2d = (Graphics2D)g;
final Composite originalComposite = graphics2d.getComposite();
graphics2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
/* Declare the starting position (x, y) and height for the black background. */
final int height = 15, startX = 4, startY = game.getHeight() - 165 - height;
/* Draw the black transparent bar, used as background in the progress-report. */
graphics2d.setPaint(Color.BLACK);
graphics2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.65F));
graphics2d.fill(new Rectangle(startX, startY, game.getWidth() - 253, height));
graphics2d.setComposite(originalComposite);
/* Draw the content of the experience progress-bar. */
graphics2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.50F));
graphics2d.setComposite(originalComposite);
/* The statistics to be printed right of the experience progress-bar. */
int adjustmentX = 0;
/* Calculate information for display on the black bar. */
bonesPH = (int) (3600000.0 / (System.currentTimeMillis() - startTime) * bonesBuried);
expGained = (skills.getCurrentExp(Skills.PRAYER) - startExp);
expPH = (int) (3600000.0 / (System.currentTimeMillis() - startTime) * expGained);
/* Show the previously calculated statistics on the black bar. */
graphics2d.setColor(Color.WHITE);
graphics2d.setFont(new Font("Consolas", Font.PLAIN, 10));
graphics2d.drawString(stats, startX + 7, startY + height);
}
@Override
public void messageReceived(MessageEvent e) {
String x = e.getMessage().toLowerCase();
if (x.contains("dig a hole in")){
bonesBuried++;
}
} class Gui extends JFrame {
public Gui() {
initComponents();
}
private void button1ActionPerformed(ActionEvent e) {
String chosen = BoneSelected.getSelectedItem().toString();
if(chosen.equals("Big Bones")){
count = 2;
log ("Burying Big Bones");
}else if(chosen.equals("Normal Bones")){
count = 0;
log ("Burying Normal Bones");
}else if(chosen.equals("Monkey Bones")){
count = 1;
log ("Burying Monkey Bones");
}else if(chosen.equals("Dragon Bones")){
count = 4;
log ("Burying Dragon Bones");
}else if(chosen.equals("Baby Dragon Bones")){
boneID = count = 3;
log ("Burying Baby Dragon Bones");
}else if(chosen.equals("Dagannoth Bones")){
boneID = count = 5;
log ("Burying Dagannoth Bones");
}else if(chosen.equals("Frost Dragon Bones")){
boneID = count = 6;
log ("Burying Frost Dragon Bones");
}else if(chosen.equals("All")){
all = true;
count = 0;
}
guiWait = false;
g.dispose();
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
label1 = new JLabel();
label2 = new JLabel();
BoneSelected = new JComboBox();
button1 = new JButton();
//======== this ========
Container contentPane = getContentPane();
//---- label1 ----
label1.setText("Soviet's Bone Burier");
label1.setFont(label1.getFont().deriveFont(label1.getFont().getSize() + 8f));
//---- label2 ----
label2.setText("Bones to Bury:");
label2.setFont(label2.getFont().deriveFont(label2.getFont().getSize() + 4f));
//---- BoneSelected ----
BoneSelected.setModel(new DefaultComboBoxModel(new String[] {
"Big Bones",
"Monkey Bones",
"Normal Bones",
"Baby Dragon Bones",
"Dragon Bones",
"Dagannoth Bones",
"Frost Dragon Bones",
"All"
}));
//---- button1 ----
button1.setText("START");
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button1ActionPerformed(e);
}
});
GroupLayout contentPaneLayout = new GroupLayout(contentPane);
contentPane.setLayout(contentPaneLayout);
contentPaneLayout.setHorizontalGroup(
contentPaneLayout.createParallelGroup()
.addGroup(contentPaneLayout.createSequentialGroup()
.addGroup(contentPaneLayout.createParallelGroup()
.addGroup(contentPaneLayout.createSequentialGroup()
.addGap(45, 45, 45)
.addComponent(label1, GroupLayout.PREFERRED_SIZE, 179, GroupLayout.PREFERRED_SIZE))
.addGroup(contentPaneLayout.createSequentialGroup()
.addContainerGap()
.addComponent(label2, GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(BoneSelected, GroupLayout.PREFERRED_SIZE, 120, GroupLayout.PREFERRED_SIZE)))
.addContainerGap(30, Short.MAX_VALUE))
.addGroup(GroupLayout.Alignment.TRAILING, contentPaneLayout.createSequentialGroup()
.addContainerGap(65, Short.MAX_VALUE)
.addComponent(button1, GroupLayout.PREFERRED_SIZE, 151, GroupLayout.PREFERRED_SIZE)
.addGap(56, 56, 56))
);
contentPaneLayout.setVerticalGroup(
contentPaneLayout.createParallelGroup()
.addGroup(contentPaneLayout.createSequentialGroup()
.addComponent(label1)
.addGap(18, 18, 18)
.addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(label2)
.addComponent(BoneSelected, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 60, Short.MAX_VALUE)
.addComponent(button1, GroupLayout.PREFERRED_SIZE, 35, GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
setLocationRelativeTo(getOwner());
// JFormDesigner - End of component initialization //GEN-END:initComponents
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
// Generated using JFormDesigner Evaluation license - Dom Das
private JLabel label1;
private JLabel label2;
private JComboBox BoneSelected;
private JButton button1;
// JFormDesigner - End of variables declaration //GEN-END:variables
}
}