Untitled
unknown
plain_text
4 years ago
21 kB
6
Indexable
// ==UserScript== // @name jaf Counters // @namespace https://tampermonkey.net/ // @version 1.0 // @description An ingame counter overlay to view connection stats and in-game health stats. // @author jaf // @match http://surviv.io/* // @match https://surviv.io/* // @match http://surviv.io/?region=na&zone=sfo // @match http://surviv.io/?region=na&zone=mia // @match http://surviv.io/?region=na&zone=nyc // @match http://surviv.io/?region=na&zone=chi // @match http://surviv.io/?region=sa&zone=sao // @match http://surviv.io/?region=eu&zone=fra // @match http://surviv.io/?region=eu&zone=waw // @match http://surviv.io/?region=as&zone=sgp // @match http://surviv.io/?region=as&zone=nrt // @match http://surviv.io/?region=as&zone=hkg // @match http://surviv.io/?region=kr&zone=sel // @match https://surviv.io/?region=na&zone=sfo // @match https://surviv.io/?region=na&zone=mia // @match https://surviv.io/?region=na&zone=nyc // @match https://surviv.io/?region=na&zone=chi // @match https://surviv.io/?region=sa&zone=sao // @match https://surviv.io/?region=eu&zone=fra // @match https://surviv.io/?region=eu&zone=waw // @match https://surviv.io/?region=as&zone=sgp // @match https://surviv.io/?region=as&zone=nrt // @match https://surviv.io/?region=as&zone=hkg // @match https://surviv.io/?region=kr&zone=sel // @match http://surviv2.io* // @match https://surviv2.io* // @match http://2dbattleroyale.com* // @match https://2dbattleroyale.com* // @match http://2dbattleroyale.org* // @match https://2dbattleroyale.org* // @match http://piearesquared.info* // @match https://piearesquared.info* // @match http://thecircleisclosing.com* // @match https://thecircleisclosing.com* // @match http://archimedesofsyracuse.info* // @match https://archimedesofsyracuse.info* // @match http://secantsecant.com* // @match https://secantsecant.com* // @match http://parmainitiative.com* // @match https://parmainitiative.com* // @match http://nevelskoygroup.com* // @match https://nevelskoygroup.com* // @match http://kugahi.com* // @match https://kugahi.com* // @match http://chandlertallowmd.com* // @match https://chandlertallowmd.com* // @match https://drchandlertallow.com* // @match http://ot38.club* // @match https://ot38.club* // @match http://kugaheavyindustry.com* // @match https://kugaheavyindustry.com* // @match http://rarepotato.com* // @match https://rarepotato.com* // @match http://twitch.tv/popout/survivio/extensions/c79geyxwmp1zpas3qxbddzrtytffta/panel* // @match https://twitch.tv/popout/survivio/extensions/c79geyxwmp1zpas3qxbddzrtytffta/panel* // @match http://c79geyxwmp1zpas3qxbddzrtytffta.ext-twitch.tv/c79geyxwmp1zpas3qxbddzrtytffta/1.0.2/ce940530af57d2615ac39c266fe9679d/index_twitch.html?anchor=panel&language=en&mode=viewer&state=released&platform=web&popout=true* // @match https://c79geyxwmp1zpas3qxbddzrtytffta.ext-twitch.tv/c79geyxwmp1zpas3qxbddzrtytffta/1.0.2/ce940530af57d2615ac39c266fe9679d/index_twitch.html?anchor=panel&language=en&mode=viewer&state=released&platform=web&popout=true* // @match https://c79geyxwmp1zpas3qxbddzrtytffta.ext-twitch.tv/c79geyxwmp1zpas3qxbddzrtytffta/1.0.2/ce940530af57d2615ac39c266fe9679d/index_twitch.html // @grant GM_xmlHttpRequest // ==/UserScript== // ==/UserScript== // <==========GUN_HUD==========> \\ (function() { 'use strict'; var elems = document.getElementsByClassName('ui-weapon-name') console.log(elems); for (var ii = 0; ii < elems.length; ii++) { elems[ii].addEventListener('DOMSubtreeModified', function() { var weaponName = this.textContent; var border = 'solid'; var background = 'solid'; switch (weaponName) { // <---------- Default ----------> \\ default: border = '#FFFFFF'; border = 'solid'; background = '#5e5e5e'; background = '#5e5e5e'; break; // <------------------------------MELEES------------------------------> \\ case "Fists": border += '#000000'; background += '#5e5e5e'; break; // <-----Karmabit-----> case "Karambit": border +='#76787A'; background += '#5e5e5e'; break; case "Karambit Rugged": border +='#16163B'; background += '#5e5e5e'; break; case "Karmabit Prismatic": border +='#34D682'; background += '#5e5e5e'; break; case "Karmabit Drowned": border +='#0CBCCC'; background += '#5e5e5e'; break; // <-----Bayonet-----> case "Bayonet": border +='#76787A'; background += '#5e5e5e'; break; case "Bayonet Rugged": border +='#76787A'; background += '#5e5e5e'; break; case "Bayonet Woodland": border +='#5AA415'; background += '#5e5e5e'; break; // <-----Huntsman-----> case "Huntsman": border +='#76787A'; background += '#5e5e5e'; break; case "Huntsman Rugged": border +='#A0441E'; background += '#5e5e5e'; break; case "Huntsman Burnished": border +='#DACF76'; background += '#5e5e5e'; break; // <-----Bowie-----> case "Bowie": border +='#76787A'; background += '#5e5e5e'; break; case "Bowie Vintage": border +='#B6B6B6'; background += '#5e5e5e'; break; case "Bowie Frontier": border +='#BA4B2E'; background += '#5e5e5e'; break; // <-----Axe-----> case "Wood Axe": border +='#95500E'; background += '#5e5e5e'; break; case "Blood Axe": border +='#568A09'; background += '#5e5e5e'; break; case "Fire Axe": border +='#B40000'; background += '#5e5e5e'; break; // <-----Katana-----> case "Katana": border +='#858585'; background += '#5e5e5e'; break; case "Katana Rusted": border +='#875F37'; background += '#5e5e5e'; break; case "Katana Orchid": border +='#C189CB'; background += '#5e5e5e'; break; // <-----Naginata-----> case 'Naginata': border += '#3C3C3C'; background += '#5e5e5e'; break; // <-----Machetes-----> case "Machete": //Machete Taiga border +='#685F40'; background += '#5e5e5e'; break; case "Kukri": //Tallow's Kukri border +='#685F40'; background += '#5e5e5e'; break; // <-----Hammers-----> case "Stone Hammer": border +='#585A5C'; background += '#5e5e5e'; break; case "Sledgehammer": border +='#585A5C'; background += '#5e5e5e'; break; // <-----Hook-----> case "Hook": border +='#888A8B'; background += '#5e5e5e'; break; // <-----Pan-----> case "Pan": border +='#484848'; background += '#5e5e5e'; break; // <-----Knuckles-----> case "Knuckles": border +='#63452D'; background += '#5e5e5e'; break; case "Knuckles Rusted": border +='#63452D'; background += '#5e5e5e'; break; case "Knuckles Heroic": border +='#90700D'; background += '#5e5e5e'; break; // <-----Saw-----> case "Bonesaw": //Bonesaw Rusted border += '#461904'; background += '#5e5e5e'; break; // <-----Cobalt-----> case "Spade": //Trench Spade border +='#DACF59'; background += '#5e5e5e'; break; case "Crowbar": //Scouting Crowbar border +='#ACD563'; background += '#5e5e5e'; break; case "Kukri": //Marksman's Recurve border +='#8DCEDB'; background += '#5e5e5e'; break; case "Bonesaw": //The Separator border +='#DC79DC'; background += '#5e5e5e'; break; case "Katana": //Hakai no Katana border +='#C76A67'; background += '#5e5e5e'; break; case "War Hammer": //Panzerhammer border +='#EAB963'; background += '#5e5e5e'; break; // <===GUNS===> // <---------- YELLOW: 9mm ----------> \\ case 'CZ-3A1': case 'G18C': case 'M9': case 'M93R': case 'MAC-10': case 'MP5': case 'P30L': case 'Dual P30L': case 'UMP9': case 'Vector': case 'VSS': border += '#FFAE00'; background += '#5e5e5e'; break; // <---------- RED: 12 Gauge ----------> \\ case 'M1100': case 'M870': case 'MP220': case 'Saiga-12': case 'SPAS-12': case 'Super 90': case 'USAS-12': border += '#FF0000'; background += '#5e5e5e'; break; // <---------- BLUE: 7.62 mm ----------> \\ case 'AK-47': case 'AN-94': case 'BAR M1918': case 'BLR 81': case 'DP-28': case 'Groza': case 'Groza-S': case 'M1 Garand': case 'M39 EMR': case 'Mosin-Nagant': case 'OT-38': case 'OTs-38': case 'PKP Pecheneg': case 'SCAR-H': case 'SV-98': case 'SVD-63': border += '#0066FF'; background += '#5e5e5e'; break; // <---------- GREEN: 5.56mm ----------> \\ case 'FAMAS': case 'L86A2': case 'M249': case 'M416': case 'M4A1-S': case 'Mk 12 SPR': case 'QBB-97': case 'Scout Elite': border += '#039E00'; background += '#5e5e5e'; break; // <---------- Purple: .45 ACP ----------> \\ case 'M1911': case 'M1A1': case 'Mk45G': case 'Model 94': case 'Peacemaker': case 'Vector 45': border += '#7900FF'; background += '#5e5e5e'; break; // <---------- FLARE ----------> \\ case 'Flare Gun': border += '#D44600'; background += '#5e5e5e'; break; // <---------- .50 AE ----------> \\ case 'DEagle 50': border += '#292929'; background += '#5e5e5e'; break; // <---------- .308 Subsonic ----------> \\ case 'AWM-S': case 'Mk 20 SSR': border += '#465000'; background += '#5e5e5e'; break; // <---------- Potato ----------> \\ case 'Potato Cannon': case 'Spud Gun': border += '#935924'; background += '#5e5e5e'; break; // <---------- CURSED: 9 mm ----------> \\ case 'M9 Cursed': border += '#323232'; background += '#5e5e5e'; break; // <---------- Bugle ----------> \\ case 'Bugle': border += '#F2BC21'; background += '#5e5e5e'; break; // <---------- Trowables ----------> \\ case 'Frag': border += '#837516'; background += '#5e5e5e'; break; case 'MIRV': border += '#940000'; background += '#5e5e5e'; break; case 'Potato': border += '#958359'; background += '#5e5e5e'; break; case 'Smoke': border += '#DDDDDD'; background += '#5e5e5e'; break; case 'Snowball': border += '#74D4F8'; background += '#5e5e5e'; break; case 'Strobe': border += '#FFF205'; background += '#5e5e5e'; break; case 'Iron Bomb': border += '#00FF00'; background += '#5e5e5e'; break; } // <---------- GUN END ----------> \\ console.log(border); this.parentNode.style.border = border; }, false); } })(); // <========== ARMOR HUD ==========> \\ (function() { 'use strict'; var elems = document.getElementsByClassName('ui-armor-level'); console.log(elems); for (var ii = 0; ii < elems.length; ii++) { elems[ii].addEventListener('DOMSubtreeModified', function() { var armorlv = this.textContent; var border = 'solid'; switch (armorlv) { default: border = '#000000'; border = 'solid'; break; case 'Lvl. 0': border += '#000000'; break; case 'Lvl. 1': border += '#000000'; break; case 'Lvl. 2': border += '#000000'; break; case 'Lvl. 3': border += '#000000'; break; case 'Lvl. 4': border += '#000000'; break; } console.log(border); this.parentNode.style.border = border; }, false); } })(); let times = []; const getPing = () => { let ping = new Date; let request = new XMLHttpRequest(); request.open(`GET`, window.location.href, true); request.onload = (() => { document.querySelector(`#latWrapper > span`).innerHTML = `${new Date - ping} LAT`; setTimeout(getPing, 500); }); request.send(); } const getFPS = () => { window.requestAnimationFrame(() => { const now = performance.now(); while(times.length > 0 && times[0] <= now - 1000) times.shift(); times.push(now); document.querySelector(`#fpsWrapper > span`).innerHTML = `${times.length} FPS`; getFPS(); }); } const getHealth = () => { let healthBar = document.querySelector(`#ui-health-actual`); return Math.round(healthBar.clientWidth / 4); } const getBoost = () => { let boostActualWidth = 0; let boosts = document.querySelectorAll(`.ui-boost-base .ui-bar-inner`); boosts.forEach((boost, i) => { if(i <= 1) boostActualWidth += parseInt(boost.style.width.slice(0, boost.style.width.length - 1)) / 4; else if(i == 2) boostActualWidth += parseInt(boost.style.width.slice(0, boost.style.width.length - 1)) / 2.5; else if(i == 3) boostActualWidth += parseInt(boost.style.width.slice(0, boost.style.width.length - 1)) / 10; }); return Math.round(boostActualWidth); } const injectCSS = () => { let style = document.createElement(`style`); style.innerHTML = ` .box-container { background: rgba(0, 0, 0, 0.25); border-radius: 5px; padding: 8px; } #hpWrapper, #btWrapper { width: 50px; margin-right: 5px; display: inline-block; } #fpsWrapper, #latWrapper { margin: 5px 0px; width: 60px; } #ui-spectate-options { top: 85px; } #copd { position: relative; top: 97px; left: -55%; width: 140px; text-align: center; } `; document.head.appendChild(style); } const createElements = () => { //Add FPS let fpsWrapper = document.createElement(`div`); fpsWrapper.id = `fpsWrapper`; fpsWrapper.classList.add(`box-container`); let fps = document.createElement(`span`); fpsWrapper.appendChild(fps); document.querySelector(`#ui-top-left`).appendChild(fpsWrapper); //Add LAT let latWrapper = document.createElement(`div`); latWrapper.id = `latWrapper`; latWrapper.classList.add(`box-container`); let lat = document.createElement(`span`); latWrapper.appendChild(lat); document.querySelector(`#ui-top-left`).appendChild(latWrapper); //Create bottom wrapper. let boostCounter = document.querySelector(`#ui-boost-counter`); let botWrapper = document.createElement(`div`); botWrapper.id = `numWrapper`; document.querySelector(`#ui-bottom-center-0`).insertBefore(botWrapper, boostCounter); //Add HP let hpWrapper = document.createElement(`div`); hpWrapper.classList.add(`box-container`); hpWrapper.id = `hpWrapper`; let hpTxt = document.createElement(`span`); setInterval(() => (hpTxt.innerHTML = `HP: ${getHealth()}`)); hpWrapper.appendChild(hpTxt); botWrapper.appendChild(hpWrapper); //Add Boost let adWrapper = document.createElement(`div`); adWrapper.classList.add(`box-container`); adWrapper.id = `btWrapper`; let adTxt = document.createElement(`span`); setInterval(() => (adTxt.innerHTML = `AD: ${getBoost()}`)); adWrapper.appendChild(adTxt); botWrapper.appendChild(adWrapper); } const runScripts = () => { let a = document.createElement(`div`); a.id = `copd`; a.classList.add(`box-container`); let sp = document.createElement(`span`); sp.innerHTML = `Subscribe to jaf :D youtube.com/jaf140`; a.appendChild(sp); let b = document.querySelector(`#numWrapper`); document.querySelector(`#ui-bottom-center-0`).insertBefore(a, b); } const mainScript = () => { createElements(); injectCSS(); getFPS(); getPing(); runScripts(); } mainScript();
Editor is loading...