我现在正在玩Mine先生,我懒得每隔1~2分钟点击一次'卖'。
我可以使用鼠标宏程序,我可以让电脑为我点击,但这听起来像一个不雅的方法。
我正在思考一些方法,我可以制作一个代码,通过网页游戏进入网页浏览器,并以某种方式向服务器发送某种“请求”,以便销售这些矿物质。
我的意思是,毕竟手动点击它最终会向服务器发送一些请求,为什么不通过预编程的代码发送呢?
我知道我的问题很广泛,所以让我问几个问题,这些问题会让我开始我的项目。
我想看看源代码。 (即使它不是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用户可以通过这种技术发挥创意并做更多事情。
答案 0 :(得分:2)
您可以使用wireshark等数据包捕获工具。用这个数字计算出游戏发送给服务器的格式和数据。
一旦您了解了结构,就可以编写脚本来拦截游戏流量,添加所需的参数并定时发送请求。 (这都假设它确实加密了它的网络流量,在这种情况下这可能会有点困难)
您可以通过this搜索找到一些其他信息。
答案 1 :(得分:1)
也许你可以使用http://www.sikuli.org/。我成功地使用它来为在线前夕做一个相当复杂的自动化程序。