11# main.py
22import time
33import pymem
4+ import sys
45
56import config
67import memory
@@ -15,8 +16,16 @@ def run():
1516 last_resolve_time = 0
1617
1718 config .app_config = config .Configuration () # Initialize config
19+ pointerResolutionFailed : bool = True
1820
1921 try :
22+ print ("--==* Trove Modification Tool *==--" )
23+ print ("- F3: Toggle Hack" )
24+ print ("- F4: Change Hack Mode (AccelBoost/Fly)" )
25+ print ("- PgUp: Increase Speed" )
26+ print ("- PgDown: Decrease Speed" )
27+ print ("--===============================--" , end = "\n \n " )
28+
2029 input_handler .setup_hotkeys ()
2130
2231 while True :
@@ -41,16 +50,27 @@ def run():
4150 current_time = time .time ()
4251 if not current_addresses or (current_time - last_resolve_time > config .POINTER_RESOLVE_INTERVAL_S ):
4352 resolved = mem_manager .resolve_addresses ()
44- if resolved :
45- current_addresses = resolved
46- last_resolve_time = current_time
47- else :
48- # Failed to resolve, maybe player is zoning or in menu?
53+
54+ if not resolved :
55+ pointerResolutionFailed = True
4956 current_addresses = None
50- print ("Failed to resolve pointers, retrying..." )
51- time .sleep (0.5 ) # Wait a bit longer if resolution fails
57+
58+ retry_secs = 2
59+ for remaining in range (retry_secs , 0 , - 1 ):
60+ sys .stdout .write (f"\r Failed to resolve pointers. Retrying in { remaining } seconds..." )
61+ sys .stdout .flush ()
62+ time .sleep (1 )
63+
64+ sys .stdout .write ("\r " + " " * 60 + "\r " )
65+ sys .stdout .flush ()
5266 continue
5367
68+ current_addresses = resolved
69+ last_resolve_time = current_time
70+ if pointerResolutionFailed :
71+ pointerResolutionFailed = False
72+ print ("Successfully resolved pointers." )
73+
5474 # --- Hack Application Logic ---
5575 if config .app_config .hack_on and current_addresses :
5676 foreground_pid = memory .get_foreground_process_pid ()
0 commit comments