Test
This commit is contained in:
parent
34df39d439
commit
3e4224c095
143
sig/App.java
143
sig/App.java
@ -10,6 +10,7 @@ import java.util.Map.Entry;
|
|||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
import java.awt.AWTException;
|
import java.awt.AWTException;
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.Robot;
|
import java.awt.Robot;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
@ -140,6 +141,11 @@ class Client {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum Target{
|
||||||
|
AYA,
|
||||||
|
MYTHRA
|
||||||
|
}
|
||||||
|
|
||||||
class Server
|
class Server
|
||||||
{
|
{
|
||||||
//initialize socket and input stream
|
//initialize socket and input stream
|
||||||
@ -155,6 +161,10 @@ class Server
|
|||||||
r.keyRelease(keycode);r.delay(100);
|
r.keyRelease(keycode);r.delay(100);
|
||||||
r.keyRelease(modifier);
|
r.keyRelease(modifier);
|
||||||
}
|
}
|
||||||
|
private void PressKey(int keycode) {
|
||||||
|
r.keyPress(keycode);
|
||||||
|
r.keyRelease(keycode);
|
||||||
|
}
|
||||||
|
|
||||||
float GetMythraHealth(){
|
float GetMythraHealth(){
|
||||||
BufferedImage img=r.createScreenCapture(new Rectangle(92, 171, 86, 1));
|
BufferedImage img=r.createScreenCapture(new Rectangle(92, 171, 86, 1));
|
||||||
@ -165,6 +175,20 @@ class Server
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
boolean MythraHasShield(){
|
||||||
|
BufferedImage img=r.createScreenCapture(new Rectangle(92, 163, 1, 1));
|
||||||
|
Color c=new Color(img.getRGB(0,0));
|
||||||
|
return c.getRed()==255&&c.getRed()==211&&c.getBlue()==0;
|
||||||
|
}
|
||||||
|
float GetMythraMana(){
|
||||||
|
BufferedImage img=r.createScreenCapture(new Rectangle(196, 171, 86, 1));
|
||||||
|
for (int i=img.getWidth()-1;i>=0;i--){
|
||||||
|
if ((img.getRGB(i,0)&255)>100){
|
||||||
|
return (float)i/(img.getWidth()-1)*100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
float GetAyaHealth(){
|
float GetAyaHealth(){
|
||||||
BufferedImage img=r.createScreenCapture(new Rectangle(92, 211, 86, 1));
|
BufferedImage img=r.createScreenCapture(new Rectangle(92, 211, 86, 1));
|
||||||
for (int i=img.getWidth()-1;i>=0;i--){
|
for (int i=img.getWidth()-1;i>=0;i--){
|
||||||
@ -174,6 +198,11 @@ class Server
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
boolean AyaHasShield(){
|
||||||
|
BufferedImage img=r.createScreenCapture(new Rectangle(92, 203, 1, 1));
|
||||||
|
Color c=new Color(img.getRGB(0,0));
|
||||||
|
return c.getRed()==255&&c.getRed()==211&&c.getBlue()==0;
|
||||||
|
}
|
||||||
float GetTargetHealth(){
|
float GetTargetHealth(){
|
||||||
BufferedImage img=r.createScreenCapture(new Rectangle(781, 134, 432, 1));
|
BufferedImage img=r.createScreenCapture(new Rectangle(781, 134, 432, 1));
|
||||||
for (int i=img.getWidth()-1;i>=0;i--){
|
for (int i=img.getWidth()-1;i>=0;i--){
|
||||||
@ -183,6 +212,46 @@ class Server
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
boolean MultipleTargets(){
|
||||||
|
BufferedImage img=r.createScreenCapture(new Rectangle(75, 628, 1, 1));
|
||||||
|
Color c=new Color(img.getRGB(0,0));
|
||||||
|
return (c.getRed()==120&&c.getRed()==118&&c.getBlue()==120)||(c.getRed()==140&&c.getRed()==138&&c.getBlue()==140);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
long bioTimer=0;
|
||||||
|
long lucidDreamingTimer=0;
|
||||||
|
long nextActionTimer=0;
|
||||||
|
long aetherflowTimer=0;
|
||||||
|
int aetherflowStacks=0;
|
||||||
|
long whisperingDawnTimer=0;
|
||||||
|
long feyIlluminationTimer=0;
|
||||||
|
boolean allowedToAetherflow=false;
|
||||||
|
|
||||||
|
long lastFrame=System.currentTimeMillis();
|
||||||
|
|
||||||
|
void Heal(Target target){
|
||||||
|
if (aetherflowStacks>0){
|
||||||
|
PressKey(KeyEvent.VK_C);
|
||||||
|
aetherflowStacks--;
|
||||||
|
nextActionTimer=1000;
|
||||||
|
return;
|
||||||
|
} else
|
||||||
|
if (target==Target.AYA&&AyaHasShield()){
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_3);
|
||||||
|
nextActionTimer=2500;
|
||||||
|
return;
|
||||||
|
} else
|
||||||
|
if (target==Target.MYTHRA&&MythraHasShield()){
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_3);
|
||||||
|
nextActionTimer=2500;
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
PressKey(KeyEvent.VK_5);
|
||||||
|
nextActionTimer=2500;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// constructor with port
|
// constructor with port
|
||||||
public Server(int port)
|
public Server(int port)
|
||||||
@ -263,6 +332,80 @@ class Server
|
|||||||
System.out.println(i);
|
System.out.println(i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fightLoop:
|
||||||
|
while (true){
|
||||||
|
if (fighting){
|
||||||
|
if (nextActionTimer==0){
|
||||||
|
if (GetMythraMana()<80&&lucidDreamingTimer==0){
|
||||||
|
lucidDreamingTimer=60000;
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_6);
|
||||||
|
nextActionTimer=1000;
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (allowedToAetherflow&&aetherflowTimer==0){
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_ALT, KeyEvent.VK_2);
|
||||||
|
nextActionTimer=1000;
|
||||||
|
aetherflowStacks=3;
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
float ayaHealth=GetAyaHealth();
|
||||||
|
float mythraHealth=GetMythraHealth();
|
||||||
|
if (ayaHealth<0.4){
|
||||||
|
PressKey(KeyEvent.VK_F2);
|
||||||
|
Heal(Target.AYA);
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
if (ayaHealth<0.6){
|
||||||
|
if (whisperingDawnTimer==0&&feyIlluminationTimer<60000){
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_C);
|
||||||
|
whisperingDawnTimer=60000;
|
||||||
|
nextActionTimer=1000;
|
||||||
|
break fightLoop;
|
||||||
|
} else
|
||||||
|
if (feyIlluminationTimer==0&&whisperingDawnTimer<30000){
|
||||||
|
PressKey(KeyEvent.VK_X);
|
||||||
|
feyIlluminationTimer=120000;
|
||||||
|
nextActionTimer=1000;
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mythraHealth<0.4){
|
||||||
|
PressKey(KeyEvent.VK_F1);
|
||||||
|
Heal(Target.MYTHRA);
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
//Looks like we're attacking.
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_8);
|
||||||
|
float targetHealth=GetTargetHealth();
|
||||||
|
if (!MultipleTargets()){
|
||||||
|
if (targetHealth>50&&bioTimer==0){
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_2);
|
||||||
|
bioTimer=30000;
|
||||||
|
nextActionTimer=2500;
|
||||||
|
break fightLoop;
|
||||||
|
} else {
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_1);
|
||||||
|
nextActionTimer=2500;
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
PressKeyWithModifier(KeyEvent.VK_CONTROL, KeyEvent.VK_Z);
|
||||||
|
nextActionTimer=2500;
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break fightLoop;
|
||||||
|
}
|
||||||
|
long difference=System.currentTimeMillis()-lastFrame;
|
||||||
|
bioTimer=Math.max(0,bioTimer-difference);
|
||||||
|
lucidDreamingTimer=Math.max(0,lucidDreamingTimer-difference);
|
||||||
|
nextActionTimer=Math.max(0,nextActionTimer-difference);
|
||||||
|
aetherflowTimer=Math.max(0,aetherflowTimer-difference);
|
||||||
|
whisperingDawnTimer=Math.max(0,whisperingDawnTimer-difference);
|
||||||
|
feyIlluminationTimer=Math.max(0,feyIlluminationTimer-difference);
|
||||||
|
lastFrame=System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
System.out.println("Closing connection");
|
System.out.println("Closing connection");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user