![]() |
|
|||||||
| Knight Online Genel Knight online oyunu hakkında herşey... |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
|
Yeni Tayfa
![]() Üyelik Tarihi: Dec 2008
Mesaj Sayısı: 2
Konu Sayısı: 1
Rep Gücü: 0
Rep Puanı: 10
Rep Derecesi :
![]() |
Öncelikle, bot dediğimiz şey bizim yapmamız gereken işlemleri yapan programdır robot un kısaltması olsa gerek
.Ç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 , planı kurduk şimdi sırada yapım aşaması.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 ; Linkler silinmiştir! 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 görüldüğü gibi olayımız bu . Sırada kutu toplama var, onuda basit bi şekilde döngünün içine yerleştiriyoruz.Şu şekilde ; if GuiCtrlread($checkbox1) = $GUI_CHECKED then ;burada eğer checkbox1 seçiliyse dedik. send("{SPACE}") endif 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 While 1 Sleep(250) $pos = MouseGetPos() $pixelrengi = PixelGetColor($pos[0],$pos[1]) ToolTip("X : "&$pos[0]&" Y : "&$pos[1]&" Renk : "&$pixelrengi) WEnd 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; Dim $PotKey = Guictrlread($combo1) While 1 Sleep(250) $pixelrengi = PixelGetColor(300,400) if $pixelrengi = "12345678" then sleep(10) else Send($PotKey) Endif WEnd 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. Ş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 .Bir dahaki sefer memory ile hp mp kontrolüne değinicem, şimdilik herkeze kolay gelsin, iyi scriptlemeler. :P Linkler asagıda arkadaslar gerisi tamamen sizin yaratıcılgınıza kalmış aşagıdakı dosyaları indirmeden test macrosu çalişmaz dosyaların pcnizde kurulu olması gerekli Linkler silinmiştir! Oto Auto it kurdurktan sonra plug oto auto it kurdugumuz clasorun içine atıp yuklediyoruz ve bukadar artıkk xtrap olmadıgına gore koxp yapmak içinde bir engel yok |
|
|
|
|
#2 (permalink) | |
|
Administrator
![]() Üyelik Tarihi: Dec 2006
Nereden: İstanbuL
Mesaj Sayısı: 7.091
Konu Sayısı: 3015
Takım: Fenerbahçe
Rep Gücü: 250000
Rep Puanı: 4806464
Rep Derecesi :
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Linkler silinmiştir!
Alıntı:
__________________
|| [Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...] || [Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...] || || [Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...]|| [Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...] || [Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...] [Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...] Konu açmadan önce "[Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...]" seçeneğini kuLLanaLım.. ForumTayfa Her TürLü Soru ve Sorun İçin
|
|
|
|
![]() |
| Seçenekler | |
| Stil | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Hayatımızın vazgeçilmezi Para...Şu an cüzdanınızda veya çantanızda ne kadar para var | LoopuS | Muhabbet Bölümü | 27 | 29.05.08 19:55 |
| AdminLEr içeri ßaqın PLs.!<<< | By_Sems | Yeni Başlayanlar | 4 | 15.12.07 00:58 |
| Yanlışlık oldu içeri gir | hepaestus | Türkiye Gündemi | 1 | 18.11.07 17:20 |
| 999999999m para yapmak isterseniz içeri | sempa | Knight Online Genel | 2 | 12.07.07 22:28 |