ゲームWorld of Warcraft 3.3.5aの例での単純なJavaクリッカーボット

このメカニズムは、海賊版サーバーでのみテストされているため、公式サーバーでのパフォーマンスは保証されていません。



使用するすべての試み-あなた自身の危険とリスクのみで。



実装はWindowsデスクトップ用です。



そのため、単純なボットを作成します。その目的は次のとおりです。



1)ゲームに参加します。

2)アカウントにログインします。

3)ゲームの世界に入ります。

4)メールボックスを開きます。

5)手紙を作成して別のプレーヤーに送信します。



1)ゲームに入る



ゲームに参加するには、ダウンロード済みのゲームクライアントが実際に必要です。

作業では、exeファイルWow.exeを使用します。 そのパスを次のように記述します。



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





ここでは、Wow実行可能ファイルへのパスを記録しました。 このパスはおそらく異なるでしょう。



パスは確かに良いですが、これはゲームを起動するのに十分ではありません。



実行するには、次のコードが必要です。



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





上記のコードを適用した結果、コンピューターでWoWが起動します。



WoWを起動し、すぐに新しい問題に直面しました- ボットがアカウントからログインとパスワードを自動的に入力する方法は?



2)アカウントにログインします



今? さらに2つのテキスト変数を記述する必要があります。



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





ここで、入力するアカウントのログインとパスワードを書き留めました。 ただし、ゲームに入るコードのその部分の直後から使用すると、問題が発生します。 それは、Warcraftが起動したかどうかに関係なくボットがコードを実行し、ゲームのロードに時間がかかるためです。弱いPCで作業している場合は、さらに時間がかかります。



ログインとパスワードが事前に「入力」されないように、コードを一時停止します。



 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";
      
      





ここで、20秒間停止しました。 WoWを起動するのに十分な時間があります。 WoWを読み込んだ直後に、デフォルトのログインフィールドがすでに選択されていることに注意してください。 ここで必要なのは、変数からクリップボードにログインをコピーして、ログインフィールドに貼り付けるだけです。



 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);
      
      





ここで、ログインをクリップボードにコピーし、Ctrl + Vを押してシミュレートし、ログインを対応するウィンドウに貼り付けました。



次に、パスワードボックスに切り替える必要があります。 これを行うには2つの方法があります。



-マウスの動きをシミュレートし、2番目のウィンドウをクリックします。

-Tabボタンを押すことをシミュレートして切り替えることができます。



2番目のオプションはより単純なので、使用します。



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





次に、パスワードをクリップボードにコピーして貼り付けます。



 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);
      
      





やったー! キャラクター選択メニューに入りました。 次に、ゲームの世界に入る必要があります。



3)ゲームの世界へ



これで、画面にキャラクター選択メニューが表示されます。 おそらく実際には整理されず、最初に登場するキャラクターに行きます。



入力するために、2つの異なるオプションを使用できます。



-マウスカーソルを[ログイン]ボタンに移動してクリックをシミュレートします。

-Enterボタンを押すことをシミュレートします。



2番目のオプションは簡単ですが、入力機能の直後にクリックを追加すると、再び問題が発生するため、再び一時停止し、ゲームが静かにキャラクター選択メニューに移動できるようにします。



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





私は5秒です。 頭が欠けています。



奇跡、ゲーム世界の読み込みが開始されました!



4)メールボックスを開く



ここで、WoWがゲームワールドをロードできるように、一時停止する必要があります。 また、キャラクターを事前に準備することをお勧めします。



-カメラを最大化します。

-受信トレイで額になります。



メールボックスを開くには、マウスの右ボタンで叫ぶ必要があります。 これを行うには、マウスカーソルを移動してクリックをシミュレートします。



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





私が示したマウスの位置は、1366x768の画面解像度用に設計されていることに注意してください。

BUTTON3はまさにマウスの右ボタンです。



メールボックスを開き、[送信]タブに移動します。



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





ここでは、画面上のマウスの動きを模倣するだけでなく、左クリックも行いました。



今すぐメールに記入して送信する時です!



5)他のプレイヤーに手紙を作成して送信する



次に、項目を入力する必要があります。



-受信者の名前。

-メッセージの件名。

-メッセージのテキスト。



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





まず、クリップボードにキャラクターの名前を入れて、適切な列に貼り付けます。



 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);
      
      





受信者の名前を挿入し、別の列に切り替えました。 次に、メッセージの件名を挿入する必要があります。



 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);
      
      





メッセージの件名を挿入し、3番目の列に切り替えました-メッセージテキスト:



 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);
      
      





メッセージテキストを挿入します。 あとは、[送信]ボタンをクリックするだけです。



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





カーソルを移動し、「送信」を左クリックします。



それだけです。 少なくとも誰かに役立つといいのですが。 また、この記事がアクションのガイドとして受け入れられず、ゲーム内のスパムの量が増えないことを願っています。



All Articles