Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Multicolor Crosshair (RAINBOW EDITION)
- // @version 0.1
- // @description Rainbow crosshair in shell shockers! Be the you that you were always meant to be! 🏳️🌈
- // @match *://shellshock.io/*
- // @author iiBuggzZz
- // @run-at document-body
- // @grant Math.mod
- // @grant window.extern
- // @namespace https://greasyfork.org/users/815159
- // ==/UserScript==
- (function () {
- function HSVtoRGB(h, s, v) {
- var r, g, b, i, f, p, q, t;
- if (arguments.length === 1) {
- s = h.s, v = h.v, h = h.h;
- }
- i = Math.floor(h * 6);
- f = h * 6 - i;
- p = v * (1 - s);
- q = v * (1 - f * s);
- t = v * (1 - (1 - f) * s);
- switch (i % 6) {
- case 0: r = v, g = t, b = p; break;
- case 1: r = q, g = v, b = p; break;
- case 2: r = p, g = v, b = t; break;
- case 3: r = p, g = q, b = v; break;
- case 4: r = t, g = p, b = v; break;
- case 5: r = v, g = p, b = q; break;
- }
- return {
- r: Math.round(r * 255),
- g: Math.round(g * 255),
- b: Math.round(b * 255)
- };
- }
- const colors = [[], [], []];
- for (let wl = 0; wl < 100; wl++) {
- const {
- r,
- g,
- b
- } = HSVtoRGB(wl / 100.0 * 0.85, 1.0, 1.0);
- colors[0].push(r);
- colors[1].push(g);
- colors[2].push(b);
- }
- let crosshairs = [];
- let crosshairsSet = false;
- let colorIdx = 0;
- setInterval(function () {
- if (!crosshairsSet && typeof crosshair1 === "object") {
- for (let i = 0; i < 4; i++) {
- crosshairs.push(document.getElementById("crosshair" + i));
- }
- crosshairsSet = true;
- }
- if (typeof extern !== "undefined" && extern.inGame) {
- for (let i = 0; i < 4; i++) {
- let ch = crosshairs[i];
- const idx = Math.mod(Math.floor(colorIdx + 30 * i), 100);
- const colorString = `rgb(${colors[0][idx]}, ${colors[1][idx]}, ${colors[2][idx]})`;
- ch.style.backgroundColor = colorString;
- ch.style.color = colorString;
- }
- colorIdx += 0.89;
- if (colorIdx >= 100) {
- colorIdx = 0;
- }
- }
- }, 33);
- }())
Add Comment
Please, Sign In to add comment