您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Đã sợ thì đừng dùng, đã dùng thì đừng sợ!
// ==UserScript== // @name Auto Blum // @namespace http://tampermonkey.net/ // @version 2024-06-17 // @description Đã sợ thì đừng dùng, đã dùng thì đừng sợ! // @author caobang // @match https://telegram.blum.codes/* // @icon https://cdn.prod.website-files.com/65b6a1a4a0e2af577bccce96/65ba99c1616e21b24009b86c_blum-256.png // @grant none // ==/UserScript== (function() { 'use strict'; const minBombClickCount = 0; //số bomb sẽ bấm vào const minFreezeClickCount = 2; //số băng sẽ bấm vào const cloverSkipPercentage = 10; //tỉ lệ bỏ qua click cỏ ba lá (%) const consoleRed = 'font-weight: bold; color: red;'; const consoleGreen = 'font-weight: bold; color: green;'; const consolePrefix = '%c [AutoBot] '; const originalConsoleLog = console.log; console.log = function () { if (arguments[0].includes('[AutoBot]') || arguments[0].includes('github.com')) { originalConsoleLog.apply(console, arguments); } }; console.error = console.warn = console.info = console.debug = function () { }; console.clear(); console.log(`${consolePrefix}Bắt đầu bot...`, consoleGreen); let totalPoints = 0; let bombClickCount = 0; let freezeClickCount = 0; let skippedClovers = 0; let gameEnded = false; let checkGameEndInterval; const originalPush = Array.prototype.push; Array.prototype.push = function(...args) { args.forEach(arg => { if (arg && arg.item) { if (arg.item.type === "CLOVER") { arg.shouldSkip = Math.random() < (cloverSkipPercentage / 100); if (arg.shouldSkip) { skippedClovers++; console.log(`${consolePrefix}Bỏ qua cỏ 3 lá (${skippedClovers})`, consoleRed); } else { console.log(`${consolePrefix}Bấm vào cỏ 3 lá (${totalPoints})`, consoleGreen); totalPoints++; arg.onClick(arg); arg.isExplosion = true; arg.addedAt = performance.now(); } } else if (arg.item.type === "BOMB" && bombClickCount < minBombClickCount) { console.log(`${consolePrefix}Bấm vào bomb`, consoleRed); totalPoints = 0; arg.onClick(arg); arg.isExplosion = true; arg.addedAt = performance.now(); bombClickCount++; } else if (arg.item.type === "FREEZE" && freezeClickCount < minFreezeClickCount) { console.log(`${consolePrefix}Bấm vào đóng băng`, consoleGreen); arg.onClick(arg); arg.isExplosion = true; arg.addedAt = performance.now(); freezeClickCount++; } } }); return originalPush.apply(this, args); }; function checkGameEnd() { const rewardElement = document.querySelector('div.reward .animated-points.visible'); if (rewardElement && !gameEnded) { gameEnded = true; const rewardAmount = rewardElement.querySelector('.amount').textContent; console.log(`${consolePrefix}Trò chơi kết thúc. Tổng số điểm kiếm được: ${rewardAmount}`, consoleGreen); totalPoints = 0; bombClickCount = 0; freezeClickCount = 0; skippedClovers = 0; const playButton = document.querySelector('button.kit-button.is-large.is-primary'); if (playButton) { const playPassesText = playButton.querySelector('.label span').textContent; const playPasses = parseInt(playPassesText.match(/\d+/)[0], 10); if (playPasses > 0) { setTimeout(() => { playButton.click(); console.log(`${consolePrefix}Bắt đầu trò chơi mới...`, consoleGreen); gameEnded = false; }, Math.random() * (5151.2 - 3137.7) + 3137.7); } else { console.log(`${consolePrefix}Đã chơi hết game`, consoleRed); clearInterval(checkGameEndInterval); } } else { console.log(`${consolePrefix}Không tìm thấy nút chơi`, consoleRed); } } } function startGameEndCheck() { if (checkGameEndInterval) { clearInterval(checkGameEndInterval); } checkGameEndInterval = setInterval(checkGameEnd, 1000); const observer = new MutationObserver((mutationsList, observer) => { for (const mutation of mutationsList) { if (mutation.type === 'childList') { checkGameEnd(); } } }); observer.observe(document.body, { childList: true, subtree: true }); } startGameEndCheck(); })();