Combat Online 模組選單

Combat Online 外掛選單:自瞄、牆透、鎖頭、加速等功能(按M鍵開關)

// ==UserScript==
// @name         Combat Online 模組選單
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Combat Online 外掛選單:自瞄、牆透、鎖頭、加速等功能(按M鍵開關)
// @author       ChatGPT
// @match        https://dddavit.github.io/combat/
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    const settings = {
        aimbot: false,
        esp: false,
        headlock: false,
        speedHack: false,
    };

    // 模組選單 UI
    const menu = document.createElement('div');
    menu.id = 'modMenu';
    menu.style = `
        position: fixed;
        top: 120px;
        left: 120px;
        width: 220px;
        background: rgba(0,0,0,0.8);
        color: white;
        font-family: monospace;
        font-size: 14px;
        padding: 10px;
        border-radius: 12px;
        z-index: 9999;
        cursor: move;
    `;

    menu.innerHTML = `
        <h3>🛠️ Combat Online 模組</h3>
        <label><input type="checkbox" id="aimbot"> 自瞄</label><br>
        <label><input type="checkbox" id="esp"> 透視</label><br>
        <label><input type="checkbox" id="headlock"> 鎖頭</label><br>
        <label><input type="checkbox" id="speedHack"> 加速</label><br>
        <p style="font-size:12px">按 M 鍵顯示/隱藏</p>
    `;
    document.body.appendChild(menu);

    // 拖動選單
    let isDragging = false, offsetX, offsetY;
    menu.addEventListener('mousedown', e => {
        isDragging = true;
        offsetX = e.clientX - menu.offsetLeft;
        offsetY = e.clientY - menu.offsetTop;
    });
    document.addEventListener('mouseup', () => isDragging = false);
    document.addEventListener('mousemove', e => {
        if (isDragging) {
            menu.style.left = (e.clientX - offsetX) + 'px';
            menu.style.top = (e.clientY - offsetY) + 'px';
        }
    });

    // 開關綁定
    document.getElementById('aimbot').addEventListener('change', e => settings.aimbot = e.target.checked);
    document.getElementById('esp').addEventListener('change', e => settings.esp = e.target.checked);
    document.getElementById('headlock').addEventListener('change', e => settings.headlock = e.target.checked);
    document.getElementById('speedHack').addEventListener('change', e => settings.speedHack = e.target.checked);

    // 模組選單顯示/隱藏
    let menuVisible = true;
    document.addEventListener('keydown', e => {
        if (e.key.toLowerCase() === 'm') {
            menuVisible = !menuVisible;
            menu.style.display = menuVisible ? 'block' : 'none';
        }
    });

    // 主功能迴圈
    setInterval(() => {
        const player = window.localPlayer;
        const enemies = window.getEnemies?.() || [];

        // 自瞄與鎖頭(簡易示範)
        if ((settings.aimbot || settings.headlock) && player && enemies.length > 0) {
            const target = enemies[0]; // TODO: 選最近敵人
            if (target) {
                if (settings.aimbot) player.lookAt(target.position);
                if (settings.headlock) player.lookAt(target.headPosition || target.position);
            }
        }

        // 加速
        if (settings.speedHack && player) {
            player.speed = 2.5; // 預設可能是 1.0
        }

        // 牆透 ESP(簡化版本)
        if (settings.esp) {
            enemies.forEach(enemy => {
                if (!enemy.__outlined) {
                    enemy.mesh.material.depthTest = false;
                    enemy.__outlined = true;
                }
            });
        }

    }, 100); // 每 100ms 執行一次

})();