diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index edc6e0e..55719c3 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,7 +5,7 @@
-
+
@@ -58,8 +58,8 @@
-
+
diff --git a/src/main/java/ParaScript/Main.java b/src/main/java/ParaScript/Main.java
index cac1675..9ea2469 100644
--- a/src/main/java/ParaScript/Main.java
+++ b/src/main/java/ParaScript/Main.java
@@ -45,6 +45,8 @@ public class Main extends Script implements MessageListener, Paintable {
strategies.add(new Thieving());
}
if(Variables.skill_to_train == Skill.ATTACK) {
+ strategies.add(new PickupItems());
+ strategies.add(new BuryBones());
strategies.add(new Fighting());
}
if(Variables.skill_to_train == null) {
diff --git a/src/main/java/ParaScript/data/Variables.java b/src/main/java/ParaScript/data/Variables.java
index 4f275eb..7571162 100644
--- a/src/main/java/ParaScript/data/Variables.java
+++ b/src/main/java/ParaScript/data/Variables.java
@@ -30,13 +30,14 @@ public class Variables {
public static Ores mining_ore_selected = Ores.COPPER_TIN;
public static String mining_method = "Bank";
+ // Fighting
+ public static FightingNpcs fighting_npc_selected = FightingNpcs.MAN_WOMAN;
+ public static boolean fighting_bury_bones = true;
+
// Thieving
public static ThievingNpcs thieving_npc_selected = ThievingNpcs.MAN_WOMAN;
//public static String thieving_method = "None";
- // Fighting
- public static FightingNpcs fighting_npc_selected = FightingNpcs.MAN_WOMAN;
-
// Used for slave accounts
public static String slaveMaster = "";
diff --git a/src/main/java/ParaScript/strategies/BuryBones.java b/src/main/java/ParaScript/strategies/BuryBones.java
new file mode 100644
index 0000000..afeefe0
--- /dev/null
+++ b/src/main/java/ParaScript/strategies/BuryBones.java
@@ -0,0 +1,47 @@
+package ParaScript.strategies;
+
+import ParaScript.data.Variables;
+import org.parabot.environment.api.utils.Time;
+import org.parabot.environment.scripts.framework.Strategy;
+import org.rev317.min.api.methods.Inventory;
+import org.rev317.min.api.methods.Items;
+import org.rev317.min.api.methods.Menu;
+import org.rev317.min.api.methods.Players;
+
+public class BuryBones implements Strategy {
+
+ @Override
+ public boolean activate() {
+ if (Variables.running
+ && Variables.fighting_bury_bones
+ && hasBones()
+ && !Players.getMyPlayer().isInCombat()
+ && Players.getMyPlayer().getAnimation() == -1
+ && Inventory.isFull()) {
+ Variables.setStatus("burying bones");
+ return true;
+ }
+ Variables.setStatus("none");
+ return false;
+ }
+
+ @Override
+ public void execute() {
+ buryBones();
+ }
+
+ private void buryBones(){
+ try {
+ Inventory.getItem(527).interact(Items.Option.SECOND);
+ Time.sleep(250);
+ if (hasBones()) buryBones();
+ } catch (Exception err) {
+ System.out.println("Bone burying error: ¯\\_(ツ)_/¯");
+ }
+ }
+
+ private boolean hasBones(){
+ // Make sure we have bones
+ return Inventory.getItem(527) != null;
+ }
+}
diff --git a/src/main/java/ParaScript/strategies/Fighting.java b/src/main/java/ParaScript/strategies/Fighting.java
index 61bda4a..743b79b 100644
--- a/src/main/java/ParaScript/strategies/Fighting.java
+++ b/src/main/java/ParaScript/strategies/Fighting.java
@@ -30,8 +30,8 @@ public class Fighting implements Strategy {
public void execute() {
victim.interact(Npcs.Option.ATTACK);
Time.sleep(2000);
- // Wait for the Player to finish attacking (max 5 seconds)
- Time.sleep(() -> !Players.getMyPlayer().isInCombat(), 5000);
+ // Wait for the Player to finish attacking (max 30 seconds)
+ Time.sleep(() -> !Players.getMyPlayer().isInCombat(), 30000);
}
private Npc victim(){
diff --git a/src/main/java/ParaScript/strategies/PickupItems.java b/src/main/java/ParaScript/strategies/PickupItems.java
index 87373fc..5543abc 100644
--- a/src/main/java/ParaScript/strategies/PickupItems.java
+++ b/src/main/java/ParaScript/strategies/PickupItems.java
@@ -4,19 +4,19 @@ import ParaScript.data.Variables;
import ParaScript.data.variables.Ores;
import org.parabot.environment.api.utils.Time;
import org.parabot.environment.scripts.framework.Strategy;
-import org.rev317.min.api.methods.GroundItems;
-import org.rev317.min.api.methods.Inventory;
-import org.rev317.min.api.methods.Players;
-import org.rev317.min.api.methods.SceneObjects;
+import org.rev317.min.api.methods.*;
import org.rev317.min.api.wrappers.GroundItem;
import org.rev317.min.api.wrappers.SceneObject;
+import org.rev317.min.api.wrappers.Tile;
public class PickupItems implements Strategy {
+ GroundItem[] items;
@Override
public boolean activate() {
+ items = getItems();
if (Variables.running
- && (Variables.getStatus() == "none" || Variables.getStatus() == "picking up items")
+ && items.length > 0
&& !Players.getMyPlayer().isInCombat()
&& Players.getMyPlayer().getAnimation() == -1
&& !Inventory.isFull()) {
@@ -30,12 +30,10 @@ public class PickupItems implements Strategy {
@Override
public void execute() {
try {
- GroundItem[] items = GroundItems.getNearest(436, 438, 440);
for (GroundItem item : items) {
item.take();
- Time.sleep(1500);
+ Time.sleep(() -> item.distanceTo() < 1, 2000);
if (Inventory.isFull()){
- Variables.setStatus("none");
return;
}
}
@@ -43,4 +41,13 @@ public class PickupItems implements Strategy {
System.out.println("Pickup items error: ¯\\_(ツ)_/¯");
}
}
+
+ private GroundItem[] getItems(){
+ int[] itemIDs = new int[]{};
+ if (Variables.skill_to_train == Skill.ATTACK){
+ if (Variables.fighting_bury_bones)
+ itemIDs = new int[]{526};
+ }
+ return GroundItems.getNearest(itemIDs);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/ParaScript/ui/UI.java b/src/main/java/ParaScript/ui/UI.java
index db3ad31..07c3a2f 100644
--- a/src/main/java/ParaScript/ui/UI.java
+++ b/src/main/java/ParaScript/ui/UI.java
@@ -12,10 +12,7 @@ import org.rev317.min.api.methods.Skill;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
+import java.awt.event.*;
public class UI extends JFrame {
private final ButtonGroup woodcutOptionButtonGroup = new ButtonGroup();
@@ -43,6 +40,7 @@ public class UI extends JFrame {
private JComboBox fightingNpcSelect = new JComboBox();
private JLabel lblFightingNpcCustomID = new JLabel("Custom NPC IDs");
private JTextField fightingNpcCustomID = new JTextField();
+ private JCheckBox fightingBuryBones = new JCheckBox();
// Thieving
private JComboBox thievingNpcSelect = new JComboBox();
@@ -336,6 +334,21 @@ public class UI extends JFrame {
lblFightingNpcCustomID.setVisible(false);
fightingNpcCustomID.setVisible(false);
+ JLabel lblFightingBuryBones = new JLabel("Collect and bury bones");
+ lblFightingBuryBones.setForeground(Color_WhiteSmoke);
+ lblFightingBuryBones.setBounds(40, 80, 130, 20);
+ fightingPanel.add(lblFightingBuryBones);
+ fightingBuryBones.setBackground(Color_WetAsphalt);
+ fightingBuryBones.setForeground(Color_WhiteSmoke);
+ fightingBuryBones.setBounds(15, 80, 20, 20);
+ fightingBuryBones.setSelected(true);
+ fightingBuryBones.addItemListener(new ItemListener() {
+ public void itemStateChanged(ItemEvent e) {
+ Variables.fighting_bury_bones = fightingBuryBones.isSelected();
+ }
+ });
+ fightingPanel.add(fightingBuryBones);
+
/*
* Thieving Panel
*/