- // ==UserScript==
- // @name Wings.io auto respawn (evergreen)
- // @namespace wingsiomodrawr
- // @description Auto respawn + Autofire + Dark Theme / Night Mode + Hide Leaderboard / Fireflies + Remember Settings and more!
- // @version 8
- // @author condoriano
- // @icon http://i.imgur.com/pECyZov.png
- // @include http://wings.io/*
- // @include https://wings.io/*
- // @run-at document-start
- // @grant none
- // ==/UserScript==
-
- if(window.self != window.top) return;
-
- if(navigator.userAgent.toLowerCase().indexOf('firefox') != -1) {
- var scriptChanged = false;
- window.addEventListener('beforescriptexecute', function(e) {
- if(e.target.innerHTML.length > 120000 && !scriptChanged) {
- e.preventDefault();
- e.stopPropagation();
- scriptChanged = true;
- e.target.remove();
- var oriScript = e.target.innerHTML;
- var httpReq = new XMLHttpRequest();
- httpReq.open('GET', 'http://gf.qytechs.cn/scripts/20020-wingsiomod/code/wingsiomod.js', false);
- httpReq.onreadystatechange = function() {
- if(httpReq.readyState == 4 && httpReq.status == 200) {
- var modScript = httpReq.responseText.trim().replace(/^function.*{|}$/g, '');
- var finalScript = combineScript(oriScript, modScript);
- var elem = document.createElement('script');
- elem.innerHTML = finalScript;
- document.body.appendChild(elem);
- }
- };
- httpReq.send();
- }
- if(scriptChanged) window.removeEventListener(e.type, arguments.callee, true);
- }, true);
- }
- else {
- window.stop();
- var httpReq = new XMLHttpRequest();
- httpReq.open('GET', 'http://wings.io/', true);
- httpReq.onreadystatechange = function() {
- if(httpReq.readyState == 4 && httpReq.status == 200) {
- var tempDOM = document.createElement('div');
- tempDOM.innerHTML = httpReq.responseText;
- for(var i = 0; i < tempDOM.children.length; i++) {
- if(tempDOM.children[i].tagName.toUpperCase() == 'SCRIPT' && tempDOM.children[i].innerHTML.length > 120000) {
- var oriScript = tempDOM.children[i].innerHTML;
- var httpReq2 = new XMLHttpRequest();
- httpReq2.open('GET', 'http://gf.qytechs.cn/scripts/20020-wingsiomod/code/wingsiomod.js', true);
- httpReq2.onreadystatechange = function() {
- if(httpReq2.readyState == 4 && httpReq2.status == 200) {
- var modScript = httpReq2.responseText.trim().replace(/^function.*{|}$/g, '');
- var finalScript = combineScript(oriScript, modScript);
-
- tempDOM.children[i].innerHTML = finalScript;
- document.open();
- document.write(tempDOM.innerHTML);
- document.close();
-
- }
- };
- httpReq2.send();
- break;
- }
- }
- }
- };
- httpReq.send();
- }
-
- function combineScript(a, b) {
- a = a.replace('"#62bae2"', 'handleColors("#62bae2")'); // solid bg when disabled gradient enabled
- a = a.replace(/("rgba\("\+parseInt\(f\)\+",145,202,1\.0\)")/, 'handleColors($1)'); // sky
- a = a.replace(/("rgba\("\+parseInt\(m\)\+",231,252,1\.0\)")/, 'handleColors($1)'); // sky
- a = a.replace(/("rgba\(9,188,255,1\.0\)")/g, 'handleColors($1)'); // water lv 1
- a = a.replace(/("rgba\(8,164,254,1\.0\)")/g, 'handleColors($1)'); // waterlv 2
- a = a.replace(/("rgba\(7,142,252,1\.0\)")/g, 'handleColors($1)'); // waterlv 3
- a = a.replace(/("rgba\(0,132,232,1\.0\)")/g, 'handleColors($1)'); // waterlv 4
- a = a.replace(/("rgba\(0,90,190,1\.0\)")/g, 'handleColors($1)'); // waterlv 5
- a = a.replace('["wing",770,203,27,27,.5,.5]', '["wing",770,203,27,27,.5,.5],["none",0,0,1,1,1,1]'); // add empty sprite array
- a = a.replace('k=ld,', 'k=document.getElementById("optnNoFireflies").checked?Cc:ld,'); // if enabled, play empty sound
- a = a.replace(/(.)\=(.)\.frames\.wing/, '$1=document.getElementById("optnNoFireflies").checked?$2.frames.none:p.frames.wing'); // if enabled, draw empty sprite // b=p.frames.wing
- a = a.replace(/(.\.width=.);(.\.height=.);(.=.\+"px)/, '$1;$2+30;$3'); // fix leaderboard cut off at bottom // c.width=V;c.height=L;k=h+"px
- a = a.replace(/(,.\.height\=.),/, '$1+30,'); // fix 'you' label cut off at bottom // ,s.height=b,
- a = a.replace(/this\.drawLeaderboard\=function\((a)\){/, 'this.drawLeaderboard=function($1){if(document.getElementById("optnNoLeaderboard").checked)return;'); // if enabled, hide leaderboard // this.drawLeaderboard=function(a){
- a = a.replace(/(.\.drawImage\(t,e),(k\+5\))/, '$1,document.getElementById("optnNoLeaderboard").checked?10:$2'); // if enabled, move 'you' label to top // a.drawImage(t,e,k+5)
- a = a.replace(/\(function\((.....)\){/i, '(function($1){' + b);
- return a;
- }