फिलिप ने पहले से ही एक महान अवलोकन दिया कि कैसे सबसे अधिक बॉट्स संचालित होते हैं, लेकिन मैं बस चीजों को थोड़ा और विस्तार से कवर करना चाहता था, क्योंकि मेरे पास उन सभी प्रकार के बॉट्स को विकसित करने या उन सभी प्रकार के व्यक्तिगत अनुभव हैं।
Runescape में, एक बड़ा प्रोजेक्ट (RSBot) था जो Runescape क्लाइंट से मेमोरी की सामग्री को उसकी स्थानीय मेमोरी में कॉपी कर देगा, जहाँ यह तब गेम के पूरे राज्य को देख सकता है, जिसमें क्लाइंट के कोई जोखिम नहीं है। यह निर्धारित करने के लिए रिवर्स इंजीनियरिंग की थोड़ी आवश्यकता होती है कि डेटा को पॉइंटर्स खोजने के लिए मेमोरी में कहाँ देखना है, लेकिन एक बार ऐसा करने के बाद, उन्होंने जानकारी का लाभ लेने के लिए एक एपीआई उजागर किया। यह वास्तव में जानता था कि किसी वस्तु के निर्देशांक प्राप्त करने के बाद दुनिया में क्या था और फिर ऑन-स्क्रीन स्थिति प्राप्त करने के लिए उन्हें कैमरा ट्रांसफॉर्म मैट्रिक्स के साथ बदल दिया गया। हिट मास्क भी पठनीय थे, इसलिए वांछित परिणाम प्राप्त करने के लिए माउस को स्थानांतरित करने के लिए वास्तव में क्या सीमा निर्धारित करना तुच्छ था।
बॉट ने डिबगिंग जानकारी का एक गुच्छा प्रदान किया, जैसे कि एनोटेशन, जिसने डेवलपर को बताया कि कौन सी टाइल के निर्देशांक कहां हैं, इस ऑब्जेक्ट में कौन सी आईडी है, किसी दिए गए आइटम का क्या आईडी है, आदि। इस जानकारी का उपयोग तब बॉट बनाने के लिए किया जा सकता है। बॉट स्क्रिप्ट बनाने की वास्तविक प्रक्रिया वास्तव में काफी सरल थी। फ्रेमवर्क ने कई उपयोगिता कार्य प्रदान किए, जैसे कि move_to(world_coordinates)
या mouse_move(x,y)
जो कि कुछ हद तक विश्वसनीय तरीके से निर्दिष्ट क्रियाओं को करेगा (माउस को यादृच्छिक रूप से स्थानांतरित करके, बार-बार दोनों न्यूनतम और स्क्रीन के माध्यम से आगे बढ़ रहा है, और इसी तरह)
Runescape में भी, आपके पास ग्राफिक्स की गुणवत्ता को बहुत कम करने का विकल्प है। दुनिया के एक मॉडल के निर्माण के लिए स्क्रीन पर फिल्मांकन और कुछ बुनियादी कंप्यूटर विज़न अवधारणाओं को लागू करके कुछ प्रकार के बॉट्स बनाना वास्तव में बहुत आसान था। मैंने इस तकनीक का उपयोग करते हुए एक अभिशाप बॉट और स्मेल्टिंग बॉट दोनों बनाया, जिसमें दोनों ने काफी अच्छा काम किया। यह सिर्फ फ्रेम लेगा, संतृप्ति को जितना चाहे बढ़ा सकता है, और फिर इससे पैटर्न निकालने की कोशिश करेगा, जो तब क्लिक जोन के लिए एक संभावना मानचित्र तैयार कर सकता है।
अभिशाप बॉट के मामले में, लक्ष्य एक कम दानव था, जो कि सिर्फ एक विशाल लाल चीज है, जिसे खोजने के लिए तुच्छ है। गलाने वाले बॉट के मामले में, यह ग्रे से घिरे एक छोटे नारंगी ट्रेपोजॉइड की तलाश करेगा, और यह भट्ठी होगी। यह एक बड़े, हल्के भूरे रंग के 'एल' आकार को खोजने की कोशिश करेगा, जो बैंक डेस्क होगा। यह सिर्फ डाउनस्कूलिंग और बुनियादी आंकड़ों के साथ किया गया था। यह अपने आप को न्यूनतम कम्पास के बगल में आसान कम्पास के साथ उन्मुख कर सकता है, इसलिए यह लक्ष्य वस्तुओं को खोजने के लिए कैमरे को अधिक विश्वसनीय स्थिति में उन्मुख कर सकता है।
विभिन्न नेक्सॉन खेलों में, सर्वर ग्राहकों पर बहुत भरोसा करते हैं। खतरों को दूर करने के लिए या युद्ध जोड़ने के लिए मैंने मैप्सटोरी में एक टन का दुरुपयोग किया है ताकि एक बॉट को लगभग परिष्कृत न हो। मैं दुनिया के एक मॉडल का निर्माण करने के लिए सर्वर से ट्रैफ़िक की निगरानी और निगरानी भी करूंगा, जिसका उपयोग राक्षसों को जल्दी से खोजने और मारने के लिए किया जा सकता है।
एक बार जब मुझे एहसास हुआ कि मैं वास्तव में अब MMO नहीं खेलता हूं और बस उन्हें स्वचालित करता हूं, तो मैंने पूरी तरह से खेलना बंद करने का फैसला किया। यदि मैं कानूनी रूप से खुद को उजागर करने के बारे में चिंतित नहीं था, तो शायद मैं एक हत्या कर सकता हूं जो कि बेची जाने वाली बोट्स बेच सकता है, लेकिन मैं वास्तव में मुकदमा नहीं करना चाहता था। यही कारण है कि मैं इन दिनों वास्तविक प्रोग्रामिंग करने में अपना समय बिताता हूं!