// ==UserScript== // @name CS2 ion Trail Time to Life Info // @namespace CS // @description adds Max TTL for Ion Trails, and detailed info in a popupbox on hovering it to the scan ion trail page. // @include http://*.chosenspace.com/index.php?go=scan_trails* // ==/UserScript== function isOdd(num) { return num % 2;} var trail = new Array(); var iontags,ionout,tionout,trail,newinner, rightgrab, l; var righttag = document.evaluate("//td[@align='RIGHT']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for(var i = 0;i < righttag.snapshotLength; i++) { if (!isOdd(i)) { l = i/2; iontags = document.evaluate("//td [contains (., '(') and (contains(.,'.')) and not (contains(.,'CE')) and not (contains(.,'-'))] ", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); ionout=iontags.snapshotItem(l); tionout = ionout.textContent.split('.')[1].split(')')[0]; trail[l]=parseInt(tionout); rightgrab=righttag.snapshotItem(i); if(rightgrab.innerHTML=='-') { (function (i) { GM_xmlhttpRequest({ method: "GET", url: "http://black-beach.net/db/inject/shipidinject.php?trail=" + trail[l], headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(x) { if (x.responseText!=",") { var rshipid=x.responseText.split(",")[0]; var rdesign=x.responseText.split(",")[1]; righttag.snapshotItem(i).innerHTML = "" + rdesign + ""; } } }); }) (i); } } } function roundNumber(num, dec) { var result = String(Math.floor(num*Math.pow(10,dec))/Math.pow(10,dec)); if(result.indexOf('.')<0) {result+= '.';} while(result.length- result.indexOf('.')<=dec) {result+= '0';} return result; } function DaysBetweenDateAndNow(yr, mo, dy, hr, mi, se) { // Determine the milliseconds per day. var MinMilli = 1000 * 60 var HrMilli = MinMilli * 60 var DyMilli = HrMilli * 24 // Determine today's UTC year, month, and day. var d = new Date(); var yeartoday = d.getUTCFullYear(); var monthtoday = d.getUTCMonth(); var dayofmonthtoday = d.getUTCDate(); var houroftoday = d.getUTCHours(); var minuteoftoday = d.getUTCMinutes(); var secondoftoday = d.getUTCSeconds(); // Get the milliseconds since 1/1/1970 UTC. var t1 = Date.UTC(yr, mo - 1, dy, hr, mi, se) var t2 = Date.UTC(yeartoday, monthtoday, dayofmonthtoday, houroftoday, minuteoftoday, secondoftoday); // Determine the difference in minutes. var mins = (t2 - t1) / MinMilli; return(mins); } var currentce = roundNumber(DaysBetweenDateAndNow(2006,03,16,17,27,20)/100,2); var cetimeandtext= "Year " + currentce + " CE"; alltags=document.evaluate("//input[@value='Sector']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); thistag=alltags.snapshotItem(0); if(thistag){ function striptonum(thisstring){ thisstring+=""; return thisstring.replace(/\D/g,''); } alltags=document.evaluate("//text()[contains(.,' CE')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); thistag=alltags.snapshotItem(0); var rece=/year\s.*\sce/i; var csoffsettime=1142530020; var cenow=(((striptonum(rece.exec(cetimeandtext)))*60)+csoffsettime)*1000; alltags=document.evaluate("//a[contains(@href,'view=sector')]",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); at=alltags.snapshotLength; var retime=/\d{1,}\.\d{2,2}\sce/i; var retrail=/\d*\./; var date=new Date(); function checkTime(i){if(i<10)i="0"+i;return i;} var scaninfo={ '0':{'n':"0.1",'t':90}, '1':{'n':"0.2",'t':80}, '2':{'n':"0.3",'t':70}, '3':{'n':"0.4",'t':60}, '4':{'n':"0.5",'t':50}, '5':{'n':"0.6",'t':40}, '6':{'n':"0.7",'t':30}, '7':{'n':"0.8",'t':20}, '8':{'n':"0.9",'t':10}, '9':{'n':"1.0",'t':0} } var trailstart,trailduration,trailend,line,newdiv,newspan,trailcalcend,scann,scant; for(var i=0;i=0;k--){ scann=scaninfo[k]['n']; scant=scaninfo[k]['t']; trailscanend=(trailstart+trailduration)-(scant*60000); date.setTime(trailscanend); if(k==9)newspan.appendChild(document.createTextNode(' [end '+(Math.floor(((trailscanend/1000)-csoffsettime)/60)/100)+' CE]')); newspan.appendChild(newpit(scann+'\u00A0Scanner:\u00A0'+(trailcalcend-scant)+'\u00A0min\u00A0@\u00A0'+checkTime(date.getDate())+'.'+checkTime(date.getMonth()+1)+'.'+checkTime(date.getFullYear())+'\u00A0'+checkTime(date.getHours())+':'+checkTime(date.getMinutes()))); } newdiv.appendChild(newspan); //main div injection line.children[5].firstChild.style.display='none'; line.children[5].appendChild(newdiv); } }