metin2 yi kurdum.
Konu uzun.
Çözüm var mı? İmkansız diye bir şey yoktur, tabi ki aşılır.
Uğraşır mısın dersen uğraşmam şahsen.
Şöyle özetleyeyim.
Bir klasöre kurdum, CheatBlocker ile kodu hilelere karşı korumaya çalışmışlar.
Daha da komiği,

Adamlar istemciyi python ile yazmışlar.

Neden tıklayamadığımızın anlaşılması için,
DirectX 9 üzerinde çalışması gayet anlaşılır.
Şimdi windows un mesaj yapısı ve mesaj yapısını anlatmak istemiyorum. Çok yerde anlatan gördüm.
Ama normal bir GUI kullanımı ile directx çalışma mantıı aynı değil. Aslında artık aynı windows 10 ve üzeri directx’i gdi a entegre etti ( Ne diyorsun anlamadım diyebilirsin haklısın ama anlatamayacağım sonra belki)
Directx ile yazılan bir programın giriş çıkış işlemleri mesaj kuyuruğunda windows arayüz programlarının işlendiği gibi işlenmez.
Bu nedenle aslında ortada bir windows arayüzü yoktur. Gönderdiğin tıklama mesajlarını alacak bir kodu yok yani oyunun.
Bunun yerine kendi arayüz etkileşim kodlarını kullanır.
Ama bununla yetinmemişler, araya,
cheatblocker ı koymuşlar.
Chetblocker ın exe dosyasından importlarına baktım.
CB.exe
Tüm process i kontrol eden ve directx in işlemlerini işleyen api çağrıları var.
Bunlar göz ucuyla gördüklerim.
Yani oyun istemcisi windows mesajlaşma yapısını kullanmıyor,directx üzerinde arayüzü çalıştırıyor ama araya da cheatblocker ı koymuş.
Bu durumda process gönderilen tıklama mesajlarını geldiği kaynağa göre görmezden gelerek blocklayabilir.
Yani python kodlarında değil sorun.
Python kodları çalışmasın diye önlem alınmasın diye.
GitHub - yazilimfuryasi/OpenCV-Game-Bot: Game bot with OpenCV
Zaten bu durumla ilgili açıklama da verdiğiniz linkte mevcut.
Bu projeye başlama amacım sadece GÖRÜNTÜ İŞLEME de nesne algılama ve doğru MODEL EĞİTME idi. Ancak ilgi oldukça fazla olunca biraz daha geliştirip klavye fare kullanan oyun botu haline getirmiştim. Yakın zamanda(2022 Ocak) Tkinter kullanarak GUI (Grafiksel Kullanıcı Arayüzü) halinde olan bir video paylaşmıştım. Oyunlarda fare sol tıklaması engelli olduğu için sağ tık yaptırarak metinleri kestirebiliyorduk. Şimdi sanırım o da engelli.
Yani bu tür oyunlarda yazılan python botlarının suçu yok, pygui ve benzerleri çalışıyor.
Sorun oyunların bunlara cevap vermesi için tasarlanmış ara kodlar içermesi.
Bu durumda da çözüler var.
Ama ileri seviye ve programa özel.
DDK (Driver development kit/ sürücügeliştirme kitleri) ile botlarınızı driver olarak tasarlayıp, programın bu mesajların bir programdan gelmediğine mouse driver’ı tarafından gönderildiğin inandırmak, ya da,
Cheat engine gibi programlarla önce CheatBlocker ı çalışırken devre dışı bırakacak kodlar yazmak.
Üçüncü bir şey de Metin2 kodundan CB yerine kendi yazdığımız bir exe dosyasına çağrı yaptırıp, kandırmak.
Her bir yöntem, kodu kırmak anlamına geliyor ki, ben burada bunu öğretmem.
Kodu kırmam, yama yada benzerleri ile modifiye etmem( edemem değil) çünkü ticari bir oyun ve adamların amaçlarına saygı duyarım.
Tabi ki bunları aşmanın da bir yolu vardır mutlaka process leri gizlemek falan için basit yollar da olabilir.
Özetle;
Python sorunlu değil, python kodları sorunlu değil, pygui ve benzeri automation modülleri sorunlu değil.
Bu modüller normal çalışan windows uygulamaları ile normal çalışan direct input alabilen (directx) uygulamaları için çalışır.
Ama üzerinde önlem alınmış bir oyunda,
Bunları aşmak için ya oyunu patch lemek yada tasarımcısının gözden kaçırdığı bir açıktan faydalanmak gerekir.
Açığı bulsak bile bir sonraki güncellemede, yine çalışamayacaktır.
Tüm teknik detayara değinmiyorum ama çözüm için yamalar araştırın.
Normal python kodları ile çözülmemesi kodlama hatası değil, alınan tedbirlerden ibaret.