rendered paste bodyimport 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;
}
}
}