103 lines
3.1 KiB
Python
103 lines
3.1 KiB
Python
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") |