仙女与独角兽自动点击脚本
// @match https://g1tyx.github.io/fairies-and-unicorns/
// ===================== 配置参数(可根据需求调整)=====================
const config = {
// 基础资源点击间隔(毫秒):避免点击过快被拦截
baseClickInterval: 200,
// 加速器购买检测间隔(毫秒):比点击间隔长,减少性能消耗
upgradeCheckInterval: 1000,
// 优先购买顺序(按速度加成性价比排序,可调整)
upgradePriority: ["Rocket", "String Theory", "Shooting Star", "Comet"],
// 最低资源储备阈值(防止资源耗尽无法生产,可根据网页数值调整)
minFairyReserve: 10, // 最低仙女数量
minUnicornReserve: 10 // 最低独角兽数量
};
// ===================== 状态管理(无需手动修改)=====================
let isRunning = false;
let baseClickTimer = null;
let upgradeCheckTimer = null;
// ===================== 核心功能函数 =====================
/**
* 1. 基础资源点击函数:自动点击仙女、独角兽生成按钮
*/
function autoClickBaseResources() {
// (关键:需替换为网页真实元素选择器!)
// 示例选择器:假设按钮ID为"fairy-btn"和"unicorn-btn",可通过浏览器F12查看
const fairyBtn = document.querySelector(".fairy-icon") || document.querySelector(".fairy-generator");
const unicornBtn = document.querySelector(".unicorn-icon") || document.querySelector(".unicorn-generator");
// 点击仙女按钮(确保资源储备充足)
if (fairyBtn && getCurrentFairyCount() >= config.minFairyReserve) {
fairyBtn.click();
}
// 点击独角兽按钮(确保资源储备充足)
if (unicornBtn && getCurrentUnicornCount() >= config.minUnicornReserve) {
unicornBtn.click();
}
}
/**
* 2. 读取当前资源数量(需根据网页DOM结构调整)
* @returns {number} 当前仙女数量
*/
function getCurrentFairyCount() {
// 示例:假设仙女数量显示在ID为"fairy-count"的元素中
const countElem = document.querySelector("#fairy-count") || document.querySelector(".fairy-count");
return countElem ? parseInt(countElem.textContent.trim()) || 0 : 0;
}
/**
* @returns {number} 当前独角兽数量
*/
function getCurrentUnicornCount() {
// 示例:假设独角兽数量显示在ID为"unicorn-count"的元素中
const countElem = document.querySelector("#unicorn-count") || document.querySelector(".unicorn-count");
return countElem ? parseInt(countElem.textContent.trim()) || 0 : 0;
}
/**
* 3. 自动购买加速器函数:按优先级购买可负担的升级项
*/
function autoBuyUpgrades() {
config.upgradePriority.forEach(upgradeName => {
// (关键:需替换为网页真实升级项选择器!)
// 示例:假设升级项按钮类名为"upgrade-btn",且包含名称标识
const upgradeBtn = document.querySelector(`.upgrade-btn[data-name="${upgradeName}"]`)
|| document.querySelector(`.upgrade-item:contains("${upgradeName}")`);
if (upgradeBtn) {
// 检查按钮是否可点击(未禁用、有足够资源)
const isDisabled = upgradeBtn.disabled || upgradeBtn.classList.contains("disabled");
if (!isDisabled) {
upgradeBtn.click();
console.log(`已购买加速器:${upgradeName}`);
}
}
});
}
/**
* 4. 启动自动脚本
*/
function startAutoScript() {
if (isRunning) {
console.log("脚本已在运行中!");
return;
}
isRunning = true;
// 启动基础资源自动点击
baseClickTimer = setInterval(autoClickBaseResources, config.baseClickInterval);
// 启动加速器自动购买检测
upgradeCheckTimer = setInterval(autoBuyUpgrades, config.upgradeCheckInterval);
console.log("自动脚本已启动!");
console.log(`基础点击间隔:${config.baseClickInterval}ms | 升级检测间隔:${config.upgradeCheckInterval}ms`);
}
/**
* 5. 暂停自动脚本
*/
function stopAutoScript() {
if (!isRunning) {
console.log("脚本已暂停!");
return;
}
isRunning = false;
// 清除定时器
clearInterval(baseClickTimer);
clearInterval(upgradeCheckTimer);
baseClickTimer = null;
upgradeCheckTimer = null;
console.log("自动脚本已暂停!");
}
// ===================== 脚本启动/暂停入口(手动调用)=====================
// 方式1:在浏览器控制台直接运行(按F12打开Console,复制以下代码)
// 启动:startAutoScript();
// 暂停:stopAutoScript();
// 方式2:在网页添加临时按钮(方便非技术用户)
function addControlButtons() {
const btnContainer = document.createElement("div");
btnContainer.style.position = "fixed";
btnContainer.style.top = "20px";
btnContainer.style.right = "20px";
btnContainer.style.zIndex = "9999"; // 确保按钮在最上层
// 启动按钮
const startBtn = document.createElement("button");
startBtn.textContent = "启动自动脚本";
startBtn.style.padding = "8px 16px";
startBtn.style.marginRight = "8px";
startBtn.style.backgroundColor = "#4CAF50";
startBtn.style.color = "white";
startBtn.style.border = "none";
startBtn.style.borderRadius = "4px";
startBtn.onclick = startAutoScript;
// 暂停按钮
const stopBtn = document.createElement("button");
stopBtn.textContent = "暂停自动脚本";
stopBtn.style.padding = "8px 16px";
stopBtn.style.backgroundColor = "#f44336";
stopBtn.style.color = "white";
stopBtn.style.border = "none";
stopBtn.style.borderRadius = "4px";
stopBtn.onclick = stopAutoScript;
btnContainer.appendChild(startBtn);
btnContainer.appendChild(stopBtn);
document.body.appendChild(btnContainer);
console.log("已添加脚本控制按钮(右上角)!");
}
// 页面加载完成后添加控制按钮
window.addEventListener("load", addControlButtons);
微信打赏支持
支付宝打赏支持