All pastes #1219878 Raw Edit

AutoHarpoonBuyer.java

public text v1 · immutable
#1219878 ·published 2008-10-05 14:40 UTC
rendered paste body
import java.awt.*;
import java.awt.event.KeyEvent;

import com.speljohan.rsbot.script.*;
import com.speljohan.rsbot.script.wrappers.*;



public class AutoHarpoonBuyer extends Script{
	
	int bankGuy = 3824;
	int harpoon = 311;
	int Money = 995;
	int trips = 0;
	int harpoonTrip = 0;
	
    public String getName() {
        return "Auto harpoon Buyer";
    }

	public String getCategory() {
	return "Harpoon Buyer";
	}

    public String getAuthor() {
        return "Dan";
    }

    public double getVersion() {
        return 0.1;
    }

    public boolean onStart(String[] args) {
        return true;
    }
    
    public String getScriptDescription() {
		String html = "";

		html += "<html>\n";
		html += "<body>\n";
		html += "<h2>" + getName() + " v" + getVersion() + "</h2><br>\n";
		html += "Author: " + getAuthor() + "<br>\n";
		html += "Run this program up in Arnold's shop at Picatoris.<br> "
				+ "It may glitch from time to time, I'm trying to fix, Please be aware<br>"
				+ "Have fun buying Harpoons!";
		html += "<br>";
		html += "</body>\n";
		html += "</html\n";

		return html;
	}

    public int loop() {
    	RSNPC arnold = getNearestNPCByName("Arnold Lydspor");
    	atNPC(arnold, "Talk-To");
    	wait(random(1200, 1500));

        if(RSInterface.getInterface(762).isValid() && inventoryContains(harpoon))
    	    {
				banking();
			}
		if(RSInterface.getInterface(762).isValid() && !inventoryContains(harpoon))
    	    {
				bankOpen();
			}	
		if(RSInterface.getInterface(620).isValid() && !inventoryContains(harpoon))
    	    {
				buy();
			}
		if(RSInterface.getInterface(620).isValid() && inventoryContains(harpoon))
    	    {
				tradeOpen();
			}
		if (inventoryContains(harpoon)) {
				banking();
			} 
		if (!inventoryContains(harpoon)){
				buy();
			}
				
        return 0;
    }
    
    
    
    public void buy()
    {
    	RSNPC arnold = getNearestNPCByID(bankGuy); //check name
	    if (inventoryContains(Money) && !inventoryContains(harpoon))
	    {
    	  	atNPC(arnold, "Trade");
    		wait(random(1400, 1500));
    		if (RSInterface.getInterface(620).isValid()) {
				clickMouse(116, 117, false);
				wait(random(1000, 1500));
				atMenu("Buy X");
				wait(random(800, 1300));
				sendText("27", true);
				wait(random(800, 1300));
				atInterface(INTERFACE_STORE, INTERFACE_STORE_BUTTON_CLOSE);
				//clickMouse(486, 42, 1, 1, false);
				//wait(random(800, 1300));  // used to close bank but i found a better code
				//atMenu("Close");
			}
			banking();
		}
		if (inventoryContains(harpoon) && inventoryContains(Money)) {
					banking();
		}

    }
        
    public void banking()
    {
    	RSObject Bank = findObject(bankGuy);
    	if (inventoryContains(harpoon))
    	{
			RSNPC arnold = getNearestNPCByName("Arnold Lydspor"); //check name
        	atNPC(arnold, "Bank");
        	wait(random(500,1000));
    	    if(RSInterface.getInterface(762).isValid())
    	    {
				bank.depositAllExcept(Money);
				wait(random(529, 1260));
				trips++;
				harpoonTrip = trips*27;
				log("# of Trips Done: " + trips + " equals # of Harpoon: " + harpoonTrip);
				bank.close();
			}
			else
			{
				banking();
			}
		}	
		else{
			buy();
		}
		buy();
		
    }
    
    public void bankOpen()
    {
    	bank.close();
    	buy();
    }
    
	public void tradeOpen()
    {
    	atInterface(INTERFACE_STORE, INTERFACE_STORE_BUTTON_CLOSE);
    	banking();
    }

}