Bot clicker Java simple sur l'exemple du jeu World of Warcraft 3.3.5a

Ce mécanisme a été testé exclusivement sur un serveur piraté, donc ses performances sur les serveurs officiels ne sont pas garanties.

Toutes les tentatives d'utilisation - uniquement à vos risques et périls.

L'implémentation concerne les postes de travail Windows.

Alors, créez un bot simple dont le but sera:

1) entrez dans le jeu;
2) connectez-vous à votre compte;
3) entrez dans le monde du jeu;
4) ouvrez la boîte aux lettres;
5) générer et envoyer une lettre à un autre joueur;

1) Entrez dans le jeu


Pour entrer dans le jeu, nous devons avoir un client de jeu préalablement téléchargé.
Dans notre travail, nous utilisons le fichier exe Wow.exe. Nous écrivons son chemin comme suit:

String WowPatch="D:/Wow/Wow.exe"; 

Ici, nous avons enregistré le chemin vers l'exécutable Wow. Ce chemin sera probablement différent pour vous.

Le chemin est certes bon, mais ce n'est pas suffisant pour lancer le jeu.

Pour fonctionner, nous avons besoin de ce code:

 String WowPatch="D:/Wow/Wow.exe"; File file =new File(WowPatch); try { Desktop.getDesktop().open(file); } catch (IOException e1) { e1.printStackTrace(); } 

À la suite de l'application du code ci-dessus, WoW devrait démarrer sur votre ordinateur.

Nous avons lancé WoW et avons immédiatement fait face à un nouveau problème - Comment faire pour que le bot entre automatiquement le login et le mot de passe depuis le compte?

2) Connectez-vous à votre compte


Maintenant? nous devons écrire deux autres variables de texte.

 String Login="YourLogin"; String Password="YourPassword"; 

Ici, nous avons noté le login et le mot de passe du compte que nous allons entrer. Cependant, si nous utilisons immédiatement après cette partie du code où nous entrons dans le jeu - il y aura des problèmes. Et tout cela parce que notre bot exécutera le code, que Warcraft ait démarré ou non, et que le jeu ait besoin de temps pour se charger, si vous travaillez sur un PC faible, cela prendra encore plus de temps.

Afin que le login et le mot de passe ne soient pas «saisis» à l'avance, nous allons faire une pause dans notre code:

 String WowPatch="D:/Wow/Wow.exe"; File file =new File(WowPatch); try { Desktop.getDesktop().open(file); } catch (IOException e1) { e1.printStackTrace(); } Thread.sleep(20000); String Login="YourLogin"; String Password="YourPassword"; 

Ici, nous nous sommes arrêtés pendant 20 secondes. J'ai plus qu'assez de temps pour que WoW démarre. Il convient de noter qu'immédiatement après le chargement de WoW, le champ de connexion par défaut est déjà sélectionné. Il ne nous reste plus qu'à copier le login de notre variable dans le presse-papiers et le coller dans le champ de login:

 Robot rb= new Robot(); StringSelection stringSelection = new StringSelection(Login); Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard(); clpbrd.setContents(stringSelection, null); rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_CONTROL); 

Ici, nous avons copié notre connexion au presse-papiers et simulé en appuyant sur Ctrl + V, nous avons collé la connexion dans la fenêtre correspondante.

Maintenant, nous devons passer à la boîte de mot de passe. Il existe deux façons de procéder:

- Nous pouvons simuler le mouvement de la souris et cliquer sur la deuxième fenêtre.
- Nous pouvons basculer en simulant en appuyant sur le bouton Tab.

Nous utiliserons la deuxième option, car elle est plus simple:

 rb.keyPress(KeyEvent.VK_TAB); rb.keyRelease(KeyEvent.VK_TAB); 

Ensuite, copiez notre mot de passe dans le presse-papiers et collez-le:

 StringSelection stringSelection2 = new StringSelection(Password); Clipboard clpbrd2 = Toolkit.getDefaultToolkit().getSystemClipboard(); clpbrd2.setContents(stringSelection2, null); rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_CONTROL); 

Hourra !!! Nous sommes entrés dans le menu de sélection des personnages. Vous devez maintenant entrer dans le monde du jeu.

3) Entrez dans le monde du jeu


Nous voyons maintenant le menu de sélection des personnages à l'écran. Nous ne trierons probablement pas vraiment et n'allons pas au premier personnage rencontré.

Pour participer, nous pouvons utiliser deux options différentes:

- Déplacez le curseur de la souris sur le bouton "Connexion" et simulez un clic;
- Simuler en appuyant sur le bouton Entrée;

La deuxième option est plus simple, mais si nous ajoutons le clic immédiatement après la fonction d'entrée, il y aura à nouveau des problèmes, nous allons donc faire une pause à nouveau, permettant au jeu d'aller calmement au menu de sélection des personnages:

 Thread.sleep(5000); rb.keyPress(KeyEvent.VK_ENTER); rb.keyRelease(KeyEvent.VK_ENTER); 

Je suis 5 sec. manquant avec une tête.

Oh miracle, le chargement du monde du jeu a commencé!

4) Ouvrez la boîte aux lettres


Ici, nous devons à nouveau faire une pause pour que WoW ait le temps de charger le monde du jeu. Il est également conseillé de pré-préparer le personnage:

- Maximisez la caméra;
- Devenez un front dans votre boîte de réception;

Pour ouvrir une boîte aux lettres, vous devez la crier avec le bouton droit de la souris. Pour ce faire, nous allons déplacer le curseur de la souris et simuler un clic:

 Thread.sleep(30000); rb.mouseMove(700, 350); rb.mousePress(InputEvent.BUTTON3_MASK); rb.mouseRelease(InputEvent.BUTTON3_MASK); 

Gardez à l'esprit que la position de la souris que j'ai indiquée est conçue pour une résolution d'écran de 1366x768.
BUTTON3 est exactement le bouton droit de la souris.

Nous avons ouvert la boîte aux lettres, allez maintenant dans l'onglet "Envoyer":

 rb.mouseMove(200, 550); rb.mousePress(InputEvent.BUTTON1_MASK); rb.mouseRelease(InputEvent.BUTTON1_MASK); 

Ici, nous avons non seulement imité le mouvement de la souris à l'écran, mais également cliqué avec le bouton gauche.

Il est maintenant temps de remplir et d'envoyer un e-mail!

5) Formez et envoyez une lettre à un autre joueur


Maintenant, nous devons remplir les points:

- Nom du destinataire;
- Objet du message;
- Le texte du message;

 String Name="Name"; String Theme="Theme"; String Text="Text"; 

Tout d'abord, mettez dans le presse-papiers, le nom du personnage et collez-le dans la colonne appropriée:

 StringSelection stringSelection3 = new StringSelection(Name); Clipboard clpbrd3 = Toolkit.getDefaultToolkit().getSystemClipboard(); clpbrd3.setContents(stringSelection3, null); rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_TAB); rb.keyRelease(KeyEvent.VK_TAB); 

Nous avons inséré le nom du destinataire et basculé vers une autre colonne. Vous devez maintenant insérer l'objet du message:

 StringSelection stringSelection4 = new StringSelection(Theme); Clipboard clpbrd4 = Toolkit.getDefaultToolkit().getSystemClipboard(); clpbrd4.setContents(stringSelection4, null); rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_TAB); rb.keyRelease(KeyEvent.VK_TAB); 

Nous avons inséré l'objet du message et sommes passés à la troisième colonne - texte du message:

 StringSelection stringSelection5 = new StringSelection(Text); Clipboard clpbrd5 = Toolkit.getDefaultToolkit().getSystemClipboard(); clpbrd5.setContents(stringSelection5, null); rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_V); rb.keyRelease(KeyEvent.VK_CONTROL); 

Insérez le texte du message. Il ne reste plus qu'à cliquer sur le bouton "Soumettre":

 rb.mouseMove(200, 520); rb.mousePress(InputEvent.BUTTON1_MASK); rb.mouseRelease(InputEvent.BUTTON1_MASK); 

Déplacez le curseur et faites un clic gauche sur "Soumettre".

C'est tout. J'espère que cela a été utile à au moins quelqu'un. J'espère aussi vraiment que cet article n'a pas été accepté comme guide d'action et ne conduira pas à une augmentation de la quantité de spam dans le jeu.

Source: https://habr.com/ru/post/fr434218/


All Articles