Teknoloji

BeaTzVision İçeride Nasıl Çalışır:
Görüntüden Tıklamaya

· 7 dk okuma · BeaTzTools

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.

Bu yazıda
  1. Pencereyi yakalamak
  2. Görüntüyü hazırlamak
  3. Taşları bulmak
  4. Hedefi seçmek
  5. Tıklamak ve tuşa basmak
  6. Bu özel sunucularda neden önemli

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.

Bu neden önemli

Ö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:

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?
Hayır. Bot oyun sürecine hiç dokunmaz. Yalnızca oyun penceresinin görüntüsünü alır, OpenCV ile analiz eder ve fare ile klavye girişini simüle eder. Oyuna handle yok, hook yok, değiştirilmiş oyun dosyası yok.
Taşları neden kendim kaydetmek zorundayım?
Çünkü her özel sunucu farklı görünür: farklı metin modelleri, farklı arayüz, farklı renkler. Bot tam olarak senin kaydettiğin görüntüyü arar. Kayıtlar da bu yüzden her sunucu için ayrı tutulur.
Tanımadaki eşik değeri ne anlama geliyor?
Şablon eşleme, görüntüdeki her konum için 0 ile 1 arasında bir değer döndürür. Eşik, bir bulgunun ne zaman sayılacağını belirler. Çok yüksekse taşlar kaçar, çok düşükse bot olmayan yerde taş bulur.
Bot neden önce en yakın taşa tıklar?
Tüm bulgular ekranın merkezine olan uzaklığa göre sıralanır ve merkez senin karakterindir. En kısa yol yürüme süresinden tasarruf ettirir, bu da saat başına daha fazla taş demektir.

Kendin denemek ister misin?

BeaTzTools Discord'una katıl; BeaTzVision ve BeaTzSignal'e, kurulum rehberlerine ve destege eriş.

Şimdi ücretsiz dene →