如何编写一个可以在网页游戏中点击我的宏?

时间:2013-12-30 02:41:14

标签: python macros

我现在正在玩Mine先生,我懒得每隔1~2分钟点击一次'卖'。

我可以使用鼠标宏程序,我可以让电脑为我点击,但这听起来像一个不雅的方法。

我正在思考一些方法,我可以制作一个代码,通过网页游戏进入网页浏览器,并以某种方式向服务器发送某种“请求”,以便销售这些矿物质。

我的意思是,毕竟手动点击它最终会向服务器发送一些请求,为什么不通过预编程的代码发送呢?

我知道我的问题很广泛,所以让我问几个问题,这些问题会让我开始我的项目。

  1. 我需要学习什么来理解“发送请求”部分?
  2. 是否有人或任何脚本已经完成了我想做的事情?
  3. 我想看看源代码。 (即使它不是Mr.Mine也没关系。任何其他网页游戏也会有所帮助)

    另外,我现在对python很感兴趣,所以如果在python中有任何例子,我真的很感激。


    更新:“我已经解决了问题”

    我正在写我是如何解决这个问题的,以防其他一些刚刚开始使用Mr.Mine的人面对我所做的那种懒惰。

    事实证明,Mr.Mine实际上并没有与其服务器交换数据包。它只使用互联网连接来初始加载图像和所有这些。(我认为它是......)

    如果你右键点击Mr.Mine网页并查看它的html代码,你会发现它充满了javascripts。

    在粗略阅读这些javascripts之后,我认为这个游戏不依赖于数据包数据的理论变得更有说服力。

    无论如何,这就是我从javascript角度解决问题的原因,我终于得到了一个解决方案

    您需要做的是使用chrome的开发人员工具。(我是Chrome用户)

    您也可以通过以下方式访问此工具:从mr.mine网页,右键单击任意位置 - >单击最后一个按钮。然后你会看到屏幕底部出现一些面板。

    这个工具可以让你摆弄html代码或javascript。

    我也不擅长这个,因为这是我第一次将它用于实际目的。 我只是通过谷歌搜索来满足我的需求,从而抓住了足够的知识。

    在这个新的面板中,在顶部的菜单栏中,右侧是“控制台”标签。 单击此按钮,您将看到一个命令控制台。 这是您可以在网页的javascript中执行java命令的地方。

    从这里开始,它严格地与'Mr.Mine'有关。

    从我之前对javascript的粗略阅读中,我发现卖出按钮已经被赋予了诸如“SB2”,“SB3”,“SB4”等ID。

    所以我所做的只是输入

        setInterval(document.getElementById("SB2").onclick, 300);
    

    在命令行中按下回车键。 此命令将每0.3秒自动按下SB2按钮(对应于'Coal')。

    *警告:执行此代码时,必须打开“销售”页面。我发现如果没有打开'sell'页面,代码就不起作用了。

    *警告2:另一个有趣的事情是,即使在“卖出”页面内,如果你转移到'卖同位素'页面,它也会自动卖出铀238.那是因为SB2按钮对应于'同位素'中的铀238 ' 标签。所以要小心!

    *警告3:如果这样做,将不断出现错误弹出窗口。我只是启用了“永不显示此弹出窗口”复选框,之后它就运行良好。但是有一个副作用:按下“保存”按钮后出现的常用弹出窗口不再出现......但是值得牺牲的不是吗?

    无论如何,如果你想自动出售其他矿石,你所要做的就是输入类似的代码:

        setInterval(document.getElementById("SB3").onclick, 300);
        setInterval(document.getElementById("SB4").onclick, 300);
    

    ......等等。

    看到只是在“SB”之后改变数字对应于列表中的下一个矿石(同位素)。

    好吧,感谢您阅读这篇文章,我希望其他Mr.Mine用户可以通过这种技术发挥创意并做更多事情。

2 个答案:

答案 0 :(得分:2)

您可以使用wireshark等数据包捕获工具。用这个数字计算出游戏发送给服务器的格式和数据。

一旦您了解了结构,就可以编写脚本来拦截游戏流量,添加所需的参数并定时发送请求。 (这都假设它确实加密了它的网络流量,在这种情况下这可能会有点困难)

您可以通过this搜索找到一些其他信息。

答案 1 :(得分:1)

也许你可以使用http://www.sikuli.org/。我成功地使用它来为在线前夕做一个相当复杂的自动化程序。