From 0ff447fc99310f9e810e978f1966dc80dbeefcb3 Mon Sep 17 00:00:00 2001 From: Dark98 Date: Sun, 20 Oct 2019 20:30:28 +0100 Subject: [PATCH] Renamed to 2006AIO & Got basic thieving bot working --- .idea/vcs.xml | 1 - .idea/workspace.xml | 15 +++++- ParaScript.iml | 2 +- src/main/java/ParaScript/Main.java | 15 ++++-- src/main/java/ParaScript/data/Variables.java | 34 ++++++++++++ .../java/ParaScript/data/variables/Npcs.java | 37 +++++++++++++ .../java/ParaScript/strategies/Thieving.java | 13 +++-- src/main/java/ParaScript/ui/UI.java | 53 ++++++++++++++++++- target/classes/config.xml | 2 +- 9 files changed, 159 insertions(+), 13 deletions(-) create mode 100644 src/main/java/ParaScript/data/variables/Npcs.java diff --git a/.idea/vcs.xml b/.idea/vcs.xml index e9a673a..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,6 +2,5 @@ - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1c413de..b8e97f9 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,8 +2,15 @@ + + - + + + + + + + + + + + \ No newline at end of file diff --git a/ParaScript.iml b/ParaScript.iml index b12236a..666191e 100644 --- a/ParaScript.iml +++ b/ParaScript.iml @@ -1,7 +1,7 @@ - + diff --git a/src/main/java/ParaScript/Main.java b/src/main/java/ParaScript/Main.java index 5b08ebf..de735fc 100644 --- a/src/main/java/ParaScript/Main.java +++ b/src/main/java/ParaScript/Main.java @@ -16,7 +16,7 @@ import org.rev317.min.api.methods.Skill; import java.awt.*; import java.util.ArrayList; -@ScriptManifest(author = "RedSparr0w", category = Category.OTHER, description = "ParaScript", name = "ParaScript", servers = { "2006rebotted" }, version = 1) +@ScriptManifest(author = "RedSparr0w & Dark98", category = Category.OTHER, description = "2006 AIO Script", name = "2006AIO", servers = { "2006rebotted" }, version = 1) public class Main extends Script implements MessageListener, Paintable { private final ArrayList strategies = new ArrayList(); @@ -41,6 +41,9 @@ public class Main extends Script implements MessageListener, Paintable { strategies.add(new Bank()); strategies.add(new Walk()); } + if(Variables.skill_to_train == Skill.THIEVING) { + strategies.add(new Thieving()); + } if(Variables.skill_to_train == null) { strategies.add(new Bank()); strategies.add(new Walk()); @@ -72,9 +75,9 @@ public class Main extends Script implements MessageListener, Paintable { g.fillRect(355, 252, 160, 85); g.setColor(Color.WHITE); - g.setFont(new Font("Arial", 1, 14)); - g.drawString("ParaScript", 360, 247); - g.setFont(new Font("Arial", 1, 11)); + g.setFont(new Font("Arial", Font.BOLD, 14)); + g.drawString("2006AIO", 360, 247); + g.setFont(new Font("Arial", Font.BOLD, 11)); g.drawString("Status: " + Variables.getStatus(), 360, 270); g.drawString("Items(P/H): " + Methods.formatNumber(Variables.itemsGained) + "(" + Methods.formatNumber(Variables.SCRIPT_TIMER.getPerHour(Variables.itemsGained)) + ")", 360, 290); g.drawString("EXP(P/H): " + Methods.formatNumber((int) Variables.expGained) + "(" + Methods.formatNumber(Variables.SCRIPT_TIMER.getPerHour((int) Variables.expGained)) + ")", 360, 310); @@ -89,6 +92,10 @@ public class Main extends Script implements MessageListener, Paintable { Variables.addItemGained(1); Variables.updateExpGained(); } + if (message.getMessage().startsWith("You pick the ")) { + Variables.addItemGained(1); + Variables.updateExpGained(); + } if (message.getMessage().contains("Congratulations, you advanced a woodcutting level.")) { // add in level up to paint } diff --git a/src/main/java/ParaScript/data/Variables.java b/src/main/java/ParaScript/data/Variables.java index fffa30d..6bf67c7 100644 --- a/src/main/java/ParaScript/data/Variables.java +++ b/src/main/java/ParaScript/data/Variables.java @@ -1,5 +1,6 @@ package ParaScript.data; +import ParaScript.data.variables.Npcs; import ParaScript.data.variables.Ores; import ParaScript.data.variables.Trees; import ParaScript.data.variables.Zone; @@ -34,6 +35,11 @@ public class Variables { public static Ores mining_ore_selected = Ores.COPPER_TIN; public static String mining_method = "Bank"; + //Thieving + public static Npcs thieving_npc_selected = Npcs.MAN; + public static String thieving_method = "None"; + + // Used for slave accounts public static String slaveMaster = ""; @@ -81,7 +87,35 @@ public class Variables { new Tile(3287, 3370), }; + //mining lumbridge + public final static Zone LUMBRIDGE_BANK_ZONE = new Zone(new Tile(3205, 3225), new Tile(3211, 3214)); + public final static Zone LUMBRIDGE_MINE_ZONE = new Zone(new Tile(3276, 3375), new Tile(3298, 3354)); + public final static Tile[] LUMBRIDGE_EAST_MINE_PATH_TO_BANK = new Tile[]{ + new Tile(3289, 3373), + new Tile(3289, 3373), + new Tile(3290, 3384), + new Tile(3290, 3395), + new Tile(3289, 3406), + new Tile(3281, 3416), + new Tile(3275, 3425), + new Tile(3264, 3426), + new Tile(3253, 3425), + new Tile(3253, 3420), + }; + + public final static Tile[] LUMBRIDGE_BANK_PATH_TO_MINE = new Tile[] { + new Tile(3253, 3423), + new Tile(3253, 3423), + new Tile(3262, 3427), + new Tile(3273, 3427), + new Tile(3280, 3418), + new Tile(3288, 3408), + new Tile(3290, 3397), + new Tile(3290, 3386), + new Tile(3288, 3375), + new Tile(3287, 3370), + }; public static String getAccountUsername() { return username; } public static void setAccountUsername(String i) { username = i; } diff --git a/src/main/java/ParaScript/data/variables/Npcs.java b/src/main/java/ParaScript/data/variables/Npcs.java new file mode 100644 index 0000000..bbd352a --- /dev/null +++ b/src/main/java/ParaScript/data/variables/Npcs.java @@ -0,0 +1,37 @@ +package ParaScript.data.variables; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public enum Npcs { + MAN("Man", new int[]{3}, 8); + + private String name; + private int[] ids; + private double xp; + + Npcs(String name, int[] ids, double xp) { + this.name = name; + this.ids = ids; + this.xp = xp; + } + + public static String[] toStringArray() { + List enumList = Arrays.asList(Npcs.values()); + List locationsArray = new ArrayList<>(); + for (Npcs npc : enumList) { + locationsArray.add(npc.name); + } + + String[] simpleArray = new String[ locationsArray.size() ]; + locationsArray.toArray( simpleArray ); + return(simpleArray); + } + + public String getName() { return this.name; } + + public int[] getIDs() { return this.ids; } + + public double getXP() { return this.xp; } +} diff --git a/src/main/java/ParaScript/strategies/Thieving.java b/src/main/java/ParaScript/strategies/Thieving.java index 8dc13bc..8ab18dc 100644 --- a/src/main/java/ParaScript/strategies/Thieving.java +++ b/src/main/java/ParaScript/strategies/Thieving.java @@ -4,12 +4,14 @@ 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.Npcs; import org.rev317.min.api.methods.Players; import org.rev317.min.api.methods.SceneObjects; +import org.rev317.min.api.wrappers.Npc; import org.rev317.min.api.wrappers.SceneObject; public class Thieving implements Strategy { - private SceneObject victim; + private Npc victim; @Override public boolean activate() { @@ -19,21 +21,24 @@ public class Thieving implements Strategy { && !Players.getMyPlayer().isInCombat() && Players.getMyPlayer().getAnimation() == -1 && !Inventory.isFull()) { + Variables.setStatus("thieving"); return true; } + Variables.setStatus("none"); return false; } @Override public void execute() { - victim.interact(SceneObjects.Option.STEAL_FROM); + victim.interact(Npcs.Option.PICKPOCKET); Time.sleep(1000); //Wait for the Player to finish pickpocketing Time.sleep(() -> Players.getMyPlayer().getAnimation() == -1, 500); } - private SceneObject victim(){ - for(SceneObject victim : SceneObjects.getNearest(1, 2, 3, 4)){ + private Npc victim(){ + int[] npc_to_thieve = Variables.thieving_npc_selected.getIDs(); + for(Npc victim : Npcs.getNearest(npc_to_thieve)){ if(victim != null){ return victim; } diff --git a/src/main/java/ParaScript/ui/UI.java b/src/main/java/ParaScript/ui/UI.java index 21a4ac8..c1275c8 100644 --- a/src/main/java/ParaScript/ui/UI.java +++ b/src/main/java/ParaScript/ui/UI.java @@ -1,5 +1,6 @@ package ParaScript.ui; +import ParaScript.data.variables.Npcs; import ParaScript.data.variables.Ores; import ParaScript.data.variables.Trees; import ParaScript.data.Variables; @@ -36,6 +37,10 @@ public class UI extends JFrame { private JComboBox oreSelect = new JComboBox(); private JComboBox miningMethod = new JComboBox(); + //Thieving + private JComboBox npcSelect = new JComboBox(); + private JComboBox thievingMethod = new JComboBox(); + // Our colors private Color Color_MidnightBlue = new Color(44, 62, 80); private Color Color_WetAsphalt = new Color(52, 73, 94); @@ -44,7 +49,7 @@ public class UI extends JFrame { private Color Color_Alizarin = new Color(231, 76, 60); public UI() { - setTitle("src/ParaScript"); + setTitle("2006AIO"); setResizable(false); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 400, 300); @@ -113,6 +118,7 @@ public class UI extends JFrame { skillSelect.setModel(new DefaultComboBoxModel(new String[]{ Skill.WOODCUTTING.getName(), Skill.MINING.getName(), + Skill.THIEVING.getName(), "Bank Runner", })); skillSelect.setBounds(20, 40, 150, 20); @@ -255,6 +261,51 @@ public class UI extends JFrame { }); miningPanel.add(miningMethod); + /* + * Thieving Panel + */ + + JPanel thievingPanel = new JPanel(); + thievingPanel.setForeground(Color_WhiteSmoke); + thievingPanel.setBackground(Color_WetAsphalt); + tabbedPane.addTab("Thieving", null, thievingPanel, null); + thievingPanel.setLayout(null); + + // Select which ore to mine + JLabel lblNpc = new JLabel("NPC"); + lblOre.setForeground(Color_WhiteSmoke); + lblOre.setBounds(20, 20, 73, 20); + thievingPanel.add(lblNpc); + npcSelect.setModel(new DefaultComboBoxModel(Npcs.toStringArray())); + npcSelect.setBounds(20, 40, 150, 20); + npcSelect.addActionListener (new ActionListener () { + public void actionPerformed(ActionEvent e) { + for (Npcs npc : Npcs.values()) { + if (npc.getName().equalsIgnoreCase(npcSelect.getSelectedItem().toString())) { + Variables.thieving_npc_selected = npc; + } + } + } + }); + thievingPanel.add(npcSelect); + + // What should we do with our ores + JLabel lblTheivingMethod = new JLabel("Method"); + lblMiningMethod.setForeground(Color_WhiteSmoke); + lblMiningMethod.setBounds(20, 60, 150, 20); + miningPanel.add(lblMiningMethod); + miningMethod.setModel(new DefaultComboBoxModel(new String[]{ + "Bank", + "Drop", + })); + miningMethod.setBounds(20, 80, 150, 20); + miningMethod.addActionListener (new ActionListener () { + public void actionPerformed(ActionEvent e) { + Variables.thieving_method = thievingMethod.getSelectedItem().toString(); + } + }); + miningPanel.add(thievingMethod); + /* * Slave Panel */ diff --git a/target/classes/config.xml b/target/classes/config.xml index abc1a5a..8af6022 100644 --- a/target/classes/config.xml +++ b/target/classes/config.xml @@ -1,6 +1,6 @@ - +