Autoit Chrome bot yapımı, nasıl yapılır

Chrome tarayıcısını kullanarak bot nasıl yapılır

bu bölümde Autoit Chrome bot yapımı,Chrome tarayıcısını kullanarak bot nasıl yapılır.  Bununla ilgili çalışmalar yapacağız. http://www.mmobomb.com/browsergames/big-farm/  adresinden yükleyeceğimiz örnek çiftlik oyunumuzda tarla ekip mahsülleri seçip ya da gerekli üretimleri Autoitmatik bir şekilde nasıl yapacağımızı göreceğiz. Chrome'da bot yaparken gereksinim duyacağınız birkaç komut vardır. bu komutların tarayıcı oyunlarında nasıl kullanıldığını daha önceki  konularda işlemiş olmamıza rağmen bu Chrome oyun botunu yapılandırırken tekrar işleyeceğiz. hemen aşağıda belirttiğimiz adresten oyunumuzu başlatıp 1 2 bina kurduktan sonra kurduğumuz binalara yaptığımız küçük oyun botu muzla göndermeleri yapalım.

 

 

 

 

Programımızı yazmaya başlamadan önce FrozenAutoit window info ile uyuyor olan tarlamızda tıklayacağımız koordinatları ve bu koordinatın rengini tespit ediyoruz. bot yapımında sıklıkla Bu renk kodları ile çalışıyor çalışacağız. şu anda tarla hiçbir şey yapmıyor ve üzerinde Uyku işareti var bu uyku işaretinin herhangi bir yerinin rengini koordinatını alarak programımıza  Eğer tarla hiçbir şey yapmıyorsa  şunu yap şeklinde bir koşul sunacağız. yani tarlamız uyuyor durumdaysa program tarlaya tıklayarak üretim yapacak. program yazarken acele etmeden adım adım gidersek daha az sorunlarla gideriz ve programı sağlıklı çalışıp çalışmadığını da kontrol etmiş oluruz. ilk önce tarla uyuyor ise mouse'unuzu bu tarlanın üzerine hareket ettireceğiz.

Ekran koordinatı nedir, pixelgetcolor komutu ile renk tespit etme nasıl yapılır.  

Bu konuda hiçbir fikri olmayan arkadaşlar için araya bilgi girmeyi uygun gördüm. ve xy koordinatıyla neyi ifadet ettiğimizi bir screen capture ile gösterelim. 

Autoit window info tool   yerine size sitede verdiğim mouse koordinatı ve ekran rengini hatta mouse imleci hakkında bilgi veren programı kullanarak aktif bir şekilde bilgi alabilirsiniz.mouse bilgi scriptini görmek için buraya tıklayın.  Yukarıdaki resimde 470 sayısı ekrandaki "x hattı"nı temsil eder. yani ekranın solundan mouse'a olan uzaklıktır. 397 ise ekranın üstünden mouse a olan uzaklıktır. bu iki değerin kesiştiği yer ise mouse un bulunduğu koordinattır. mouse id 2 ile de mouse cursor unun ok,parmak,çubuk,kumsaati gibi şekillerden hangisinde olduğunu öğreniyoruz. xy rengi ise ekran çözünürlüğümüzün 470,397 koordinatındaki rengidir. FFCE6D olarak görünmektedir. 

global $col
while 1
$col=PixelGetColor(455, 422) ; ZzZ işaretinin olduğu yerin koordinatı
$col=hex($col,6) ;rengi hex değerine dönüştürdük
 
 
ConsoleWrite($col)  ; rengimizi Autoit konsuluna yazdırıp görelim 
 
if $col='E8D355' then ; $col ile rengini aldığımız x,y koordinatının rengi   ( tam rengi 0xE8D355) 
 
 MouseMove(453,448)   ; tarla uyuyor tıklanacak  koordinat
 MouseClick("Left")
 
EndIf
 
sleep(500)
 
WEnd

Autoit window info Tool ile aldığımız koordinatları yukarıda kırmızı renkte işaretlediğim yerlere giriyoruz. bu değerler Sizde farklı olabilir burada önemli nokta koordinat aldıktan sonra sayfayı sağa sola kaldırırsak rengini aldığımız koordinatta kayacaktır Bu sebeple oyunu hangi hangi ekran çözünürlüğünde ya da hangi Tarayıcıyı kullanarak oynuyorsak bir sonraki seferde de aynı tarayıcı ve aynı ekran çözünürlüğünde oynamamız gerekir. kullandığımız tarayıcı ya da ekran çözünürlüğü ya da ekran renk derinliği 32 bit 16 bit şeklinde değiştirirse rengini aldığımız koordinatı içeride değişecektir bununla beraber tıklanacak Mouse koordinatı da farklı olacağından Chrome oyun botu saçmalayacaktır. 
 rengini aldığımız koordinatın renk değerini Autoit Script Editor konsoluna yazdırmak da fayda var bu şekilde if komutu ile belirttiğimiz koşuldaki renginde tutup tutmadığını kontrol etmiş oluruz. 
 programı çalıştırdığımızda tarlamız uyuyor ise ve yukarıda kırmızı renkli gösterdiğim değerleri doğru girdiyseniz masumuz doğrudan tarlanın üstüne gidip tıklama işlemini gerçekleştirecektir.
 


 

Evet programı çalıştırdığımızda tarla boşta iken belirttiğimiz koordinata yani tarlaya tıkladığını gördük. ve ekranda tarlanın  Yanında bir fidan resmi çıktı şimdi Chrome oyun botu Tarlayı ekmek gerekiyor. tekrar Autoit Window info tool ile Fidan'ın koordinatları tespit edeceğiz ve bu koordinatları programınız programımızda uygun yere ilave edeceğiz. Fidan'ın yerini tespit ettikten sonra bu koordinatları bir kenara not edip kendimiz Mouse ile fidana tıklayıp açılan pencerede Tohum ekme seçeneğinde koordinatını bir kenara not edeceğiz. ve tohum ek kısmına elle tıklıyoruz. tarlamız tekrar ekildiği için programımıza not aldığımız koordinatları giriyoruz.
 

global $col
while 1
$col=PixelGetColor(455, 422) ; ZzZ işaretinin olduğu yerin koordinatı
$col=hex($col,6) ;rengi hex değerine dönüştürdük
 
 
ConsoleWrite($col)  ; rengimizi Autoit konsuluna yazdırıp görelim 
 
if $col='E8D355' then ; $col ile rengini aldığımız x,y koordinatının rengi   ( tam rengi 0xE8D355) 
 
 MouseMove(453,448)   ; tarla uyuyor tıklanacak  koordinat
 MouseClick("Left")
  
 ;-- ------- Fidana tıklama komutu
 sleep(1000)  ;1 saniye bekle
 MouseClick("Left", 529, 498)  ; fidan koordinatı
 ; --------------------
 
;----- açılan pencerede "Tohum ek" kısmına tıklar.
 sleep(1000)  ;1 saniye bekle
 MouseClick("Left", 598, 492)  ; Tohum ek koordinatı
  ;--------------------
 
EndIf
 
sleep(500)
 
WEnd

Yukarıda kırmızı renkle gösterdiğim koordinatlar not aldığımız son iki koordinat tır. Bunlardan ilki Fidan koordinatı iken ikincisi ise açılan penceredeki Tohum ekme tıklama koordinatıdır. 
 Burası çok önemlidir programlamaya yeni başlayan arkadaşlar için tekrar belirtmekte fayda görüyorum.

 if koşulu ile şart koştugumuz eşitlik varsa

;Tıklanacak yerler

endif

 

if - Endif koşulu ile şart koştuğumuz eşitlik gerçekleştiğinde yani belirttiğimiz koordinatını rengi eşit ise bizim " işareti ile gösterdiğimiz renge bu durumda oyun botumuz Mouse Move ve MouseClick komutlarını yerine getirecektir. 
 tarayıcıda tıklama işlemleri yaparken tıklama komutundan sonra 1-2 saniye ya da tıklama Komutları arasında 1-2 saniye süre vermenizde fayda var çünkü oyun içerisinde Yeni pencere açılması Bazen zaman alıyor. eğer pencere açılmadan önce tıklama komutunu gönderirsek Chrome oyun botu saçmalıyor olacaktır.

Oyun botumuzu çalıştırdığımızda tarlamamız boşta ise yada üretimi tamamladığı an (ZzZZ işareti olduğunda) oyun botumuz her yarım saniyede bir tarlanın boş olup olmadığını kontrol ettiği için devreye girecek ve  gereklı tıklamaları yapacaktır. 

 

Autoit Chrome bot umuzu programlarken hata mesajlarını göz önüne alalım. 

Evet şöyle bir hata mesajı da karşılaştık bu hata mesajının çıkması bizim için iyi oldu çünkü yapacağımız oyun botlarında pencerelerle çalışırken bu tip hata mesajlarını sık sık göreceğiz ve programımıza hata mesajının çıkıp çıkmadığını kontrol ettireceğiz. Yukarıdaki hata mesajı ilk tıklamadan sonra ortaya çıktığına göre bizim de hata mesajı kontrol ünü ilk tıklama komutundan sonra araya girmemiz gerekmektedir. yani Chrome oyun botu muz tarlaya tıkladıktan sonra yeni bir if endif koşulu ile ekrandaki uyarı renginin koordinatını alıp böyle bir rengin çıkıp çıkmadığını kontrol ettireceğiz. Bu uyarı programımız da ki birinci tıklama sonrasında çıktığına göre uyarı mesajının kontrolünü bu tıklamadan sonra yapmamız gerekmektedir. şimdi bu uyarı kontrolünün programınızı ekleyelim ve böyle bir uyarı vermişse Tamam düğmesine tıklatarak programın çalışmaya kaldığı yerden devam etmesini sağlayalım. 
 Eğer böyle bir uyarı mesajı ekranda görünmüyorsa program zaten bu uyarı satırını göz ardı edecektir.
 

global $col
while 1
$col=PixelGetColor(455, 422) ; ZzZ işaretinin olduğu yerin koordinatı
$col=hex($col,6) ;rengi hex değerine dönüştürdük
 
 
ConsoleWrite($col)  ; rengimizi Autoit konsuluna yazdırıp görelim 
 
if $col='E8D355' then ; $col ile rengini aldığımız x,y koordinatının rengi   ( tam rengi 0xE8D355) 
 
 MouseMove(453,448)   ;   
 MouseClick("Left") ;  burası ilk tıklama kısmıydı  
 
 
 
hatakontrol()
 
 
 
 
 ;-- ------- Fidana tıklama komutu
 sleep(1000)  ;1 saniye bekle
 MouseClick("Left", 529, 498)  ; fidan koordinatı
 ; --------------------
 
;----- açılan pencerede "Tohum ek" kısmına tıklar.
 sleep(1000)  ;1 saniye bekle
 MouseClick("Left", 598, 492)  ; Tohum ek koordinatı
  ;--------------------
 
EndIf
 
sleep(500)
 
WEnd
 
 
 
Function Hatakontrol()
 
$col=PixelGetColor(671, 572) ;  Hata mesajının tamam tuşunun yeşil rengi
$col=hex($col,6) ;rengi hex değerine dönüştürdük
 
 
ConsoleWrite($col)  ; rengimizi Autoit konsuluna yazdırıp görelim 
 
if $col='87C243' then ; $col ile rengini aldığımız x,y koordinatının 87C243 ise 
 
 MouseMove(671, 572)   ;   
 MouseClick("Left") ;  burası ilk tıklama kısmıydı  
 
endfunc

Ilk tıklamanın hemen altına hatakontrol() isminde bir fonksiyon adı girdik. ve programın sonuna da function hatakontrol() şeklinde bu fonksiyonun içerisinde kullanacağımız komutları hazırladık. tarla boşta olup olmadığını anlamak için hangi işlemi yaptıysak bu hata mesajını ekranda olup olmadığını anlamak için de aynı işlemi yapacağız yine ekranın bir noktasının renk kodunu alıp ekranda bu rengin çıkıp çıkmadığını kontrol ettireceğiz. programımız ilk tıklamadan sonra bu hata kontrol fonksiyonuna gidecek ve ekranda hata mesajı var mı diye baktıktan sonra eğer varsa tamam butonuna tıklayarak,yoksa hiçbir şey yapmadan geldiği yere yani hatakontrol() satırına satırının bir altına geri dönecektir. fonksiyonları kullanmak programınızı karmaşık bir hale girmekten kurtarır. yapılacak ayrı işlemler için fonksiyonlar kullanırsanız yaptığınız program daha sade ve daha anlaşılır olacaktır en azından Biz Yukarıdaki Bu fonksiyonu bir hata mesajını kontrol ettiğini biliyoruz. 
 yukarıda rengini aldığım koordinat ile tıklama yapacağım koordinat aynıdır zaten yeşil renk renkteki Tamam butonunu Rengini aldığıma göre yine Tamam butonuna tıklama yapacağım için renk ve tıklama kısmına aynı koordinatları girdim. oyunda karşımıza çıkabilecek farklı hata mesajları için farklı hata fonksiyonları oluşturup programın istediğimiz satırında bu fonksiyona gönderip hata mesajının varlığını kontrol ettirebiliriz. görüldüğü gibi fonksiyon kullanmak aynı komutları defalarca kopyalayıp yapıştırmak Tan bizleri kurtarıyor.
 

Tarlanın durumunu kontrol etmeyi ve boştaysa tıklanacak yerleri gösterdik. şimdi sıra yeldeğirmenine yaptıracagımız tıklamalarda.. 

Aslında tarlayı çalıştırmak için hangi komutları ya da hangi eylemleri yaptıysak ,yel değirmeni çalıştırmak için de aynı komutları kullanacağız ama bu defa yel değirmeninin üzerindeki uyku işaretinin ekran rengini alıp gerekli düzenlemeler yaptıktan sonra programınızı tekrar çalıştıracağız. 
 Yaptığımız bu oyun botu bizim girdiğimiz sıralı komutlara göre işlem yapacağı için başlattığımız da önce tarlayı kontrol edecek Eğer tarla boşta ise çalıştıracak Eğer tarla çalışıyor Yani işlem yapıyor ise bu defa yel değirmeninin kontrolünü yapacaktır. ve bu şekilde tüm binaları ya da istediğimiz kısımları kontrol ettirerek Chrome oyun botu geliştirmiş olacağız. 
 Yukarıdaki halihazırdaki programı Yeldeğirmeni() fonksiyonunu ekledim ve bu fonksiyonun içeriğini komutlarla doldurma işini de size bıraktım. Autoit window info Tool aracını kullanarak yine uyku halindeki yel değirmeninin "uyku işaretinin "koordinatını alıp if komutu ile böyle bir durum varsa gerekli kodların ve gerekli tıklanacak yerlerin Ve tabii ki çıkabilecek hata mesajlarının kontrolü de size bırakıyorum. biri ipucu vereyim Yeldeğirmeni fonksiyonu içine gerekli renk tespit ve tıklama kollarını girdikten sonra uyarı hatası için hatakontrol() fonksiyonu da bu yel değirmeni fonksiyonu içerisinde kullanılabilir. sonuç olarak programı yaparken bir fonksiyon içerisinde başka fonksiyonlar kullanabiliriz.
 

global $col
while 1
$col=PixelGetColor(455, 422) ; ZzZ işaretinin olduğu yerin koordinatı
$col=hex($col,6) ;rengi hex değerine dönüştürdük
 
 
ConsoleWrite($col)  ; rengimizi Autoit konsuluna yazdırıp görelim 
 
if $col='E8D355' then ; $col ile rengini aldığımız x,y koordinatının rengi   ( tam rengi 0xE8D355) 
 
 MouseMove(453,448)   ;   
 MouseClick("Left") ;  burası ilk tıklama kısmıydı  
 
hatakontrol()
 
 
 ;-- ------- Fidana tıklama komutu
 sleep(1000)  ;1 saniye bekle
 MouseClick("Left", 529, 498)  ; fidan koordinatı
 ; --------------------
 
;----- açılan pencerede "Tohum ek" kısmına tıklar.
 sleep(1000)  ;1 saniye bekle
 MouseClick("Left", 598, 492)  ; Tohum ek koordinatı
  ;--------------------
sleep(1000)
EndIf
 
yeldegirmeni()  ;program Func yeldegirmeni() bölümüne zıplar.
 
sleep(500)
 
WEnd
 
 
Func yeldegirmeni()  ; Program doğrudan buraya zıplar. 
   yeldeğirmeninin ZzZz olup olmadığı..
   rengi kontrol edilecek ekran koordinatı..
 
ve if komutuyla kontrol edilecek koşul ve tıklanacak yerler  bu fonksiyon içerisine yazılacaktır. 
 
 
 
Hatakontrol() ;  Program Hatakontrol() fonksiyonuna zıplar.  fonksiyonun içeriğindeki komutları yerine getirir ve buraya geri döner.
 
.. ve diğer tıklamalar yada yapılacak işlemler
 
 
   
   EndFunc  ; Fonksiyondaki komutlar satır satır tamamlandıktan sonra bu EndFunc ile geldigi yere döner
 
 
Function Hatakontrol()
 
$col=PixelGetColor(671, 572) ;  Hata mesajının tamam tuşunun yeşil rengi
$col=hex($col,6) ;rengi hex değerine dönüştürdük
 
 
ConsoleWrite($col)  ; rengimizi Autoit konsuluna yazdırıp görelim 
 
if $col='87C243' then ; $col ile rengini aldığımız x,y koordinatının 87C243 ise 
 
 MouseMove(671, 572)   ;   
 MouseClick("Left") ;  burası ilk tıklama kısmıydı  
 
endfunc

Autoit Chrome bot umuza yeni fonksiyonlar ekliyoruz. 

Autoit Chrome botunu biraz daha geliştirip yeni fonksiyonlar eklemeyi,ve hatta tarla boştayken değil de tarla üretimi tamamladığında programımızın kontrol etmesini sağlayacağız. ve bütün tıklamalardan sonra da mouse'unuzu tarlanın üzerinden çekmemiz gerekiyor Eğer mouse'u olduğu yerde bırakırsak tarla üretimi tamamladığında Mouse umuz tarlanın üzerinde olduğu için tarlanın boşta olup olmadığını program anlayamıyor. o yüzden tıklamalar bittikten sonra Mouse boş bir yere taşıyacağız. ekranda işaretli olan yerlerin renk kodlarını alıp if then komutuyla tarlanın üretimi tamamlayıp tamamlanmadığını kontrol ettireceğiz. ve tarla1 tarla2 Değirmen fonksiyonları ile tıklama yapacağımız nesneleri ayrı ayrı fonksiyonlar içine taşıyıp programımızı daha Derli toplu bir hale getireceğiz.
 

global $col
while 1
 
 
tarla1() ; tarla1 ile ilgili renk tespit ve tıklama koordinatı işlemleri.
 
tarla2();tarla2 ile ilgili renk tespit ve tıklama koordinatı işlemleri.
 
yeldegirmeni()  ; değirmen tıklamaları
 
 
sleep(1500)
WEnd  ; program sonudur başa döner
 
 
Func tarla1()  ; bu fonksiyonda botumuz 1. tarla ile ilgili işlemleri yapar
$col=PixelGetColor(398, 387) ;
$col=hex($col,6) ;
   if $col='6B8209' then
 
mouseclick("left",367,458)
sleep(1000)
samanlikdolu()  ;samanlık dolu mu fonksiyonuna gidip rengi kontrol eder, "sat" uyarısı varsa satış yapar
 
mouseclick("left",367,458)
 
hatakontrol() ; hata mesajı uyarısı var mı diye bakar, varsa kapatır
 
 
;-- ------- Fidana tıklama komutu
sleep(1000);1 saniye bekle
mouseclick("left",480,475); fidan koordinatı
; --------------------
 
;----- açılan pencerede "Tohum ek" kısmına tıklar.
sleep(1000);1 saniye bekle
mouseclick("left",594,489); Tohum ek koordinatı
;--------------------
sleep(1000)
 mousemove(0,0) ; mouse tarla üzerinde kaldığında sorun çıktığı için mousemove ile mouse'umuzu 0,0 koordinatına kaçırıyoruz.
EndIf
 
 
   EndFunc
 
Func yeldegirmeni()
 
$col=PixelGetColor(514, 278) ;
$col=hex($col,6) ;
   if $col='8B8427' then
 
mouseclick("left",500, 361)
sleep(1000)
;samanlikdolu()  ;samanlık dolu mu fonksiyonuna gidip rengi kontrol eder, "sat" uyarısı varsa satış yapar
 
mouseclick("left",500, 361)
 
hatakontrol() ; hata mesajı uyarısı var mı diye bakar, varsa kapatır
 
 
;-- -------
sleep(1000);1 saniye bekle
mouseclick("left",619, 364); çekiç resmine tıkla
; --------------------
 
;----- açılan pencerede "Tohum ek" kısmına tıklar.
sleep(1000);1 saniye bekle
mouseclick("left",476, 468); ürete tıkla
;--------------------
sleep(1000)
 mousemove(0,0) ; mouse tarla üzerinde kaldığında sorun çıktığı için mousemove ile mouse'umuzu 0,0 koordinatına kaçırıyoruz.
EndIf
 
EndFunc
 
Func tarla2()
   sleep(1000)
  $col=PixelGetColor(540, 437)
$col=hex($col,6)
  if $col='69B521' then
   mouseclick("left",526,513) ; ilktık
 
   samanlikdolu()
 
    mouseclick("left",526,513) ; ilktık
 
   sleep(1000)
   mouseclick("left",623, 533)
 
   sleep(1000)
   mouseclick("left",927, 497)
 
   sleep(1000)
 
   mousemove(0,0); mouse tarla üzerinde kaldığında sorun çıktığı için mousemove ile mouse'umuzu 0,0 koordinatına kaçırıyoruz.
 
   EndIf
 
 
   EndFunc
 
Func Hatakontrol()
 
$col=PixelGetColor(671, 572) ;  Hata mesajının tamam tuşunun yeşil rengi
$col=hex($col,6) ;rengi hex değerine dönüştürdük
 
 
ConsoleWrite($col)  ; rengimizi Autoit konsuluna yazdırıp görelim 
 
if $col='87C243' then ; $col ile rengini aldığımız x,y koordinatının 87C243 ise 
 
MouseMove(671, 572);   
MouseClick("Left");  burası ilk tıklama kısmıydı 
EndIf
 
endfunc
 
 
Func samanlikdolu()
   sleep(1000)
  $col=PixelGetColor(641, 532)
$col=hex($col,6)
 
if $col='7E680E' then
   sleep(1000)
  mouseclick("left",740, 617) ; sat tuşuna tıkla
   sleep(1000)
   EndIf
 
EndFunc

 

Autoit Chrome botu muzu çalıştırdık ve tabii çalıştırmadan önce tarlalar ve değirmenin görevlerini yapmış  İşlerini bitirmiş ve resimde görüldüğü gibi olduğu anda programını çalıştırıyoruz. renkleri doğru aldığınıza göre programınızı çalıştırabiliriz tarlaların ve değirmenin çalışıyor durumda olması gerekiyor ve bu binalar üretimi tamamladıkları anda üstlerinde üretim tamamlama resmini çıktığında oyun botu muz devreye girecek ve gerekli açıklamaları tıklamaları yapacaktır. Tabi biz oyun botu muzu birinci tarlanın Çiçek ikinci tarlanın Mısır etmesi yönünde yapmıştık. yel değirmeninin çalışması ile ilgili şunu söyleyebiliriz yel değirmeni her defasında mısır üretim yapacağı ve hammadde olarak Mısır tüketeceği için stoktaki mısır tükendiğinde bir uyarı mesajı verecektir. biz şu an Yeldeğirmeni fonksiyonu muzun içeriği ne bu uyarıyı girmedik yani böyle bir uyarı fonksiyonu yok. bu uyarıyı daha sonra Yeldeğirmeni fonksiyonunu içine yazacağız. 


Resimde gördüğünüz 93 tane mısır var stoktaki mısır sayısı 30 un altına düştüğünde Biz programı Mısır kontrolü yaptırmadığınız için çekiç resmi diye tıkladığımda program Mısır üretimine geçmeyip hata mesajı verebilir o yüzden Chrome oyun botunu programlar ken bu tip olasılıkları da göz önüne almamız gerekmektedir.

Oyun botunu başlattığınızda program While wend Satırlar arasında sürekli dönecektir. önce function tarla1() ile gösterdiğiniz fonksiyona gidecek ve tarlanın üzerindeki  durumunu gösteren Bizim aldığımız koordinatını aldığımız Resmin rengine bakacak ve renk tutuyorsa tarlaya tıklama yapacaktır , eğer "sat" uyarısı çıkarsa samanlık dolu fonksiyonuna gidecek ve oradan satış yapıp tekrar Bu tarla1() fonksiyona geri dönecek,  alt satırdaki tıklama ve fonksiyonları yerine getirecektir. bu fonksiyon bitirdikten sonra tarla 2 adlı fonksiyona gidecek oradaki işlemleri bitirdikten sonra Yeldeğirmeni fonksiyonuna gidecektir. artık biz ekleyeceğimiz yeni binaları bu yel değirmeni() fonksiyonun hemen altına yazıp , function kümes() başlığı altında yeni bir fonksiyon yaratıp kümes ile ilgili renk ve Mouse tıklama larını buraya girebiliriz. 
 fonksiyonlarla ilgili dikkat etmemiz gereken önemli bir nokta ise function ile bir fonksiyon açıldıktan sonra bu açtığımız fonksiyonun içerisine ikinci bir function komutu kullanırsak Program hata verecektir. yani iki fonksiyon iç içe kullanılmaz ama function ile açtığımız bir fonksiyonun içerisinden Yeldeğirmeni() şeklinde başka bir fonksiyona yönlendirme yapabiliriz.

Autoit Chrome bot umuza görev vermek

Örneğin üç tane tarlamız olsun ve değişkenleri kullanarak 1 2 ve 3 numaralı tarlamıza Neyi ekmek istediğimizi belirtmek istiyoruz. ilk önce $tarla1,$tarla2,$tarla3 isminde üç tane değişken belirttikten sonra birinci tarlaya Çiçek ikinciye mısır ve üçüncü tarlaya ise şalgam ekmek istiyoruz. burada yapacağımız ilave tarla işini bitirdikten sonra üstündeki Resmin Çiçek mısır ya da şalgam hangisinin olduğunu renk kodlarını ekleyerek  koşul satırında belirttik yani eğer tarlanın üzerindeki renk kodu çiçek resmine ait ise ya da mısır ya da şalgam resmine ait ise program tarlaya tıklama yapacak ve tarlayı  ekmek için Bizim yukarıda programın başında verdiğimiz $tarla1 ="çiçek" talimatını izleyecektir.$tarla1 ="çiçek" olduğu için alt satırdaki koşulda if $tarla1 =çiçek ise komutuyla Tohum ekme menüsünde  ki  çiçek simgesi ne tıklama yapacaktır Eğer tarla bir =Mısır olsaydı bu defa alt satırdaki if $tarla1 =Mısır satırında,mısır ekmek koordinatına tıklama yapacaktı. eğer biz bütün tarlamıza mısır ya da şalgam ektirmek istiyorsak bu defa Yukarıdaki üç satırda değişken satırını da "şalgam "olarak değiştirmemiz gerekmektedir. 
 burada dikkatinizi çekmek istediğim yer if komutu ile 3 tane farklı renk belirttik.  tarla mız üzerinde ister Çiçek ister Mısır ister şalgam resmi olsun tarlamız her şekilde tıklama yapacaktır. renk kodları arasındaki or  komutu ise veya anlamında kullanılmıştır.

 

 if $col='6B8209' or $col='8DE25A' or $col='115AF2' then ; eğer $col değişkeni şu üç renkten biri ise ...

tarlanın üzerinde çiçek rengi yada mısır rengi yada şalgam rengi varsa.Tabii ki şalgam rengini alabilmek için(çiçek renk koordinatını alırken yaptığımız gibi) tarlayı bir kere ekip rengi bir kenara not etmemiz gerekiyor

 

 

Chrome botumuz hata mesajlarına karşı duyarlı, üretiyor, samanlık doluysa satıyor sorunsuz çalışıyor

Kategoriler: 

Etiketler: 

2 Comments

Belli Bir Alanı Nasıl Aratabilirim

Merhaba koordinatla hareket etmek istemiyorum.Belirli bir alan var örnek : 480*240 ben bu alan içerisinde xxxx rengini bulursam mouse o posizyona gitsin ve o alana tıklamasını istiyorum.Belirli alan ve rengi tarayarak yapmak istiyorum.Çünkü renk sabit bir yerde durmuyor.Autoit ile bunu nasıl yapabiliriz.

 

 

örnegin 100,100  200,200 koordinat aralıgında  150,150 koordinatındaki pixel rengi C1C1C1 olsun ve 150,151 koordinatının pixel rengi de FAFAFA olsun. diyelim bu iki koordinatın rengi belli bi aralıkta aranacak 100,100  200,200 koordinat aralıgında bu iki rengi arayacaksak.

$x=""

$y=""

$color=""

$renk1="C1C1C1"

$renk2="FAFAFA"

for $x=100 to 200 

for $y=100 to 200

$color=pixelgetcolor($x,$y)

if $color=$renk1 and pixelgetcolor($x,$y+1) = $renk2 ;o anki x.y pixel rengi ve $y+1 rengi mevcutsa

islem()

exitloop ; tarama islemini durdurur

endif

 

 

 

next

next

 

func islem() ; istedigimiz iki pixel rengini ekranda bulmussak program buraya gelir

mouse tıklaması ve farklı islemler buraya

örn mouseclick ("left" ,$x,$y)

endfunc

 

yukarıdaki örnekte $x yani x koordinatı degeri 100den baslar 200ncü pixele kadar tarar. ve $x her 1 defa arttıgında $y degeri 100-200 koordinatları arasında sürekli gider gelir. if komutuyla belirttigimiz şart yani iki pixel renginin yan yana bulunması durumunda program islem fonksiyonuna zıplar. ve fonksiyondan geri dönüste exitloop komutu ile for-next döngüsüdnen çıkar.  

eger bunu belli saniye aralıklarla yapmak istiyorsanız bu kodları while wend döngüsü icinde kullanıp wend komutundan önce bekleme süresi vermeniz gerekir

 

Sayfalar

Yeni yorum ekle

Filtered HTML

  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satır ve paragraflar otomatik olarak bölünür.

Plain text

  • Hiç bir HTML etiketine izin verilmez
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Satır ve paragraflar otomatik olarak bölünür.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Resimli CAPTCHA
Resimde görünen karakterleri girin.