Kısaca: BeaTzVision bir döngüde hep aynı şeyi yapar: oyun penceresinin fotoğrafını çeker, görüntüyü tanıma kararlı kalacak şekilde dönüştürür, kaydettiğin metinleri bu görüntüde arar, en yakın hedefi seçer ve ardından fare ile klavyeyi simüle eder. Oyun sürecine hiç dokunulmaz.
1. Pencereyi yakalamak
Bot tüm ekranın değil, yalnızca oyun penceresinin alanının fotoğrafını çeker. Bu hem daha hızlıdır hem de Discord'un, tarayıcının ya da ikinci bir istemcinin tanımaya karışmasını önler.
Rahatsız eden alanları ayrıca maskelerle gizleyebilirsin. Bot, aramaya başlamadan önce bu alanları kaydettiği görüntüde siyaha boyar. Tipik örnekler sohbet, mini harita veya ara sıra metine benzer bir şeyin belirdiği bir durum çubuğudur.
2. Görüntüyü hazırlamak
Ardından renkli görüntü gri tonlamaya çevrilir. Bu bilgi kaybı gibi görünür ama tam da doğrusudur: bir bulguyu renk değil, biçim ve kontrast belirler.
Gri görüntü üzerinde CLAHE çalışır; bu, resmi 8×8 karolara bölen ve her karoyu kendi içinde aydınlatan ya da karartan bir kontrast dengelemesidir. Genel bir aydınlatmadan farkı büyüktür: ağaç gölgesindeki bir taş ile tam güneş altındaki aynı taş, sonunda tek bir şablonun ikisini de bulabileceği kadar benzer görünür.
Özel sunuculardaki tanıma sorunlarının çoğu parlaklıktan gelir: farklı gamma değerleri, farklı efektler, oyunda farklı saat. Kontrast dengelemesi bunun bir kısmını karşılar. Kalanı kaydı nasıl aldığına bağlıdır.
3. Taşları bulmak
Asıl arama şimdi başlar: şablon eşleme. Kaydettiğin görüntü canlı görüntünün üzerinde kaydırılır ve OpenCV her konum için ikisinin ne kadar uyduğunu hesaplar. Sonuç 0 ile 1 arasında bir değerdir. Eşiğinin üzerindeyse taş bulunmuş sayılır.
İki şey bunu kulağa geldiğinden daha dayanıklı kılar:
- Dokuz zoom seviyesi. Şablon, boyutunun 0,8 ile 1,2 katı arasında denenir. Böylece taş daha uzakta dursa ya da kamerayı farklı yakınlaştırmış olsan da tanınır. Auto-zoom işlevi budur.
- Yedek olarak kenar görüntüsü. En iyi değer eşiğin hemen altında kalırsa bot ek olarak bir kenar görüntüsü hesaplar ve orada yeniden arar. Orada yüzeyler değil yalnızca dış hatlar sayılır. Bu, arka plan rengi değiştiğinde bulguları kurtarır.
Renkten daha güvenilir tanınan şeyler için, örneğin can çubukları veya mini haritadaki oyuncu noktaları, bot bunun yerine HSV renk uzayında çalışır. Orada renk tonu, doygunluk ve parlaklık ayrıdır; „bu renk tonu, ne kadar parlak olursa olsun” demek mümkün olur.
4. Hedefi seçmek
Bot çoğunlukla aynı anda birden fazla taş bulur. Tüm bulgular ekranın merkezine olan uzaklığa göre sıralanır ve merkez senin karakterindir. En yakın taş öne geçer, çünkü en kısa yürüyüş saat başına en çok taşı getirir.
Kendi karakterinin çevresinde yaklaşık 80 piksellik bir dışlama bölgesi vardır. İçine düşen bulgular atılır. O olmasa bot zaman zaman kendi atına, kendi adına ya da karakterdeki bir efekte tıklardı.
5. Tıklamak ve tuşa basmak
Son olarak görüntü koordinatları bir girdiye dönüşür. Fare konuma gider, kısa bekler ve sonra tıklar. Tuşlar yaklaşık 70 ila 140 milisaniye basılı tutulur, bırakma ise 40 ila 80 milisaniye sürer. Bu süreler her tıklamada biraz farklıdır.
Girdiler normal Windows giriş yolundan, istenirse gerçek fare seviyesindeki bir sürücü üzerinden gider. Her iki durumda da bu, başka herhangi bir programın ürettiği gibi sıradan bir giriş olayıdır.
Bu özel sunucularda neden önemli
Her özel sunucunun kendi metin modelleri, kendi arayüzü ve çoğu zaman kendi efektleri vardır. Taşları hazır bir liste yerine kendin kaydetmenin ve kayıtların her sunucu için ayrı tutulmasının sebebi tam olarak budur. Sunucu değiştirdiğinde bot da şablonları seninle birlikte değiştirir. Seninki sunucu listesinde var mı, orada görebilirsin.
İkinci nokta yapısıdır: oyun sürecine erişim yok, hook yok, değiştirilmiş dosya yok. Bunun teknik olarak ne anlama geldiği Pixelbot mu, Bellek Okuma mı? yazısında anlatılıyor. Tanımayı pratikte nasıl ayarlayacağını farmbot rehberi gösteriyor; hiçbir şey algılanmıyorsa sorun giderme yardımcı olur.
Sık sorulan sorular
BeaTzVision oyunun belleğini okur mu?
Taşları neden kendim kaydetmek zorundayım?
Tanımadaki eşik değeri ne anlama geliyor?
Bot neden önce en yakın taşa tıklar?
Kendin denemek ister misin?
BeaTzTools Discord'una katıl; BeaTzVision ve BeaTzSignal'e, kurulum rehberlerine ve destege eriş.
Şimdi ücretsiz dene →