Minefun.io High Jump (Optimized)

Nhảy cao 15 đơn vị, menu nhỏ gọn, sửa lỗi không nhận biến game

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Minefun.io High Jump (Optimized)
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Nhảy cao 15 đơn vị, menu nhỏ gọn, sửa lỗi không nhận biến game
// @author       Gemini
// @match        *://minefun.io/*
// @grant        unsafeWindow
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';

    let highJumpEnabled = false;
    const NORMAL_JUMP = 8;
    const HIGH_JUMP = 15;

    // --- TẠO GIAO DIỆN MENU NHỎ GỌN ---
    const menu = document.createElement('div');
    menu.id = 'hj-container';
    menu.innerHTML = `
        <div id="hj-menu" style="position: fixed; top: 10px; right: 10px;
            background: rgba(0, 0, 0, 0.7); color: white; padding: 10px; border-radius: 5px;
            border: 1px solid #4CAF50; font-family: Arial, sans-serif; z-index: 10000;
            display: none; font-size: 12px; min-width: 120px; box-shadow: 0px 0px 10px rgba(0,0,0,0.5);">
            <div style="font-weight: bold; margin-bottom: 5px; border-bottom: 1px solid #444; padding-bottom: 3px;">High Jump</div>
            <label style="display: flex; align-items: center; cursor: pointer;">
                <input type="checkbox" id="hj-toggle" style="margin-right: 8px; cursor: pointer;">
                <span>Kích hoạt (15)</span>
            </label>
            <div style="font-size: 10px; color: #ccc; margin-top: 8px;">Phím nóng: <b style="color: #4CAF50;">[ , ]</b></div>
        </div>
    `;
    document.body.appendChild(menu);

    const menuEl = document.getElementById('hj-menu');
    const toggleInput = document.getElementById('hj-toggle');

    // --- ĐIỀU KHIỂN MENU ---
    window.addEventListener('keydown', (e) => {
        if (e.key === ',') {
            menuEl.style.display = menuEl.style.display === 'none' ? 'block' : 'none';
        }
    });

    toggleInput.addEventListener('change', (e) => {
        highJumpEnabled = e.target.checked;
    });

    // --- HÀM TRUY CẬP VÀO ENGINE GAME ---
    function applyPhysicsHack() {
        try {
            // Minefun thường lưu thông số trong đối tượng người chơi hoặc world
            // Sử dụng unsafeWindow để "vượt rào" vào biến của game
            const game = unsafeWindow.game || (unsafeWindow.App && unsafeWindow.App.game);
            
            if (game && game.player) {
                // Thay đổi thuộc tính jump trực tiếp trong physics engine
                // Tùy theo phiên bản, nó có thể là jumpHeight, jumpForce hoặc jumpVelocity
                const p = game.player;
                const targetValue = highJumpEnabled ? HIGH_JUMP : NORMAL_JUMP;

                if (p.jumpHeight !== undefined) p.jumpHeight = targetValue;
                if (p.jumpForce !== undefined) p.jumpForce = targetValue;
                if (p.physics && p.physics.jumpValue) p.physics.jumpValue = targetValue;
            }
        } catch (err) {
            // Chặn lỗi nếu game chưa load xong
        }
    }

    // Kiểm tra và cập nhật liên tục để đảm bảo game không tự reset thông số
    setInterval(applyPhysicsHack, 200);

})();