I tried this today with a self-created python script (using pycharm).
This Pylon was my nemesis , I had give up years ago but now I made it!
I am so thankful to the original author of the sequence that I decided to make an account and share my script
I modified the list with a line counter
Note that I had to add two timings in the list above (maybe Blizz changed the sequence?) and in python I had to shave between 70 to 100 ms off the values - assuming because of the slower processing in python.
if 6300 is line 1, then i added 24a: w:300 2 and 47a w:300 3. after 24 and 47. I also had to adjust lines 38 and 39
In terms of timing, I have a fast PC and did not have stop any programs or disable any add-ons. there were a handful of timing failures apparently because of delays at the very start of the sequence but not annoying enough to address
I managed to get this done by putting wow into windowed mode, about half screen size and pressing the key (used ">") at the same time as I clicked on the pylon.
Here is the python script:
import time
import pyautogui
import os
from pynput import keyboard
start_sequence = False
def read_file(file_name):
# Get the directory of the current script
script_dir = os.path.dirname(os.path.abspath(__file__))
# Construct the full file path
file_path = os.path.join(script_dir, file_name)
# Open and read the file
with open(file_path, 'r') as file:
lines = file.readlines()
return lines
def process_lines(lines):
global start_sequence
for line in lines:
if not start_sequence:
return
else:
line.startswith('w:')
parts = line.split()
line_no = parts[0]
wait_time = int(parts[1][2:])
key_press = parts[2]
print(f"{line_no} :waiting for {wait_time} ms and then pressing key {key_press}")
time.sleep(wait_time / 1000) # Convert ms to seconds
pyautogui.press(key_press)
def on_press(key):
global start_sequence
try:
if key.char == '>':
print("Key '>' pressed. Starting the sequence.")
start_sequence = not start_sequence
return False # Stop listener after the first key press
except AttributeError:
pass
def main():
global start_sequence
print("Waiting for the '>' key to be pressed to start the sequence.")
with keyboard.Listener(on_press=on_press) as listener:
listener.join()
if start_sequence:
file_name = 'sequence.txt' # Replace with your text file name
lines = read_file(file_name)
process_lines(lines)
if __name__ == "__main__":
main()
Been futzing around with this and I can get it started and it works fine but then right around the middle the timing gets offs and I can't fix it. So frustrating. Tried using Macro Express Pro so if any one has a better script for that...
The following are my modified timings, note that I added a couple compared to the original post, also shortened many of the steps to account for python delays. maybe that helps
1 w:6300 2
2 w:1030 3
3 w:1130 3
4 w:230 2
5 w:330 1
6 w:1030 1
7 w:1130 2
8 w:1030 1
9 w:330 2
10 w:230 3
11 w:1000 1
12 w:1100 2
13 w:1000 1
14 w:300 2
15 w:200 3
16 w:1100 3
17 w:1000 2
18 w:1000 1
19 w:300 2
20 w:300 1
21 w:1130 3
22 w:930 1
23 w:1130 2
24 w:300 2
24a w:300 2
25 w:1100 1
26 w:600 3
27 w:1000 1
28 w:730 3
29 w:1030 1
30 w:630 3
31 w:300 1
32 w:300 1
33 w:200 2
34 w:400 2
35 w:200 3
36 w:300 3
37 w:300 2
37a w:300 2
38 w:300 1 /600
39 w:200 1 /300
40 w:300 3
41 w:200 2
42 w:300 3
43 w:300 1
44 w:200 3
45 w:300 1
46 w:300 2
47 w:300 3
47a w:300 3
48 w:600 2
49 w:700 1
50 w:300 2
51 w:200 3
52 w:300 2
53 w:200 1
54 w:300 1
55 w:300 3
56 w:300 2
57 w:200 1
58 w:300 1
59 w:300 2
60 w:300 2
61 w:200 2