游戏怎么可能检测到宏?

How can games possibly detect a macro?

所以我一直在玩这款2D在线RPG游戏。它真的很复古,有点旧,但管理得很好。我决定创建一个机器人在游戏中进行磨练,农业机制很简单。

不知道怎么形容才好,抱歉。所以会出现一个条,并且会有一个对象 运行 穿过条,另一个对象会在条中的随机位置产生,当它对齐时你必须按下一个键。我想你可能明白了。

所以我用 python 使用 pyautogui 编写了机器人脚本。使用几个小时后,我被其中一位版主抓住并指责我使用宏。我不知道他们是怎么发现的,这真是令人惊讶,因为这只是一款复古游戏,而且他们对游戏进行了如此出色的监控。

我真的需要知道他们是怎么做到的,这样我才能创造出更好的机器人。我认为唯一可能的是他们正在测量每次点击率(我的意思是点击和释放键之间的延迟非常小)并且 returns 每当重复相同的点击率时发出警报如果有一定的时间,我可能是错的我对 API 或任何可能使用的东西知之甚少。

有很多方法。

最明显的可能是:玩家得分和关卡完成时间,或任何衡量成功的指标,在​​短期内显着增加。可能只是机器人玩得太好了。我的意思是,我写了一个扫雷机器人在 1 秒内通关。很明显,人类无法做到这一点。我的机器人在最佳时间击败了其他机器人。

其他:像 pyautogui 这样的工具往往会生成一组有限的输入事件。它可能会生成“单击”但无法生成将鼠标移动到该位置的“移动”事件。或者,从 A 点到 B 点的鼠标移动是完全直线的,没有人移动鼠标时会有的变化。

然后,如你所料,时机。没有停止的快速点击率看起来像机器人。可能是 clicks/second 或时间的一致性。

总的来说,错误不够(或太多,取决于游戏。点击屏幕的每个点来寻找东西是一个赠品),太快,太死板。

此时你已经失败了,所以对于那个特定的游戏你可能应该放弃。