gpt4 book ai didi

用于在线游戏的 Java 机器人

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:21 25 4
gpt4 key购买 nike

我正在使用 java.awt.Robot 在 java 中创建一个机器人。该机器人在浏览器上运行良好(我还使用 Microsoft Word 对其进行了测试!)但是当我在游戏中运行它时,唯一可用的功能是 mouseMove。我想构建一个只需为我按下键盘按钮的机器人。

我实例化机器人类

Robot r = new Robot();

然后我做一些简单的事情:按 z,按 1,移动鼠标并单击鼠标右键。

r.keyPress(KeyEvent.VK_Z);
r.keyRelease(KeyEvent.VK_Z);

r.keyPress(KeyEvent.VK_1);
System.out.println("Press 1 button");
r.keyRelease(KeyEvent.VK_1);
System.out.println("Release 1 button");
r.delay(1000);

System.out.println("Move mouse");
r.mouseMove(110, 690);

System.out.println("Press");
r.mousePress(InputEvent.BUTTON3_MASK);
System.out.println("Release");
r.mouseRelease(InputEvent.BUTTON3_MASK);

为什么会这样?如果这个 Robot 类在后台运行,它可以在游戏中执行这些类型的操作吗?

谢谢

更新:例如,如果我在 PES 2012 上运行我的机器人,它运行良好,但如果我在像 Cabal 这样的在线游戏上运行它,它就不起作用?游戏的保护系统没有检测到任何东西,所以事实并非如此。

最佳答案

首先,大多数游戏都有机器人保护,因此请确保为机器人添加延迟,也许还有“冷却时间”。在该 r.delay(1000) 语句之前,机器人执行了两个即时操作。

我几乎可以肯定它不起作用,因为击键速度太快:它们会立即按下并立即释放。尝试在实例化 Robot 类后立即添加 bot.delay(500)(或更多,取决于游戏);在所有按键功能之前。这会在机器人完成的所有操作之间增加 500 毫秒的延迟。

public static void doStuff() {

Robot r = new Robot();

r.delay(500); //Or more - depends on the game

r.keyPress(KeyEvent.VK_Z);
r.keyRelease(KeyEvent.VK_Z);

r.keyPress(KeyEvent.VK_1);
System.out.println("Press 1 button");
r.keyRelease(KeyEvent.VK_1);
System.out.println("Release 1 button");
r.delay(1000);

System.out.println("Move mouse");
r.mouseMove(110, 690);

System.out.println("Press");
r.mousePress(InputEvent.BUTTON3_MASK);
System.out.println("Release");
r.mouseRelease(InputEvent.BUTTON3_MASK);
}

我认为 Z 和 1 键不起作用的唯一原因是完成所有操作的速度。该游戏可能具有反机器人系统。

关于用于在线游戏的 Java 机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com