user194625 Asked:2020-08-27 01:41:21 +0000 UTC2020-08-27 01:41:21 +0000 UTC 2020-08-27 01:41:21 +0000 UTC 如何为电脑游戏编写机器人?[关闭] 772 我在 YouTube 上看到一段视频,其中显然不是一个人在玩,而是一个机器人。这怎么可能呢?你如何编写一个能够从屏幕上“获取”元素、计算可盈利点击并考虑速度的机器人?这些机器人是如何编写的? бот 2 个回答 Voted Best Answer Гончаров Александр 2020-08-27T04:17:33Z2020-08-27T04:17:33Z 事实 1:您可以使用 WinApi 在特定坐标处发送击键和鼠标点击/移动。 Fact 2. 你可以随意挖别人程序的RAM(使用低级语言),你可以监听游戏与游戏服务器的连接:所有关键数据(例如玩家和对手的位置)在其中定期传送。 所以用一个简单的机器人,没什么复杂的——你截取必要的数据,例如,计算机游戏中树木的位置和玩家的位置。您的特定算法确定当前要按哪些键,将鼠标移动到哪里。这样做并绕着圈子转。 前段时间,我在浏览器游戏的机器人上赚了钱。所以就个人而言,我的机器人是只用 JS 编写的浏览器扩展。在这种情况下扩展的好处是有一个 DOM 树:也就是说,很容易获得关于游戏世界的全面信息。有趣的是,您可以通过从扩展程序调用窗口空间中的任何脚本来“命令”游戏窗口,并且在扩展程序空间中您可以直接从 JS dll 库连接,例如 WinApi 。 Muskovets 2020-08-27T01:50:54Z2020-08-27T01:50:54Z 许多游戏都有作弊API。 机器人可以使用它,或者,例如,图像处理。 与此相结合, 可以很好地使用虚拟击键。在 Java 中,这是非常可行的: import java.awt.Robot; ... public void pressKey(Robot instance, int key) { instance.keyPress(key); } public void releaseKey(Robot instance, int key) { instance.keyRelease(key); }
事实 1:您可以使用 WinApi 在特定坐标处发送击键和鼠标点击/移动。
Fact 2. 你可以随意挖别人程序的RAM(使用低级语言),你可以监听游戏与游戏服务器的连接:所有关键数据(例如玩家和对手的位置)在其中定期传送。
所以用一个简单的机器人,没什么复杂的——你截取必要的数据,例如,计算机游戏中树木的位置和玩家的位置。您的特定算法确定当前要按哪些键,将鼠标移动到哪里。这样做并绕着圈子转。
前段时间,我在浏览器游戏的机器人上赚了钱。所以就个人而言,我的机器人是只用 JS 编写的浏览器扩展。在这种情况下扩展的好处是有一个 DOM 树:也就是说,很容易获得关于游戏世界的全面信息。有趣的是,您可以通过从扩展程序调用窗口空间中的任何脚本来“命令”游戏窗口,并且在扩展程序空间中您可以直接从 JS dll 库连接,例如 WinApi 。
许多游戏都有作弊API。
机器人可以使用它,或者,例如,图像处理。
与此相结合,
可以很好地使用虚拟击键。在 Java 中,这是非常可行的: