Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.powerbot.concurrent.Task;
- import org.powerbot.concurrent.strategy.Condition;
- import org.powerbot.concurrent.strategy.Strategy;
- import org.powerbot.game.api.ActiveScript;
- import org.powerbot.game.api.Manifest;
- import org.powerbot.game.api.methods.Tabs;
- import org.powerbot.game.api.methods.Walking;
- import org.powerbot.game.api.methods.input.Mouse;
- import org.powerbot.game.api.methods.interactive.NPCs;
- import org.powerbot.game.api.methods.interactive.Players;
- import org.powerbot.game.api.methods.tab.Inventory;
- import org.powerbot.game.api.methods.widget.Bank;
- import org.powerbot.game.api.methods.widget.Camera;
- import org.powerbot.game.api.util.Random;
- import org.powerbot.game.api.util.Time;
- import org.powerbot.game.api.wrappers.Area;
- import org.powerbot.game.api.wrappers.Tile;
- import org.powerbot.game.api.wrappers.interactive.NPC;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- import org.powerbot.game.bot.event.MessageEvent;
- import org.powerbot.game.bot.event.listener.MessageListener;
- @Manifest(authors = { "Leon" }, name = "MasterFarmerPro", description = "Pickepockets the Master Farmer", version = 1.0)
- public class MasterFarmerPro extends ActiveScript implements MessageListener {
- private int foodID = 0;
- private int amount = 0;
- private int farmerID = 0 ;
- Area bankArea = new Area(new Tile(3090, 3247, 0), new Tile(3097, 3240, 0));
- Area farmerArea = new Area(new Tile[] { new Tile(3071, 3257, 0),
- new Tile(3076, 3257, 0), new Tile(3081, 3258, 0),
- new Tile(3086, 3258, 0), new Tile(3087, 3253, 0),
- new Tile(3087, 3248, 0), new Tile(3085, 3243, 0),
- new Tile(3080, 3242, 0), new Tile(3075, 3243, 0),
- new Tile(3071, 3246, 0) });
- Tile[] pathToBank = new Tile[] { new Tile(3079, 3250, 0),
- new Tile(3084, 3249, 0), new Tile(3089, 3248, 0),
- new Tile(3093, 3245, 0), new Tile(3093, 3244, 0) };
- Tile[] pathToFarmer = new Tile[] { new Tile(3092, 3244, 0),
- new Tile(3092, 3248, 0), new Tile(3090, 3248, 0),
- new Tile(3085, 3248, 0), new Tile(3080, 3249, 0),
- new Tile(3078, 3250, 0) };
- MasterFarmerProGUI gui;
- protected void setup() {
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- gui = new MasterFarmerProGUI();
- gui.setVisible(true);
- }
- });
- provide(new bank());
- provide(new steal());
- provide(new walkToBank());
- provide(new walkToFarmer());
- provide(new antiBan());
- }
- private class bank extends Strategy implements Task, Condition {
- @Override
- public void run() {
- if (!Bank.isOpen()) {
- Bank.open();
- Time.sleep(1000, 1200);
- }
- Bank.depositInventory();
- Bank.withdraw(foodID, amount);
- if (Bank.isOpen() && !Inventory.isFull())
- ;
- Bank.close();
- Time.sleep(1000, 1200);
- }
- @Override
- public boolean validate() {
- return bankArea.contains(Players.getLocal().getLocation())
- && Inventory.isFull();
- }
- }
- private class steal extends Strategy implements Task, Condition {
- @Override
- public void run() {
- NPC farmer = NPCs.getNearest(farmerID);
- if (Players.getLocal().getAnimation() == -1) {
- farmer.interact("Pickpocked", "Master Farmer");
- while (Players.getLocal().getAnimation() == 881) {
- Time.sleep(4000, 5000);
- }
- Time.sleep(700, 1100);
- }
- }
- @Override
- public boolean validate() {
- return farmerArea.contains(Players.getLocal().getLocation())
- && Inventory.getCount(foodID) > 0;
- }
- }
- private class walkToBank extends Strategy implements Task, Condition {
- @Override
- public void run() {
- Walking.newTilePath(pathToBank).traverse();
- }
- @Override
- public boolean validate() {
- return Inventory.getCount(foodID) < 1
- && !bankArea.contains(Players.getLocal().getLocation());
- }
- }
- private class walkToFarmer extends Strategy implements Task, Condition {
- @Override
- public void run() {
- Walking.newTilePath(pathToFarmer).traverse();
- }
- @Override
- public boolean validate() {
- return bankArea.contains(Players.getLocal().getLocation())
- && Inventory.getCount(foodID) == amount;
- }
- }
- private class antiBan extends Strategy implements Task, Condition {
- @Override
- public void run() {
- int XX = Random.nextInt(0, 80);
- if (XX == 40) {
- antiban();
- }
- }
- @Override
- public boolean validate() {
- return true;
- }
- }
- public void antiban() {
- int r = Random.nextInt(0, 15);
- switch (r) {
- case 1:
- Time.sleep(2500, 5000);
- break;
- case 2:
- if (!Tabs.INVENTORY.isOpen())
- Tabs.INVENTORY.open();
- Time.sleep(1300, 2300);
- break;
- case 3:
- Camera.setPitch(false);
- break;
- case 4:
- if (!Tabs.EQUIPMENT.isOpen())
- Tabs.EQUIPMENT.open();
- Time.sleep(1500, 2000);
- break;
- case 5:
- Camera.setNorth();
- break;
- case 6:
- Camera.setPitch(true);
- break;
- case 7:
- if (!Tabs.STATS.isOpen())
- Tabs.STATS.open();
- Time.sleep(1300, 2300);
- break;
- case 8:
- if (!Tabs.FRIENDS.isOpen())
- Tabs.FRIENDS.open();
- Time.sleep(1500, 2000);
- break;
- case 9:
- Mouse.move(
- Random.nextInt(Mouse.getLocation().x - 150,
- Mouse.getLocation().x + 150),
- Random.nextInt(Mouse.getLocation().y - 150,
- Mouse.getLocation().y + 150));
- break;
- }
- }
- public void messageReceived(MessageEvent arg0) {
- String msg = arg0.getMessage();
- if (msg.contains("You're stunned")) {
- Time.sleep(5000, 5100);
- }
- }
- @SuppressWarnings("serial")
- public class MasterFarmerProGUI extends JFrame {
- public MasterFarmerProGUI() {
- initComponents();
- }
- private void button1ActionPerformed(ActionEvent e) {
- foodID = Integer.parseInt(textField1.getText());
- amount = Integer.parseInt(textField2.getText());
- farmerID = 2234;
- gui.setVisible(false);
- gui.dispose();
- }
- private void initComponents() {
- label1 = new JLabel();
- label2 = new JLabel();
- textField1 = new JTextField();
- label3 = new JLabel();
- textField2 = new JTextField();
- button1 = new JButton();
- //======== this ========
- setTitle("MasterFarmerPro");
- setFont(new Font("Georgia", Font.PLAIN, 14));
- Container contentPane = getContentPane();
- //---- label1 ----
- label1.setText("MasterFarmerPro");
- label1.setFont(new Font("Georgia", Font.PLAIN, 20));
- //---- label2 ----
- label2.setText("food ID:");
- label2.setFont(new Font("Georgia", Font.PLAIN, 14));
- //---- textField1 ----
- textField1.setFont(new Font("Georgia", Font.PLAIN, 14));
- //---- label3 ----
- label3.setText("Amount:");
- label3.setFont(new Font("Georgia", Font.PLAIN, 14));
- //---- textField2 ----
- textField2.setFont(new Font("Georgia", Font.PLAIN, 14));
- //---- button1 ----
- button1.setText("Confirm");
- button1.setFont(new Font("Georgia", Font.PLAIN, 14));
- 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(35, 35, 35)
- .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addComponent(label3)
- .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textField2))
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addComponent(label2)
- .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textField1))
- .addComponent(label1)))
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addGap(69, 69, 69)
- .addComponent(button1)))
- .addContainerGap(47, Short.MAX_VALUE))
- );
- contentPaneLayout.setVerticalGroup(
- contentPaneLayout.createParallelGroup()
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(label1)
- .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
- .addComponent(label2)
- .addComponent(textField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
- .addComponent(textField2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(label3))
- .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(button1)
- .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- );
- pack();
- setLocationRelativeTo(getOwner());
- }
- private JLabel label1;
- private JLabel label2;
- private JTextField textField1;
- private JLabel label3;
- private JTextField textField2;
- private JButton button1;
- }
- }
Add Comment
Please, Sign In to add comment