// ==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 // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Configuración inicial const config = { hitboxes: false, customCrosshair: false, fpsBoost: false, 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 = `
W
A
S
D
Shift
Space
LMB CPS: 0
RMB CPS: 0
`; document.body.appendChild(keystrokesContainer); // Función para hacer el contenedor de keystrokes arrastrable let isDragging = false; let offsetX, offsetY; keystrokesContainer.addEventListener('mousedown', (e) => { isDragging = true; offsetX = e.clientX - keystrokesContainer.getBoundingClientRect().left; offsetY = e.clientY - keystrokesContainer.getBoundingClientRect().top; keystrokesContainer.style.cursor = 'grabbing'; }); document.addEventListener('mousemove', (e) => { if (isDragging) { keystrokesContainer.style.left = `${e.clientX - offsetX}px`; keystrokesContainer.style.top = `${e.clientY - offsetY}px`; } }); document.addEventListener('mouseup', () => { isDragging = false; keystrokesContainer.style.cursor = 'move'; }); // Variables para el manejo de clics let lastLeftClickTime = 0; let lastRightClickTime = 0; const clickCooldown = 100; // en milisegundos (100ms de espera entre clics) // Actualizar Keystrokes al presionar teclas document.addEventListener('keydown', (e) => { const keyElement = document.getElementById(`key-${e.key}`); if (keyElement) { keyElement.style.background = config.keystrokeColor; // Color configurable cuando está presionado } }); document.addEventListener('keyup', (e) => { const keyElement = document.getElementById(`key-${e.key}`); if (keyElement) { keyElement.style.background = config.keystrokeBackgroundColor; // Vuelve al color de fondo predeterminado cuando se suelta } }); // Manejo de clics para CPS document.addEventListener('mousedown', (e) => { const currentTime = Date.now(); if (e.button === 0 && currentTime - lastLeftClickTime > clickCooldown) { lastLeftClickTime = currentTime; leftClickCount++; // Clic izquierdo } if (e.button === 2 && currentTime - lastRightClickTime > clickCooldown) { lastRightClickTime = currentTime; rightClickCount++; // Clic derecho } }); // Reiniciar los contadores cada segundo y mostrar los CPS let leftClickCount = 0; let rightClickCount = 0; setInterval(() => { document.getElementById('leftCPS').textContent = `LMB CPS: ${leftClickCount}`; document.getElementById('rightCPS').textContent = `RMB CPS: ${rightClickCount}`; leftClickCount = 0; rightClickCount = 0; }, 1000); // Crear el menú de configuración 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 = '10000'; menu.style.display = 'none'; menu.style.fontFamily = 'Arial, sans-serif'; menu.innerHTML = `

Cube Client - Configuración







`; document.body.appendChild(menu); // Eventos para los controles del menú document.getElementById('toggleHitboxes').addEventListener('change', (e) => { config.hitboxes = e.target.checked; }); document.getElementById('toggleCrosshair').addEventListener('change', (e) => { config.customCrosshair = e.target.checked; }); document.getElementById('toggleFPSBoost').addEventListener('change', (e) => { config.fpsBoost = e.target.checked; }); document.getElementById('toggleHealthBar').addEventListener('change', (e) => { config.healthBar = e.target.checked; }); document.getElementById('toggleKeystrokes').addEventListener('change', (e) => { config.keystrokes = e.target.checked; keystrokesContainer.style.display = config.keystrokes ? 'block' : 'none'; }); document.getElementById('toggleCPSCounter').addEventListener('change', (e) => { config.cpsCounter = e.target.checked; }); document.getElementById('closeMenu').addEventListener('click', () => { menu.style.display = 'none'; }); // Abrir el menú con la tecla "Inicio" document.addEventListener('keydown', (e) => { if (e.key === 'Home') { menu.style.display = menu.style.display === 'none' ? 'block' : 'none'; } }); })();