All pastes #560902 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-06-12 07:40 UTC
rendered paste body
import impsoft.nexus.bots.color.ColorBot;
import impsoft.nexus.bots.color.scriptable.*;
import impsoft.nexus.bots.color.scriptable.components.*;
import impsoft.nexus.bots.color.scriptable.components.bottom.*;
import impsoft.nexus.bots.color.scriptable.components.gamescreen.*;
import impsoft.nexus.bots.color.scriptable.components.minimap.*;
import impsoft.nexus.bots.color.scriptable.components.tab.*;
import impsoft.nexus.bots.color.scriptable.interfaces.*;
import impsoft.nexus.bots.color.scriptable.objects.*;
import impsoft.nexus.bots.color.structures.*;
import impsoft.nexus.bots.color.util.*;
import impsoft.nexus.bots.reflection.objects.*;
import impsoft.nexus.bots.reflection.scriptable.components.*;
import impsoft.nexus.bots.reflection.structures.*;
import java.awt.event.KeyEvent;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;

public class MonkCurser extends ColorScript implements AutoPaint
{
	//The settings bellow do it every so many minutes.
	//usage - random(minmum, max);
	//How many minute to rotate the screen.
	int rotateScreenEvery = random(10,21);
	//How many minutes to random right click
	int randomRightClickEvery = random(10, 21);
	//How many minutes to hoover over a skiil.
	int hoverSkillEvery = random(15,26);
	
	//1000 ms = 1 second
	//Minmum wait between casts.(ms)
	int minWait = 750;
	//Maximum wait between casts.(ms)
	int maxWait = 1250;
	
	Rectangle curseRectangle = new Rectangle(666,256,13, 13 );
	AryanTile monkArea = new AryanTile(3214, 3476);
	Curser Curser = new Curser(this);
	Timer Hover = new Timer(0);
	Timer RClick= new Timer(0);
	Timer Rotate= new Timer(0);
	int casts = 0;
	long startTime = System.currentTimeMillis();
	
	public MonkCurser(ColorBot b)
	{
		super(b);
	}

	public void script() throws InterruptedException
	{
		theCompass.setEast();
		while(true)
		{
			if(getLocation().distanceTo(monkArea) <= 10)
			{
				if(!theTopText.isTopTextContaining("Cast"))
				{
					curse();
				}
				Curser.attack();
				casts++;
				sleep(random(minWait,maxWait));
				AntiBan();
			}
		}
	}
	public void paint(Graphics g)
	{
		g.setColor(Color.red);
		g.drawString("Monk Curser For USA!", 9, 30);
		g.setColor(Color.white);
		g.drawString("Time Running "+TimeRunning() , 9, 41);
		g.drawString("Aprox. Cast Done: " + casts, 9, 52);
		g.drawString("Aprox. Exp Gained: "+casts * 29, 9, 63);
	}
	//time running in miliseconds
	private int getMili()
	{
		long mili = System.currentTimeMillis() - startTime;
		return (int)mili;
	}

	//return time in seconds
	private int getSeconds()
	{
		int seconds = getMili() / 1000;
		return seconds;
	}

	//return time in minutes
	private int getMinutes()
	{
		int seconds = getSeconds();
		int minutes;
		if (seconds > 59)
		{
			minutes = seconds / 60;
		}
		else
		{
			minutes = 0;
		}
		return minutes;
	}

	//Time running in minutes and seconds
	public String TimeRunning()
	{
		int seconds = getSeconds();
		int minutes = getMinutes();
		if (seconds > 59)
		{
			int remMinutes = seconds % 60;
			return (+minutes + " Minutes and " + remMinutes + " Seconds");
		}
		else
		{
			return ("0 Minutes and " + seconds + " Seconds");
		}
	}
	public void curse() throws InterruptedException
	{
		theTabs.Magic.setSelected();
		sleep(random(100,200));
		mouseClickLeft(curseRectangle);
		sleep(random(250,400));
	}

	/* AntiBan
	 * Calls HoverSkill, Random Right Click, and Roate Screen. In Timer increments.
	 */
	public void AntiBan()throws InterruptedException
	{
		int ranHover = random(0,11);
		if(Hover.timePassed() >= hoverSkillEvery * 1000)
		{
			if(ranHover >= 5)
			{
				HoverSkill("magic");
			}
			else
			{
				HoverSkill("random");
			}
			Hover.reset();
		}
		else if(RClick.timePassed() >= randomRightClickEvery * 1000)
		{
			RandomRClick();
			RClick.reset();
		}
		else if(Rotate.timePassed() >= rotateScreenEvery * 1000)
		{
			RotateScreen();
			Rotate.reset();
		}
	}
	
	/* HoverSkill
	 * Hovers mouse over the selected skill.
	 * @author SRl (java convert Ainokea)
	 */
	public void HoverSkill(String Skill) throws InterruptedException
	{
		theTabs.Statistics.setSelected();
		stopRandom("MouseMover");
		String skill = Skill.toLowerCase();
		int row = 0;
		int col = 0;
		if(skill.contains("attack"))
		{
			row = 1;
			col = 1;
		}
		else if(skill.contains("strength"))
		{
			row = 2;
			col = 1;
		}
		else if(skill.contains("defence"))
		{
			row = 3;
			col = 1;
		}
		else if(skill.contains("range"))
		{
			row = 4;
			col = 1;
		}
		else if(skill.contains("prayer"))
		{
			row = 5;
			col = 1;
		}
		else if(skill.contains("magic"))
		{
			row = 6;
			col = 1;
		}
		else if(skill.contains("runecraft"))
		{
			row = 7;
			col = 1;
		}
		else if(skill.contains("hitpoints"))
		{
			row = 1;
			col = 2;
		}
		else if(skill.contains("agility"))
		{
			row = 2;
			col = 2;
		}
		else if(skill.contains("herblore"))
		{
			row = 3;
			col = 2;
		}
		else if(skill.contains("thieving"))
		{
			row = 4;
			col = 2;
		}
		else if(skill.contains("crafting"))
		{
			row = 5;
			col = 2;
		}
		else if(skill.contains("fletching"))
		{
			row = 6;
			col = 2;
		}
		else if(skill.contains("slayer"))
		{
			row = 7;
			col = 2;
		}
		else if(skill.contains("smithing"))
		{
			row = 2;
			col = 3;
		}
		else if(skill.contains("mining"))
		{
			row = 1;
			col = 3;
		}
		else if(skill.contains("fishing"))
		{
			row = 3;
			col = 3;
		}
		else if(skill.contains("cooking"))
		{
			row = 4;
			col = 3;
		}
		else if(skill.contains("firemaking"))
		{
			row = 5;
			col = 3;
		}
		else if(skill.contains("woodcutting"))
		{
			row = 6;
			col = 3;
		}
		else if(skill.contains("farming"))
		{
			row = 7;
			col = 3;
		}
		else if(skill.contains("construction"))
		{
			row = 8;
			col = 1;
		}
		else if(skill.contains("hunter"))
		{
			row = 8;
			col = 2;
		}
		else if(skill.contains("random"))
		{
			row = random(0,8) + 1;
			col = random(0,3) + 1;
		}
		else
		{
			row = random(0,8) + 1;
			col = random(0,3) + 1;
		}
		mouseMove(new Rectangle(532 + (64 * col), 191 + (31 * row), 10, 10));
		sleep(random(5000,10000));
		startRandom("MouseMover");
	}
	/* RandomRClick
	 * Randomly right clicks some where on the rs screen
	 * @author SRL (java convert Ainokea)
	 */
	public void RandomRClick() throws InterruptedException
	{
		switch (random(0, 7))
		{
			case 0: mouseClickRight(rectangleFromScar(533, 7, 757, 200));
					sleep(random(600, 900));

			case 1: mouseClickRight(rectangleFromScar(521, 3, 553, 496));
					sleep(random(600, 900));

			case 2: mouseClickRight(rectangleFromScar(743, 3, 764, 497));
					sleep(random(600, 900));

			case 3: mouseClickRight(rectangleFromScar(4, 467, 763, 498));
					sleep(random(600, 900));

			case 4: mouseClickRight(rectangleFromScar(499, 343, 552, 496));
					sleep(random(600, 900));

			case 5: mouseClickRight(rectangleFromScar(3, 343, 521, 355));
					sleep(random(600, 900));

			case 6: mouseClickRight(rectangleFromScar(2, 346, 14, 499));
					sleep(random(600, 900));
		}
	}
	
	/* Rotate Screen
	 * Randomly rotates the camera in one direction.
	 * @author SRL (java convert Ainokea)
	 */
	public void RotateScreen() throws InterruptedException
	{
		int key = random(0, 4);
		stopRandom("MouseMover");
		if (key == 0)
		{
			SendKey(KeyEvent.VK_UP, 500 + random(100, 500));
		}
		else if (key == 1)
		{
			SendKey(KeyEvent.VK_DOWN, 500 + random(100, 500));
		}
		else if (key == 2)
		{
			SendKey(KeyEvent.VK_LEFT, 500 + random(100, 500));
		}
		else
		{
			SendKey(KeyEvent.VK_RIGHT, 500 + random(100, 500));
		}
		sleep(random(200, 500));
		startRandom("MouseMover");
		theCompass.setEast();
		sleep(random(100,200));
	}
	
	public Rectangle rectangleFromScar(int x1, int y1, int x2, int y2)
	{
		return new Rectangle(x1, y1, x1-x2, y2-y1);
	}
	
	class Curser extends EdgeRGBCluster 
	{
		public Curser(ColorScript c)
		{
			super(new RGB[]{new RGB(73,28,26), new RGB(86, 33, 31)}, c, 30, 30);
		}
		public boolean attack() throws InterruptedException 
		{
			populateEdges();
			populateBlocksFromEdges();
			populateClusterBlocksFromBlocks(3);
			populatePoints();
			return doTopTextOnMoving("Monk") != null;
		}
	}
}