Phillip sudah memberikan tinjauan yang luar biasa tentang bagaimana sebagian besar bot beroperasi, tetapi saya hanya ingin membahas beberapa hal dengan lebih detail, karena saya memiliki sedikit pengalaman pribadi yang berkembang pada atau untuk semua jenis bot yang dia bahas.
Di Runescape, ada sebuah proyek besar (RSBot) yang akan menyalin isi memori dari klien Runescape ke dalam memori lokalnya, di mana ia kemudian dapat melihat seluruh keadaan permainan tanpa ada risiko klien menangkapnya. Dibutuhkan sedikit rekayasa terbalik untuk menentukan di mana dalam memori untuk mencari untuk menemukan pointer ke data, tetapi begitu mereka melakukannya, mereka membuka API untuk mengambil keuntungan dari informasi. Itu akan tahu persis apa yang ada di dunia dengan mendapatkan koordinat suatu objek dan kemudian mengubahnya dengan matriks transformasi kamera untuk mendapatkan posisi di layar. Topeng hit juga dapat dibaca, jadi sepele untuk menentukan dengan tepat berapa kisaran untuk memindahkan mouse ke dalam untuk mendapatkan hasil yang diinginkan.
Bot menyediakan banyak informasi debug, seperti anotasi yang memberitahu pengembang koordinat genteng mana, ID mana yang dimiliki objek ini, ID apa yang dimiliki item yang diberikan, dll. Informasi ini kemudian dapat digunakan untuk membuat bot. Proses pembuatan skrip bot sebenarnya sebenarnya cukup sederhana. Kerangka kerja ini menyediakan banyak fungsi utilitas, seperti move_to(world_coordinates)
atau mouse_move(x,y)
yang akan melakukan tindakan yang ditentukan dengan cara yang agak dapat dipercaya (menggerakkan mouse di sepanjang spline acak, berulang kali bergerak melalui minimap dan layar, dan sebagainya)
Juga di Runescape, Anda memiliki opsi untuk secara drastis mengurangi kualitas gambar. Sebenarnya cukup mudah untuk membuat bot jenis tertentu dengan memfilmkan layar dan menerapkan beberapa konsep visi komputer dasar untuk membangun model dunia. Saya membuat bot kutukan dan bot peleburan menggunakan teknik ini, yang keduanya bekerja cukup baik. Itu hanya akan mengambil bingkai, meningkatkan saturasi sebanyak mungkin, dan kemudian mencoba untuk mengekstrak pola dari itu yang kemudian dapat menghasilkan peta probabilitas untuk zona klik.
Dalam kasus bot kutukan, targetnya adalah iblis yang lebih rendah, yang hanya merupakan benda merah besar, yang sepele untuk ditemukan. Dalam kasus peleburan bot, ia akan mencari trapesium oranye kecil yang dikelilingi oleh abu-abu, dan itu akan menjadi tungku. Itu juga akan mencoba untuk menemukan bentuk besar, abu-abu 'L', yang akan menjadi meja bank. Itu hanya dilakukan dengan downscaling dan heuristik dasar. Itu juga bisa mengarahkan dirinya dengan kompas yang berguna di sebelah minimap, sehingga bisa mengarahkan kamera pada posisi yang lebih dapat diandalkan untuk menemukan objek target.
Di berbagai game Nexon, server sangat mempercayai klien. Saya menyalahgunakan ini satu ton di Maplestory dengan memodifikasi peta untuk menghilangkan bahaya atau menambahkan warps sehingga bot tidak harus hampir sama canggihnya. Saya juga akan memonitor lalu lintas ke dan dari server untuk membangun model dunia yang kemudian dapat digunakan untuk dengan cepat menemukan dan membunuh monster.
Setelah saya menyadari bahwa saya tidak benar-benar memainkan MMO lagi dan hanya mengotomatiskannya, saya memutuskan untuk berhenti bermain sama sekali. Jika saya tidak khawatir mengekspos diri secara legal, saya mungkin bisa melakukan pembunuhan dengan menjual bot MMO, tetapi saya benar-benar tidak ingin digugat. Itu sebabnya saya menghabiskan waktu saya melakukan pemrograman nyata hari ini!