import pyautogui import keyboard import time from python_imagesearch.imagesearch import imagesearch class MacroManager: def __init__(self): self.macros = { 'Atak': {'enabled': False, 'func': self.atak_macro}, 'Kalkan Tak': {'enabled': False, 'func': self.kalkan_tak_macro}, 'Restore Sil': {'enabled': False, 'func': self.restore_sil_macro}, 'Kılıç Sil': {'enabled': False, 'func': self.kilic_sil_macro} } self.running = False # MAKRO FONKSİYONLARI def atak_macro(self): """R tuşuna 2 kez basıp 2 tuşuna basar""" keyboard.press('r') time.sleep(0.1) keyboard.release('r') keyboard.press('r') time.sleep(0.1) keyboard.release('r') keyboard.press('2') time.sleep(0.1) keyboard.release('2') def kalkan_tak_macro(self): try: pos = imagesearch(image_path) if pos[0] == -1: return # Hiçbir şey yapma # Görsel bulundu, işlemleri yap pyautogui.moveTo(pos[0], pos[1]+60, duration=0.5) pyautogui.rclick() except Exception as e: print(f"Hata oluştu ama işleme devam ediliyor: {e}") # Hata durumunda da hiçbir şey yapmıyoruz # Kullanım: safe_image_operation("kalkan.png") def restore_sil_macro(self): """F3 tuşuna basarak restore siler""" keyboard.press('f3') time.sleep(0.1) keyboard.release('f3') def kilic_sil_macro(self): """F4 tuşuna basarak kılıç siler""" keyboard.press('f4') time.sleep(0.1) keyboard.release('f4') # MAKRO YÖNETİM FONKSİYONLARI def toggle_macro(self, macro_name): """Makroyu aktif/pasif yapar""" if macro_name in self.macros: self.macros[macro_name]['enabled'] = not self.macros[macro_name]['enabled'] status = "aktif" if self.macros[macro_name]['enabled'] else "pasif" print(f"{macro_name} makrosu {status} hale getirildi") def run_macros(self): """Aktif makroları çalıştırır""" try: while self.running: for macro_name, macro_data in self.macros.items(): if macro_data['enabled']: macro_data['func']() # İlgili makro fonksiyonunu çağır time.sleep(0.05) # CPU kullanımını azaltmak için except Exception as e: print(f"Hata oluştu: {str(e)}") def start(self): """Makro sistemini başlatır""" self.running = True self.run_macros() def stop(self): """Makro sistemini durdurur""" self.running = False # KULLANIM ÖRNEĞİ if __name__ == "__main__": manager = MacroManager() # Makroları aktifleştirme manager.toggle_macro('Atak') manager.toggle_macro('Düşman Bul ve Saldır') try: print("Makrolar çalışıyor... (Durdurmak için CTRL+C)") manager.start() except KeyboardInterrupt: manager.stop() print("Makrolar durduruldu")