您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Premium client with FPS, Ping, Aim Line and more
// ==UserScript== // @name Suroi.io Elite Client // @namespace http://tampermonkey.net/ // @version 3.1 // @description Premium client with FPS, Ping, Aim Line and more // @author Elite Developer // @match https://suroi.io/* // @grant none // ==/UserScript== (function() { 'use strict'; // ===== CONFIGURATION ===== const config = { aimHelper: { enabled: true, color: 'rgba(100, 150, 255, 0.85)', defaultAngle: -Math.PI/2, // Left direction length: 1500, thickness: 2.5, glow: true }, performance: { fps: true, ping: true, updateInterval: 1000 }, ui: { theme: { primary: '#6e48aa', secondary: '#9d50bb', accent: '#4776e6', background: 'rgba(30, 20, 50, 0.9)', text: '#ffffff' }, position: { x: 20, y: 20 }, roundedCorners: 12, shadow: '0 4px 20px rgba(110, 72, 170, 0.5)' } }; // ===== STATE ===== let state = { playerPos: { x: window.innerWidth / 2, y: window.innerHeight / 2 }, mousePos: null, mouseMoved: false, fps: 0, ping: 0, lastPingTime: 0, aimHelperLine: null, statusTimeout: null }; // ===== UI ELEMENTS ===== const createEliteClientUI = () => { const gui = document.createElement('div'); gui.id = 'elite-client-ui'; gui.style.cssText = ` position: fixed; top: ${config.ui.position.y}px; left: ${config.ui.position.x}px; padding: 15px; background: ${config.ui.background}; border: 2px solid ${config.ui.secondary}; border-radius: ${config.ui.roundedCorners}px; color: ${config.ui.text}; font-family: 'Arial', sans-serif; z-index: 99999; user-select: none; min-width: 180px; box-shadow: ${config.ui.shadow}; backdrop-filter: blur(5px); `; // Header const header = document.createElement('div'); header.style.cssText = ` display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid ${config.ui.secondary}; `; const title = document.createElement('h3'); title.textContent = 'ELITE CLIENT'; title.style.cssText = ` margin: 0; font-size: 16px; color: ${config.ui.accent}; text-shadow: 0 0 8px ${config.ui.accent}; letter-spacing: 1px; `; const version = document.createElement('span'); version.textContent = 'v3.0'; version.style.cssText = ` font-size: 11px; color: ${config.ui.text}; opacity: 0.7; `; header.appendChild(title); header.appendChild(version); gui.appendChild(header); // Performance Stats const statsContainer = document.createElement('div'); statsContainer.style.cssText = ` display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 13px; `; const fpsDisplay = document.createElement('div'); fpsDisplay.id = 'fps-display'; fpsDisplay.textContent = 'FPS: 0'; fpsDisplay.style.color = config.ui.accent; const pingDisplay = document.createElement('div'); pingDisplay.id = 'ping-display'; pingDisplay.textContent = 'Ping: 0ms'; pingDisplay.style.color = config.ui.secondary; statsContainer.appendChild(fpsDisplay); statsContainer.appendChild(pingDisplay); gui.appendChild(statsContainer); // Aim Helper Section const aimSection = document.createElement('div'); aimSection.style.marginTop = '10px'; // Toggle Button const aimToggleBtn = document.createElement('button'); aimToggleBtn.id = 'aim-toggle-btn'; aimToggleBtn.textContent = 'AIM LINE: ON'; aimToggleBtn.style.cssText = ` background: linear-gradient(135deg, ${config.ui.primary}, ${config.ui.secondary}); color: white; border: none; padding: 8px 12px; border-radius: 6px; cursor: pointer; font-weight: bold; width: 100%; margin-bottom: 8px; transition: all 0.2s; box-shadow: 0 2px 8px rgba(110, 72, 170, 0.4); `; aimToggleBtn.addEventListener('mouseover', () => { aimToggleBtn.style.transform = 'translateY(-1px)'; aimToggleBtn.style.boxShadow = `0 4px 12px rgba(110, 72, 170, 0.6)`; }); aimToggleBtn.addEventListener('mouseout', () => { aimToggleBtn.style.transform = 'none'; aimToggleBtn.style.boxShadow = `0 2px 8px rgba(110, 72, 170, 0.4)`; }); // Color Picker const colorPickerContainer = document.createElement('div'); colorPickerContainer.style.cssText = ` display: flex; align-items: center; margin-top: 8px; margin-bottom: 5px; `; const colorLabel = document.createElement('label'); colorLabel.textContent = 'Line Color:'; colorLabel.style.cssText = ` margin-right: 8px; font-size: 13px; color: ${config.ui.text}; `; const colorInput = document.createElement('input'); colorInput.type = 'color'; colorInput.value = '#6496ff'; colorInput.style.cssText = ` width: 30px; height: 30px; cursor: pointer; border: 2px solid ${config.ui.secondary}; border-radius: 6px; background: ${config.ui.background}; `; colorPickerContainer.appendChild(colorLabel); colorPickerContainer.appendChild(colorInput); aimSection.appendChild(aimToggleBtn); aimSection.appendChild(colorPickerContainer); gui.appendChild(aimSection); // Hotkey Info const hotkeyInfo = document.createElement('div'); hotkeyInfo.textContent = 'Press P to toggle aim line'; hotkeyInfo.style.cssText = ` margin-top: 10px; font-size: 11px; color: ${config.ui.accent}; text-align: center; opacity: 0.8; `; gui.appendChild(hotkeyInfo); // Status Message const statusElement = document.createElement('div'); statusElement.id = 'elite-status'; statusElement.style.cssText = ` margin-top: 12px; font-size: 12px; color: #00ff00; opacity: 0; transition: opacity 0.3s; font-weight: bold; text-align: center; text-shadow: 0 0 5px rgba(0, 255, 0, 0.5); `; gui.appendChild(statusElement); document.body.appendChild(gui); return { aimToggleBtn, colorInput, statusElement }; }; // ===== CORE FUNCTIONS ===== const showStatus = (message, duration = 2000, color = '#00ff00') => { const statusElement = document.getElementById('elite-status'); if (!statusElement) return; statusElement.textContent = message; statusElement.style.opacity = '1'; statusElement.style.color = color; statusElement.style.textShadow = `0 0 5px ${color}80`; clearTimeout(state.statusTimeout); state.statusTimeout = setTimeout(() => { statusElement.style.opacity = '0'; }, duration); }; const createAimLine = () => { if (state.aimHelperLine) return; state.aimHelperLine = document.createElement('div'); state.aimHelperLine.style.cssText = ` position: absolute; width: ${config.aimHelper.thickness}px; height: ${config.aimHelper.length}px; background: ${config.aimHelper.color}; pointer-events: none; transform-origin: top center; display: ${config.aimHelper.enabled ? 'block' : 'none'}; z-index: 99998; border-radius: ${config.aimHelper.thickness}px; ${config.aimHelper.glow ? `box-shadow: 0 0 10px 2px ${config.aimHelper.color};` : ''} `; document.body.appendChild(state.aimHelperLine); updateAimLine(); }; const updateAimLineColor = (color) => { config.aimHelper.color = color; if (state.aimHelperLine) { state.aimHelperLine.style.background = color; if (config.aimHelper.glow) { state.aimHelperLine.style.boxShadow = `0 0 10px 2px ${color}`; } } }; const setAimHelperState = (enabled) => { config.aimHelper.enabled = enabled; const btn = document.getElementById('aim-toggle-btn'); if (btn) { btn.textContent = `AIM LINE: ${enabled ? 'ON' : 'OFF'}`; btn.style.background = enabled ? `linear-gradient(135deg, ${config.ui.primary}, ${config.ui.secondary})` : `linear-gradient(135deg, ${config.ui.secondary}, ${config.ui.primary})`; } showStatus( `Aim Line ${enabled ? 'ENABLED' : 'DISABLED'}`, 1500, enabled ? '#00ff00' : '#ff3366' ); if (enabled) { createAimLine(); state.mouseMoved = false; state.mousePos = null; if (state.aimHelperLine) state.aimHelperLine.style.display = 'block'; } else if (state.aimHelperLine) { state.aimHelperLine.style.display = 'none'; } }; const updatePerformanceStats = () => { if (config.performance.fps) { const fpsDisplay = document.getElementById('fps-display'); if (fpsDisplay) fpsDisplay.textContent = `FPS: ${state.fps}`; } if (config.performance.ping) { const pingDisplay = document.getElementById('ping-display'); if (pingDisplay) pingDisplay.textContent = `Ping: ${state.ping}ms`; } }; const calculateFPS = () => { let lastTime = performance.now(); let frameCount = 0; const loop = () => { const now = performance.now(); frameCount++; if (now - lastTime >= 1000) { state.fps = Math.round((frameCount * 1000) / (now - lastTime)); frameCount = 0; lastTime = now; updatePerformanceStats(); } requestAnimationFrame(loop); }; loop(); }; const simulatePing = () => { // In a real game, you would measure actual ping to the server // This is just a simulation for demonstration setInterval(() => { state.ping = Math.floor(Math.random() * 50) + 20; updatePerformanceStats(); }, config.performance.updateInterval); }; const updateAimLine = () => { if (!config.aimHelper.enabled || !state.aimHelperLine) return; let angle = config.aimHelper.defaultAngle; // Left by default if (state.mouseMoved && state.mousePos) { angle = Math.atan2( state.mousePos.y - state.playerPos.y, state.mousePos.x - state.playerPos.x ) - Math.PI/2; } state.aimHelperLine.style.left = `${state.playerPos.x - config.aimHelper.thickness/2}px`; state.aimHelperLine.style.top = `${state.playerPos.y}px`; state.aimHelperLine.style.transform = `rotate(${angle}rad)`; }; // ===== EVENT LISTENERS ===== const setupEventListeners = (uiElements) => { // Mouse movement document.addEventListener('mousemove', (e) => { state.mousePos = { x: e.clientX, y: e.clientY }; state.mouseMoved = true; }); // Window resize window.addEventListener('resize', () => { state.playerPos = { x: window.innerWidth / 2, y: window.innerHeight / 2 }; }); // UI interactions uiElements.aimToggleBtn.addEventListener('click', () => { setAimHelperState(!config.aimHelper.enabled); }); document.addEventListener('keydown', (e) => { if (e.key.toLowerCase() === 'p') { setAimHelperState(!config.aimHelper.enabled); } }); uiElements.colorInput.addEventListener('input', (e) => { updateAimLineColor(hexToRgba(e.target.value, 0.85)); showStatus('Aim line color updated', 1000, e.target.value); }); }; // ===== UTILITIES ===== const hexToRgba = (hex, alpha = 1) => { const r = parseInt(hex.substr(1,2),16); const g = parseInt(hex.substr(3,2),16); const b = parseInt(hex.substr(5,2),16); return `rgba(${r},${g},${b},${alpha})`; }; // ===== INITIALIZATION ===== const init = () => { const uiElements = createEliteClientUI(); setupEventListeners(uiElements); createAimLine(); // Initialize performance monitoring if (config.performance.fps) calculateFPS(); if (config.performance.ping) simulatePing(); // Update aim line continuously setInterval(updateAimLine, 16); showStatus('Elite Client Loaded', 2000, config.ui.accent); console.log('[Elite Client] Blue/Purple theme loaded with all features!'); }; // Start the client init(); // Add this function anywhere in your functions area const toggleCompass = (enabled) => { compassEnabled = enabled; const btn = document.getElementById('compass-toggle-btn'); if (btn) { btn.textContent = `COMPASS: ${enabled ? 'ON' : 'OFF'}`; btn.style.background = enabled ? `linear-gradient(135deg, ${config.ui.primary}, ${config.ui.secondary})` : `linear-gradient(135deg, ${config.ui.secondary}, ${config.ui.primary})`; } showStatus( `Compass ${enabled ? 'ENABLED' : 'DISABLED'}`, 1500, enabled ? '#00ff00' : '#ff3366' ); if (enabled) { if (!compassElement) { compassElement = document.createElement('div'); compassElement.id = 'elite-compass'; compassElement.textContent = '⬆'; compassElement.style.cssText = ` position: fixed; top: 10px; left: 50%; transform: translateX(-50%); font-size: 24px; font-weight: bold; color: ${config.ui.accent}; text-shadow: 0 0 8px ${config.ui.accent}; z-index: 99997; user-select: none; pointer-events: none; `; document.body.appendChild(compassElement); } else { compassElement.style.display = 'block'; } } else if (compassElement) { compassElement.style.display = 'none'; } }; })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址