Ваш скрипт содержит несколько потенциальных проблем, которые могут приводить к его некорректной работе и невозможности его остановить. Вот несколько предложений по исправлению:
Определение переменной EXIT: В вашем коде нет определения переменной EXIT. Это может приводить к ошибкам компиляции или выполнения. Предполагается, что EXIT должна быть булевой переменной, которая контролирует выход из цикла.
Незакрытые скобки: В вашем коде отсутствуют закрывающие скобки для методов и классов, что приводит к синтаксическим ошибкам.
Отсутствие механизма остановки: Ваш скрипт не имеет механизма для остановки, кроме как завершением процесса. Это может быть проблемой, если скрипт запускается и не реагирует на команды.
Использование sleep: Использование sleep может замедлять работу скрипта и делать его менее отзывчивым.
Вот пример исправленного скрипта с добавлением механизма остановки через флаг EXIT:
java
import java.awt.Point;
public class BuyHouseScript {
private static boolean EXIT = false;
public static void main(String[] args) {
Point p1 = new Point(988, 278);
Point p2 = new Point(1201, 677);
Point p3 = new Point(504, 527);
Point p4 = new Point(472, 113);
Point p5 = new Point(520, 522);
startScreenCapture(2);
sleep(5);
// Добавляем поток для установки флага EXIT
new Thread(() -> {
try {
System.in.read(); // Ожидание ввода для остановки
EXIT = true;
} catch (Exception e) {
e.printStackTrace();
}
}).start();
while (!EXIT) {
click(p1);
sleep(20);
click(p2);
sleep(20);
click(p3);
sleep(20);
}
click(p4);
sleep(20);
click(p5);
}
private static void startScreenCapture(int i) {
// Реализация метода
}
private static void sleep(int seconds) {
try {
Thread.sleep(seconds * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static void click(Point point) {
// Реализация метода
}
}
В этом исправленном скрипте:
Добавлен поток, который ожидает ввода пользователя для установки флага EXIT в true, что позволяет остановить выполнение скрипта.
Исправлены синтаксические ошибки с незакрытыми скобками.
Добавлены заглушки для методов startScreenCapture, sleep, и click, которые должны быть реализованы в зависимости от используемой библиотеки для управления мышью и клавиатурой.
Этот скрипт теперь должен быть более управляемым и предотвращать бесконечные циклы.
Но скрипт при запуске начинает багаться, и его невозможно отключить. Помогите пожалуйста исправить ошибки.
//
Point p1 = Point.get(988,278);
//
Point p2 = Point.get(1201,677);
//
Point p3 = Point.get(504,527);
//
Point p4 = Point.get(472,113);
//
Point p5 = Point.get(520,522);
startScreenCapture(2);
sleep(5);
while(!EXIT){
click(p1);
sleep(20);
click(p2);
sleep(20);
click(p3);
sleep(20);
}
click(p4);
sleep(20);
click(p5);
}
}
}