ICe 3 mesiacov pred
rodič
commit
735d64aa10
55 zmenil súbory, kde vykonal 189 pridanie a 253 odobranie
  1. 51 50
      conf/config.properties
  2. 29 24
      src/main/java/com/sencorsta/rabs/AppMain.java
  3. 6 2
      src/main/java/com/sencorsta/rabs/obj/ai/AiManage.java
  4. 1 0
      src/main/java/com/sencorsta/rabs/obj/ai/api/BaseScene.java
  5. 9 0
      src/main/java/com/sencorsta/rabs/obj/ai/api/SceneWhitSubRecord.java
  6. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/challenge/SceneMain_Challenge.java
  7. 2 2
      src/main/java/com/sencorsta/rabs/obj/ai/scene/challenge/SceneMain_Challenge_Extreme.java
  8. 2 2
      src/main/java/com/sencorsta/rabs/obj/ai/scene/emblem/SceneMain_Emblem.java
  9. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy.java
  10. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Free.java
  11. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Friend.java
  12. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Home.java
  13. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Home_Select.java
  14. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Home_SelectRes.java
  15. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_buy.java
  16. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore.java
  17. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Gift.java
  18. 2 2
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Gift_Evil.java
  19. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_King.java
  20. 2 2
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_King_hell.java
  21. 4 4
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_King_kings.java
  22. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Leader.java
  23. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Leader_quick.java
  24. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_World.java
  25. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family.java
  26. 2 2
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Help.java
  27. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Info.java
  28. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out.java
  29. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out_BigBoss.java
  30. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out_Boss.java
  31. 2 2
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out_Fight.java
  32. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Task.java
  33. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight.java
  34. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Endless.java
  35. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Endless_Quick.java
  36. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Endless_Reward.java
  37. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym.java
  38. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym_Cloud.java
  39. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym_Dragon.java
  40. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym_Wind.java
  41. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_VS.java
  42. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_VS_Quick.java
  43. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/glory/SceneMain_Glory.java
  44. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/glory/SceneMain_Glory_Match.java
  45. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/mail/SceneMain_Mail.java
  46. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu.java
  47. 4 4
      src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu_find.java
  48. 3 3
      src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu_helper.java
  49. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu_quest.java
  50. 6 6
      src/main/java/com/sencorsta/rabs/obj/ai/scene/role/SceneMain_Role.java
  51. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/role/SceneMain_Role_SkillPoint.java
  52. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/task/SceneMain_Task.java
  53. 1 1
      src/main/java/com/sencorsta/rabs/obj/ai/scene/welfare/SceneMain_Welfare.java
  54. 2 2
      src/main/java/com/sencorsta/rabs/ui/RootFrame.java
  55. 8 92
      src/main/java/com/sencorsta/rabs/ui/robot/RobotPanel.java

+ 51 - 50
conf/config.properties

@@ -6,54 +6,55 @@ windowHeight = 454.0
 extendedState = 0
 appTheme = Darcula Theme
 [robot]
-selectedWindowTitle = sencorsta - sencorsta.com - 远程桌面连接
-lastUpdateTime = 1717573096789
+selectedWindowTitle = QQ
+lastUpdateTime = 1717660666566
 [SceneData]
-SceneMain = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Challenge = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Challenge_Extreme = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Energy = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Energy_Free = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717588800000,"resetType":"SPECIAL_RULES"}
-SceneMain_Energy_Friend = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Energy_Home = {"data":{"isDone":false,"count":2,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Energy_Home_Select = {"data":{"isDone":false,"count":6,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Energy_Home_SelectRes = {"data":{"isDone":false,"count":4,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Energy_buy = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_Gift = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_Gift_Evil = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_King = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_King_hell = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_King_kings = {"data":{"isDone":false,"count":9,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_Leader = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_Leader_quick = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Explore_World = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family_Help = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family_Info = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family_Out = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family_Out_BigBoss = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family_Out_Boss = {"data":{"isDone":false,"count":3,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family_Out_Fight = {"data":{"isDone":false,"count":3,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Family_Task = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Fight = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Fight_Endless = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Fight_Endless_Quick = {"data":{"isDone":false,"count":2,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Fight_Endless_Reward = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Fight_Gym = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Fight_Gym_Cloud = {"record":{"data":{"isDone":false,"count":20,"done":false},"nextResetTime":1718571600000,"resetType":"WEEKLY_DOUBLE"},"recordSub":{"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}}
-SceneMain_Fight_Gym_Dragon = {"record":{"data":{"isDone":false,"count":20,"done":false},"nextResetTime":1718571600000,"resetType":"WEEKLY_DOUBLE"},"recordSub":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}}
-SceneMain_Fight_Gym_Wind = {"record":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1718571600000,"resetType":"WEEKLY_DOUBLE"},"recordSub":{"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}}
-SceneMain_Fight_VS = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Fight_VS_Quick = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Glory = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Glory_Match = {"record":{"data":{"isDone":false,"count":2,"done":false},"nextResetTime":1719781200000,"resetType":"MONTHLY"},"recordSub":{"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}}
-SceneMain_Mail = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Qiyu = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Qiyu_find = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Qiyu_helper = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Qiyu_quest = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717588800000,"resetType":"SPECIAL_RULES"}
-SceneMain_Role = {"data":{"isDone":true,"count":99,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
-SceneMain_Role_SkillPoint = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717598985151,"resetType":"HOUR_3"}
-SceneMain_Task = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717598985057,"resetType":"HOUR_3"}
-SceneMain_Welfare = {"data":{"isDone":true,"count":0,"done":true},"nextResetTime":1717621200000,"resetType":"DAILY"}
+SceneMain = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Challenge = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Challenge_Extreme = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Emblem = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"WEEKLY1_4"}
+SceneMain_Energy = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Energy_Free = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717675200000,"resetType":"SPECIAL_RULES"}
+SceneMain_Energy_Friend = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Energy_Home = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Energy_Home_Select = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Energy_Home_SelectRes = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Energy_buy = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_Gift = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_Gift_Evil = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_King = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_King_hell = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_King_kings = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_Leader = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_Leader_quick = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Explore_World = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family_Help = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family_Info = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family_Out = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family_Out_BigBoss = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family_Out_Boss = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family_Out_Fight = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Family_Task = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Fight = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Fight_Endless = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Fight_Endless_Quick = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Fight_Endless_Reward = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Fight_Gym = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Fight_Gym_Cloud = {"record":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1718571600000,"resetType":"WEEKLY_DOUBLE"},"recordSub":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}}
+SceneMain_Fight_Gym_Dragon = {"record":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1718571600000,"resetType":"WEEKLY_DOUBLE"},"recordSub":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}}
+SceneMain_Fight_Gym_Wind = {"record":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1718571600000,"resetType":"WEEKLY_DOUBLE"},"recordSub":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}}
+SceneMain_Fight_VS = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Fight_VS_Quick = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Glory = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Glory_Match = {"record":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1719781200000,"resetType":"MONTHLY"},"recordSub":{"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}}
+SceneMain_Mail = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Qiyu = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Qiyu_find = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Qiyu_helper = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Qiyu_quest = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717675200000,"resetType":"SPECIAL_RULES"}
+SceneMain_Role = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}
+SceneMain_Role_SkillPoint = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717675801884,"resetType":"HOUR_3"}
+SceneMain_Task = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717675801885,"resetType":"HOUR_3"}
+SceneMain_Welfare = {"data":{"isDone":false,"count":0,"done":false},"nextResetTime":1717707600000,"resetType":"DAILY"}

+ 29 - 24
src/main/java/com/sencorsta/rabs/AppMain.java

@@ -5,6 +5,7 @@ import com.sencorsta.rabs.config.AppConfig;
 import com.sencorsta.rabs.obj.ThemeOption;
 import com.sencorsta.rabs.obj.ai.AiManage;
 import com.sencorsta.rabs.ui.RootFrame;
+import org.apache.commons.io.output.TeeOutputStream;
 
 import javax.swing.ImageIcon;
 import javax.swing.JFrame;
@@ -12,6 +13,10 @@ import javax.swing.LookAndFeel;
 import javax.swing.UIManager;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
 import java.net.URL;
 import java.util.Date;
 import java.util.Objects;
@@ -49,30 +54,30 @@ public class AppMain {
     }
 
     private static void setLog() {
-//		try {
-//			// 创建一个 File 对象,指定要写入的文件路径和文件名
-//			File file = new File("runtime.log");
-//
-//			// 创建一个 FileOutputStream 对象,将它的输出流连接到文件对象的输出流上
-//			FileOutputStream fos = new FileOutputStream(file);
-//
-//			// 创建一个 TeeOutputStream 对象,将它的输出流连接到控制台输出流和 FileOutputStream 对象的输出流上
-//			TeeOutputStream tos = new TeeOutputStream(System.out, fos);
-//
-//			// 创建一个 PrintStream 对象,将它的输出流连接到 TeeOutputStream 对象的输出流上
-//			PrintStream printStream = new PrintStream(tos);
-//
-//			// 使用 System.setOut() 方法将控制台输出流重定向到 PrintStream 对象的输出流上
-//			System.setOut(printStream);
-//
-//			// 使用 System.setErr() 方法将标准错误输出流重定向到 PrintStream 对象的输出流上
-//			System.setErr(printStream);
-//
-//		} catch (FileNotFoundException e) {
-//			e.printStackTrace();
-//		} catch (Exception e) {
-//			e.printStackTrace();
-//		}
+		try {
+			// 创建一个 File 对象,指定要写入的文件路径和文件名
+			File file = new File("runtime.log");
+
+			// 创建一个 FileOutputStream 对象,将它的输出流连接到文件对象的输出流上
+			FileOutputStream fos = new FileOutputStream(file);
+
+			// 创建一个 TeeOutputStream 对象,将它的输出流连接到控制台输出流和 FileOutputStream 对象的输出流上
+			TeeOutputStream tos = new TeeOutputStream(System.out, fos);
+
+			// 创建一个 PrintStream 对象,将它的输出流连接到 TeeOutputStream 对象的输出流上
+			PrintStream printStream = new PrintStream(tos);
+
+			// 使用 System.setOut() 方法将控制台输出流重定向到 PrintStream 对象的输出流上
+			System.setOut(printStream);
+
+			// 使用 System.setErr() 方法将标准错误输出流重定向到 PrintStream 对象的输出流上
+			System.setErr(printStream);
+
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 
     }
 

+ 6 - 2
src/main/java/com/sencorsta/rabs/obj/ai/AiManage.java

@@ -57,11 +57,13 @@ public class AiManage {
     public Point lastClickPoint = new Point(0, 0);
     double checkPoint = 0.85;
 
+    boolean isRunning = false;
     public void run() {
         //加载所有Scene
         fillSceneMap();
         System.out.println("sceneMap = " + Jsons.toJsonString(sceneMap));
         rootScene = sceneMap.get("SceneMain");
+        curScene = null;
 
         thinkPoll = new ScheduledThreadPoolExecutor(1);
         thinkPoll.scheduleAtFixedRate(() -> {
@@ -98,9 +100,9 @@ public class AiManage {
                         do {
                             System.out.println("进入 back = " + curScene.getClass().getSimpleName());
                             curScene.back();
-                            Thread.sleep(2000);
+                            ThreadUtil.sleep(2000);
                         }
-                        while (!parent.check());
+                        while (!parent.check()&&isRunning);
                         curScene = parent;
                     }
                 } else {
@@ -117,6 +119,7 @@ public class AiManage {
                 e.printStackTrace();
             }
         }, 1000, 1000, TimeUnit.MILLISECONDS);
+        isRunning=true;
     }
 
     public void updateWindow() throws AWTException {
@@ -198,5 +201,6 @@ public class AiManage {
         thinkPoll.shutdown();
         thinkPoll.shutdownNow();
         AppConfig.getInstance().saveAll();
+        isRunning=false;
     }
 }

+ 1 - 0
src/main/java/com/sencorsta/rabs/obj/ai/api/BaseScene.java

@@ -20,6 +20,7 @@ import java.awt.*;
 import java.awt.event.InputEvent;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.BooleanSupplier;
 import java.util.stream.Collectors;
 
 /**

+ 9 - 0
src/main/java/com/sencorsta/rabs/obj/ai/api/SceneWhitSubRecord.java

@@ -61,5 +61,14 @@ public class SceneWhitSubRecord extends BaseScene {
         }
     }
 
+    @Override
+    public void forcePass() {
+        getRecord().getData().setDone(true);
+        getRecord().getData().setCount(99);
+        getRecordSub().getData().setDone(true);
+        getRecordSub().getData().setCount(99);
+        getChildren().forEach(Scene::forcePass);
+    }
+
 
 }

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/challenge/SceneMain_Challenge.java

@@ -36,7 +36,7 @@ public class SceneMain_Challenge extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 2 - 2
src/main/java/com/sencorsta/rabs/obj/ai/scene/challenge/SceneMain_Challenge_Extreme.java

@@ -33,7 +33,7 @@ public class SceneMain_Challenge_Extreme extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -72,7 +72,7 @@ public class SceneMain_Challenge_Extreme extends BaseScene implements Scene {
         moveToClick(PathStart2, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(3000);
 
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             if (checkHas(PathSkip, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathSkip, AiManage.getInstance().getCheckPoint());
                 ThreadUtil.sleep(2000);

+ 2 - 2
src/main/java/com/sencorsta/rabs/obj/ai/scene/emblem/SceneMain_Emblem.java

@@ -40,7 +40,7 @@ public class SceneMain_Emblem extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter1, AiManage.getInstance().getCheckPoint())) {
@@ -88,7 +88,7 @@ public class SceneMain_Emblem extends BaseScene implements Scene {
     public void think() throws AWTException {
         int count = getRecord().getData().getCount();
         for (int i = count; i < maxTimes; i++) {
-            while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
                     moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
                     ThreadUtil.sleep(2000);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy.java

@@ -32,7 +32,7 @@ public class SceneMain_Energy extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Free.java

@@ -35,7 +35,7 @@ public class SceneMain_Energy_Free extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Friend.java

@@ -33,7 +33,7 @@ public class SceneMain_Energy_Friend extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Home.java

@@ -37,7 +37,7 @@ public class SceneMain_Energy_Home extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Home_Select.java

@@ -39,7 +39,7 @@ public class SceneMain_Energy_Home_Select extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter_dark, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_Home_SelectRes.java

@@ -42,7 +42,7 @@ public class SceneMain_Energy_Home_SelectRes extends BaseScene implements Scene
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter_dark, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/energy/SceneMain_Energy_buy.java

@@ -35,7 +35,7 @@ public class SceneMain_Energy_buy extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore.java

@@ -31,7 +31,7 @@ public class SceneMain_Explore extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Gift.java

@@ -31,7 +31,7 @@ public class SceneMain_Explore_Gift extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 2 - 2
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Gift_Evil.java

@@ -35,7 +35,7 @@ public class SceneMain_Explore_Gift_Evil extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -59,7 +59,7 @@ public class SceneMain_Explore_Gift_Evil extends BaseScene implements Scene {
         moveToClick(PathOb,AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
         moveToClick(PathTime10,AiManage.getInstance().getCheckPoint());
-        while (!checkHas(PathOver,AiManage.getInstance().getCheckPoint())){
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver,AiManage.getInstance().getCheckPoint())){
             ThreadUtil.sleep(2000);
         }
         ThreadUtil.sleep(2000);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_King.java

@@ -31,7 +31,7 @@ public class SceneMain_Explore_King extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 2 - 2
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_King_hell.java

@@ -40,7 +40,7 @@ public class SceneMain_Explore_King_hell extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -71,7 +71,7 @@ public class SceneMain_Explore_King_hell extends BaseScene implements Scene {
         moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
 
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             ThreadUtil.sleep(2000);
         }
         ThreadUtil.sleep(3000);

+ 4 - 4
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_King_kings.java

@@ -47,7 +47,7 @@ public class SceneMain_Explore_King_kings extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -81,7 +81,7 @@ public class SceneMain_Explore_King_kings extends BaseScene implements Scene {
             moveToClick(PathReward, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
 
-            while (checkHas(PathTake, AiManage.getInstance().getCheckPoint()+0.05)){
+            while (AiManage.getInstance().isRunning() && checkHas(PathTake, AiManage.getInstance().getCheckPoint()+0.05)){
                 moveToClick(PathTake, AiManage.getInstance().getCheckPoint()+0.05);
                 ThreadUtil.sleep(2000);
                 randomToClick();
@@ -91,7 +91,7 @@ public class SceneMain_Explore_King_kings extends BaseScene implements Scene {
             moveToClick(PathWeek, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
 
-            while (checkHas(PathTake, AiManage.getInstance().getCheckPoint()+0.05)){
+            while (AiManage.getInstance().isRunning() && checkHas(PathTake, AiManage.getInstance().getCheckPoint()+0.05)){
                 moveToClick(PathTake, AiManage.getInstance().getCheckPoint()+0.05);
                 ThreadUtil.sleep(2000);
                 randomToClick();
@@ -115,7 +115,7 @@ public class SceneMain_Explore_King_kings extends BaseScene implements Scene {
             return;
         }
 
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             if (checkHas(PathSkip, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathSkip, AiManage.getInstance().getCheckPoint());
                 ThreadUtil.sleep(2000);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Leader.java

@@ -31,7 +31,7 @@ public class SceneMain_Explore_Leader extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_Leader_quick.java

@@ -35,7 +35,7 @@ public class SceneMain_Explore_Leader_quick extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/explore/SceneMain_Explore_World.java

@@ -45,7 +45,7 @@ public class SceneMain_Explore_World extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -91,14 +91,14 @@ public class SceneMain_Explore_World extends BaseScene implements Scene {
             moveToClick(PathBoss, AiManage.getInstance().getCheckPoint(),new Point(682,-219));
             ThreadUtil.sleep(2000);
 
-            while (!checkHas(PathStart, AiManage.getInstance().getCheckPoint())){
+            while (AiManage.getInstance().isRunning() && !checkHas(PathStart, AiManage.getInstance().getCheckPoint())){
                 moveToClick(PathBoss, AiManage.getInstance().getCheckPoint(),new Point(694,-290));
                 ThreadUtil.sleep(2000);
             }
             moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(3000);
 
-            while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())){
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())){
                 if (checkHas(PathSkip, AiManage.getInstance().getCheckPoint())){
                     moveToClick(PathSkip, AiManage.getInstance().getCheckPoint());
                     ThreadUtil.sleep(2000);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family.java

@@ -37,7 +37,7 @@ public class SceneMain_Family extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 2 - 2
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Help.java

@@ -45,7 +45,7 @@ public class SceneMain_Family_Help extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -91,7 +91,7 @@ public class SceneMain_Family_Help extends BaseScene implements Scene {
         moveToClick(PathMemory, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
 
-        while (checkHas(PathGive,AiManage.getInstance().getCheckPoint())){
+        while (AiManage.getInstance().isRunning() && checkHas(PathGive,AiManage.getInstance().getCheckPoint())){
             int count = getRecord().getData().getCount();
             if (count<3){
                 moveToClick(PathGive, AiManage.getInstance().getCheckPoint());

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Info.java

@@ -39,7 +39,7 @@ public class SceneMain_Family_Info extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out.java

@@ -39,7 +39,7 @@ public class SceneMain_Family_Out extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out_BigBoss.java

@@ -33,7 +33,7 @@ public class SceneMain_Family_Out_BigBoss extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out_Boss.java

@@ -38,7 +38,7 @@ public class SceneMain_Family_Out_Boss extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -72,7 +72,7 @@ public class SceneMain_Family_Out_Boss extends BaseScene implements Scene {
         }
 
         if (count<maxTime){
-            while (!checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathReward, AiManage.getInstance().getCheckPoint())) {
                     moveToClick(PathReward, AiManage.getInstance().getCheckPoint());
                     ThreadUtil.sleep(2000);
@@ -89,7 +89,7 @@ public class SceneMain_Family_Out_Boss extends BaseScene implements Scene {
                 moveToClick(PathStart2, AiManage.getInstance().getCheckPoint());
                 ThreadUtil.sleep(2000);
 
-                while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+                while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
                     if (checkHas(PathSkip, AiManage.getInstance().getCheckPoint())) {
                         moveToClick(PathSkip, AiManage.getInstance().getCheckPoint());
                         ThreadUtil.sleep(2000);

+ 2 - 2
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Out_Fight.java

@@ -35,7 +35,7 @@ public class SceneMain_Family_Out_Fight extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -63,7 +63,7 @@ public class SceneMain_Family_Out_Fight extends BaseScene implements Scene {
         moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
 
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             if (checkHas(PathSkip, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathSkip, AiManage.getInstance().getCheckPoint());
                 ThreadUtil.sleep(2000);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/family/SceneMain_Family_Task.java

@@ -47,7 +47,7 @@ public class SceneMain_Family_Task extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight.java

@@ -37,7 +37,7 @@ public class SceneMain_Fight extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Endless.java

@@ -33,7 +33,7 @@ public class SceneMain_Fight_Endless extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Endless_Quick.java

@@ -41,7 +41,7 @@ public class SceneMain_Fight_Endless_Quick extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -63,14 +63,14 @@ public class SceneMain_Fight_Endless_Quick extends BaseScene implements Scene {
     public void think() throws AWTException {
         int count = getRecord().getData().getCount();
         if (count < maxCount) {
-            while (!checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
                 ThreadUtil.sleep(2000);
             }
             moveToClick(PathMax, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
             moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
-            while (!checkHas(PathOk, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOk, AiManage.getInstance().getCheckPoint())) {
                 ThreadUtil.sleep(2000);
             }
             getRecord().getData().setCount(count + 1);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Endless_Reward.java

@@ -36,7 +36,7 @@ public class SceneMain_Fight_Endless_Reward extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym.java

@@ -28,7 +28,7 @@ public class SceneMain_Fight_Gym extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym_Cloud.java

@@ -48,7 +48,7 @@ public class SceneMain_Fight_Gym_Cloud extends SceneWhitSubRecord implements Sce
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -88,7 +88,7 @@ public class SceneMain_Fight_Gym_Cloud extends SceneWhitSubRecord implements Sce
             ThreadUtil.sleep(4000);
             moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
-            while (!checkHas(PathStart2, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathStart2, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathBuy, AiManage.getInstance().getCheckPoint())) {
                     //没有次数了 今日结束
                     getRecordSub().getData().setDone(true);
@@ -103,7 +103,7 @@ public class SceneMain_Fight_Gym_Cloud extends SceneWhitSubRecord implements Sce
             moveToClick(PathStart2, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
 
-            while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathLose, AiManage.getInstance().getCheckPoint())) {
                     //发现失败 直接放弃
                     getRecord().getData().setCount(maxTime);

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym_Dragon.java

@@ -46,7 +46,7 @@ public class SceneMain_Fight_Gym_Dragon extends SceneWhitSubRecord implements Sc
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -81,7 +81,7 @@ public class SceneMain_Fight_Gym_Dragon extends SceneWhitSubRecord implements Sc
             ThreadUtil.sleep(4000);
             moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
-            while (!checkHas(PathStart2, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathStart2, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathBuy, AiManage.getInstance().getCheckPoint())) {
                     //没有次数了 结束
                     getRecordSub().getData().setDone(true);
@@ -96,7 +96,7 @@ public class SceneMain_Fight_Gym_Dragon extends SceneWhitSubRecord implements Sc
             moveToClick(PathStart2, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
 
-            while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathLose, AiManage.getInstance().getCheckPoint())) {
                     //发现失败 直接放弃
                     getRecord().getData().setCount(maxTime);

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_Gym_Wind.java

@@ -49,7 +49,7 @@ public class SceneMain_Fight_Gym_Wind extends SceneWhitSubRecord implements Scen
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -89,7 +89,7 @@ public class SceneMain_Fight_Gym_Wind extends SceneWhitSubRecord implements Scen
             ThreadUtil.sleep(4000);
             moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
-            while (!checkHas(PathStart2, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathStart2, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathBuy, AiManage.getInstance().getCheckPoint())) {
                     //没有次数了 今日结束
                     getRecordSub().getData().setDone(true);
@@ -104,7 +104,7 @@ public class SceneMain_Fight_Gym_Wind extends SceneWhitSubRecord implements Scen
             moveToClick(PathStart2, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
 
-            while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
                 if (checkHas(PathLose, AiManage.getInstance().getCheckPoint())) {
                     //发现失败 直接放弃
                     getRecord().getData().setCount(maxTime);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_VS.java

@@ -41,7 +41,7 @@ public class SceneMain_Fight_VS extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/fight/SceneMain_Fight_VS_Quick.java

@@ -34,7 +34,7 @@ public class SceneMain_Fight_VS_Quick extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -65,7 +65,7 @@ public class SceneMain_Fight_VS_Quick extends BaseScene implements Scene {
             ThreadUtil.sleep(2000);
             //再点一下开始挑战
             moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
-            while (!checkHas(PathOK, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOK, AiManage.getInstance().getCheckPoint())) {
                 ThreadUtil.sleep(2000);
             }
         }
@@ -80,7 +80,7 @@ public class SceneMain_Fight_VS_Quick extends BaseScene implements Scene {
             ThreadUtil.sleep(2000);
             //再点一下开始挑战
             moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
-            while (!checkHas(PathOK, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOK, AiManage.getInstance().getCheckPoint())) {
                 ThreadUtil.sleep(2000);
             }
         }

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/glory/SceneMain_Glory.java

@@ -34,7 +34,7 @@ public class SceneMain_Glory extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/glory/SceneMain_Glory_Match.java

@@ -46,7 +46,7 @@ public class SceneMain_Glory_Match extends SceneWhitSubRecord implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
 
@@ -71,7 +71,7 @@ public class SceneMain_Glory_Match extends SceneWhitSubRecord implements Scene {
     @Override
     public void think() throws AWTException {
         int count = getRecord().getData().getCount();
-        while (!isDone()) {
+        while (AiManage.getInstance().isRunning() && !isDone()) {
             if (checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathStart, AiManage.getInstance().getCheckPoint());
                 ThreadUtil.sleep(2000);
@@ -85,7 +85,7 @@ public class SceneMain_Glory_Match extends SceneWhitSubRecord implements Scene {
                     break;
                 }
             }
-            while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+            while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
 //            if (checkHas(PathLose, AiManage.getInstance().getCheckPoint())) {
 //                //发现失败 直接放弃
 //                getRecord().getData().setCount(maxTime);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/mail/SceneMain_Mail.java

@@ -34,7 +34,7 @@ public class SceneMain_Mail extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu.java

@@ -36,7 +36,7 @@ public class SceneMain_Qiyu extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 4 - 4
src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu_find.java

@@ -34,14 +34,14 @@ public class SceneMain_Qiyu_find extends BaseScene implements Scene {
 
     @Override
     public void back() throws AWTException {
-        while (!checkHas(PathOk, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOk, AiManage.getInstance().getCheckPoint())) {
             moveToClick(PathBack, AiManage.getInstance().getCheckPoint());
             ThreadUtil.sleep(2000);
         }
         ThreadUtil.sleep(2000);
         moveToClick(PathOk, AiManage.getInstance().getCheckPoint());
         int countTemp = 0;
-        while (!checkHas(PathRewrad, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathRewrad, AiManage.getInstance().getCheckPoint())) {
             countTemp++;
             ThreadUtil.sleep(2000);
             if (countTemp % 5 == 0) {
@@ -59,7 +59,7 @@ public class SceneMain_Qiyu_find extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
 
@@ -102,7 +102,7 @@ public class SceneMain_Qiyu_find extends BaseScene implements Scene {
             ThreadUtil.sleep(2000);
         }
 
-        while (!checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathStart, AiManage.getInstance().getCheckPoint())) {
             ThreadUtil.sleep(1000);
         }
 

+ 3 - 3
src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu_helper.java

@@ -36,7 +36,7 @@ public class SceneMain_Qiyu_helper extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -58,7 +58,7 @@ public class SceneMain_Qiyu_helper extends BaseScene implements Scene {
     public void think() throws AWTException {
         moveToClick(PathOneButton,AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
-        while (!checkHas(PathOk,AiManage.getInstance().getCheckPoint())){
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOk,AiManage.getInstance().getCheckPoint())){
             ThreadUtil.sleep(2000);
         }
         ThreadUtil.sleep(5000);
@@ -73,7 +73,7 @@ public class SceneMain_Qiyu_helper extends BaseScene implements Scene {
         moveToClick(PathOneButton,AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
 
-        while (!checkHas(PathOk,AiManage.getInstance().getCheckPoint())){
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOk,AiManage.getInstance().getCheckPoint())){
             ThreadUtil.sleep(2000);
         }
         ThreadUtil.sleep(5000);

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/qiyi/SceneMain_Qiyu_quest.java

@@ -34,7 +34,7 @@ public class SceneMain_Qiyu_quest extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter3, AiManage.getInstance().getCheckPoint())) {

+ 6 - 6
src/main/java/com/sencorsta/rabs/obj/ai/scene/role/SceneMain_Role.java

@@ -48,7 +48,7 @@ public class SceneMain_Role extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {
@@ -82,7 +82,7 @@ public class SceneMain_Role extends BaseScene implements Scene {
         moveToClick(PathLevel, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
 
-        while (!checkHas(PathCanLvup, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathCanLvup, AiManage.getInstance().getCheckPoint())) {
             moveToHold(PathExp, AiManage.getInstance().getCheckPoint(), new Point(0, 0), 10000);
             ThreadUtil.sleep(2000);
         }
@@ -94,7 +94,7 @@ public class SceneMain_Role extends BaseScene implements Scene {
         ThreadUtil.sleep(3000);
         moveToClick(PathTime3, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             if (checkHas(PathShop, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathShop, AiManage.getInstance().getCheckPoint());
             }
@@ -117,7 +117,7 @@ public class SceneMain_Role extends BaseScene implements Scene {
         ThreadUtil.sleep(3000);
         moveToClick(PathTime30, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             if (checkHas(PathShop, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathShop, AiManage.getInstance().getCheckPoint());
             }
@@ -140,7 +140,7 @@ public class SceneMain_Role extends BaseScene implements Scene {
         ThreadUtil.sleep(3000);
         moveToClick(PathTime30, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             if (checkHas(PathShop, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathShop, AiManage.getInstance().getCheckPoint());
             }
@@ -163,7 +163,7 @@ public class SceneMain_Role extends BaseScene implements Scene {
         ThreadUtil.sleep(3000);
         moveToClick(PathTime30, AiManage.getInstance().getCheckPoint());
         ThreadUtil.sleep(2000);
-        while (!checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
+        while (AiManage.getInstance().isRunning() && !checkHas(PathOver, AiManage.getInstance().getCheckPoint())) {
             if (checkHas(PathShop, AiManage.getInstance().getCheckPoint())) {
                 moveToClick(PathShop, AiManage.getInstance().getCheckPoint());
             }

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/role/SceneMain_Role_SkillPoint.java

@@ -40,7 +40,7 @@ public class SceneMain_Role_SkillPoint extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/task/SceneMain_Task.java

@@ -33,7 +33,7 @@ public class SceneMain_Task extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 1 - 1
src/main/java/com/sencorsta/rabs/obj/ai/scene/welfare/SceneMain_Welfare.java

@@ -38,7 +38,7 @@ public class SceneMain_Welfare extends BaseScene implements Scene {
 
     @Override
     public void open() throws AWTException {
-        while (!check()) {
+        while (AiManage.getInstance().isRunning() && !check()) {
             AiManage.getInstance().updateWindow();
             ThreadUtil.sleep(2000);
             if (checkHas(PathEnter, AiManage.getInstance().getCheckPoint())) {

+ 2 - 2
src/main/java/com/sencorsta/rabs/ui/RootFrame.java

@@ -155,8 +155,8 @@ public class RootFrame extends JFrame {
 		RobotPanel panel1 = new RobotPanel();
 		OnePunchPanel panel2 = new OnePunchPanel();
 
-		tabbedPane.addTab("脚本管理", panel1);
-		tabbedPane.addTab("一键启动", panel2);
+		tabbedPane.addTab("一拳超人", panel1);
+		//tabbedPane.addTab("一键启动", panel2);
 		tabbedPane.setTabPlacement(JTabbedPane.LEFT);
 	}
 

+ 8 - 92
src/main/java/com/sencorsta/rabs/ui/robot/RobotPanel.java

@@ -42,9 +42,8 @@ public class RobotPanel extends JPanel {
     JComboBox<String> windowComboBox = new JComboBox<>();
     private String selectedWindowTitle;
     JButton clearAllData = new JButton("清空数据");
-    JButton forcePass = new JButton("跳过当前场景");
-    JButton aiButton = new JButton("ai");
-    JButton debugButton = new JButton("debug");
+    JButton forcePass = new JButton("跳过场景");
+    JButton aiButton = new JButton("开始作业");
     private JTextField regexTextField = new JTextField();
     public static ScheduledThreadPoolExecutor thinkPoll = new ScheduledThreadPoolExecutor(SystemUtil.getTotalThreadCount() * 2 + 1);
 
@@ -57,7 +56,6 @@ public class RobotPanel extends JPanel {
         controlPanel.add(aiButton);
         controlPanel.add(clearAllData);
         controlPanel.add(forcePass);
-        controlPanel.add(debugButton);
         add(controlPanel, BorderLayout.NORTH);
 
         getWindowTitles();
@@ -76,14 +74,12 @@ public class RobotPanel extends JPanel {
             public void changedUpdate(DocumentEvent e) {
                 getWindowTitles();
             }
-        });
-        debugButton.addActionListener(e -> {
-
         });
         aiButton.addActionListener(e -> {
             if (isThinking){
                 isThinking=false;
                 AiManage.getInstance().stop();
+                aiButton.setText("开始作业");
             }else {
                 AppConfig.getInstance().getSetting().setByGroup("selectedWindowTitle", "robot", (String) windowComboBox.getSelectedItem());
                 AppConfig.getInstance().saveAll();
@@ -92,9 +88,14 @@ public class RobotPanel extends JPanel {
                 aiManage.setWindowName((String) windowComboBox.getSelectedItem());
                 aiManage.run();
                 isThinking=true;
+                aiButton.setText("终止作业");
             }
         });
         clearAllData.addActionListener(e -> {
+            if (AiManage.getInstance().isRunning()) {
+                AiManage.getInstance().stop();
+                aiButton.setText("开始作业");
+            }
             AiManage.getInstance().clearAllData();
         });
         forcePass.addActionListener(event -> {
@@ -140,91 +141,6 @@ public class RobotPanel extends JPanel {
         System.setErr(new PrintStream(out, true));
     }
 
-    private void moveToClick(String filename, double similarityThreshold) throws AWTException {
-        moveToClick(filename, similarityThreshold, new Point(0, 0));
-    }
-
-    private void moveToClick(String filename, double similarityThreshold, Point fixPoint) throws AWTException {
-        Rectangle rectangle = RobotUtil.getRectangle(selectedWindowTitle);
-        Mat windowMat = RobotUtil.getWindowMat(rectangle);
-        Mat template = Imgcodecs.imread(filename);
-
-        Mat scaledTempl = new Mat();
-        if (filename.contains("energy")){
-            Imgproc.resize(template, template, new Size(template.cols() * 1.2, template.rows() * 1.2));
-        }
-
-
-        Mat result = new Mat();
-        Imgproc.matchTemplate(windowMat, template, result, Imgproc.TM_CCOEFF_NORMED);
-        Core.MinMaxLocResult mmr = Core.minMaxLoc(result);
-        double maxCorrelation = mmr.maxVal;
-        Point matchLoc = mmr.maxLoc; // 获取匹配区域的左上角坐标
-        // 根据需要设置相似度的阈值
-//        System.out.println("maxCorrelation = " + maxCorrelation);
-        if (maxCorrelation >= similarityThreshold) {
-//            System.out.println("图像包含相似内容。" + filename);
-//            System.out.println("匹配区域左上角坐标: (" + matchLoc.x + ", " + matchLoc.y + ")");
-            // 创建 Robot 对象
-            Robot robot = null;
-            try {
-                robot = new Robot();
-            } catch (AWTException awtException) {
-                awtException.printStackTrace();
-            }
-            java.awt.Point currentMouseLocation = MouseInfo.getPointerInfo().getLocation();
-            int currentMouseX = currentMouseLocation.x;
-            int currentMouseY = currentMouseLocation.y;
-            // 将鼠标移动到匹配区域的左上角坐标
-            robot.mouseMove(rectangle.x + (int) matchLoc.x + template.cols() / 2 + (int) fixPoint.x, rectangle.y + (int) matchLoc.y + template.rows() / 2 + (int) fixPoint.y);
-
-            // 执行鼠标左键单击操作
-            robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
-            robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
-            robot.mouseMove(currentMouseX, currentMouseY);
-        } else {
-            System.out.println("图像不包含相似内容。" + filename + "maxCorrelation = " + maxCorrelation);
-        }
-    }
-
-
-
-
-    private boolean checkHas(String filename, double similarityThreshold) throws AWTException {
-        return checkHas(filename, similarityThreshold, null);
-    }
-
-    private boolean checkHas(String filename, double similarityThreshold, Mat windowMat) throws AWTException {
-        if (windowMat == null) {
-            Rectangle rectangle = RobotUtil.getRectangle(selectedWindowTitle);
-            windowMat = RobotUtil.getWindowMat(rectangle);
-        }
-        Mat template = Imgcodecs.imread(filename);
-        if (filename.contains("energy")){
-            Imgproc.resize(template, template, new Size(template.cols() * 1.1, template.rows() * 1.1));
-        }
-        Mat result = new Mat();
-        Imgproc.matchTemplate(windowMat, template, result, Imgproc.TM_CCOEFF_NORMED);
-        Core.MinMaxLocResult mmr = Core.minMaxLoc(result);
-        double maxCorrelation = mmr.maxVal;
-        if (maxCorrelation >= similarityThreshold) {
-            System.out.println("maxCorrelation = " + maxCorrelation);
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    private void OpenWindowToFront() {
-        WinDef.HWND windowHandle = User32.INSTANCE.FindWindow(null, selectedWindowTitle);
-        if (windowHandle == null) {
-            System.out.println("Window not found: " + selectedWindowTitle);
-        }
-        User32.INSTANCE.ShowWindow(windowHandle, 9);
-        User32.INSTANCE.SetForegroundWindow(windowHandle);
-        ThreadUtil.sleep(200);
-    }
-
     private void getWindowTitles() {
         String lastSelect = AppConfig.getInstance().getSetting().getStr("selectedWindowTitle", "robot", "");
         windowComboBox.removeAllItems();