kour.io 模組選單(含無限跳躍、飛行、穿牆、血量顯示、一鍵傳送)

kour.io 自瞄、透視、加速、顯示血量、一鍵瞬移、飛行、穿牆、無限跳躍,M鍵開關選單

// ==UserScript==
// @name         kour.io 模組選單(含無限跳躍、飛行、穿牆、血量顯示、一鍵傳送)
// @namespace    http://tampermonkey.net/
// @version      1.4
// @description  kour.io 自瞄、透視、加速、顯示血量、一鍵瞬移、飛行、穿牆、無限跳躍,M鍵開關選單
// @author       ChatGPT
// @match        *://kour.io/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    const settings = {
        aimbot: false,
        headlock: false,
        esp: false,
        speed: 1.0,
        noSpread: false,
        showHP: false,
        fly: false,
        noclip: false,
        infiniteJump: false,
    };

    // 建立 UI 選單
    const menu = document.createElement('div');
    menu.style = `
        position: fixed;
        top: 100px;
        left: 100px;
        background: rgba(0,0,0,0.85);
        padding: 15px;
        border-radius: 10px;
        font-family: monospace;
        font-size: 14px;
        color: white;
        z-index: 9999;
        max-width: 300px;
    `;
    menu.innerHTML = `
        <h3>🧠 Kour.io 模組</h3>
        <label><input type="checkbox" id="aimbot"> 🎯 自動瞄準</label><br>
        <label><input type="checkbox" id="headlock"> 🧠 鎖頭</label><br>
        <label><input type="checkbox" id="esp"> 🕵️ 敵人透視ESP</label><br>
        <label><input type="checkbox" id="noSpread"> 🧪 子彈無散射</label><br>
        <label><input type="checkbox" id="showHP"> ❤️ 顯示敵人血量</label><br>
        <label><input type="checkbox" id="fly"> 🕊️ 飛行模式</label><br>
        <label><input type="checkbox" id="noclip"> 🚪 穿牆模式</label><br>
        <label><input type="checkbox" id="infiniteJump"> 🦘 無限跳躍</label><br>
        <label>⚡ 移動速度 <input type="range" id="speedSlider" min="1" max="3" step="0.1" value="1"><span id="speedVal">1.0</span></label><br><br>

        <label>📍 傳送到座標:<br>
          X: <input type="number" id="tpX" value="0" style="width:50px;">
          Y: <input type="number" id="tpY" value="0" style="width:50px;">
          Z: <input type="number" id="tpZ" value="0" style="width:50px;">
          <button id="teleportBtn">傳送</button>
        </label><br>
        <small>按 M 鍵 開關選單</small>
    `;
    document.body.appendChild(menu);

    // 綁定事件
    ['aimbot', 'headlock', 'esp', 'noSpread', 'showHP', 'fly', 'noclip', 'infiniteJump'].forEach(id => {
        document.getElementById(id).addEventListener('change', e => {
            settings[id] = e.target.checked;
        });
    });

    const speedSlider = document.getElementById('speedSlider');
    const speedVal = document.getElementById('speedVal');
    speedSlider.addEventListener('input', () => {
        settings.speed = parseFloat(speedSlider.value);
        speedVal.textContent = settings.speed.toFixed(1);
    });

    // 傳送按鈕事件
    document.getElementById('teleportBtn').addEventListener('click', () => {
        const x = parseFloat(document.getElementById('tpX').value);
        const y = parseFloat(document.getElementById('tpY').value);
        const z = parseFloat(document.getElementById('tpZ').value);
        const player = window?.game?.player;
        if (player && player.position && player.position.set) {
            player.position.set(x, y, z);
            alert(`✅ 已傳送到 (${x}, ${y}, ${z})`);
        } else {
            alert('⚠️ 無法取得玩家位置,請確認遊戲已載入');
        }
    });

    // M 鍵開關選單
    let visible = true;
    document.addEventListener('keydown', e => {
        if (e.key.toLowerCase() === 'm') {
            visible = !visible;
            menu.style.display = visible ? 'block' : 'none';
        }
    });

    // 監聽鍵盤,用於飛行上下控制(Space / Shift)和無限跳躍(Space)
    window.keyState = {};
    window.addEventListener('keydown', e => {
        window.keyState[e.key] = true;
    });
    window.addEventListener('keyup', e => {
        window.keyState[e.key] = false;
    });

    // 主迴圈
    setInterval(() => {
        const player = window?.game?.player;
        const enemies = window?.game?.entities?.filter(e => e.team !== player.team && e.health > 0) || [];

        if (!player) return;

        // 自瞄功能
        if (settings.aimbot && enemies.length > 0) {
            const nearest = enemies.sort((a, b) =>
                player.position.distanceTo(a.position) - player.position.distanceTo(b.position)
            )[0];
            if (nearest) {
                const targetPos = settings.headlock && nearest.head ? nearest.head : nearest.position;
                player.lookAt?.(targetPos);
            }
        }

        // ESP 功能
        if (settings.esp) {
            enemies.forEach(e => {
                if (e.mesh && !e.__espEnabled) {
                    e.mesh.material.depthTest = false;
                    e.mesh.material.color?.set?.('#ff0000');
                    e.__espEnabled = true;
                }
            });
        }

        // 顯示敵人血量
        if (settings.showHP) {
            enemies.forEach(enemy => {
                if (!enemy.__hpTag && enemy.nameTag) {
                    const hpDiv = document.createElement('div');
                    hpDiv.textContent = `❤️ ${enemy.health}`;
                    hpDiv.style = 'color:red;font-size:12px;pointer-events:none;';
                    enemy.nameTag.appendChild(hpDiv);
                    enemy.__hpTag = hpDiv;
                } else if (enemy.__hpTag) {
                    enemy.__hpTag.textContent = `❤️ ${enemy.health}`;
                }
            });
        }

        // 速度修改
        if (player.speed && settings.speed !== 1.0) {
            player.speed = settings.speed;
        }

        // 無散射
        if (settings.noSpread && player.weapon) {
            player.weapon.spread = 0;
        }

        // 飛行模式
        if (settings.fly) {
            if (player.physics) {
                player.physics.gravity = 0;
                // 允許上下移動(模擬飛行)
                if (window.keyState) {
                    if (window.keyState[' ']) player.position.y += 0.5;  // Space 向上
                    if (window.keyState['Shift']) player.position.y -= 0.5;
                }
            }
        } else {
            if (player.physics) {
                player.physics.gravity = 9.8; // 恢復重力
            }
        }

        // 穿牆模式
        if (settings.noclip) {
            if (player.collider) {
                player.collider.enabled = false; // 關閉碰撞
            }
        } else {
            if (player.collider) {
                player.collider.enabled = true; // 開啟碰撞
            }
        }

        // 無限跳躍
        if (settings.infiniteJump && window.keyState[' ']) {
            if (player.velocity) {
                player.velocity.y = 10; // 跳躍高度
            }
        }

    }, 50);

})();