feat(maa): 单次自动代理任务中,已完成的子任务在重复执行时不再启用
This commit is contained in:
@@ -614,7 +614,7 @@ class MaaUserConfig(QConfig):
|
|||||||
|
|
||||||
class AppConfig(GlobalConfig):
|
class AppConfig(GlobalConfig):
|
||||||
|
|
||||||
VERSION = "4.3.5.0"
|
VERSION = "4.3.6.1"
|
||||||
|
|
||||||
gameid_refreshed = Signal()
|
gameid_refreshed = Signal()
|
||||||
PASSWORD_refreshed = Signal()
|
PASSWORD_refreshed = Signal()
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ class MaaManager(QObject):
|
|||||||
|
|
||||||
self.maa_version = None
|
self.maa_version = None
|
||||||
self.maa_update_package = ""
|
self.maa_update_package = ""
|
||||||
|
self.task_dict = {}
|
||||||
self.set = config["Config"].toDict()
|
self.set = config["Config"].toDict()
|
||||||
|
|
||||||
self.data = {}
|
self.data = {}
|
||||||
@@ -264,6 +265,67 @@ class MaaManager(QObject):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 解析任务构成
|
||||||
|
if user_data["Info"]["Mode"] == "简洁":
|
||||||
|
|
||||||
|
if mode == "Annihilation":
|
||||||
|
self.task_dict = {
|
||||||
|
"WakeUp": "True",
|
||||||
|
"Recruiting": "False",
|
||||||
|
"Base": "False",
|
||||||
|
"Combat": "True",
|
||||||
|
"Mission": "False",
|
||||||
|
"Mall": "False",
|
||||||
|
"AutoRoguelike": "False",
|
||||||
|
"Reclamation": "False",
|
||||||
|
}
|
||||||
|
|
||||||
|
elif mode == "Routine":
|
||||||
|
self.task_dict = {
|
||||||
|
"WakeUp": "True",
|
||||||
|
"Recruiting": "True",
|
||||||
|
"Base": "True",
|
||||||
|
"Combat": "True",
|
||||||
|
"Mission": "True",
|
||||||
|
"Mall": "True",
|
||||||
|
"AutoRoguelike": "False",
|
||||||
|
"Reclamation": "False",
|
||||||
|
}
|
||||||
|
|
||||||
|
elif user_data["Info"]["Mode"] == "详细":
|
||||||
|
|
||||||
|
with (self.data[user[2]]["Path"] / f"{mode}/gui.json").open(
|
||||||
|
mode="r", encoding="utf-8"
|
||||||
|
) as f:
|
||||||
|
data = json.load(f)
|
||||||
|
|
||||||
|
self.task_dict = {
|
||||||
|
"WakeUp": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.WakeUp.IsChecked"
|
||||||
|
],
|
||||||
|
"Recruiting": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.Recruiting.IsChecked"
|
||||||
|
],
|
||||||
|
"Base": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.Base.IsChecked"
|
||||||
|
],
|
||||||
|
"Combat": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.Combat.IsChecked"
|
||||||
|
],
|
||||||
|
"Mission": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.Mission.IsChecked"
|
||||||
|
],
|
||||||
|
"Mall": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.Mall.IsChecked"
|
||||||
|
],
|
||||||
|
"AutoRoguelike": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.AutoRoguelike.IsChecked"
|
||||||
|
],
|
||||||
|
"Reclamation": data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.Reclamation.IsChecked"
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
# 尝试次数循环
|
# 尝试次数循环
|
||||||
for i in range(self.set["RunSet"]["RunTimesLimit"]):
|
for i in range(self.set["RunSet"]["RunTimesLimit"]):
|
||||||
|
|
||||||
@@ -402,10 +464,13 @@ class MaaManager(QObject):
|
|||||||
mode="r", encoding="utf-8"
|
mode="r", encoding="utf-8"
|
||||||
) as f:
|
) as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
|
|
||||||
|
# 记录自定义基建索引
|
||||||
user_data["Data"]["CustomInfrastPlanIndex"] = data[
|
user_data["Data"]["CustomInfrastPlanIndex"] = data[
|
||||||
"Configurations"
|
"Configurations"
|
||||||
]["Default"]["Infrast.CustomInfrastPlanIndex"]
|
]["Default"]["Infrast.CustomInfrastPlanIndex"]
|
||||||
|
|
||||||
|
# 记录更新包路径
|
||||||
if (
|
if (
|
||||||
data["Global"]["VersionUpdate.package"]
|
data["Global"]["VersionUpdate.package"]
|
||||||
and (
|
and (
|
||||||
@@ -451,6 +516,8 @@ class MaaManager(QObject):
|
|||||||
mode="r", encoding="utf-8"
|
mode="r", encoding="utf-8"
|
||||||
) as f:
|
) as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
|
|
||||||
|
# 记录更新包路径
|
||||||
if (
|
if (
|
||||||
data["Global"]["VersionUpdate.package"]
|
data["Global"]["VersionUpdate.package"]
|
||||||
and (
|
and (
|
||||||
@@ -871,26 +938,53 @@ class MaaManager(QObject):
|
|||||||
else:
|
else:
|
||||||
self.weekly_annihilation_limit_reached = False
|
self.weekly_annihilation_limit_reached = False
|
||||||
|
|
||||||
if mode == "自动代理_日常" and "任务出错: Fight" in log:
|
if "任务出错: StartUp" in log:
|
||||||
self.maa_result = "MAA未能实际执行任务"
|
|
||||||
elif "任务出错: StartUp" in log:
|
|
||||||
self.maa_result = "MAA未能正确登录PRTS"
|
self.maa_result = "MAA未能正确登录PRTS"
|
||||||
|
|
||||||
elif "任务已全部完成!" in log:
|
elif "任务已全部完成!" in log:
|
||||||
|
|
||||||
|
if "完成任务: StartUp" in log:
|
||||||
|
self.task_dict["WakeUp"] = "False"
|
||||||
|
if "完成任务: Recruit" in log:
|
||||||
|
self.task_dict["Recruiting"] = "False"
|
||||||
|
if "完成任务: Infrast" in log:
|
||||||
|
self.task_dict["Base"] = "False"
|
||||||
|
if "完成任务: Fight" in log or "剿灭任务失败" in log:
|
||||||
|
self.task_dict["Combat"] = "False"
|
||||||
|
if "完成任务: Mall" in log:
|
||||||
|
self.task_dict["Mall"] = "False"
|
||||||
|
if "完成任务: Award" in log:
|
||||||
|
self.task_dict["Mission"] = "False"
|
||||||
|
if "完成任务: Roguelike" in log:
|
||||||
|
self.task_dict["AutoRoguelike"] = "False"
|
||||||
|
if "完成任务: Reclamation" in log:
|
||||||
|
self.task_dict["Reclamation"] = "False"
|
||||||
|
|
||||||
|
if all(v == "False" for v in self.task_dict.values()):
|
||||||
self.maa_result = "Success!"
|
self.maa_result = "Success!"
|
||||||
|
else:
|
||||||
|
self.maa_result = "MAA部分任务执行失败"
|
||||||
|
|
||||||
elif "请「检查连接设置」或「尝试重启模拟器与 ADB」或「重启电脑」" in log:
|
elif "请「检查连接设置」或「尝试重启模拟器与 ADB」或「重启电脑」" in log:
|
||||||
self.maa_result = "MAA的ADB连接异常"
|
self.maa_result = "MAA的ADB连接异常"
|
||||||
|
|
||||||
elif "未检测到任何模拟器" in log:
|
elif "未检测到任何模拟器" in log:
|
||||||
self.maa_result = "MAA未检测到任何模拟器"
|
self.maa_result = "MAA未检测到任何模拟器"
|
||||||
|
|
||||||
elif "已停止" in log:
|
elif "已停止" in log:
|
||||||
self.maa_result = "MAA在完成任务前中止"
|
self.maa_result = "MAA在完成任务前中止"
|
||||||
|
|
||||||
elif "MaaAssistantArknights GUI exited" in log:
|
elif "MaaAssistantArknights GUI exited" in log:
|
||||||
self.maa_result = "MAA在完成任务前退出"
|
self.maa_result = "MAA在完成任务前退出"
|
||||||
|
|
||||||
elif datetime.now() - latest_time > timedelta(
|
elif datetime.now() - latest_time > timedelta(
|
||||||
minutes=self.set["RunSet"][time_book[mode]]
|
minutes=self.set["RunSet"][time_book[mode]]
|
||||||
):
|
):
|
||||||
self.maa_result = "MAA进程超时"
|
self.maa_result = "MAA进程超时"
|
||||||
|
|
||||||
elif self.isInterruptionRequested:
|
elif self.isInterruptionRequested:
|
||||||
self.maa_result = "任务被手动中止"
|
self.maa_result = "任务被手动中止"
|
||||||
|
|
||||||
else:
|
else:
|
||||||
self.maa_result = "Wait"
|
self.maa_result = "Wait"
|
||||||
|
|
||||||
@@ -1071,8 +1165,35 @@ class MaaManager(QObject):
|
|||||||
"Info"
|
"Info"
|
||||||
]["Id"]
|
]["Id"]
|
||||||
|
|
||||||
|
# 按预设设定任务
|
||||||
|
data["Configurations"]["Default"]["TaskQueue.Recruiting.IsChecked"] = (
|
||||||
|
self.task_dict["Recruiting"]
|
||||||
|
) # 自动公招
|
||||||
|
data["Configurations"]["Default"]["TaskQueue.Base.IsChecked"] = (
|
||||||
|
self.task_dict["Base"]
|
||||||
|
) # 基建换班
|
||||||
|
data["Configurations"]["Default"]["TaskQueue.Combat.IsChecked"] = (
|
||||||
|
self.task_dict["Combat"]
|
||||||
|
) # 刷理智
|
||||||
|
data["Configurations"]["Default"]["TaskQueue.Mission.IsChecked"] = (
|
||||||
|
self.task_dict["Mission"]
|
||||||
|
) # 领取奖励
|
||||||
|
data["Configurations"]["Default"]["TaskQueue.Mall.IsChecked"] = (
|
||||||
|
self.task_dict["Mall"]
|
||||||
|
) # 获取信用及购物
|
||||||
|
data["Configurations"]["Default"]["TaskQueue.AutoRoguelike.IsChecked"] = (
|
||||||
|
self.task_dict["AutoRoguelike"]
|
||||||
|
) # 自动肉鸽
|
||||||
|
data["Configurations"]["Default"]["TaskQueue.Reclamation.IsChecked"] = (
|
||||||
|
self.task_dict["Reclamation"]
|
||||||
|
) # 生息演算
|
||||||
|
|
||||||
if user_data["Info"]["Mode"] == "简洁":
|
if user_data["Info"]["Mode"] == "简洁":
|
||||||
|
|
||||||
|
data["Configurations"]["Default"][
|
||||||
|
"TaskQueue.WakeUp.IsChecked"
|
||||||
|
] = "True" # 开始唤醒
|
||||||
|
|
||||||
data["Configurations"]["Default"]["Start.ClientType"] = user_data[
|
data["Configurations"]["Default"]["Start.ClientType"] = user_data[
|
||||||
"Info"
|
"Info"
|
||||||
][
|
][
|
||||||
@@ -1091,30 +1212,6 @@ class MaaManager(QObject):
|
|||||||
|
|
||||||
if "剿灭" in mode:
|
if "剿灭" in mode:
|
||||||
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.WakeUp.IsChecked"
|
|
||||||
] = "True" # 开始唤醒
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Recruiting.IsChecked"
|
|
||||||
] = "False" # 自动公招
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Base.IsChecked"
|
|
||||||
] = "False" # 基建换班
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Combat.IsChecked"
|
|
||||||
] = "True" # 刷理智
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Mission.IsChecked"
|
|
||||||
] = "False" # 领取奖励
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Mall.IsChecked"
|
|
||||||
] = "False" # 获取信用及购物
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.AutoRoguelike.IsChecked"
|
|
||||||
] = "False" # 自动肉鸽
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Reclamation.IsChecked"
|
|
||||||
] = "False" # 生息演算
|
|
||||||
data["Configurations"]["Default"][
|
data["Configurations"]["Default"][
|
||||||
"MainFunction.Stage1"
|
"MainFunction.Stage1"
|
||||||
] = "Annihilation" # 主关卡
|
] = "Annihilation" # 主关卡
|
||||||
@@ -1151,31 +1248,6 @@ class MaaManager(QObject):
|
|||||||
|
|
||||||
elif "日常" in mode:
|
elif "日常" in mode:
|
||||||
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.WakeUp.IsChecked"
|
|
||||||
] = "True" # 开始唤醒
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Recruiting.IsChecked"
|
|
||||||
] = "True" # 自动公招
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Base.IsChecked"
|
|
||||||
] = "True" # 基建换班
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Combat.IsChecked"
|
|
||||||
] = "True" # 刷理智
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Mission.IsChecked"
|
|
||||||
] = "True" # 领取奖励
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Mall.IsChecked"
|
|
||||||
] = "True" # 获取信用及购物
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.AutoRoguelike.IsChecked"
|
|
||||||
] = "False" # 自动肉鸽
|
|
||||||
data["Configurations"]["Default"][
|
|
||||||
"TaskQueue.Reclamation.IsChecked"
|
|
||||||
] = "False" # 生息演算
|
|
||||||
|
|
||||||
data["Configurations"]["Default"]["MainFunction.UseMedicine"] = (
|
data["Configurations"]["Default"]["MainFunction.UseMedicine"] = (
|
||||||
"False" if user_data["Info"]["MedicineNumb"] == 0 else "True"
|
"False" if user_data["Info"]["MedicineNumb"] == 0 else "True"
|
||||||
) # 吃理智药
|
) # 吃理智药
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
"TaskQueue.Recruiting.IsChecked": "True" #自动公招
|
"TaskQueue.Recruiting.IsChecked": "True" #自动公招
|
||||||
"TaskQueue.Base.IsChecked": "True" #基建换班
|
"TaskQueue.Base.IsChecked": "True" #基建换班
|
||||||
"TaskQueue.Combat.IsChecked": "True" #刷理智
|
"TaskQueue.Combat.IsChecked": "True" #刷理智
|
||||||
"TaskQueue.Mission.IsChecked": "True" #领取奖励
|
|
||||||
"TaskQueue.Mall.IsChecked": "True" #获取信用及购物
|
"TaskQueue.Mall.IsChecked": "True" #获取信用及购物
|
||||||
|
"TaskQueue.Mission.IsChecked": "True" #领取奖励
|
||||||
"TaskQueue.AutoRoguelike.IsChecked": "False" #自动肉鸽
|
"TaskQueue.AutoRoguelike.IsChecked": "False" #自动肉鸽
|
||||||
"TaskQueue.Reclamation.IsChecked": "False" #生息演算
|
"TaskQueue.Reclamation.IsChecked": "False" #生息演算
|
||||||
"TaskQueue.Order.WakeUp": "0"
|
"TaskQueue.Order.WakeUp": "0"
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
{
|
{
|
||||||
"main_version": "4.3.5.0",
|
"main_version": "4.3.6.1",
|
||||||
"updater_version": "1.0.0.0",
|
"updater_version": "1.0.0.0",
|
||||||
"announcement": "\n## 新增功能\n- 屏蔽MuMu模拟器开屏广告功能上线\n- 更新器支持多线程下载\n- 添加强制关闭ADB与模拟器等增强任务项\n## 修复BUG\n- 修复统计信息HTML模板公招匹配错误\n- 修复密码显示按钮动画异常\n- 修复`检测到MAA未能实际执行任务`报错被异常屏蔽\n- 修复MAA超时判定异常失效\n## 程序优化\n- 关机等电源操作添加100s倒计时\n- 人工排查弹窗方法优化\n- 人工排查时自动屏蔽静默操作\n- 公告样式优化",
|
"announcement": "\n## 新增功能\n- 屏蔽MuMu模拟器开屏广告功能上线\n- 更新器支持多线程下载\n- 添加强制关闭ADB与模拟器等增强任务项\n## 修复BUG\n- 修复统计信息HTML模板公招匹配错误\n- 修复密码显示按钮动画异常\n- 修复`检测到MAA未能实际执行任务`报错被异常屏蔽\n- 修复MAA超时判定异常失效\n## 程序优化\n- 关机等电源操作添加100s倒计时\n- 人工排查弹窗方法优化\n- 人工排查时自动屏蔽静默操作\n- 公告样式优化",
|
||||||
"version_info": {
|
"version_info": {
|
||||||
|
"4.3.6.1": {
|
||||||
|
"新增功能": [
|
||||||
|
"单次自动代理任务中,已完成的子任务在重复执行时不再启用"
|
||||||
|
]
|
||||||
|
},
|
||||||
"4.3.5.0": {
|
"4.3.5.0": {
|
||||||
"新增功能": [
|
"新增功能": [
|
||||||
"用户设置中新增连战次数与剩余理智关卡两项配置项",
|
"用户设置中新增连战次数与剩余理智关卡两项配置项",
|
||||||
|
|||||||
Reference in New Issue
Block a user