From 511cfa3a840cd4654ec58d4ef0410b7d805f1933 Mon Sep 17 00:00:00 2001 From: MrLetsplay Date: Mon, 2 Oct 2023 17:06:06 +0200 Subject: [PATCH] More efficient cheating --- src/GarticPhoneCheats.java | 90 ++++++++++++++++++++++++++++++-------- 1 file changed, 71 insertions(+), 19 deletions(-) diff --git a/src/GarticPhoneCheats.java b/src/GarticPhoneCheats.java index 96272bf..3d5bc07 100644 --- a/src/GarticPhoneCheats.java +++ b/src/GarticPhoneCheats.java @@ -9,14 +9,13 @@ import java.io.File; import java.util.Comparator; import java.util.HashMap; import java.util.Map; -import java.util.Objects; import javax.imageio.ImageIO; public class GarticPhoneCheats { public static void main(String[] args) throws Exception { - BufferedImage img = ImageIO.read(new File("cock.jpg")); + BufferedImage img = ImageIO.read(new File("red.jpg")); Robot r = new Robot(); System.out.println("Top left"); @@ -35,6 +34,14 @@ public class GarticPhoneCheats { Thread.sleep(3000); Point bottomRightC = MouseInfo.getPointerInfo().getLocation(); + System.out.println("Undo"); + Thread.sleep(3000); + Point undo = MouseInfo.getPointerInfo().getLocation(); + + System.out.println("Redo"); + Thread.sleep(3000); + Point redo = MouseInfo.getPointerInfo().getLocation(); + int poop = 5; Map colors = new HashMap<>(); Rectangle colRect = new Rectangle(topLeftC.x, topLeftC.y, bottomRightC.x - topLeftC.x, bottomRightC.y - topLeftC.y); @@ -74,10 +81,12 @@ public class GarticPhoneCheats { nImg.createGraphics().drawImage(img, 0, 0, nW, nH, null); int scale = 10; - int delay = 7; + int delay = 10; - Color selectedColor = null; for(int x = 0; x < nImg.getWidth() / scale; x++) { + Color prevColor = null; + int len = 0; + for(int y = 0; y < nImg.getHeight() / scale; y++) { int rgb = nImg.getRGB(x * scale, y * scale); @@ -90,25 +99,68 @@ public class GarticPhoneCheats { .sorted(Comparator.comparingDouble(c -> dist(c, col))) .findFirst().orElse(null); - if(!Objects.equals(selectedColor, closest)) { - Thread.sleep(2 * delay); + if(closest != prevColor) { + if(prevColor != null) { + Thread.sleep(2 * delay); - selectedColor = closest; - Point colPoint = colors.get(closest); - r.mouseMove(colPoint.x, colPoint.y); + Point colPoint = colors.get(prevColor); + r.mouseMove(colPoint.x, colPoint.y); - r.mousePress(InputEvent.BUTTON1_DOWN_MASK); - Thread.sleep(delay); - r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + r.mousePress(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay); + r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + + Thread.sleep(delay); + + r.mouseMove(pX, pY - scale * len); + r.mousePress(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay); + r.mouseMove(pX, pY - scale); + r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(2 * delay); + } + + prevColor = closest; + len = 1; + }else { + len++; } - - r.mouseMove(pX, pY); - r.mousePress(InputEvent.BUTTON1_DOWN_MASK); - Thread.sleep(delay); - r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); - - Thread.sleep(delay); } + + System.out.println(prevColor); + Thread.sleep(2 * delay); + + Point colPoint = colors.get(prevColor); + r.mouseMove(colPoint.x, colPoint.y); + + r.mousePress(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay); + r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + + int pX = topLeft.x + x * scale; + int pY = topLeft.y + nImg.getHeight() - scale; + r.mouseMove(pX, pY - scale * len); + r.mousePress(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay); + r.mouseMove(pX, pY); + r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(2 * delay); + } + + for(int i = 0; i < 100; i++) { + r.mouseMove(undo.x, undo.y); + r.mousePress(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay * 5); + r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay * 5); + } + + for(int i = 0; i < 100; i++) { + r.mouseMove(redo.x, redo.y); + r.mousePress(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay * 5); + r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + Thread.sleep(delay * 5); } }