- // ==UserScript==
- // @name Custom Crosshairs for Krunker, 1v1.lol, and Anything Else.
- // @namespace http://tampermonkey.net/
- // @version 3.1
- // @description Custom Crosshiars For Literally ANYTHING--Hide The Menu Using "P"
- // @author LCM
- // @match *://*/*
- // @grant none
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- // Create a container for the menu
- const menuContainer = document.createElement('div');
- menuContainer.style.position = 'fixed';
- menuContainer.style.top = '10px';
- menuContainer.style.left = '10px';
- menuContainer.style.zIndex = '10000';
- menuContainer.style.backgroundColor = 'black';
- menuContainer.style.padding = '50px'; // Increased padding for more space
- menuContainer.style.borderRadius = '10px';
- menuContainer.style.display = 'flex'; // Use flexbox for better layout control
- menuContainer.style.flexDirection = 'column'; // Align buttons vertically
- menuContainer.style.userSelect = 'none'; // Disable text selection
-
- // Make the menu draggable
- makeDraggable(menuContainer);
-
- // Make the menu resizable
- makeResizable(menuContainer);
-
- // Create an "Authors" title
- const authorsTitle = document.createElement('div');
- authorsTitle.innerText = 'Made By - LCM';
- authorsTitle.style.color = 'white';
- authorsTitle.style.fontWeight = 'bold';
- authorsTitle.style.marginBottom = '10px';
- menuContainer.appendChild(authorsTitle);
-
- // Create buttons to toggle different shapes
- const shapeButtons = ['Square', 'Circle', 'ESP Rectangle'].map(createShapeButton);
-
- // Create shape elements
- const shapes = {
- Square: createShape('20px', '20px', '2px solid white'),
- Circle: createShape('20px', '20px', '2px solid white', '50%', '50%'),
- 'ESP Rectangle': createShape('60px', '30px', '2px solid white', '0deg', '50%', '50%'),
- };
-
- // Append the shapes to the body
- Object.values(shapes).forEach(shape => document.body.appendChild(shape));
-
- // Append the menu container to the body
- document.body.appendChild(menuContainer);
-
- // Append the buttons to the menu container
- shapeButtons.forEach(button => menuContainer.appendChild(button));
-
- // Add buttons for Red, Blue, Green, Purple, White Crosshairs
- const redCrosshairsButton = createColorButton('Red Crosshairs', 'red');
- const blueCrosshairsButton = createColorButton('Blue Crosshairs', 'blue');
- const greenCrosshairsButton = createColorButton('Green Crosshairs', 'green');
- const purpleCrosshairsButton = createColorButton('Purple Crosshairs', 'purple');
- const whiteCrosshairsButton = createColorButton('White Crosshairs', 'white');
- menuContainer.appendChild(redCrosshairsButton);
- menuContainer.appendChild(blueCrosshairsButton);
- menuContainer.appendChild(greenCrosshairsButton);
- menuContainer.appendChild(purpleCrosshairsButton);
- menuContainer.appendChild(whiteCrosshairsButton);
-
- // Hotkey to toggle menu visibility
- document.addEventListener('keydown', (event) => {
- if (event.key === 'p' || event.key === 'P') {
- toggleMenuVisibility();
- }
- });
-
- // Function to toggle the display of the menu
- function toggleMenuVisibility() {
- if (menuContainer.style.display === 'none') {
- menuContainer.style.display = 'flex';
- } else {
- menuContainer.style.display = 'none';
- }
- }
-
- // Function to make an element draggable
- function makeDraggable(element) {
- let offsetX, offsetY;
- let isDragging = false;
-
- element.addEventListener('mousedown', (event) => {
- isDragging = true;
- offsetX = event.clientX - element.getBoundingClientRect().left;
- offsetY = event.clientY - element.getBoundingClientRect().top;
- });
-
- document.addEventListener('mousemove', (event) => {
- if (isDragging) {
- element.style.left = event.clientX - offsetX + 'px';
- element.style.top = event.clientY - offsetY + 'px';
- }
- });
-
- document.addEventListener('mouseup', () => {
- isDragging = false;
- });
- }
-
- // Function to make an element resizable
- function makeResizable(element) {
- const handle = document.createElement('div');
- handle.style.position = 'absolute';
- handle.style.width = '10px';
- handle.style.height = '10px';
- handle.style.background = 'white';
- handle.style.right = '0';
- handle.style.bottom = '0';
- handle.style.cursor = 'se-resize';
-
- handle.addEventListener('mousedown', (event) => {
- event.preventDefault();
- const startX = event.clientX;
- const startY = event.clientY;
- const startWidth = parseInt(document.defaultView.getComputedStyle(element).width, 10);
- const startHeight = parseInt(document.defaultView.getComputedStyle(element).height, 10);
-
- function handleMouseMove(e) {
- const newWidth = startWidth + e.clientX - startX;
- const newHeight = startHeight + e.clientY - startY;
- element.style.width = `${newWidth}px`;
- element.style.height = `${newHeight}px`;
- }
-
- function handleMouseUp() {
- document.removeEventListener('mousemove', handleMouseMove);
- document.removeEventListener('mouseup', handleMouseUp);
- }
-
- document.addEventListener('mousemove', handleMouseMove);
- document.addEventListener('mouseup', handleMouseUp);
- });
-
- element.appendChild(handle);
- }
-
- // Function to create a button for a shape
- function createShapeButton(shape) {
- const button = document.createElement('button');
- button.innerText = `Toggle ${shape}`;
- button.style.marginBottom = '10px'; // Adjust the margin
- button.style.width = '100%';
- button.addEventListener('click', () => toggleShape(shape));
- return button;
- }
-
- // Function to toggle the display of a shape
- function toggleShape(shape) {
- const currentShape = shapes[shape];
- if (currentShape.style.display === 'none') {
- currentShape.style.display = 'block';
- } else {
- currentShape.style.display = 'none';
- }
- }
-
- // Function to create a button for a color
- function createColorButton(label, color) {
- const button = document.createElement('button');
- button.innerText = label;
- button.style.marginTop = '10px'; // Adjusted margin to separate from other buttons
- button.style.width = '100%';
- button.style.height = '40px'; // Set the height for a square button
- button.style.backgroundColor = color;
- button.addEventListener('click', () => toggleColorCrosshairs(color));
- return button;
- }
-
- // Function to toggle the color of all shapes to the specified color
- function toggleColorCrosshairs(color) {
- Object.values(shapes).forEach(shape => {
- shape.style.borderColor = color;
- });
- }
-
- // Function to create a basic shape element
- function createShape(width, height, border, borderRadius = '0', positionTop = '50%', positionLeft = '50%', transform = '0') {
- const shape = document.createElement('div');
- shape.style.position = 'fixed';
- shape.style.top = positionTop;
- shape.style.left = positionLeft;
- shape.style.transform = `translate(-${positionLeft}, -${positionTop}) rotate(${transform})`;
- shape.style.width = width;
- shape.style.height = height;
- shape.style.border = border;
- shape.style.borderRadius = borderRadius;
- shape.style.boxSizing = 'border-box';
- shape.style.zIndex = '9999';
- shape.style.display = 'none';
- return shape;
- }
- })();