Untitled
unknown
plain_text
5 years ago
21 kB
7
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...