|
去年冬天我在QQ小窝里养了条虚拟锦鲤,小窝喂食、自动换水、钓鱼看它吐泡泡,脚本一套操作下来手指头都酸了。小窝后来发现钓鱼玩法更折磨人——浮标一动就得点,自动点早了鱼跑,钓鱼点晚了也跑。脚本连续三天我一条鱼没钓上来,小窝倒是自动把手机屏幕戳出了个指印。 网上搜了一圈,钓鱼有人提到用Auto.js写脚本。脚本这东西本质上是小窝安卓端的自动化工具,能模拟点击和滑动。自动我翻出吃灰的钓鱼旧手机,装了个Auto.js,又从小窝的界面布局里扒出几个关键坐标:甩竿按钮在右下角,收竿判定区域是屏幕中间偏上那块。脚本逻辑简单得可笑——每隔两秒点一次甩竿,然后监听屏幕特定区域的颜色变化。浮标下沉时那个位置会从蓝色变成深蓝,颜色值差个十几,肉眼几乎看不出来,但脚本能抓。 while(true) { click(1200, 800); // 甩竿 sleep(2000); var img = captureScreen(); var c = images.pixel(img, 540, 600); if(colors.isSimilar(c, "#1a3a5c", 10)) { click(540, 600); // 收竿 } sleep(500); } 跑起来第一晚就钓了四十多条。手机搁在床头柜上,屏幕忽明忽暗,像个小夜灯。第二天早上看记录,稀有鱼出了三条,其中一条是金色锦鲤。那会儿觉得自己简直是自动化天才。 好景不长。第三天脚本开始抽风,甩竿十次有八次落空。我盯着屏幕看了半天才反应过来——小窝更新了,钓鱼按钮往上挪了二十个像素。坐标写死的东西就这样,界面一变全完蛋。更烦的是腾讯加了随机弹窗,有时候是活动广告,有时候是“休息一下”的提示,脚本傻乎乎地继续点,点进商城页面就开始乱买鱼饵,把我攒的五百多鱼币花得只剩零头。 后来我换了个思路,不用固定坐标,改成找图。截一张甩竿按钮的图存本地,脚本用images.findImage去匹配。这样按钮挪到哪儿都能找到。弹窗也好办,检测到特定颜色的关闭按钮就点掉。代码从二十行膨胀到一百多行,但稳定性上来了。连续跑了四天没出岔子,钓上来的鱼把鱼缸塞满了,系统提示“空间不足”的时候我甚至有点得意。 但这玩意儿终究是钻空子。QQ小窝的用户协议里写得明白,禁止使用第三方自动化工具。我那个旧手机没登大号,用小号跑了半个月,期间收到过一次“异常操作”的警告,没封号,但钓鱼收益砍半。后来我把脚本删了,鱼也放生了。现在偶尔还会打开小窝看看,手动钓两条,慢是慢点,至少不用担心哪天号没了。 写脚本这件事本身挺有意思,比钓鱼好玩。但你要是问我值不值得为个虚拟游戏折腾这么久——我只能说,那个月我电费多交了三十块,钓上来的鱼一条也不能吃。 |