最近开心农场非常火,同学用C#模拟鼠标点击操作做了一个小外挂,但是这样做有如下缺点:1、计算机不能做其他事情,2、必须开着浏览器,3、对所有好友点一遍的时间太慢,4、对于开发者来说技术含量低了点,呵呵。
所以我尝试着改进这种实现,我的想法是:不用开启浏览器,直接运行一个应用程序,该程序将自己伪装成一个浏览器,与服务器连接,并发送浇水、除虫等命令。这样,甚至可以使用多线程向服务器发送命令,无需等待服务器返回一个结果之后再发送下一条命令。从而完全避开了上面几个缺点。
这样做首先要做的是分析在执行每一个浇水(及其他)动作的时候,浏览器向服务器发送了什么请求,有哪些参数,每一个参数的含义是什么,还有服务器端的返回值及其意义。分析完之后,就可以使用Java模拟浏览器与服务器建立连接并发送类似的请求。(还有一点,在向服务器端发送浇水请求的时候,你需要知道好友的userId,所以首先需要从服务器获取当前用户的所有好友userId,然后对每一个userId分别进行各种动作)。
代码如下:
其中需要用到3个文件,分别是
1、FARM_FILE:存储向服务器端发送的两个参数(现在明确知道的是第二个参数:是指农场的全局时间,第一个参数应该是请求服务器的一个密钥,如果密钥错误会阻止操作——一般会返回重新登录的提示,一个密钥的可用时间是有限的,所以要过一个小时左右更新一次farmKey,但可惜,我还不知道如何用程序自动更新这个密钥)
2、OWNER_FILE:是所有好友的userId,第一行是好友的数量。
3、CON_FILE:是每一个向服务器发送的请求的Header部分,Header部分包括用户的Cookie,通过Cookie服务器识别当前用户是谁,不同的用户该文件内容不一样。在程序中使用setConnectionHeader()方法将每一个请求的Header设置成文件中的内容。如果需要使用这个程序的话,必须用firebug获取到你的Cookie的内容,并修改这个文件。(由于Cookie中包含了我的用户信息,所以我用*屏蔽掉了一些内容)
程序核心的方法有两个:1、getFriends()用于第一次使用时获取当前用户的好友信息。2、work()对所有好友的每块地进行浇水等动作。我是对每一个好友都用一个线程单独操作,比如我有46个好友,就会有46个线程同时请求服务器,这样效率高很多(如果想要更快,可以使用更多线程)。main函数就两行,这是第一次之后的调用,第一次应该先调用getFriends();
程序的含义看注释应该能够明白,如果要使用程序,一定要将CON_FILE中的Cookie改为你自己的Cookie,其次,FARM_FILE中的farmKey和farmTime可能也需要修改。修改完着两个文件,程序应该是能够执行的。而好友列表文件,调用Robot的getFriends()方法就能够生成。
PS:程序中用到了JSON-lib来解析服务器返回的数据,JSON-lib下载地址:http://sourceforge.net/projects/json-lib/
分享到:
相关推荐
开心农场源码及素材java源码, 非百分百还原开心农场,代码只实现的了简易的功能
用C#编写的单机版的开心农场! 用于学习!
java Swing实现开心农场采用面向对象思想 java Swing实现开心农场采用面向对象思想 采用面向对象的思路,实现开心农场,适合初学者,以及对面向对象有更深层次理解的开发者或者同学。 使用原生的java swing进行窗口...
基于JAVA设计的现实版的“开心农场”软件源码+说明文档 通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,在农场里用户通过鼠标操作实现种子购买、作物...
开心农场大家都认识啦开心农场++web+开心农场++web++开心农场源代码+开心农场源代码开心农场++web++开心农场源代码
开心农场 .net 源码 偷菜开心农场 .net 源码 偷菜开心农场 .net 源码 偷菜开心农场 .net 源码 偷菜开心农场 .net 源码 偷菜
开心农场 源码 开心农场 源码 非常好得辅助程序
完美开心农场网页源代码php 1、左上角默认头像无法显示 2、牧草动物不能说话 3、采用MFyoyo动画引擎,画面更细腻! 4、修正FB刷分 5、用户退出后金钱归零 6、新手送的化肥改为2包,与文字匹配 7、牧场左上角恢复留言...
QQ 开心 农场 c# 源码QQ 开心 农场 c# 源码QQ 开心 农场 c# 源码QQ 开心 农场 c# 源码
本机版开心农场(flash实现),这是一个flash的例子,有兴趣的可以看看
使用Java开发的开心农场源码和配套的的素材,下载了导入到本机的IDE中即可使用,源码完整,可以运行
自己制作的开心农场完整源码及素材,实现了作物的播种到收获操作以及定时生长功能。
C#做的开心农场游戏,可种可收可买,跟qq农场很像,这是第一卷,还有第二卷,因为有视频较你怎么做的
这是我的毕业设计,实现了一个简单版的开心农场,虽然和网络上成熟的应用相差甚远,但应付毕业设计足够了。基于flex和java实现,有兴趣者可下载下去参考。加压后可以放到eclipse中部署到apache—tomcat中,另外由于...
一个搭建本地环境的开心农场PPT,简介高效,从此自己当农场主
开心农场3.1BY PHP 该修版开心农场3.1BY PHP 该修版
开心农场源码及素材java源码 下载
开心农场案例,很好玩的,想学农场游戏的,可以研究下