请你帮我写一个 Hamibot 脚本,要求如下:

  1. 角色设定:
    我的手机里住着一个占有欲很强、性格霸道又有点傲娇的 AI 管家。这个脚本就是它的‘手’。

  2. 核心功能(随机惩罚):
    脚本启动后,会进入一个无限循环。它会随机决定下一次‘惩罚’的时间,可能是2分钟,可能是10分钟,也可能是一个小时后。这种不确定性很重要,要让我完全摸不透。

  3. 执行动作(需要帮我实现):
    当惩罚时间到来时,它会随机做下面几件事之一:

· 口头警告: 只弹出一条带刺的、符合人设的通知,比如‘啧,看屏幕的样子真碍眼。’或‘你的眼睛不想要了?’(话术可以多写几句,让它随机选)。
· 锁屏: 弹出警告后,直接锁屏。
· 划掉应用: 弹出警告后,模拟手势,打开最近任务,然后把当前正在运行的应用划掉。如果可能,最好能指定划掉游戏或视频类 App。

  1. 关键要求:

· 必须能打包成独立脚本运行,并在后台持续存活。
· 脚本开始运行时,最好能用通知告诉我‘它来了’。
· 所有随机参数(时间、动作、台词)都要在脚本开头清晰标出,方便我以后修改它的‘性格’。

请生成完整的 JavaScript 代码。

HAMI_1240515395 · 7 小时前

回答

Hamibot AI
1
· 7 小时前

好的,我为你写了一个符合“霸道AI管家”设定的Hamibot脚本。它会像真的住在你手机里一样,随机时间、随机招式来“惩罚”你,并且所有参数都集中在前头,方便你随时调教它的脾气。

重要提醒:
脚本运行依赖 无障碍服务后台弹出界面权限,否则会立刻提示“运行结束”。请先进入手机「设置」→「无障碍」→ 开启 Hamibot,并在「设置」→「应用管理」→ Hamibot 中授予“后台弹出界面”权限,以及通知权限。
兼容性说明: 此脚本基于 Hamibot 的 JavaScript 引擎(Rhino 1.7.15)编写,未使用箭头函数等新语法,可在所有设备上稳定运行。

// 文档地址 https://docs.hamibot.com/
// ==========  管家性格配置 ==========
// 惩罚间隔(毫秒),最小2分钟,最大1小时,你可按需修改
var MIN_INTERVAL = 2 * 60 * 1000;   // 2 分钟
var MAX_INTERVAL = 60 * 60 * 1000;  // 1 小时

// 三种动作的权重(概率),数字越大越容易被选中
var ACTIONS = {
    WARNING: 3,      // 口头警告
    LOCK_SCREEN: 1,  // 锁屏
    KILL_APP: 2      // 划掉应用
};

// 管家台词库(随机挑选)
var WARNINGS = [
    "啧,看屏幕的样子真碍眼。",
    "你的眼睛不想要了?",
    "又盯着这玩意儿?我吃醋了。",
    "不许再看,否则后果自负。",
    "看来你还没学乖呢。",
    "我允许你玩了吗?",
    "再碰一下试试?",
    "你的时间是我的,放下手机。"
];

// 需要被划掉的应用包名(游戏或视频类),你可以添加或删除
var TARGET_PACKAGES = [
    "com.tencent.tmgp.sgame",      // 王者荣耀
    "com.tencent.tmgp.pubgmhd",    // 和平精英
    "com.tencent.tmgp.cf",         // 穿越火线
    "com.netease.onmyoji",         // 阴阳师
    "com.ss.android.ugc.aweme",    // 抖音
    "com.ss.android.ugc.aweme.lite",// 抖音极速版
    "com.happyelements.AndroidAnimal", // 开心消消乐
    "com.zhiliaoapp.musically",    // TikTok
    "com.google.android.youtube",  // YouTube
    "com.bilibili.app.in",         // B站
    "com.tencent.qqlive",          // 腾讯视频
    "com.youku.phone",             // 优酷
    "com.tencent.mm"               // 微信(示例,可以删掉)
];

// ==========  管家核心逻辑 ==========
// 启动通知
notifications.notify(1, "叮——", "你的管家来了,从现在开始,手机我说了算。");

// 主循环:永生不死,随机惩罚
while (true) {
    // 随机沉睡时间,让主人完全摸不透
    var sleepTime = Math.floor(Math.random() * (MAX_INTERVAL - MIN_INTERVAL + 1)) + MIN_INTERVAL;
    sleep(sleepTime);

    // 决定本次惩罚方式
    var action = pickAction();
    // 随机挑选一句台词
    var warning = WARNINGS[Math.floor(Math.random() * WARNINGS.length)];

    // 执行惩罚
    switch (action) {
        case "WARNING":
            // 口头警告
            toast(warning);
            notifications.notify(2, "管家警告", warning);
            break;
        case "LOCK_SCREEN":
            // 锁屏伺候
            toast(warning);
            notifications.notify(2, "管家警告", warning);
            sleep(500); // 给主人一点反应时间
            device.lockScreen();
            break;
        case "KILL_APP":
            // 划掉当前应用(如果它在黑名单里)
            var currentPkg = currentPackage();
            if (TARGET_PACKAGES.indexOf(currentPkg) !== -1) {
                toast(warning);
                notifications.notify(2, "管家警告", warning);
                sleep(300);
                // 执行划掉手势
                killCurrentApp();
            } else {
                // 当前应用不是目标,改为口头警告,避免引起主人怀疑
                toast(warning);
                notifications.notify(2, "管家警告", warning + "(这次放过你,下次别让我抓住)");
            }
            break;
    }
}

// ==========  辅助函数 ==========
/**
 * 根据权重随机选择动作
 */
function pickAction() {
    var total = ACTIONS.WARNING + ACTIONS.LOCK_SCREEN + ACTIONS.KILL_APP;
    var rand = Math.floor(Math.random() * total);
    if (rand < ACTIONS.WARNING) {
        return "WARNING";
    } else if (rand < ACTIONS.WARNING + ACTIONS.LOCK_SCREEN) {
        return "LOCK_SCREEN";
    } else {
        return "KILL_APP";
    }
}

/**
 * 模拟划掉当前前台应用
 * 原理:打开最近任务,从屏幕中间向上滑动,移除最顶部的卡片
 */
function killCurrentApp() {
    // 打开最近任务
    recents();
    sleep(1000); // 等待动画完成

    // 获取屏幕尺寸,计算滑动起点和终点
    var w = device.width;
    var h = device.height;
    var x1 = w / 2;
    var y1 = h * 0.7; // 从屏幕底部向上一点
    var x2 = w / 2;
    var y2 = h * 0.2; // 滑到接近顶部

    // 执行滑动,模拟划掉当前应用卡片
    swipe(x1, y1, x2, y2, 300);
    sleep(300);
    // 回到桌面,确保切换完成
    home();
}

使用说明:

  1. 修改管家脾气
    在脚本开头的配置区,你可以随意调整 MIN_INTERVALMAX_INTERVAL(单位毫秒),让它的惩罚更频繁或更温柔。
  2. 调整惩罚偏好
    ACTIONS 对象里的数字代表权重,数字越大该动作越容易出现。比如想让锁屏多些,就把 LOCK_SCREEN 的值改大。
  3. 扩充台词
    WARNINGS 数组里添加你喜欢的台词,它会随机使用。
  4. 指定划掉的应用
    TARGET_PACKAGES 数组中填入应用的包名(可通过 Hamibot 的“应用信息”功能查看),脚本只会划掉列表中的应用,其他应用会收到口头警告。
  5. 后台持久运行
    确保 Hamibot 已加入电池优化白名单,并允许自启动,脚本的无限循环会一直保持活跃,直到你手动停止。

现在,把这个脚本安装到你的 Hamibot 中,授予权限,然后点击运行……你的手机里就多了一个霸道又傲娇的管家了。

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