From 9627348bfe9cff0bebdf9cb3ea3ba40605b1ddec Mon Sep 17 00:00:00 2001 From: Hazuki-Kaguya Date: Sun, 31 May 2026 00:13:03 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E7=BA=BF=E8=B7=AFB=20=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=88=98=E6=96=97=E7=9A=84=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化大厅战斗的稳定性 --- src/heist_path/HeistPathB.py | 50 ++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/src/heist_path/HeistPathB.py b/src/heist_path/HeistPathB.py index b5d4a52..4c821fa 100644 --- a/src/heist_path/HeistPathB.py +++ b/src/heist_path/HeistPathB.py @@ -142,41 +142,59 @@ def goto_lg1_skip(self): self.send_key_up("d") self.send_key_up("w") self.switch_to_fighter(check_switched=True, mode=1) # 切到早雾控怪 - self.sleep(0.42) + self.sleep(0.24) self.send_key("s", down_time=0.10) - self.sleep(0.72) + self.sleep(1.14) self.send_key("e", down_time=2.60) self.sleep(0.10) self.send_key_down("w") + self.sleep(0.14) + self.send_key_down("d") + self.wait_and_interact(direction="d", is_lock=True, time_out=7.64) self.sleep(0.10) - self.wait_and_interact(direction="w", is_lock=True, time_out=7.64) + self.send_key_up("w") if self.wait_ocr(x=0.60, y=0.52, to_x=0.70, to_y=0.57, match=re.compile("开门"), time_out=1.14): self.sleep(0.10) self.send_key("f", down_time=0.10) self.sleep(0.10) elif self.find_interac(): + self.sleep(0.20) self.clear_current_combat() self.sleep(0.10) - isOpenDoor = False - isOpenLoop =0 - while isOpenDoor == False and isOpenLoop <3: - if not self.wait_ocr(x=0.60, y=0.52, to_x=0.70, to_y=0.57, match=re.compile("开门"), time_out=1.14): - self.send_key("f", down_time=0.10) - self.sleep(0.32) - isOpenLoop += 1 - isOpenDoor = False - else: - isOpenDoor = True - self.send_key_down("w") - self.sleep(0.10) - self.wait_and_interact(direction="w", is_lock=False, time_out=3.65) + self.send_key("w", down_time=0.32) self.sleep(0.10) + self.send_key_down('d') + self.sleep(0.05) + self.wait_and_interact(direction="d", is_lock=False, time_out=3.65) + if self.find_interac(): + is_open_door = self.lobby_open_door_check() + if not is_open_door: + return # 考虑之后加复位或其他 + else: + self.sleep(0.10) + self.send_key("f", down_time=0.10) + self.sleep(0.10) self.send_key_down("w") self.sleep(0.24) self.send_key("a", down_time=0.36) self.wait_and_interact(direction="w", is_lock=False, time_out=3.65) self.sleep(0.30) + def lobby_open_door_check(self,check_time): + open_door = False + open_loop =0 + if not check_time: + check_time = 3 + while not open_door and open_loop < check_time: + if self.wait_ocr(x=0.60, y=0.52, to_x=0.70, to_y=0.57, match=re.compile("开门"), time_out=1.14): + open_door = True + else: + self.sleep(0.10) + self.send_key("f", down_time=0.10) + self.sleep(0.20) + open_loop += 1 + return open_door + # LG1部分优化 def lg1_wp1_safer(self): self.log_round_info("LG1 WP1 Safer") From 63c078a58c9985174f5ab18d1e292868aaafe2fb Mon Sep 17 00:00:00 2001 From: Hazuki-Kaguya Date: Sun, 31 May 2026 04:13:09 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E3=80=90=E8=87=AA=E5=8A=A8=E7=B2=89?= =?UTF-8?q?=E7=88=AA=20=E7=BA=BF=E8=B7=AFB=E3=80=91=E5=A4=A7=E5=8E=85?= =?UTF-8?q?=E5=88=B0=E5=8A=9E=E5=85=AC=E5=B1=82=E9=81=BF=E6=88=98=E7=BA=BF?= =?UTF-8?q?=E8=B7=AF=E9=80=82=E9=85=8D=E6=B5=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 全新大厅到LG1办公层线路,浔时停避战,理论正常11分12到办公层(实际耗时65s) --- src/heist_path/HeistPathB.py | 149 +++++++++++++++++++++++++++++++++-- 1 file changed, 144 insertions(+), 5 deletions(-) diff --git a/src/heist_path/HeistPathB.py b/src/heist_path/HeistPathB.py index 4c821fa..8cd7970 100644 --- a/src/heist_path/HeistPathB.py +++ b/src/heist_path/HeistPathB.py @@ -6,7 +6,16 @@ class HeistPathB(HeistPathA): # 全新大厅到LG1办公层线路,办公层避战部分优化 def run_path(self): - self.goto_lg1_skip() + idx = self.avoider_strategy_index() + if idx == -1: + self.log_round_info("没有配置避战角色,全程使用原始线路(路线A)") + self.goto_lg1() + elif idx == 0: + self.log_round_info("配置避战角色狗哥,使用早雾避战(路线B)") + self.goto_lg1_skip_Sakiri() + elif idx == 1: + self.log_round_info("配置避战角色浔,使用浔避战(路线B)") + self.goto_lg1_skip_Hotori() self.wait_team_ui_settle() # if not self.check_current_floor_str("办公"): # self.check_current_floor(1) @@ -14,8 +23,15 @@ def run_path(self): self.lg1_wp1_safer() self.lg1_wp2() self.lg1_wp3() - self.lg1_wp4_buster() - self.lg1_wp5_buster() + if idx == -1: + self.lg1_wp4() + self.lg1_wp5_avoid_combat_01() + elif idx == 0: + self.lg1_wp4_buster() + self.lg1_wp5_buster() + elif idx == 1: + self.lg1_wp4() + self.lg1_wp5_avoid_combat_03() self.wait_team_ui_settle() # if not self.check_current_floor_str("藏品"): # self.check_current_floor(2) @@ -32,8 +48,8 @@ def run_path(self): else: self.lg2_wp4_to_exit3() - # 全新大厅到LG1办公层线路,早雾控怪避战,理论最快11分00到办公层 - def goto_lg1_skip(self): + # 全新大厅到LG1办公层线路,早雾控怪避战,理论正常11分00到办公层(实际耗时60s) + def goto_lg1_skip_Sakiri(self): self.log_round_info("大厅前往LG1") self.sleep(0.30) self.switch_to_runner(check_switched=True) @@ -180,6 +196,129 @@ def goto_lg1_skip(self): self.wait_and_interact(direction="w", is_lock=False, time_out=3.65) self.sleep(0.30) + # 全新大厅到LG1办公层线路,浔时停避战,理论正常11分12到办公层(实际耗时65s) + def goto_lg1_skip_Hotori(self): + self.log_round_info("大厅前往LG1") + self.sleep(0.30) + self.switch_to_avoider(check_switched=True) + self.sleep(0.10) + self.send_key_down('w') + self.sleep(0.64) + self.send_key('lshift', down_time=0.24) + self.sleep(0.64) + self.send_key('lshift', down_time=0.24) + self.sleep(0.64) + self.send_key('lshift', down_time=0.24) + self.sleep(0.64) + self.send_key_up('w') + self.sleep(0.10) + self.send_key_down('d') + self.sleep(0.64) + self.send_key('lshift', down_time=0.24) + self.sleep(0.64) + self.send_key_up('d') + self.sleep(0.10) + self.send_key_down('w') + self.sleep(0.24) + self.send_key("lshift", down_time=0.24) + self.sleep(0.60) + self.wait_and_interact(direction="w", is_lock=True, time_out=5.2) + self.sleep(0.10) + self.click(down_time=0.64) + self.sleep(0.10) + self.send_key_down("d") + self.sleep(0.32) + self.send_key_down("w") + self.sleep(0.24) + self.send_key_up("d") + self.sleep(0.24) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key('space', down_time=0.24) + self.sleep(0.64) + self.send_key_up("w") + self.sleep(0.10) + self.click(down_time=0.64) + self.send_key_down("w") + self.wait_and_interact(direction="w", is_lock=True, time_out=6.4) + self.sleep(0.10) + self.send_key_down("w") + self.sleep(0.32) + self.send_key("a", down_time=0.32) + self.sleep(0.32) + self.send_key("a", down_time=0.42) + self.sleep(0.76) + self.send_key_up("w") + self.sleep(0.10) + self.send_key_down("a") + self.sleep(0.20) + self.send_key('lshift', down_time=0.20) + self.sleep(0.20) + self.send_key('lshift', down_time=0.20) + self.sleep(0.20) + self.send_key('lshift', down_time=0.20) + self.sleep(1.20) + self.send_key_up("a") + self.sleep(0.10) + self.send_key("a", down_time=0.10) + self.sleep(0.10) + self.send_key("w", down_time=0.20) + self.sleep(0.10) + self.send_key("w", down_time=0.10) + self.sleep(0.10) + self.send_key("d", down_time=0.15) + self.sleep(0.10) + self.send_key("d", down_time=0.15) + self.sleep(0.10) + self.send_key("s", down_time=0.10) + self.sleep(0.10) + self.send_key("s", down_time=1.16) + self.sleep(0.10) + self.send_key("d", down_time=0.10) + self.sleep(0.10) + self.send_key("d", down_time=1.82) + self.sleep(0.10) + self.send_key("s", down_time=0.10) + self.sleep(0.10) + self.send_key("s", down_time=0.10) + self.sleep(0.20) + self.click(0.50, 0.50, key="middle", down_time=0.15) + self.sleep(0.10) + self.click(down_time=0.64) + self.sleep(0.10) + self.send_key_down('w') + self.sleep(5.14) + self.send_key_down("d") + self.sleep(0.36) + self.send_key_up('d') + self.sleep(3.60) + self.send_key_up('w') + self.sleep(0.10) + self.click(down_time=0.64) + self.wait_and_interact(direction="w", is_lock=True, time_out=7.64) + self.sleep(0.10) + self.send_key_down("w") + self.sleep(0.24) + self.send_key("a", down_time=0.36) + self.wait_and_interact(direction="w", is_lock=False, time_out=3.65) + self.sleep(0.30) + def lobby_open_door_check(self,check_time): open_door = False open_loop =0