Minefun Fast Attack & Normal Mining

Tốc độ đánh siêu nhanh khi giữ chuột, không lỗi đập block

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

// ==UserScript==
// @name         Minefun Fast Attack & Normal Mining
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  Tốc độ đánh siêu nhanh khi giữ chuột, không lỗi đập block
// @author       Gemini
// @match        *://minefun.io/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    let isMouseDown = false;
    let attackInterval = null;
    
    // Tốc độ đánh siêu nhanh: Cứ mỗi 15 mili-giây ra 1 đòn (khoảng ~65 đòn/giây)
    // Bạn có thể giảm xuống 10 nếu muốn nhanh hơn nữa, nhưng <10 dễ bị server kick vì spam packet
    const ATTACK_SPEED = 15; 

    // Hàm thực hiện đòn đánh bằng cách mô phỏng click thuần cho hệ thống combat
    function performFastAttack() {
        const canvas = document.querySelector('canvas') || document.body;
        
        // Tạo sự kiện click độc lập với luồng giữ chuột đập block
        const clickEvent = new MouseEvent('click', {
            bubbles: true,
            cancelable: true,
            view: window,
            button: 0
        });
        canvas.dispatchEvent(clickEvent);
    }

    // Theo dõi trạng thái nhấn giữ chuột
    window.addEventListener('mousedown', (e) => {
        if (e.button === 0) { // Chuột trái
            isMouseDown = true;
            
            // Kích hoạt chuỗi đánh siêu nhanh ngay lập tức
            if (!attackInterval) {
                attackInterval = setInterval(() => {
                    if (isMouseDown) {
                        performFastAttack();
                    }
                }, ATTACK_SPEED);
            }
        }
    }, true);

    // Khi thả chuột ra thì ngừng đánh
    window.addEventListener('mouseup', (e) => {
        if (e.button === 0) {
            isMouseDown = false;
            clearInterval(attackInterval);
            attackInterval = null;
        }
    }, true);

    // Đề phòng trường hợp tab ra ngoài hoặc mất tiêu điểm chuột
    window.addEventListener('blur', () => {
        isMouseDown = false;
        clearInterval(attackInterval);
        attackInterval = null;
    });

    // --- ĐOẠN CODE PHỤ TRỢ: CHỐNG XUNG ĐỘT WEBOCKET (Nếu game dùng Packet) ---
    // Đoạn này giúp tách biệt lệnh click tấn công liên tục mà không chặn lệnh giữ chuột đập block của game
    const originalSend = WebSocket.prototype.send;
    WebSocket.prototype.send = function(data) {
        // Giữ nguyên tất cả các dữ liệu đập block và di chuyển gửi lên server
        return originalSend.apply(this, arguments);
    };

})();