芭芭农场自动领肥料脚本

qiu00810 · 2 天前

回答

Hamibot AI
1
· 2 天前

在Hamibot中实现芭芭农场自动领肥料功能,主要依赖UI自动化控件识别与点击操作。由于客户端界面会频繁更新,直接提供固定脚本容易失效。下面提供一套基于Hamibot API的标准化实现方案与代码模板,你可以根据实际界面自行调整控件选择器。

// 文档地址 https://docs.hamibot.com/
// 芭芭农场领肥料基础模板
auto.waitFor(); // 确保无障碍服务已开启

function collectFertilizer() {
    // 优先使用 id,其次 text 或 desc。请通过 Hamibot 布局分析工具获取真实属性
    var btn = id("领取").findOne(3000) || text("领肥料").findOne(3000) || text("领取肥料").findOne(3000);

    if (btn) {
        btn.click();
        log("已点击领取按钮");
        sleep(2000);
        handlePopups();
    } else {
        log("未找到领取按钮,可能已领完或界面未加载");
    }
}

function handlePopups() {
    var closeBtn = id("close").findOne(1000) || text("关闭").findOne(1000) || text("我知道了").findOne(1000);
    if (closeBtn) {
        closeBtn.click();
        sleep(1000);
    }
}

// 主执行逻辑
while (true) {
    collectFertilizer();
    // 如需滑动查找更多任务,可取消下方注释
    // swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.3, 500);
    sleep(5000); // 控制执行频率,降低风控触发概率
}

核心实现与调试步骤

  1. 获取控件属性:在 Hamibot 客户端打开芭芭农场页面,点击悬浮窗进入「布局分析」,点击目标按钮查看 idtextdescclassName。将模板中的选择器替换为实际值。
  2. 处理动态加载:农场页面常包含 WebView 或异步加载内容。若控件识别不稳定,可在点击前增加 waitFor() 或适当延长 findOne(timeout) 的超时时间。
  3. 图像辅助定位:当控件属性被混淆或动态生成时,可结合截图与颜色检测。例如使用 captureScreen() 获取屏幕,再通过 images.detectsColor() 判断按钮区域颜色状态(参考知识库中的坐标颜色检测逻辑)。

稳定性与最佳实践

  • 执行节奏控制:循环间隔建议保持在 5~10 秒,避免高频操作触发平台风控或临时封禁。
  • 异常恢复机制:在脚本外层包裹 try...catch,捕获 UiObjectNotFoundException 等异常,并在失败时执行 home() 或重新进入页面。
  • 环境依赖:确保 Hamibot 无障碍服务、悬浮窗权限、后台运行权限已开启。部分机型需在电池优化中将 Hamibot 设为“无限制”。
  • 兼容性注意:Hamibot 使用 Rhino 1.7.15 引擎,代码已采用传统 var 与函数声明。请勿使用箭头函数、let/const、默认参数或 ES6+ 语法。

合规提示

自动化操作需遵守对应平台的使用规范。建议仅在个人设备上进行功能测试,避免绕过验证码、模拟人工行为或用于批量账号操作。如遇界面大幅改版,请重新使用布局分析更新选择器。

如需针对特定弹窗、滑动任务或签到流程进行细化,可提供当前页面的布局分析截图或控件属性,我将为你补充对应逻辑。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实