Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
197 changes: 176 additions & 21 deletions src/heist_path/HeistPathB.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,32 @@
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)
self.switch_to_runner(check_switched=True)
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)
Expand All @@ -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)
Expand Down Expand Up @@ -142,41 +158,180 @@ 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")
Comment thread
coderabbitai[bot] marked this conversation as resolved.
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:
raise AbortException("timeout for wait_and_interact") # 考虑之后加复位或其他
Comment thread
HazukiKaguya marked this conversation as resolved.
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)

# 全新大厅到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 = 3):
open_door = False
open_loop =0
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")
Expand Down
12 changes: 9 additions & 3 deletions src/tasks/AutoHeistTask.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def _inst_gap():
[
_inst_line("📍 步骤起点:站在可互动小吱的位置开始", "#FF5555", bold=True),
_inst_line("⚙️ 镜头设置:控制 ➔ 移动镜头修正 ➔ 禁用", "#FF5555", bold=True),
_inst_line("⚠️ 必備條件:至少有一個復活道具", "#FF5555", bold=True),
_inst_line("⚠️ 必备条件:至少有一个复活道具", "#FF5555", bold=True),
_inst_line("🥷 避战方式:翳【长按 Shift】/ 浔【长按攻击】", "#FF5555", bold=True),
_inst_gap(),
_inst_line("路径1推荐设置", bold=True),
Expand All @@ -63,9 +63,15 @@ def _inst_gap():
_inst_line("避战角色(可选): 翳 / 浔", indent=1),
_inst_gap(),
_inst_line("路径2推荐设置", bold=True),
_inst_line("战斗角色: 早雾(必须,战斗角色中最前) / 主角 / 哈尼娅", indent=1),
_inst_line("画质:性能 | 分辨率:1080P | FPS:60", indent=1),
_inst_line("跑图角色: 薄荷", indent=1),
_inst_line("避战角色: 翳", indent=1),
_inst_line("早雾避战:" , indent=1),
_inst_line(" 战斗角色: 早雾(必须,战斗角色中最前,其他战斗角色随意,可塞安魂曲) / 主角 / 哈尼娅", indent=1),
_inst_line(" 避战角色: 翳(必须,设置为shift避战)", indent=1),
_inst_line("浔避战:" , indent=1),
_inst_line(" 战斗角色: 随意(战斗角色随意,可塞安魂曲) / 主角 / 哈尼娅", indent=1),
_inst_line(" 避战角色: 浔(必须,设置为长按攻击避战)", indent=1),

]
)

Expand Down
Loading