Auto Respawn + Autofire + Dark Theme / Night Mode + Macros / Shortcuts + Hide Leaderboard & Fireflies + More!
// ==UserScript== // @name --- iWings --- Wings.io Mods / Script // @namespace wingsiomodrawr // @description Auto Respawn + Autofire + Dark Theme / Night Mode + Macros / Shortcuts + Hide Leaderboard & Fireflies + More! // @version 15 // @author condoriano // @icon http://i.imgur.com/pECyZov.png // @include http://wings.io/* // @include https://wings.io/* // @run-at document-start // @grant none // ==/UserScript== (function() { if(window.top != window.self || (window.iWings && window.iWings.enabled)) { if(window.iWings && window.iWings.versions) window.iWings.versions.push('script v15'); return; } if(!window.iWings) window.iWings = { enabled: true, versions: ['script v15'] }; var isFirefox = /Firefox/.test(navigator.userAgent); if(isFirefox) { var scriptChanged = false; window.addEventListener('beforescriptexecute', function(e) { if(e.target.innerHTML.length > 100000 && !scriptChanged) { e.preventDefault(); e.stopPropagation(); scriptChanged = true; e.target.remove(); var oriScript = e.target.innerHTML; var httpReq = new XMLHttpRequest(); httpReq.open('GET', 'http://greasyfork.org/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 { 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 > 100000) { var oriScript = tempDOM.children[i].innerHTML; var httpReq2 = new XMLHttpRequest(); httpReq2.open('GET', 'http://greasyfork.org/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 'disable gradient' enabled a = a.replace(/("rgba\("\+parseInt\(.\)\+",145,202,1\.0\)")/, 'handleColors($1)'); // sky a = a.replace(/("rgba\("\+parseInt\(.\)\+",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('"cannonshoot",', '"cannonshoot",ZzZz="",'); // add empty sound array a = a.replace(/trailEffect\(\),(.)=(..)/, 'trailEffect(),$1=document.getElementById("optnNoFireflies").checked?ZzZz:$2'); // if enabled, play empty sound a = a.replace(/(.)\=(.)\.frames\.wing/, '$1=document.getElementById("optnNoFireflies").checked?$2.frames.none:$2.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\(.,.),(.\+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; } })();