From 0d6b5bc446e0415a99238085e7c8fa53029e8462 Mon Sep 17 00:00:00 2001 From: 1w1w11w1 <1252530896@qq.com> Date: Wed, 26 Aug 2026 14:19:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(maa):=20=E6=B4=BB=E5=8A=A8=E5=85=B3?= =?UTF-8?q?=E4=BC=98=E5=85=88=E4=B8=8D=E5=86=8D=E6=B8=85=E9=9B=B6=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E7=90=86=E6=99=BA=E4=BD=9C=E6=88=98=E7=9A=84=E7=90=86?= =?UTF-8?q?=E6=99=BA=E8=8D=AF=E9=A2=9D=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/task/MAA/AutoProxy.py | 62 +++++++++++++++++++++------------------ res/version.json | 3 +- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/app/task/MAA/AutoProxy.py b/app/task/MAA/AutoProxy.py index 5359538df..ba04078cc 100644 --- a/app/task/MAA/AutoProxy.py +++ b/app/task/MAA/AutoProxy.py @@ -196,6 +196,38 @@ def _resolve_activity_stage( return stages[configured_index - 1] if configured_index <= len(stages) else stages[0] +def _build_activity_priority_fight( + fight_task: dict, activity_stage: str, medicine_numb: int +) -> dict: + """生成 MAA 活动关优先任务,使用独立理智药额度。 + + 活动关优先与理智作战刻意保持为两个独立任务,分别使用各自的理智药 + 额度(Task.ActivityMedicineNumb 与计划表 MedicineNumb),互不转移。 + """ + + activity_fight = fight_task.copy() + activity_fight.update( + { + "Name": "活动关优先", + "IsEnable": True, + "StagePlan": [activity_stage], + "IsStageManually": True, + "UseOptionalStage": False, + "UseWeeklySchedule": False, + "EnableTargetDrop": False, + "DropId": "", + "DropCount": 0, + "IsInventoryTarget": False, + "EnableTimesLimit": False, + "UseMedicine": medicine_numb > 0, + "MedicineCount": medicine_numb, + "UseExpiringMedicine": False, + "UseExpireMedicineForActivity": False, + } + ) + return activity_fight + + class AutoProxyTask(TaskExecuteBase): """自动代理模式""" @@ -797,34 +829,8 @@ async def set_maa(self, emulator_info: DeviceInfo): activity_medicine_numb = self.cur_user_config.get( "Task", "ActivityMedicineNumb" ) - activity_fight = task_set["Fight"].copy() - activity_fight.update( - { - "Name": "活动关优先", - "IsEnable": True, - "StagePlan": [activity_stage], - "IsStageManually": True, - "UseOptionalStage": False, - "UseWeeklySchedule": False, - "EnableTargetDrop": False, - "DropId": "", - "DropCount": 0, - "IsInventoryTarget": False, - "EnableTimesLimit": False, - "UseMedicine": activity_medicine_numb > 0, - "MedicineCount": activity_medicine_numb, - "UseExpiringMedicine": False, - "UseExpireMedicineForActivity": False, - } - ) - # 理智药额度只交给优先活动关,避免后续普通作战重复消耗。 - task_set["Fight"].update( - { - "UseMedicine": False, - "MedicineCount": 0, - "UseExpiringMedicine": False, - "UseExpireMedicineForActivity": False, - } + activity_fight = _build_activity_priority_fight( + task_set["Fight"], activity_stage, activity_medicine_numb ) # 导出任务配置 diff --git a/res/version.json b/res/version.json index a0718721b..0c89abd0b 100644 --- a/res/version.json +++ b/res/version.json @@ -8,7 +8,8 @@ ], "修复BUG": [ "OK-WW专项 修复任务在日志产生前手动终止时历史记录误显示未捕获到日志的问题", - "OK-NTE专项 修复任务结束后异环启动器进程残留并持续占用内存的问题" + "OK-NTE专项 修复任务结束后异环启动器进程残留并持续占用内存的问题", + "MAA专项 修复开启活动关优先后普通理智作战的理智药额度被静默清零的问题,两个作战任务各自使用独立理智药额度" ] }, "v5.4.0-beta.8":{