Bu projeyi sıfırdan, sade bir dille anlatalım.
Bu araç şunu yapar:
- Ekrandaki görüntüyü alır.
- Bu görüntüde modelin öğretilmiş olduğu nesneleri arar.
- Bulduğu nesnenin koordinatını çıkarır.
- Seçtiğin moda göre oraya sol/sağ tık atar.
Kısaca: “Ekrana bak + hedefi bul + tıkla”.
YOLO = You Only Look Once.
Bu bir nesne tespit yaklaşımıdır. Yani sadece “resimde bir şey var mı?” demez; aynı zamanda resimde nerede olduğunu da söyler.
Örnek:
- Sınıflandırma modeli: “Bu fotoğrafta kedi var.”
- YOLO gibi tespit modeli: “Bu fotoğrafta kedi var ve şu kutunun içinde (x1,y1,x2,y2).”
Bu projede model (best.pt) ekrandan alınan görüntüde loot/hedef olarak eğitilmiş nesneleri yakalar.
YOLO neden tercih edilir?
- Hızlıdır (gerçek zamanlıya uygundur).
- Tek geçişte (single-pass) tespit yapar.
- Ekran akışında tekrar tekrar çalıştırması kolaydır.
Bu repo’daki akışta YOLO’nun görevi şudur:
- Görüntüde kutuları üretmek.
- Her kutu için bir güven skoru vermek (
confidence). - Eşik üstündeki kutulardan en mantıklısını seçmek (kodda en yüksek skorlu olan seçiliyor).
autoloot_ui.py dosyası tek başına bütün sistemi yönetir.
Arayüzden şunları ayarlarsın:
- Model dosyası (
.pt) - Confidence (tespit eşiği)
- Tarama aralığı (kaç saniyede bir tarasın)
- Ekran bölgesi (
x1, y1, x2, y2) - Tıklama modu (
left,right,both) - Offset (
X/Y) ve ikinci tık gecikmesi - Önizleme penceresi açık/kapalı
Kod belirlediğin ekran alanını alır (ImageGrab).
Alınan görüntü YOLO modeline verilir.
- Kutu koordinatları çıkar.
- Her kutunun confidence değeri alınır.
- Eşik altı elenir.
- En yüksek skorlu kutu seçilir.
Seçilen kutunun merkez noktası alınır.
left: sol tıkright: sağ tıkboth: önce sol sonra (kısa gecikmeyle) sağ tık
Offset varsa bu merkeze eklenir.
Bu işlem, verdiğin tarama aralığına göre sürekli tekrar eder.
DetectionConfig: Bütün ayarları tek yerde tutan yapı.AutoLootApp: Uygulamanın ana sınıfı._build_ui: Ekrandaki buton/alanları oluşturur._sync_config_from_ui: Girilen değerleri kontrol eder, hatalıysa kullanıcıya söyler._load_model: YOLO modelini yükler._capture_region: Ekran alanını görüntü olarak alır._find_best_box_center: Kutular içinde en iyi adayı bulur._perform_click: Seçilen noktaya tıklar._run_loop: Tüm bu adımları thread içinde sürekli döndürür.
Yani kod da sade olarak şu mantıkta: Ayarları al → modeli yükle → ekranı tara → hedefi bul → tıkla → bekle → tekrar et.
Python 3.10+ önerilir.
pip install ultralytics opencv-python pillow pyautogui numpyNot:
pyautoguibazı sistemlerde güvenlik izni ister.
python autoloot_ui.pyAçılan arayüzde adım adım:
best.pt(veya başka.pt) seç.- Confidence değerini ayarla (örn. 0.45–0.65 arası başlayabilirsin).
- Ekran bölgesini gir (mümkünse tüm ekran yerine sadece oyun alanı).
- Tıklama modunu seç.
- Gerekirse offset ver.
Başlatde.
- Çok düşükse: yanlış hedeflere tıklayabilir.
- Çok yüksekse: gerçek hedefleri kaçırabilir.
- Genelde orta seviye başlayıp testle ayarlamak en doğrusu.
- Çok düşük (çok sık): daha hızlı tepki ama daha fazla sistem yükü.
- Daha yüksek: daha az yük, daha yavaş tepki.
- Ne kadar küçük ve doğru alan seçersen performans o kadar iyi olur.
- Tüm ekran taramak en ağır seçenektir.
- Model kutunun merkezini verir ama oyunda gerçek tıklanacak nokta merkezden biraz kayık olabilir.
- Offset ile bu farkı düzeltirsin.
- Model gerçekten doğru nesneleri görüyor mu? (Önizleme aç.)
- Confidence çok yüksek olabilir.
- Ekran bölgesi yanlış olabilir.
- Offset ayarla.
- Model eğitim kalitesini gözden geçir.
bothyerine tek modla test et.
- Bölgeyi küçült.
- Tarama aralığını artır.
- Önizlemeyi kapat.
- Bu bir otomasyon aracıdır.
- Oyuna/sunucuya göre kullanım kuralları farklıdır.
- Hesap riski doğurabilecek ortamlarda kullanmadan önce kuralları kontrol et.
- Sorumluluk kullanıcıdadır.
autoloot_ui.py: Uygulamanın tamamı (UI + YOLO inference + tıklama)best.pt: Örnek model dosyası
