【GameFi 自动化教程之 Sunflower Land】手把手教会你如何自动刷向日葵

【GameFi 自动化教程之 Sunflower Land】手把手教会你如何自动刷向日葵

这个的基础是你已经了解这个项目了,如果还不了解,看看这个攻略:

https://btcover.com/index.php/2022/04/17/xiangrikuileyuansunflower-landzhongwenxinshougonglue/

了解大概,注册好帐号,你手动操作几次流程就会发现,这手动刷有点累,而且按照向日葵的生长速度,1分钟一收获,你基本上就坐在电脑前走不开了,同时这个收益还不确定,那这么花时间投入就有点不合适了,自然就想到使用 Python 的自动化脚本来试试。

基础

  1. Python 基础,不用掌握太多,新人恰好可以通过这个来学 Python,没基础的可以看看这个安装教程https://btcover.com/index.php/2022/04/17/zuikuaijiefangbiandefangshianzhuang-python-anaconda/
  2. Sunflower Land 账号,最好你已经手动操作过了

准备

在你安装好Python环境后,你就可以来装几个主要的包了。

安装包: pyautoGUI

pip install pyautogui

这个包是用来操作鼠标移动、点击、以及识别图片的。

安装包:opencv

pip install opencv-contrib-python

还有一个辅助的包,是用来调整识别图片的准确度,需要在装一下这个包,如果不装,也可以。

流程

1. 先买400个种子

我设计的路线,不能说全自动,因为项目方设计了很多障碍给自动化操作,比如一次最多买400个种子,再要增加,需要同步一下 Polygon 链,因为 400 个种子也够种一段时间了,那我们就第一步,手动先买 400 个,你在开始的时候没那么多钱,那就尽量买到最多,慢慢滚雪球。

2. 循环种植每个种子

这里就是利用 pyautogui.click(x座标,y座标,点击左键,鼠标运动间隔) 这段代码。

它本身是一个点击的操作,但是参数里面指定了点击位置、点击左键、移动的时间,你就会看到鼠标自动运行又点击。

位置怎么获取呢?用这段代码就可以:

import pyautogui

# 判断鼠标位置
currentMouseX, currentMouseY = pyautogui.position()
print('X: ' + str(currentMouseX))
print('Y: ' + str(currentMouseY))

这个也是你用来找一个又一个洞的常用方法,要熟悉。

你就可以这样一步步种植,循环每个洞的方法就是 for 循环每个座标即可。

种植好了,就设置一个睡眠 60 秒,等待成熟。然后再同样的用pyautogui.click(x座标,y座标,点击左键,鼠标运动间隔) 进行收获,在收获的同时你多点一下,就再种植上了。理想情况下,你就又完成了种植。

3. 遇到报错1:宝箱

但项目方设置的障碍来了,它有个宝箱机制,

【GameFi 自动化教程之 Sunflower Land】手把手教会你如何自动刷向日葵

其实就是一个验证码,箱子位置每次都在变,好在我们可以利用 pyautogui 里面的相似图片识别来做,

【GameFi 自动化教程之 Sunflower Land】手把手教会你如何自动刷向日葵

因为每次都会出现一个宝箱,而且我就是要点击它,就先找到它的位置,代码如下:

在每次收获完之后,都做一次这个检查,检查到了就开宝箱,开完继续收获即可。

4. 遇到报错2:错误链接

项目方还有个随机的机制,如果它判断你是机器人了,就给你全屏暂停,弹出一个提醒,这时候只能刷新界面,好在弹出框里的小姑娘是固定的,

【GameFi 自动化教程之 Sunflower Land】手把手教会你如何自动刷向日葵

我们可以也设置一个同样的图片检查,检查到了就刷新浏览器即可。

至此,这套自动刷的流程就结束了。

完整代码

有些时间间隔,我做了一些细节调整,是我自己测试出来的,用起来整体的容错率很高。也算是抛砖引玉,有好的的建议欢迎留言。

import pyautogui
import time

# 切换到浏览器
def bring2front(x,y):
    pyautogui.click(x,y,button='left',duration=0.5)
    pyautogui.click()

# 查看是否出问题了
def check_error():
    # print('查看是否出问题了')
    error = pyautogui.locateOnScreen('Girl.png',region=(1425, 975, 1000, 475), grayscale=True, confidence=0.5)
    if error:
        pyautogui.click(86,85,button='left',duration=0.5)
        time.sleep(15)
        pyautogui.click(983,597,button='left',duration=0.5)
        time.sleep(10)


# 收割第一颗向日葵
def harvest(x,y):
    pyautogui.click(x, y, button='left',duration=0.5)
    pyautogui.click()
    # 需要寻找到宝箱到位置
    Part = pyautogui.locateOnScreen('Part.png', region=(1425, 975, 1000, 475), grayscale=True, confidence=0.5)
    # 在附属屏幕上,除以2才可以
    if Part:
        pyautogui.click(pyautogui.center(Part).x/2,pyautogui.center(Part).y/2, button='left',duration=0.5)
        # 点击 Close
        pyautogui.click(963, 689, button='left',duration=0.5)


# 点击商店
def shop():
    pyautogui.click(1864, 825, button='left',duration=0.5)
    # 点击卖出
    pyautogui.click(861, 449, button='left',duration=0.5)
    # 点击卖一个,全部卖出
    pyautogui.click(1100, 736, button='left',duration=0.5)
    pyautogui.click(877, 637, button='left',duration=0.5)

    # 点击买入
    pyautogui.click(763, 452, button='left',duration=0.5)
    # 点击买一个
    pyautogui.click(1064, 709, button='left',duration=0.5)
    for j in range(4):
        pyautogui.click(duration=0.5)
    # 关闭
    pyautogui.click(1185, 451, button='left',duration=0.5)

# 点击种植
def plant(x,y):
    pyautogui.click(x, y, button='left',duration=0.5)


if __name__ == '__main__':
    # 地的坐标列表
    earth_list = [(1000, 418),
                  (1085, 413),
                  (1042, 453),
                  (1000, 495),
                  (1085, 495)]
    # 向日葵1
    x1, y1 = (1000, 418)
    bring2front(x1, y1)
    for i in range(60):
        check_error()
        for positon in earth_list:
            x, y = positon
            plant(x, y)
            # check_error()
        j = 0
        while j < 24:
            check_error()
            time.sleep(1)
            j += 1
        for positon in earth_list:
            x, y = positon
            harvest(x, y)
            check_error()
        # shop()

来自 DFarm

如果你对币圈技术感兴趣,尤其是撸毛的技术,欢迎加入 DFarm 伟哥的 Discord 群:

https://discord.gg/eW8Fvf6uwe

本文由BTCover原创,https://btcover.com首发,如若转载,请注明出处https://btcover.com/index.php/2022/04/17/gamefi-zidonghuajiaochengzhi-sunflower-landshoubashoujiaohuiniruhezidongshuaxiangrikui/。

(3)
上一篇 4月 17, 2022 12:26 上午
下一篇 5月 10, 2022 1:53 上午

相关推荐

发表评论

您的电子邮箱地址不会被公开。