2

現在、ゲーム クライアント内のポップアップ キューを自動的に受け入れるプログラムを作成しようとしています。クライアント内にいなくても、すべてを思いどおりに機能させることができました。しかし、ゲーム クライアントを開くと、私が使用したロボット クラスは、マウスを動かしたり、押したり離したりする機能を失います。ただし、ポインターの色をローカルで分析しているようです。あれは; ゲームクライアント内ではありません。

アプリのコードフラグメントは次のとおりです。

/ループ内のマウス ポインターの位置で色を分析します。特定の制限に変更/メニューがポップアップすると、if文が真になり、承認ボタンがあるはずの場所をマウスでクリックする前に、わずかな遅延がトリガーされます/

p = MouseInfo.getPointerInfo().getLocation();

rgb = this.robot.getPixelColor(px, py);

/ (これは、受け入れボタンが 16:9 形式のすべてのゲーム内クライアントに対して相対的になる位置です) /

this.robot.mouseMove((int)(inGameScrnSize.width * 0.4575), (int)(inGameScrnSize.height * 0.4753));

ロボット.遅延(100);

robot.mousePress(InputEvent.BUTTON1_MASK);

robot.mouseRelease(InputEvent.BUTTON1_MASK);


私の質問は、どうすればゲームクライアントとの間で I/O デバイス情報にアクセスして送信できるのでしょうか? これは Java Robot クラスで可能ですか?

4

1 に答える 1

1

これは、デスクトップ座標系からクライアントを起動する Java で記述されたアルゴリズムを使用して WoW クライアント内から I/O を制御する方法に関するものだったことを思い出します。問題は、ロボットオブジェクトがインスタンス化されると、すべてのメソッド呼び出しがインスタンス化された座標系にあると解釈されるため、クライアント座標系内で開始した場合に機能することです (これは私が作業しました)ただし、2 つの異なる座標系内で連続して使用することはできません。したがって、フォーカスが 2 番目の座標系に切り替えられた後に新しいロボット クラスをインスタンス化すると、問題なく動作するはずです。

于 2013-11-06T10:11:14.993 に答える