-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathauto.py
175 lines (163 loc) · 5.19 KB
/
auto.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
from time import sleep
from pyautogui import locateOnScreen, press, KEYBOARD_KEYS
from playsound import playsound
from multiprocessing import Process, Pipe, Value
from keyboard import is_pressed
from dotenv import load_dotenv
import ctypes, os, signal, psutil
load_dotenv(dotenv_path='settings.env')
if os.getenv('exit_key') not in KEYBOARD_KEYS or os.getenv('pause_key') not in KEYBOARD_KEYS:
print(f'Invalid key! \nList of valid keys: {KEYBOARD_KEYS}')
quit()
def quit_(pipe, pipe2, pause):
p2_pid = pipe.recv()
p1_pid = pipe2.recv()
psutil.Process(p1_pid).nice(psutil.BELOW_NORMAL_PRIORITY_CLASS) # Lowers process priority
psutil.Process(p2_pid).nice(psutil.BELOW_NORMAL_PRIORITY_CLASS)
while True:
if is_pressed(os.getenv('exit_key')):
print('Exiting program')
os.kill(p1_pid, signal.SIGTERM)
os.kill(p2_pid, signal.SIGTERM)
if is_pressed(os.getenv('pause_key')):
if pause.value == 0:
pause.value = 1
print('Stopped looking for notes on the screen')
sleep(1)
else:
pause.value = 0
print('Started looking for notes on the screen')
sleep(1)
def sound():
playsound('Ding.wav')
def no_sound():
pass
def check(pause):
while True:
sleep(5)
if os.getenv('sound') == 'False':
p = Process(target=no_sound)
else:
p = Process(target=sound)
if pause.value == 0:
# You can probably tinker with this to get better results
dream = locateOnScreen('img/greate_dream.png', confidence=.6) # .6 because water and dream are very similar and sometimes it miss match them
beastly = locateOnScreen('img/beastly.png', confidence=.5)
sprout = locateOnScreen('img/sprout.png', confidence=.5)
water = locateOnScreen('img/water.png', confidence=.6) # .6 because water and dream are very similar and sometimes it miss match them
gloomy = locateOnScreen('img/gloomy.png', confidence=.5)
revival = locateOnScreen('img/revival.png', confidence=.5)
vamadha = locateOnScreen('img/vamadha.png', confidence=.5)
else:
dream = None
beastly = None
sprout = None
water = None
gloomy = None
revival = None
vamadha = None
if dream != None:
print('Rhythm Of The Great Dream')
p.start()
press('r')
sleep(0.4)
press('e')
sleep(0.4)
press('t')
sleep(0.4)
press('r')
sleep(0.4)
press('q')
sleep(10)
elif beastly != None:
print('Rhythm Of The Beastly Trail')
p.start()
press('z')
sleep(0.4)
press('b')
sleep(0.4)
press('n')
sleep(0.4)
press('c')
sleep(0.4)
press('z')
sleep(10)
elif sprout != None:
print('Rhythm Of The Sprout')
p.start()
press('z')
sleep(0.4)
press('b')
sleep(0.4)
press('b')
sleep(0.4)
press('n')
sleep(0.4)
press('m')
sleep(10)
elif water != None:
print('Rhythm Of The Source Water')
p.start()
press('r')
sleep(0.4)
press('e')
sleep(0.4)
press('u')
sleep(0.4)
press('r')
sleep(0.4)
press('j')
sleep(10)
elif gloomy != None:
print('Rhythm Of the Gloomy Path')
p.start()
press('e')
sleep(0.4)
press('w')
sleep(0.4)
press('e')
sleep(0.4)
press('w')
sleep(0.4)
press('y')
sleep(10)
elif revival != None:
print('Rhythm Of Revival')
p.start()
press('s')
sleep(0.4)
press('a')
sleep(0.4)
press('m')
sleep(0.4)
press('b')
sleep(0.4)
press('z')
sleep(10)
elif vamadha != None:
print('Rhythm Of Vamadha')
p.start()
press('r')
sleep(0.4)
press('e')
sleep(0.4)
press('e')
sleep(0.4)
press('w')
sleep(0.4)
press('q')
sleep(10)
if __name__ == '__main__':
if ctypes.windll.shell32.IsUserAnAdmin():
value = Value("i", 0)
conn1, conn2 = Pipe()
p1 = Process(target=check, args=(value,))
p2 = Process(target=quit_, args=(conn2, conn1, value))
print(f'Script is running! \nPress {os.getenv("exit_key")} to exit \nPress {os.getenv("pause_key")} to pause')
p1.start()
p2.start()
conn1.send(p2.pid)
conn2.send(p1.pid)
else:
print("Admin mode is required! Please run as administrator and try again.")
quit()