Skip to content

Commit e0ebc66

Browse files
Update autopicklatest.py
MAJOR FIXES FOR 3 LOCK SAFES AND DOORS
1 parent b83a198 commit e0ebc66

1 file changed

Lines changed: 44 additions & 21 deletions

File tree

autopicklatest.py

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Permission is hereby granted, free of charge, to use and distribute this software
44
# provided that this notice remains in all copies.
55

6-
#AUTOPICK VERSION 2.1 - MapleSyrupLover
6+
#AUTOPICK VERSION 2.3.0 - MapleSyrupLover
77

88
import time
99
import ctypes
@@ -22,21 +22,21 @@
2222
NEAR_WHITE_THRESHOLD = 245
2323

2424
# coordinates
25-
SAFE_3_COORDS = [(825, 552), (960, 551), (1095, 552)]
26-
SAFE_2_COORDS = [(890, 552), (1025, 551)]
27-
SAFE_1_COORDS = [(960, 552)]
25+
SAFE_3_COORDS = [(825, 553), (960, 561), (1095, 553)]
26+
SAFE_2_COORDS = [(890, 553), (1025, 561)]
27+
SAFE_1_COORDS = [(960, 553)]
2828

2929
# keybinds
3030
KEY_3SAFE = 'q'
3131
KEY_2SAFE = 'v'
3232
KEY_1SAFE = 'b'
3333

3434
# sampling region size (even number). Smaller = faster, less robust.
35-
SAMPLE_SIZE = 2
35+
SAMPLE_SIZE = 2
3636

3737
# performance tuning
3838
POLL_INTERVAL = 0.008
39-
WAIT_TIMEOUT = 0.45 # seconds to wait for next lock to appear
39+
WAIT_TIMEOUT = 0.40 # seconds to wait for next lock to appear
4040

4141
# pyautogui tweaks
4242
pyautogui.PAUSE = 0
@@ -130,26 +130,49 @@ def do_click_if_region(x: int, y: int) -> bool:
130130
return True
131131
return False
132132

133+
_3safe_state = 0
134+
_3safe_start_time = 0
135+
133136
def run_3safe():
134-
135-
if do_click_if_region(*SAFE_3_COORDS[0]):
136-
print("3-Safe: Lock 1 done")
137+
global _3safe_state, _3safe_start_time
138+
139+
# Reset if timeout exceeded (safety net - 1 second)
140+
if _3safe_state > 0 and time.time() - _3safe_start_time > 1.0:
141+
_3safe_state = 0
142+
143+
if _3safe_state == 0:
144+
# Looking for Lock 1
145+
if do_click_if_region(*SAFE_3_COORDS[0]):
146+
print("3-Safe: Lock 1 done")
147+
_3safe_state = 1
148+
_3safe_start_time = time.time()
149+
150+
elif _3safe_state == 1:
151+
# Looking for Lock 2
137152
if wait_for_region(*SAFE_3_COORDS[1]):
138153
if is_key_down(KEY_3SAFE):
139154
pyautogui.click()
140155
print("3-Safe: Lock 2 done")
141-
if wait_for_region(*SAFE_3_COORDS[2]):
142-
if is_key_down(KEY_3SAFE):
143-
pyautogui.click()
144-
print("3-Safe: Lock 3 done")
145-
return
146-
start = time.time()
147-
while is_key_down(KEY_3SAFE) and time.time() - start < 0.16:
148-
if region_has_target(*SAFE_3_COORDS[2]):
149-
pyautogui.click()
150-
print("3-Safe: Lock 3 done (fallback)")
151-
return
152-
time.sleep(POLL_INTERVAL)
156+
_3safe_state = 2
157+
_3safe_start_time = time.time()
158+
159+
elif _3safe_state == 2:
160+
# Looking for Lock 3
161+
if wait_for_region(*SAFE_3_COORDS[2]):
162+
if is_key_down(KEY_3SAFE):
163+
pyautogui.click()
164+
print("3-Safe: Lock 3 done")
165+
_3safe_state = 0
166+
return
167+
# fallback
168+
start = time.time()
169+
while is_key_down(KEY_3SAFE) and time.time() - start < 0.16:
170+
if region_has_target(*SAFE_3_COORDS[2]):
171+
pyautogui.click()
172+
print("3-Safe: Lock 3 done (fallback)")
173+
_3safe_state = 0
174+
return
175+
time.sleep(POLL_INTERVAL)
153176

154177
def run_2safe():
155178
if do_click_if_region(*SAFE_2_COORDS[0]):

0 commit comments

Comments
 (0)