All pastes #2075703 Raw Edit

RuNnNy_Alcher

public text v1 · immutable
#2075703 ·published 2011-06-06 19:20 UTC
rendered paste body
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;

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.wrappers.RSItem;
import org.rsbot.script.wrappers.RSObject;
import org.rsbot.script.wrappers.RSPlayer;
import org.rsbot.script.wrappers.RSTile;
import org.rsbot.script.wrappers.RSTilePath;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.imageio.ImageIO;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;

import javax.swing.JFrame;
import javax.swing.JLabel;

import javax.swing.JFrame;
import javax.swing.JLabel;

@ScriptManifest(
    authors = {"RuNnNy"},
    version = 0.1,
    keywords = {"Alch", "banking", "money", "bank"},
    description = "Alch anywhere!",
    name = "RuNnNy_Alch"
        )
        
        
public class RuNnNy_Alch extends Script implements PaintListener, MessageListener {
    
    ScriptManifest props = getClass().getAnnotation(ScriptManifest.class);


        int natureRID = 561;
        int itemID;
        int fireStaffID = 17005;
        int boothID = 0;
        int counter = 0;
        Point click = new Point(573, 372);
        int itemAlched = 0;
        int alchemyAnimation = 9633;
        
        long startTime;
        
        int expGained = 0;
        int startExp = 0;
        int amounthAlched = 0;
        int amountToAlch = 0;

        
        public boolean onStart(){
            log ("Starting RuNnNy_Alch" + props.name() + " v" + props.version() + "!");
            
            AlchGUI g = new AlchGUI();
            g.setVisible(true);
            while (g.isVisible()) sleep(250);
            itemID = Integer.parseInt(g.jTextField1.getText());
            
            mouse.setSpeed(5);
            
            startTime = System.currentTimeMillis();
            startExp = skills.getCurrentExp(skills.MAGIC);
            return true;
        }    
        
        
        
      
    
        
        @Override
        public int loop() {
            if (inventory.contains(itemID)) alch();
            else stopScript();
            return random(150, 600);
        }
        
        public void onFinish()  {
            log ("Thank you for using " + props.name() + " v" + props.version() + "!");
            
        }
        
        
         private final Color color1 = new Color(0, 0, 0, 174);
            private final Color color2 = new Color(0, 0, 0);
            private final Color color3 = new Color(51, 255, 0, 166);

            private final Font font1 = new Font("Arial", 1, 15);
            private final Font font2 = new Font("Arial", 1, 10);
        
        private void alch() {
            RSItem item = inventory.getItem(itemID);
            if (item != null)
            {
                magic.castSpell(59);
                sleep(100, 300);
                item.doClick(true);
                itemAlched++;
                sleep(100, 300);
            }
        }
        




            @Override
            public void messageReceived(MessageEvent e) {
                /*RSPlayer me = getMyPlayer();
                if(me.getAnimation() == alchemyAnimation) {
                    itemAlched++;
                }*/
            }






        @Override
        public void onRepaint(Graphics g) {
            
            Graphics2D g1 = (Graphics2D)g;
            
            expGained = skills.getCurrentExp(skills.MAGIC) - startExp;
            
            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;
            
            float xpsec = 0;
            if ((minutes > 0 || hours > 0 || seconds > 0) && expGained > 0)  {
                xpsec = ((float) expGained)/(float)(seconds + (minutes*60)+ (hours*60*60));
                
            }
            float xpmin = xpsec * 60;
            float xphour = xpmin * 60;
            
            float alchsec = 0;
            if ((minutes > 0 || hours > 0 || seconds > 0) && itemAlched > 0)  {
                alchsec = ((float) itemAlched)/(float)(seconds + (minutes*60)+ (hours*60*60));
                
            }
            
            float alchmin = alchsec * 60;
            float alchhour = alchmin * 60;
            
            g1.setColor(color1);
            g1.fillRect(338, 3, 178, 56);
            g1.setColor(color2);
            g1.drawRect(338, 3, 178, 56);
            g1.setFont(font1);
            g1.setColor(color3);
            g1.drawString("RuNnNy Alcher", 227, 17);
            g1.setFont(font2);
            g1.drawString("Runtime: " + hours + ":" + minutes + ":" + seconds , 341, 31);
            g1.drawString("Experience gained: " + expGained + "    Exp/h: " + (int)xphour, 341, 43);
            g1.drawString("Items alched: " + itemAlched + "     Alch/h: " + (int)alchhour, 341, 55);
            final int percent = skills.getPercentToNextLevel(skills.MAGIC); //change the MINING to the stat u want
            g.drawString("Percent till next level: ", 377, 10);
            g.setColor(Color.red);
            g.fillRoundRect(377, 13, 100, 10, 15, 15); //these must be on same cordinates
            g.setColor(Color.green);
            g.fillRoundRect(377, 13, percent, 10, 15, 15); //these must be on same cordinates
            g.setColor(Color.black);
            g.drawString("" + percent + "%", 423, 22); //this must be on the center of the bar
            g.drawRoundRect(377, 13, 100, 10, 15, 15); //these must be on same cordinates
            g.drawRoundRect(377, 13, percent, 10, 15, 15); //these must be on same cordinates
        }

        /**
         *
         * @author Hlynur
         */
        public class AlchGUI extends javax.swing.JFrame {

            /** Creates new form AlchGUI */
            public AlchGUI() {
                initComponents();
            }

            /** This method is called from within the constructor to
             * initialize the form.
             * WARNING: Do NOT modify this code. The content of this method is
             * always regenerated by the Form Editor.
             */
            @SuppressWarnings("unchecked")
            // <editor-fold defaultstate="collapsed" desc="Generated Code">
            private void initComponents() {

                jLabel1 = new javax.swing.JLabel();
                jLabel2 = new javax.swing.JLabel();
                jTextField1 = new javax.swing.JTextField();
                jButton1 = new javax.swing.JButton();

                setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

                jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
                jLabel1.setForeground(new java.awt.Color(51, 255, 0));
                jLabel1.setText("RuNnNy Alch");

                jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
                jLabel2.setText("Item ID");

                jButton1.setText("Start Script");
                jButton1.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jButton1ActionPerformed(evt);
                    }
                });

                javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
                getContentPane().setLayout(layout);
                layout.setHorizontalGroup(
                    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(53, 53, 53)
                                .addComponent(jLabel1))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(103, 103, 103)
                                .addComponent(jLabel2))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(84, 84, 84)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jTextField1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE))))
                        .addContainerGap(62, Short.MAX_VALUE))
                );
                layout.setVerticalGroup(
                    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE)
                        .addContainerGap())
                );

                pack();
            }// </editor-fold>

            private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

                this.hide();
                
            }

            /**
            * @param args the command line arguments
            */
            public void main(String args[]) {
                java.awt.EventQueue.invokeLater(new Runnable() {
                    public void run() {
                        new AlchGUI().setVisible(true);
                    }
                });
            }

            // Variables declaration - do not modify
            private javax.swing.JButton jButton1;
            private javax.swing.JLabel jLabel1;
            private javax.swing.JLabel jLabel2;
            private javax.swing.JTextField jTextField1;
            // End of variables declaration

        }

}