From 3fb7fe8048d72ffdceffe6bcffa66947aa61cf34 Mon Sep 17 00:00:00 2001 From: POLARme Date: Fri, 20 Jun 2025 13:40:42 +0800 Subject: [PATCH] =?UTF-8?q?Fix(Event)=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=9C=A8?= =?UTF-8?q?=E5=B7=B2=E9=80=9A=E8=BF=87=E4=B8=80=E6=AC=A1=E6=80=A7=E5=85=B3?= =?UTF-8?q?=E5=8D=A1=E5=90=8E=E7=9A=84=E5=85=B3=E5=8D=A1=E9=80=92=E8=BF=9B?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/campaign/campaign_ui.py | 9 ++++++++- module/campaign/run.py | 10 +++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/module/campaign/campaign_ui.py b/module/campaign/campaign_ui.py index f639baf1b..9ff1ca408 100644 --- a/module/campaign/campaign_ui.py +++ b/module/campaign/campaign_ui.py @@ -225,6 +225,11 @@ class CampaignUI(MapOperation, CampaignEvent, CampaignOcr): name = mode_name if name not in self.stage_entrance: + if name.lower() in ["hts1", "hts2", "ts1", "ts2"]: + if any(stage.upper() in [s.upper() for s in self.stage_entrance] for stage in ["T3", "T6", "HT3", "HT6"]): + logger.warning(f'Maybe already Pass the Stage: {name}') + raise CampaignNameError("AlreadyPassed") + logger.warning(f'Stage not found: {name}') raise CampaignNameError @@ -377,7 +382,9 @@ class CampaignUI(MapOperation, CampaignEvent, CampaignOcr): self.campaign_set_chapter(name, mode) self.ENTRANCE = self.campaign_get_entrance(name=name) return True - except CampaignNameError: + except CampaignNameError as e: + if getattr(e, 'args', [None])[0] == "AlreadyPassed": + return False pass if self.handle_campaign_ui_additional(): diff --git a/module/campaign/run.py b/module/campaign/run.py index f5d96c5e5..32b91da05 100644 --- a/module/campaign/run.py +++ b/module/campaign/run.py @@ -426,16 +426,20 @@ class CampaignRun(CampaignEvent, ShopStatus): self.campaign.withdraw() except CampaignEnd: pass - self.campaign.ensure_campaign_ui(name=self.stage, mode=mode) + ensure_campaign_ui_result = self.campaign.ensure_campaign_ui(name=self.stage, mode=mode) elif self.campaign.is_in_auto_search_menu(): if self.can_use_auto_search_continue(): logger.info('In auto search menu, skip ensure_campaign_ui.') else: logger.info('In auto search menu, closing.') # Because event_20240725 task balancer delete self.campaign.ensure_auto_search_exit() - self.campaign.ensure_campaign_ui(name=self.stage, mode=mode) + ensure_campaign_ui_result = self.campaign.ensure_campaign_ui(name=self.stage, mode=mode) else: - self.campaign.ensure_campaign_ui(name=self.stage, mode=mode) + ensure_campaign_ui_result = self.campaign.ensure_campaign_ui(name=self.stage, mode=mode) + if ensure_campaign_ui_result is False: + logger.info('Maybe Already pass the stage, goto next.') + self.campaign.handle_map_stop() + break self.disable_raid_on_event() self.handle_commission_notice()