您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自动点击,解放你的双手!
当前为
// ==UserScript== // @name sascacci 自动点击器 // @name:en sascacci.com Auto presser // @namespace Violentmonkey Scripts // @match https://sascacci.com/touchwaves/* // @grant GM_log // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_addValueChangeListener // @version 0.3.3 // @author axototl // @license AGPL-3.0-or-later // @run-at document-idle // @icon https://sascacci.com/favicon.ico // @description 自动点击,解放你的双手! // @description:en An auto presser to release your hands !!! // ==/UserScript== 'use strict'; const codecs = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 32]; const len = codecs.length; function getValue(name, def) { let t = GM_getValue(name); if (null == t) { t = def; GM_setValue(name, t); } return t; } let dbg = getValue("debug", false); const canvas = document.getElementById("cvsID"); let keeptime = getValue("keeptime", 3500); let rnd = false; function press(key) { const conf = { bubbles: true, cancelable: true, keyCode: key }; const ke = new KeyboardEvent('keydown', conf); canvas.dispatchEvent(ke); } function random(max_plus_1) { const arr = new Uint32Array(1); crypto.getRandomValues(arr); return arr[0] % max_plus_1; } function getRand() { const r = random(len); return codecs[r]; } let stop = false; async function main () { if (stop) return; const cdc = getRand(); press(cdc); let nxt = keeptime; if (rnd) nxt = random(nxt); setTimeout(main, nxt); } (() => { if (getValue("first", true)) { alert("请不要让标签页处于后台后迅速切换回来, 否则可能会出现声量过大的问题\n\ Please don't leave tabs in the background and then switch them back immediately, or you may go deaf."); alert("Click any place to Start!\n 点击任意一处开始自动播放"); GM_setValue("first", false); } canvas.addEventListener("click", listen); function listen(ev) { canvas.removeEventListener("click", listen); main(); } })(); (() => { const props = ["✅ (Enabled) ", "❌ (Disabled) "]; function reg_dbg() { return GM_registerMenuCommand(props[dbg | 0] + "调试模式 (Debug)", () => GM_setValue("debug", !dbg)); } let tmp2 = reg_dbg(); GM_addValueChangeListener("debug", (_1, _2, nv, _3) => { GM_unregisterMenuCommand(tmp2); dbg = nv; tmp2 = reg_dbg(); }); const tmp = GM_registerMenuCommand("停止运行 (Stop)", () => { stop = true; GM_unregisterMenuCommand(tmp); GM_unregisterMenuCommand(tmp2); }); GM_registerMenuCommand("设置间隔 (Time)", () => { let t; do { t = prompt("输入两次之间的时间间隔, 小于0的数值将会被当成随机数, 最大为 输入数的相反数 处理")*1; } while(isNaN(t) || 0 == t); GM_setValue("keeptime", t); }); GM_addValueChangeListener("keeptime", (_1, _2, nv, _3) => (rnd = (nv < 0), keeptime = Math.abs(nv))); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址