代码改变世界

QQ开心农场外挂软件设计思路

2009-08-11 20:39  Otis's Technology Space  阅读(4694)  评论(10编辑  收藏  举报

今天玩了一下QQ的开心农场,我有一堆朋友在玩。每次去偷别人的东西时,都要一个一个地点选,看看是否有可摘的东西。然后还要一个个地点摘取,这样才算偷到,感觉好像有点太麻烦了。 有时候朋友的东西可摘了,但是我没时间去看(总不能每XX分钟查一次,每次查全部的朋友的吧。。@@,那样会累死。。)

然后我就想,如果有一软件,可以自动去自己的好友的地里偷东西。每隔十分钟查一次,如果好友的地里有东西可以摘,就把它偷回来。 这样就太爽了。来钱,升级,太方便了。。 ^_^.这类软件,我们称之为外挂。

下面分析一下。。

打开QQ开心农场时,会去这个地址http://happyfarm.qzone.qq.com/api.php?mod=user&act=run请求自己的农场的数据信息,就是你的农场长什么样的,就是靠这些数据了。请求时会post两个数据:

image

然后就会返回你的农场的信息了,数据是json格式,我的是如下:

image

然后我的农场是长这样:

image

然后就做操作时,比如说买种子,种下,浇水,除草等,都会以POST方式发出相关请求,然后返回json的数据。

比如我买一粒玉米种子,他会发出以下URL请求: http://happyfarm.qzone.qq.com/api.php?mod=repertory&act=buySeed

POST的数据如下:

image

然后返回的结果如下:

{"cId":3,"code":1,"direction":"","cName":"\u80e1\u841d\u535c","num":1,"money":-163}

变成界面大概是这样:

image

 

所以,自动管理自己农场的外挂软件大概是这样弄:先登入QQ,然后去抓取自己的农场的状态信息,然后分析这些信息,然后再决定要做什么操作,比如说地干了会自动浇水,作物成熟了会自动摘,自动卖出仓库里的果实等。。

 

下面分析一下定时的自动去朋友的农场偷东西的外挂的实现方式。

只要在QQ开心农场中点选一朋友,就可以得到朋友的农场的信息,请求的网址一般是:

http://happyfarm.qzone.qq.com/api.php?mod=user&act=run&flag=1&ownerId=406951363

然后会返回:

image

然后就分析这些数据,就知道朋友的农场里的状态,比如有没有东西成熟可摘了,是不是有地干了要浇水等。

比如,经程式分析数据后,发现朋友的农场里有可摘的东西,image ,我要摘一朋友的东西,会向http://happyfarm.qzone.qq.com/api.php?mod=farmlandstatus&act=scrounge这个网址发出的请求。POST的数据如下:

image

然后会重新返回朋友的农场的状态。

image

然后又分析这些数据,直到没有东西可摘,就去分析下一个朋友的农场。

 

本文已完。 ^_^/