This script checks for you when you last used the Satchel of Independence or Ornamentapult in your Inventory.
// ==UserScript== // @name TH Satchel/Ornamentapult Status // @description This script checks for you when you last used the Satchel of Independence or Ornamentapult in your Inventory. // @author Patojonas // @version 3.0 // @grant GM_xmlhttpRequest // @include *twilightheroes.com/main.php // @namespace https://greasyfork.org/users/47958 // ==/UserScript== //flags var ProblemPWD = 1; var ProblemSatchel = 1; var ProblemOrnamentapult = 1; var SatchelPresent = 0; var OrnamentaPresent = 0; if (/main/.exec(location.href)) { //checks if you have the items var itemspresent = GM_xmlhttpRequest({ method: "GET", url: "http://www.twilightheroes.com/use.php?filter=instant", synchronous: true }); items = itemspresent.responseText; if (items.match(/satchel of independence/)) { SatchelPresent = 1;} if (items.match(/ornamentapult/)) { OrnamentaPresent = 1;} //box design html var c = document.getElementsByTagName('h1')[0]; // 'center' if you want it just above the map var mybox = document.createElement("div"); var satchelhtml = '<div id="satchel_container" style="text-align:center; ' + 'opacity: .75; filter: alpha(opacity=75); z-index:100; display:inline-block; ' + 'margin: 3px; padding: 7px; overflow: hidden; font-size: 11pt; ' + 'font-family: arial, sans-serif; background-color: #ccffcc; color: #000000;">' + '<span id="satcheltitle"><a href="http://th.blandsauce.com/wiki/Satchel_of_independence" target="_blank"><h1>Satchel of Independence</h1></a></span>' + '<span id="satchelstatus">Checking status...</span>' + '<span id="satcheluselink"><br />Creating link...</span></div>'; var ornamenhtml = '<div id="ornamentapult_container" style="text-align:center; ' + 'opacity: .75; filter: alpha(opacity=75); z-index:100; display:inline-block; ' + 'margin: 3px; padding: 7px; overflow: hidden; font-size: 11pt; ' + 'font-family: arial, sans-serif; background-color: #ccffcc; color: #000000;">' + '<span id="ornamentapultitle"><a href="http://th.blandsauce.com/wiki/Ornamentapult" target="_blank"><h1>Ornamentapult</h1></a></span>' + '<span id="ornamentapultstatus">Checking status...</span>' + '<span id="ornamentapultuselink"><br />Creating link...</span></div>'; //builds box according to your needs if (SatchelPresent && OrnamentaPresent){ mybox.innerHTML = '<center>' + satchelhtml + ornamenhtml + '</center>'; } else if (SatchelPresent && !OrnamentaPresent) { mybox.innerHTML = '<center>' + satchelhtml + '</center>'; } else if (!SatchelPresent && OrnamentaPresent) { mybox.innerHTML = '<center>' + ornamenhtml + '</center>'; } else { return; } c.parentNode.insertBefore(mybox, c); //to add it above things //c.parentNode.appendChild(mybox); //to add it after the map //fetching user MD5ed password var pwdget = GM_xmlhttpRequest({ method: "GET", url: "http://www.twilightheroes.com/skills.php", synchronous: true }); a = pwdget.responseText; var pwdFound = a.match(/<input type=hidden name=pwd value=(\w+)>/); if ((pwdFound != null) && (pwdFound[1] != null)) { //if valid pass found then create links var satchelLink = '<a href="http://www.twilightheroes.com/use.php?which=2257&pwd=' + pwdFound[1] + '" target="main"><h7>Use Now</h7></a>'; var ornamentapultLink = '<a href="http://www.twilightheroes.com/use.php?which=2458&pwd=' + pwdFound[1] + '" target="main"><h7>Use Now</h7></a>'; ProblemPWD = 0; } //fetch Satchel status if (SatchelPresent){ var satchelastuseget = GM_xmlhttpRequest({ method: "GET", url: "http://www.twilightheroes.com/popup.php?item=82243597", synchronous: true }); s = satchelastuseget.responseText; //fetch box elements to fill according to satchel status var satchelStatusSpan = document.getElementById('satchelstatus'); var satchelLinkSpan = document.getElementById('satcheluselink'); //status chain if (s.match(/Was filled/)) { satchelStatusSpan.innerHTML = day(0); satchelLinkSpan.parentNode.removeChild(satchelLinkSpan); ProblemSatchel = 0; } else if (s.match(/day fireworks/) && ProblemPWD == 0) { satchelStatusSpan.innerHTML = day(1); satchelLinkSpan.innerHTML = satchelLink; ProblemSatchel = 0; } else if (s.match(/independence yesterday/) && ProblemPWD == 0) { satchelStatusSpan.innerHTML = day(2); satchelLinkSpan.innerHTML = satchelLink; ProblemSatchel = 0; } else if (s.match(/three independence/) && ProblemPWD == 0) { satchelStatusSpan.innerHTML = day(3); satchelLinkSpan.innerHTML = satchelLink; ProblemSatchel = 0; } else if (s.match(/four independence/) && ProblemPWD == 0) { satchelStatusSpan.innerHTML = day(4); satchelLinkSpan.innerHTML = satchelLink; ProblemSatchel = 0; } else if (s.match(/bunch of independence/) && ProblemPWD == 0) { satchelStatusSpan.innerHTML = day(5); satchelLinkSpan.innerHTML = satchelLink; ProblemSatchel = 0; } else if (ProblemSatchel || ProblemPWD) { //in case of server hicups or dividing by 0 satchelStatusSpan.innerHTML = "There was an error."; satchelLinkSpan.parentNode.removeChild(satchelLinkSpan); } } //fetch Ornamentapult status if (OrnamentaPresent){ var ornamentapultlastuseget = GM_xmlhttpRequest({ method: "GET", url: "http://www.twilightheroes.com/popup.php?item=30885917", synchronous: true }); o = ornamentapultlastuseget.responseText; //fetch box elements to fill according to satchel status var OrnamentapultStatusSpan = document.getElementById('ornamentapultstatus'); var OrnamentapultLinkSpan = document.getElementById('ornamentapultuselink'); //status chain if (o.match(/Launched some/)) { OrnamentapultStatusSpan.innerHTML = day(0); OrnamentapultLinkSpan.parentNode.removeChild(OrnamentapultLinkSpan); ProblemOrnamentapult = 0; } else if (o.match(/ready to launch/) && ProblemPWD == 0) { OrnamentapultStatusSpan.innerHTML = day(1); OrnamentapultLinkSpan.innerHTML = ornamentapultLink; ProblemOrnamentapult = 0; } else if (o.match(/two whole/) && ProblemPWD == 0) { OrnamentapultStatusSpan.innerHTML = day(2); OrnamentapultLinkSpan.innerHTML = ornamentapultLink; ProblemOrnamentapult = 0; } else if (o.match(/three days/) && ProblemPWD == 0) { OrnamentapultStatusSpan.innerHTML = day(3); OrnamentapultLinkSpan.innerHTML = ornamentapultLink; ProblemOrnamentapult = 0; } else if (o.match(/four days/) && ProblemPWD == 0) { OrnamentapultStatusSpan.innerHTML = day(4); OrnamentapultLinkSpan.innerHTML = ornamentapultLink; ProblemOrnamentapult = 0; } else if (o.match(/into orbit/) && ProblemPWD == 0) { OrnamentapultStatusSpan.innerHTML = day(5); OrnamentapultLinkSpan.innerHTML = ornamentapultLink; ProblemOrnamentapult = 0; } else if (ProblemOrnamentapult || ProblemPWD) { //in case of server hicups or dividing by 0 OrnamentapultStatusSpan.innerHTML = "There was an error."; OrnamentapultLinkSpan.parentNode.removeChild(OrnamentapultLinkSpan); } } } function day(num) { if(num == 0){ return 'Last time used:<h2>Today</h2>'; } else if (num == 5){ return "Last time used:<h2>At least 5 days ago</h2>Waiting any longer won't increase item quality.<br />"; } else { return 'Last time used:<h2>'+num+' days ago</h2>'; } }