说起来这QQ农场,真是好久没碰,但一提起来,那感觉又回来。当年上学上班,谁还没偷偷菜、定闹钟收菜?那劲头,现在想想都觉得有意思。
不过现在是真没那闲工夫,每天忙得跟陀螺似的,哪还能掐着点去收那几颗土豆白菜。可看着那地荒着,又有点不得劲,毕竟也是当年投入过“感情”的。偶尔上去一看,草都老高,还被别人薅得一干二净。
就琢磨着,能不能搞个自动的玩意儿,让它帮我看着点,收收菜、种种地啥的,省心。咱也不是啥专业程序员,就是喜欢瞎捣鼓。这个“qq农场保姆”的想法就冒出来。
开始动手前的瞎琢磨
我先是在网上扒拉半天。确实看到不少类似的工具或者脚本,有的说得天花乱坠,有的,看着就复杂,还得装一堆东西。我这人怕麻烦,就想搞个简单点的,自己能控制的。
我的目标很简单,主要就想让它干几件事:
- 时间到自动帮我把成熟的菜收。
- 收完菜,地空,能自动帮我再种上。
- 要是地干,顺手浇个水。
- 最好还能除个草、杀个虫啥的,虽然这个不是最主要的。
有这想法,就开始找辙。咱不会写啥高深代码,就想着用点简单的方法,比如模拟鼠标键盘操作啥的。感觉这个应该能行。
磕磕绊绊的实践过程
说干就干。我找些据说能录制和回放鼠标键盘操作的小软件,还有一些简单的脚本语言,开始尝试。
第一步是定位。 这就挺麻烦。农场那界面,每次登录可能位置都不完全一样,分辨率一变,或者浏览器缩放一下,以前录好的坐标就全对不上。试好几次,录制的脚本跑起来,鼠标点的地方都不是我想要的,要么点到广告,要么点到别处去。
后来想个办法, 不用绝对坐标,改成找图。就是先截个图,比如“成熟的萝卜”长啥样,或者“锄头”图标长啥样,然后让程序在屏幕上找这个图片在哪,找到再去点。这个稍微靠谱点,但也挺折腾。不同作物的成熟图片不一样,还得一个个去截。
接着是流程控制。 收菜、播种、浇水,这一套流程得顺下来。我得让脚本知道,点完“收获”,接下来该点“播种”,选哪个种子,种在哪块地。这就得加很多判断和等待。比如,点完收获,得等作物消失,再点播种。网速慢的时候,这个等待时间就不好说,设短,上一步没完成,下一步就出错;设长,又太慢。
中间还遇到各种弹窗干扰。 什么活动通知、升级提示,冷不丁冒出来一个,就把脚本的节奏打乱。还得想办法识别这些弹窗,然后点掉。
最烦的是那个随机性。 比如有时候地里会长草或者长虫,脚本本来要去浇水的,结果点到草或者虫子上。这就得在流程里加个检查,先看看有没有草和虫,有的话就先除草杀虫。
反复调试与最终效果
就这么来来回回改好几版,不断地测试、修改、再测试。有时候跑得好好的,有时候又莫名其妙卡住。对着屏幕看它一步步跑,找出错在哪,然后调整脚本逻辑或者找图的精度。
过程真是挺磨人的, 有好几次都想放弃。但就是有点不甘心,觉得都搞这么久,总得让它能跑起来。
经过不断调整,总算是弄出来一个勉强能用的“保姆”。它能做到:
- 定时检查农场状态。
- 发现有成熟作物,自动收获。
- 收获后自动在空地上种上预设的种子。
- 检查土地湿润度,缺水就自动浇水。
- 能处理一部分杂草和虫子(虽然不是百分百)。
你还别说,真能跑起来!虽然有时候可能因为网络波动或者游戏界面更新出点小毛病,但大部分时间都挺省心。早上起来一看,菜都收好种好,那感觉,舒坦!
搞这个玩意儿,主要还是图个乐,顺便解决点小麻烦。看着自己瞎鼓捣出来的东西能自动干活,还是挺有成就感的。今天就把这过程给大家唠唠,也算是个记录。