您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Cliente PvP para Bloxd.io con hitboxes, keystrokes, contador de CPS, crosshair personalizado, FPS Boost y barra de salud.
当前为
// ==UserScript== // @name Cube Client // @namespace http://tampermonkey.net/ // @version 0.1 // @description Cliente PvP para Bloxd.io con hitboxes, keystrokes, contador de CPS, crosshair personalizado, FPS Boost y barra de salud. // @author TuNombre // @match https://*.bloxd.io/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Configuración inicial const config = { hitboxes: false, customCrosshair: false, fpsBoost: true, // FPS Boost activado healthBar: false, keystrokes: true, // Keystrokes activado por defecto cpsCounter: true, // CPS activado por defecto keystrokeColor: '#00ff00', // Color de keystrokes keystrokeBackgroundColor: '#333333', // Fondo predeterminado de las teclas healthBarColor: '#ff0000', // Color de la barra de salud keystrokeSize: '50px', // Tamaño de las teclas keystrokeFontSize: '25px', // Tamaño de fuente para las letras en las teclas keystrokeBorderColor: '#ffffff', // Color del borde (no editable) }; // Crear el contenedor de Keystrokes y CPS const keystrokesContainer = document.createElement('div'); keystrokesContainer.id = 'keystrokes'; keystrokesContainer.style.position = 'fixed'; keystrokesContainer.style.bottom = '100px'; keystrokesContainer.style.left = '10px'; keystrokesContainer.style.zIndex = '10000'; keystrokesContainer.style.fontFamily = 'Arial, sans-serif'; keystrokesContainer.style.color = 'white'; keystrokesContainer.style.display = config.keystrokes ? 'block' : 'none'; keystrokesContainer.style.textAlign = 'center'; keystrokesContainer.style.cursor = 'move'; keystrokesContainer.innerHTML = ` <div style="display: flex; flex-direction: column; align-items: center;"> <div id="key-W" class="key" style="width: ${config.keystrokeSize}; height: ${config.keystrokeSize}; background-color: ${config.keystrokeBackgroundColor}; border: 2px solid ${config.keystrokeBorderColor}; font-size: ${config.keystrokeFontSize}; display: flex; align-items: center; justify-content: center;">W</div> <div style="display: flex;"> <div id="key-A" class="key" style="width: ${config.keystrokeSize}; height: ${config.keystrokeSize}; background-color: ${config.keystrokeBackgroundColor}; border: 2px solid ${config.keystrokeBorderColor}; font-size: ${config.keystrokeFontSize}; display: flex; align-items: center; justify-content: center;">A</div> <div id="key-S" class="key" style="width: ${config.keystrokeSize}; height: ${config.keystrokeSize}; background-color: ${config.keystrokeBackgroundColor}; border: 2px solid ${config.keystrokeBorderColor}; font-size: ${config.keystrokeFontSize}; display: flex; align-items: center; justify-content: center;">S</div> <div id="key-D" class="key" style="width: ${config.keystrokeSize}; height: ${config.keystrokeSize}; background-color: ${config.keystrokeBackgroundColor}; border: 2px solid ${config.keystrokeBorderColor}; font-size: ${config.keystrokeFontSize}; display: flex; align-items: center; justify-content: center;">D</div> </div> <div style="display: flex; justify-content: center; width: 100%; margin-top: 10px;"> <div id="key-Shift" class="key" style="width: ${config.keystrokeSize}; height: ${config.keystrokeSize}; background-color: ${config.keystrokeBackgroundColor}; border: 2px solid ${config.keystrokeBorderColor}; font-size: ${config.keystrokeFontSize}; display: flex; align-items: center; justify-content: center;">Shift</div> <div id="key-Space" class="key" style="width: ${config.keystrokeSize}; height: ${config.keystrokeSize}; background-color: ${config.keystrokeBackgroundColor}; border: 2px solid ${config.keystrokeBorderColor}; font-size: ${config.keystrokeFontSize}; display: flex; align-items: center; justify-content: center;">Space</div> </div> <div style="margin-top: 20px;"> <div id="leftCPS" style="margin: 5px; font-size: 16px;">LMB CPS: 0</div> <div id="rightCPS" style="margin: 5px; font-size: 16px;">RMB CPS: 0</div> </div> </div> `; document.body.appendChild(keystrokesContainer); // Variables para el manejo de clics let lastLeftClickTime = 0; let lastRightClickTime = 0; const clickCooldown = 1; // 1ms de espera entre clics let leftClickCount = 0; let rightClickCount = 0; // Actualizar los CPS cada milisegundo setInterval(() => { document.getElementById('leftCPS').textContent = `LMB CPS: ${leftClickCount}`; document.getElementById('rightCPS').textContent = `RMB CPS: ${rightClickCount}`; leftClickCount = 0; rightClickCount = 0; }, 100); // Se actualiza cada 100ms para reflejar un retraso leve antes de resetear el contador // Función para manejar los clics y contar los CPS document.addEventListener('mousedown', (e) => { const currentTime = Date.now(); if (e.button === 0 && currentTime - lastLeftClickTime > clickCooldown) { lastLeftClickTime = currentTime; setTimeout(() => leftClickCount++, 10); // Retraso de 10ms para que el contador no se reinicie inmediatamente } if (e.button === 2 && currentTime - lastRightClickTime > clickCooldown) { lastRightClickTime = currentTime; setTimeout(() => rightClickCount++, 10); // Retraso de 10ms para que el contador no se reinicie inmediatamente } }); // Actualizar los keystrokes al presionar teclas document.addEventListener('keydown', (e) => { const keyElement = document.getElementById(`key-${e.key}`); if (keyElement) { keyElement.style.background = '#00ff00'; // Color configurable cuando está presionado } }); document.addEventListener('keyup', (e) => { const keyElement = document.getElementById(`key-${e.key}`); if (keyElement) { keyElement.style.background = '#333333'; // Color de fondo predeterminado cuando se suelta } }); // Menú para activar/desactivar funcionalidades const menu = document.createElement('div'); menu.style.position = 'fixed'; menu.style.top = '50px'; menu.style.left = '50px'; menu.style.backgroundColor = '#000'; menu.style.color = '#fff'; menu.style.padding = '10px'; menu.style.border = '2px solid #fff'; menu.style.borderRadius = '5px'; menu.style.zIndex = '10001'; menu.style.display = 'none'; menu.style.fontFamily = 'Arial, sans-serif'; menu.innerHTML = ` <h3>Cube Client - Configuración</h3> <label><input type="checkbox" id="toggleHitboxes"> Activar Hitboxes</label><br> <label><input type="checkbox" id="toggleCrosshair"> Activar Crosshair Personalizado</label><br> <label><input type="checkbox" id="toggleFPSBoost" checked> Activar FPS Boost</label><br> <label><input type="checkbox" id="toggleHealthBar"> Activar Barra de Salud</label><br> <label><input type="checkbox" id="toggleKeystrokes"> Activar Keystrokes</label><br> <label><input type="checkbox" id="toggleCPSCounter"> Activar Contador de CPS</label><br> <button id="closeMenu" style="margin-top: 10px;">Cerrar Menú</button> <button id="editPositions" style="margin-top: 10px;">Editar Posiciones</button> <button id="pencilButton" style="margin-top: 10px;">✏️ Editar</button> `; document.body.appendChild(menu); // Función para abrir/cerrar el menú con Shift izquierdo document.addEventListener('keydown', (e) => { if (e.key === 'Shift') { menu.style.display = menu.style.display === 'none' ? 'block' : 'none'; } }); // Función para cerrar el menú document.getElementById('closeMenu').addEventListener('click', () => { menu.style.display = 'none'; }); // Función para activar/desactivar modo de edición de posiciones let isEditing = false; document.getElementById('pencilButton').addEventListener('click', () => { isEditing = !isEditing; if (isEditing) { menu.style.display = 'none'; alert('Modo de edición activado. Mueve los elementos.'); } else { alert('Modo de edición desactivado. Posiciones guardadas.'); } }); // Función para guardar las posiciones document.getElementById('editPositions').addEventListener('click', () => { // Aquí podrías agregar la lógica para editar posiciones. alert('Posiciones editadas y guardadas!'); }); // Habilitar FPS Boost if (config.fpsBoost) { let originalRequestAnimationFrame = window.requestAnimationFrame; window.requestAnimationFrame = function(callback) { setTimeout(callback, 0); // Desactiva cualquier retraso de renderizado }; } })();