Üye olurken lütfen saçma mail adresleri yazmayınız üyeliğinizin aktif olabilmesi için mail adresinize gelen onay link'ine tıklamanız gerekiyor..
www.koxppers.forummum.net

Aradığını Bulanların Forumu! Ko-xppers

Join the forum, it's quick and easy

Üye olurken lütfen saçma mail adresleri yazmayınız üyeliğinizin aktif olabilmesi için mail adresinize gelen onay link'ine tıklamanız gerekiyor..
www.koxppers.forummum.net

Aradığını Bulanların Forumu! Ko-xppers
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Bağlı değilsiniz. Bağlanın ya da kayıt olun

Z1 Macro + Heal - Oyuna Bot Yapmak - Bir Nevi Koxp :P

Aşağa gitmek  Mesaj [1 sayfadaki 1 sayfası]

GisTo

GisTo
Admin
Admin

Öncelikle, bot dediğimiz şey bizim yapmamız gereken işlemleri yapan programdır robot un kısaltması olsa gerek Very Happy.

Çok
çok iyi bir bot yapmak için assembly kullanmak gerekir, ama işimizi
görücek derecede bir botu auto-it le rahatça yapabiliriz.

Daha öncede söylediğim gibi, neler yapıcağımızı kafamızda planlayarak, işe başlıyoruz.

-> Planımız bu;

3 tane button, 2 tane label, 2 tane input, 2 tane combo, 1 tane
checkbox ekliyoruz. Buttonların birisi başlat, diğeri durdur, öbürü
çıkış, labellerin birisinde HP diğerinde MP yazıyor, hemen bu labellerin
yanına 2 inputu ekliyoruz, bu iki inputun yanınada 2 comboyu ekliyoruz,
checkbox ise kutu toplamak için.
Kısaca ne yapmış olduk ? Oyundaki
Karakterimizin, HP si kaça düştüğünde Potion kullansın amacıyla
istediğimiz HP yi girebileceğimiz bir input ve hemen yanınada potionu
kullanmak için hangi tuşa basıcağını belirleyebileceğimiz bir combo
koyduk, aynı şekilde diğer input ve comboda MP için.
Kısaca ben
başlata bastığımda bot misal "é1" basıp atack yapmaya başlıycak, HP si
girdiğim değere düşünce HP tuşuna basıcak potion kullanıcak, mp si
bitince aynı şekilde, checkbox u seçdiysem "space" ye basıp kutuları
topliycak ve durdura bastığımdada durucak Smile, planı kurduk şimdi sırada
yapım aşaması.

GUI mi oluşturdum, elimde şöyle birşey var ve bunu SciTE ye aktardım;
[Linkleri görebilmek için üye olun veya giriş yapın.]

Keypress göndermek işin basit tarafıdır, bunu yapmak için gereken şey;
Başlat
buttonuna başlatma görevi vermek ve while döngüsünün içine
başlatıldığında şu tuşlara durdurana kadar bas komutlarını yerleştirmek.
Bunu şu şekilde yapıyoruz ;
<blockquote>Dim $basla = 0

While 1
Sleep(100)
if $basla = 1 then
Send("z1")
endif
Wend

Func Button1Click()
$basla = 1
Endfunc

Func Button2Click()
$basla = 0
Endfunc</blockquote>görüldüğü gibi olayımız bu Smile. Sırada kutu toplama var, onuda basit bi şekilde döngünün içine yerleştiriyoruz.
Şu şekilde ;
<blockquote>if GuiCtrlread($checkbox1) = $GUI_CHECKED then ;burada eğer checkbox1 seçiliyse dedik.
send("{SPACE}")
endif</blockquote>bunu while döngüsünün içine z1 den sonra yerleştiriyoruz.

Şimdi sıra geldi hp ve mp yi okumaya.
Bunun 2 yolu var birincisi pixelsearch yöntemi, yani ekranda renk taraması yaparak hp nin azaldığını anlamak
ikincisi ise memoryread yöntemi, yani direk olarak memoryden Hp yi okumak, ki bu daha güvenlidir.
Ancak her pc de memory değerleri aynı olmayabilir. Yani sizde çalışan program arkadaşınızda çalışmayabilir.
Bunun
için şimdilik memory i bi kenara atalım ona daha sonra yer verelim.
Pixelsearch ı işleyelim. Bu nedenle hp değeri girmeyide şimdilik
atlıyorum..

Duzgun bir şekilde pixelsearch ı gerçekleştirmek için ilk olarak HP bardaki rengi ve ekrandaki yerini bilmemiz lazım.

Bunu öğrenmek için hemen basit bir script yazalım.

;Script

<blockquote>While 1
Sleep(250)
$pos = MouseGetPos()
$pixelrengi = PixelGetColor($pos[0],$pos[1])
ToolTip("X : "&$pos[0]&" Y : "&$pos[1]&" Renk : "&$pixelrengi)
WEnd</blockquote>Bunu bu şekilde exe ye çevirelim ve oyun açıkken hp barın tam ortasına getirelim,
tooltipde görünen değerler X pozisyonu, Y pozisyonu, ve o pozisyonlardaki renkdir.
Şimdi bu ne işimize yarıycak onu söyliyim, bunları bir kenara not aldıktan sonra,
diyelimki renk kodumuz : 12345678,
renk kodunun pozisyonları : X 300, Y 400,
şu kodu ekliyoruz;

<blockquote>Dim $PotKey = Guictrlread($combo1)

While 1
Sleep(250)
$pixelrengi = PixelGetColor(300,400)
if $pixelrengi = "12345678" then
sleep(10)
else
Send($PotKey)
Endif
WEnd</blockquote>hemen açıklamasını yapalım, dim ile $potkey in comboda yazan değer olduğunu belirttik.
Yani comboda 1 yazıyorsa 1e, 2 yazıyorsa 2ye 3,4.. vs basıcaktır.
Döngüde
yaptığımız olay ise, x300 ve y400 deki renk 12345678 ise bişey yapma
ama değil ise hp tuşuna basdır. Biraz daha basit açıklarsak, hp bizim
değerini aldığımız tam ortadan aşağı düşerse orası bildiğiniz gibi siyah
olur, script orayı siyah gördüğü anda hp tuşuna basıcaktır, kırmızı
olduğundada durucak tekrar siyah olmasını bekleyecektir.

Pixelsearch
ın düzgün çalışabilmesi için diyelimki siz renk belirlemesi yaparken
1024x768 ekran çözünürlüğü kullandınız o halde, başka bir bilgisayarda
kullanılıcak ise çözünürük doğal olarak aynı olmalıdır.

Scriptin tam halini burdan indirebilirsiniz:
[Linkleri görebilmek için üye olun veya giriş yapın.]

Şimdilik bu kadar, olayın temeli anlaşılmıştır heralde.
Unutulmaması gereken, eğer gameguard veya xtrap tarzı bir program açık ise scriptimizi engelleyecektir Smile.
Bir dahaki sefer memory ile hp mp kontrolüne değinicem, şimdilik herkeze kolay gelsin,
iyi scriptlemeler. Razz

http://koxppers.forummum.com

Sayfa başına dön  Mesaj [1 sayfadaki 1 sayfası]

Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz