Alerts you when the horn is ready to sound... Script Homepage: http://userscripts.org/scripts/show/53943
// ==UserScript== // @name Facebook Mousehunt Horn Alerter // @version 2.21 // @namespace b7cb83dfad25df80873d07c3d2eeae98 // @description Alerts you when the horn is ready to sound... Script Homepage: http://userscripts.org/scripts/show/53943 // @include http://apps.facebook.com/mousehunt/* // @include http://apps.new.facebook.com/mousehunt/* // ==/UserScript== var versionNumber="2.21a"; var adIDName="pagelet_ego_pane"; // ************************************************************************************************************************** // *** This script is the original script written by the author on userscripts userID: "osbron" *** // *** NOTE THAT I DO NOT TOLERATE ANY VARIANTS OR COPIES OF EITHER PART OR WHOLE OF THIS SCRIPT *** // *** ... *** // *** If you would like to copy any part of this script, please add a reference in your script to the address below *** // *** http://userscripts.org/scripts/show/53943 *** // ************************************************************************************************************************** // === BLACKLIST OF PEOPLE WHO COPIED THIS SCRIPT W/O adding references === // - CURRENTLY NONE - // // ** To remove your name from the blacklist, please add references, then contact me via userscripts mail ** // Note that I periodically check for variants of my script and update my blacklist... //GM_deleteValue('nobaitAlertDisabled'); // >>>*** Start of active code ***<<< var timervalue = -1; var Cmin, Rmins; var Csec, Rsecs; var titleOriginal=document.title; var addTime, oldTime; var firstPage=0; var lastTimer; var runOnce=0; var initialAlertState; var initialBaitAlertState; // Ad removal var sidebar_ads = document.getElementById("netego_organic"); if(sidebar_ads==null) sidebar_ads=document.getElementById(adIDName); function loadSidebar(){ if(sidebar_ads!=null){ sidebar_ads.innerHTML="<br><u><b>Useful Links</b></u>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><a href='http://mhwiki.hitgrab.com/wiki/index.php/Main_Page' target='_blank'><font color='#abcdef'><b>MhWiki</b></font></a>"; if(location.href=="http://apps.facebook.com/mousehunt/travel.php") sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><a href='http://furoma.com/travel_planner.php' target='_blank'><font color='#abcdef'><b><u>Travel Planner</u></b></font></a>"; else sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><a href='http://furoma.com/travel_planner.php' target='_blank'><font color='#abcdef'><b>Travel Planner</b></font></a>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><a href='http://www.facebook.com/pages/Facebook-Mousehunt-Horn-Alerter/130287697010759' target='_blank'><font color='#abcdef'><b>Facebook Script Page</b></font></a>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><a href='http://www.facebook.com/pages/Facebook-Mousehunt-Horn-Alerter/130287697010759?v=app_2373072738' target='_blank'><font color='#abcdef'><b>Report a bug</b></font></a>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><a href='http://userscripts.org/scripts/show/53943' target='_blank'><font color='#abcdef'><b>Script Homepage (For Updating)</b></font></a>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><br><u><b>Options</b></u>"; if(GM_getValue('alertDisabled', '0')==0) sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><form><input type='checkbox' name='alertTrue' checked> - Alert when ready (horn)</form>"; else sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><form><input type='checkbox' name='alertTrue'> - Alert when ready (horn)</form>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<div id='refreshReminder' style='color:red;font-weight:bold'></div>"; if(GM_getValue('nobaitAlertDisabled', '0')==0) sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<form><input type='checkbox' name='nobaitAlertTrue' checked> - Alert when no bait</form>"; else sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<form><input type='checkbox' name='nobaitAlertTrue'> - Alert when no bait</form>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<div id='nobaitRefreshReminder' style='color:red;font-weight:bold'></div>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><form onsubmit=window.open('http://mhwiki.hitgrab.com/wiki/index.php?title=Special%3ASearch&search='+document.getElementById('search').value+'&go=Go')><input type=text id='search'><br><input type='submit' value='Search MHWiki'></form><small>The page will refresh when you search...</small>"; sidebar_ads.innerHTML=sidebar_ads.innerHTML+"<br><br><i>You are using MH Horn Alerter <b>V"+versionNumber+"</b></i>"; } } loadSidebar(); var hornIndex = document.body.innerHTML.indexOf("next_activeturn_seconds"); timervalue=parseInt(document.body.innerHTML.substring(hornIndex+26,hornIndex+29)); var puzzleString = document.body.innerHTML.indexOf("has_puzzle"); var puzzleValue= document.body.innerHTML.substring(puzzleString+13,puzzleString+17); if(document.getElementById('app10337532241_huntTimer')!=null){ var builtInTimer = document.getElementById('app10337532241_huntTimer'); } if (document.body.innerHTML.indexOf("app10337532241_hud_location")!=null){ var locationId = document.body.innerHTML.indexOf("app10337532241_hud_location"); var locationIndex=document.getElementById('app10337532241_hud_location'); var locationString=document.body.innerHTML.substring(locationId+54,locationId+84); var huntLocation=locationString.substring(0, locationString.indexOf('<')+1); var displayString=locationString.substring(0, locationString.indexOf('<')); var i; for(i=0; i<huntLocation.indexOf('<'); i++){ if(huntLocation[i]=='\'') huntLocation=huntLocation.substring(0,i)+huntLocation.substring(i+1,huntLocation.indexOf('<')+1); } huntLocation=huntLocation.substring(0, huntLocation.indexOf('<')); locationIndex.innerHTML="<a href='http://mhwiki.hitgrab.com/wiki/index.php/"+huntLocation+"' target='_blank'><u><font color='#abcdef'>"+displayString+"</font></u></a>"; } /* if(timervalue>895 && timervalue<=900) lastTimer=timervalue-5; else lastTimer=timervalue; */ lastTimer=timervalue; function getHornTime(){ timervalue=parseInt(unsafeWindow.a10337532241_user?unsafeWindow.a10337532241_user.next_activeturn_seconds:-1); if(timervalue>=0 && timervalue!=lastTimer){ /* if(timervalue>895 && timervalue<=900) lastTimer=timervalue-5; else lastTimer=timervalue; */ lastTimer=timervalue; mainFunction(); } else{ builtInTimer = document.getElementById('app10337532241_huntTimer'); if(builtInTimer!=null) builtInTimer.innerHTML="<span style='font-size: 10px'>Sound your horn!</span>"; if (puzzleValue!='true') document.title="Horn READY! | "+titleOriginal; else document.title="King's Reward! | "+titleOriginal; setTimeout(function(){getHornTime();}, 200); } } function updateTitle(Rmins, Rsecs){ if(Rsecs<=-1){ Rsecs=59; } var Szero = ""; var currTime=new Date().getSeconds(); Rsecs=addTime-currTime; if(Rsecs>=60) Rsecs-=60; if(Rsecs<0) Rsecs+=60; if(oldTime<Rsecs) Rmins--; oldTime=Rsecs; if(firstPage==1){ GM_setValue('titleLastUpdated', new Date().getTime()+''); } else{ if (parseInt(GM_getValue('titleLastUpdated', '0')) + 5000 <= (new Date().getTime())){ GM_setValue('titleLastUpdated', new Date().getTime()+''); if(GM_getValue('alertDisabled', '0')==0) setTimeout(function() {alert("Hunter's Horn READY");if(location.href.search("#")==-1){window.location=location.href+"#";}else{window.location=location.href;}} , ((Rmins*60000)+(Rsecs*1000)+1000)); firstPage=1; } } if(runOnce==0){ if(document.getElementById('refreshReminder')!=null){ runOnce=1; if(document.getElementsByName('alertTrue')[0].checked) initialAlertState=1; else initialAlertState=0; if(document.getElementsByName('nobaitAlertTrue')[0].checked) initialBaitAlertState=1; else initialBaitAlertState=0; } } if(Rsecs<10) Szero="0"; if(Rmins<0 || (Rmins==0 && Rsecs<=0)){ document.title="Horn READY! | "+titleOriginal; builtInTimer = document.getElementById('app10337532241_huntTimer'); if(builtInTimer!=null) builtInTimer.innerHTML="<span style='font-size: 10px'>Sound your horn!</span>"; setTimeout(getHornTime(), 500); } else{ document.title=Rmins+":"+Szero+Rsecs+" min | "+titleOriginal; builtInTimer = document.getElementById('app10337532241_huntTimer'); if(builtInTimer!=null) builtInTimer.innerHTML="<span style='font-size: 10px'>Next Hunt: </span>"+Rmins+":"+Szero+Rsecs+" <span style='font-size: 10px'>mins</span>"; if(document.getElementById('refreshReminder')!=null){ if(document.getElementsByName('alertTrue')[0].checked && GM_getValue('alertDisabled', '0')==1){ if(initialAlertState==0){ GM_setValue('alertDisabled', '0'); } else{ document.getElementsByName('alertTrue')[0].checked=false; } runOnce=0; document.getElementById('refreshReminder').innerHTML="Please reload the page for<br>changes to take effect"; } else if(document.getElementsByName('alertTrue')[0].checked==false && GM_getValue('alertDisabled', '0')==0){ if(initialAlertState==1){ GM_setValue('alertDisabled', '1'); } else{ document.getElementsByName('alertTrue')[0].checked=true; } runOnce=0; document.getElementById('refreshReminder').innerHTML="Please reload the page for<br>changes to take effect"; } if(document.getElementsByName('nobaitAlertTrue')[0].checked && GM_getValue('nobaitAlertDisabled', '0')==1){ if(initialBaitAlertState==0){ GM_setValue('nobaitAlertDisabled', '0'); } else{ document.getElementsByName('nobaitAlertTrue')[0].checked=false; } runOnce=0; document.getElementById('nobaitRefreshReminder').innerHTML="Please reload the page for<br>changes to take effect"; } else if(document.getElementsByName('nobaitAlertTrue')[0].checked==false && GM_getValue('nobaitAlertDisabled', '0')==0){ if(initialBaitAlertState==1){ GM_setValue('nobaitAlertDisabled', '1'); } else{ document.getElementsByName('nobaitAlertTrue')[0].checked=true; } runOnce=0; document.getElementById('nobaitRefreshReminder').innerHTML="Please reload the page for<br>changes to take effect"; } } else{ sidebar_ads=document.getElementById(adIDName); loadSidebar(); } } if (puzzleValue=='true') { document.title="King's Reward! | "+titleOriginal; Rsecs=0; Rmins=0; } if(!(Rsecs<=0 && Rmins<=0)){ if(firstPage==1) setTimeout(function(){updateTitle(Rmins, Rsecs-1);},100); else setTimeout(function(){updateTitle(Rmins, Rsecs-1);},500); } else getHornTime(); } function mainFunction(){ if (document.getElementById('app10337532241_hud_titlebar')!=null){ var titleBar = document.getElementById('app10337532241_hud_titlebar'); var DisplayProgress = document.getElementById('app10337532241_hud_titlePercentage'); if(titleBar.title.indexOf('%')>2) DisplayProgress.innerHTML = titleBar.title.substring(0, titleBar.title.indexOf('%')); else DisplayProgress.innerHTML = titleBar.title.substring(0, titleBar.title.indexOf('%'))+".00"; } var baitQty = document.getElementById('app10337532241_hud_baitQuantity'); if((baitQty==null || baitQty==0) && GM_getValue('baitAlerted', '0')==0){ GM_setValue('baitAlerted', 1); if(GM_getValue('nobaitAlertDisabled', '0')==0) alert("Out of Bait!\nPlease rearm new bait"); } else if(baitQty!=null && baitQty!=0) GM_setValue('baitAlerted', 0); if(timervalue > 0) { firstPage=0; if (parseInt(GM_getValue('titleLastUpdated', '0')) + 800 <= (new Date().getTime())){ firstPage=1; } Cmin = new Date().getMinutes(); Csec = new Date().getSeconds(); //calculate timeoutvalue in milliseconds timeoutvalue = (parseInt(timervalue)) * 1000; //coverts it to minutes and seconds for display purposes Rmins = parseInt(timervalue/60); Rsecs = timervalue%60; addTime=Rsecs+Csec; oldTime=99999; // Title Timer starts updateTitle(Rmins, Rsecs); if(firstPage==1){ // Alerts when the horn is ready to sound if(GM_getValue('alertDisabled', '0')==0) setTimeout(function() {alert("Hunter's Horn READY");if(location.href.search("#")==-1){window.location=location.href+"#";}else{window.location=location.href;}} , timeoutvalue); } } else{ getHornTime(); } } mainFunction();