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 */