您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds an 'Add Fuel 10x' button to Light Rising Browser Game
// ==UserScript== // @name Light Rising AutoFuel // @namespace http://userscripts.org/users/125692 // @description Adds an 'Add Fuel 10x' button to Light Rising Browser Game // @grant GM_getValue // @grant GM_setValue // @include *lightrising.com*game.cgi // @version 1.1 // ==/UserScript== //this script adds a 10x add fuel button to light rising browser game. //button appears only if player has enough sticks and ap. //currently requires at least 10 of each for button to appear. //derived from Simons auto search script for SHARTAK browser game. (function() { //alert("ffs"); //console.log("AutoFuel Script up and running"); //FIRST SEE IF SCRIPT SHOULD BE RUN var fuelbutton=document.evaluate( "//input[@value='Add Fuel']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0); if(!fuelbutton){ return;//stop if the fuelbuttons not there. }; //console.log("Have Fuel button"); //THEN DO SCRIPT //constants var MAXNUMFUELS=10; if (!this.GM_getValue || (this.GM_getValue.toString && this.GM_getValue.toString().indexOf("not supported")>-1)) { this.GM_getValue=function (key,def) { return localStorage[key] || def; }; this.GM_setValue=function (key,value) { return localStorage[key]=value; }; this.GM_deleteValue=function (key) { return delete localStorage[key]; }; } //variables var resourcelvl=-1;//current pages resource lvl (assuming we have fuel results) var fuelresult;//currentpages fuel result (assuming we have fuel results) var arewefueling;//boolean are we? //functions function outputfuelresults(texttoadd){ //texttoadd='ddd'; var gib=document.getElementsByClassName("gamebox infobox")[0]; var fueltextelement=gib.getElementsByTagName('b')[0]; var divwewant=gib.firstElementChild; var rawtext=GM_getValue('GMallfuelresults',''); GM_setValue('GMallfuelresults',''); //var rawtext='text\nline1\nline2\nline3\nline4'; var arraytext=rawtext.split('\n'); arraytext[0]=texttoadd;//this can be over written as its not a fuel result var textline= document.createElement("p")//where we will place the results for (i=0;i<arraytext.length;i++){//populating results textline.innerHTML=textline.innerHTML+arraytext[i]+'<br>'; } divwewant.insertBefore(textline,fueltextelement.nextSibling ); } function cleanupforexit(){ GM_setValue('GMarewefueling',false);//not fueling GM_setValue('GMallfuelresults','');//clear old results GM_setValue('GMnumoffuelsleft',0); return 1 } //SCRIPT START var numberoffuels=MAXNUMFUELS;//this is the actual number of refuel attempts //we have to store another GM value. number of attempts if we do this. too hard for now //get number of sticks we have. var ginvbox=document.getElementsByClassName("gamebox invbox")[0]; //we are looking for <div title="a sturdy wooden stick"> var stickdiv=document.evaluate( "//div[@title='a sturdy wooden stick']", ginvbox, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0); if(!stickdiv){//no sticks. whats the point. abort! return; } //otherwise we set number of time to repeat to min of 10 or number of sticks.(unless one stick var numofsticks=Number(stickdiv.textContent.match(/(\d+)/)[1]); /*if (numofsticks==1){ return; } else{ numberoffuels=Math.min(numofsticks,MAXNUMFUELS); }*/ //setupthebutton //grab ap as we make the button invisible if not enough ap to do whole fuel var gsb=document.getElementsByClassName("gamebox statsbox")[0]; var fueltextelement=gsb.getElementsByTagName('b'); var aptext=fueltextelement[1];//second bold thing is ap. var test=aptext.innerHTML.match(/(\d+)[^0-9]*(\d+)/) // extract the first 2 numbers var availableap=Number(test[1]); //console.log("running ap=",availableap); //make new autofuel button by cloning fuel button fuel10buttonform=fuelbutton.parentNode.cloneNode(true);//make a new copy of the fuel button fuelbutton.parentNode.parentNode.insertBefore(fuel10buttonform,fuelbutton.parentNode.nextSibling); fuel10button=fuel10buttonform.firstElementChild; fuel10button.setAttribute("value", "Add Fuel "+numberoffuels+ "x"); if (numberoffuels>availableap||numberoffuels>numofsticks){//we don't have enough ap or sticks so hide button fuel10button.style.display='none'; } fuel10buttonform.id="AutoFuelForm";//id so we can easy find it later fuel10button.addEventListener("click", function(event) {GM_setValue('GMarewefueling',true); GM_setValue('GMnumoffuelsleft',numberoffuels);},true); //console.log("button set up"); var arewefueling=GM_getValue('GMarewefueling',false); //console.log("are we fueling=",arewefueling); if(arewefueling){ //console.log("fueling"); //well then there aught to be results to gather. var gib=document.getElementsByClassName("gamebox infobox")[0]; var fueltextelement=gib.getElementsByTagName('b'); if (fueltextelement.length>0){//foundsomething //console.log("found fuel text"); var fueltext=fueltextelement[0].innerHTML; var foundtext=fueltext.match(/([^.]+.)/);//finds the first sentence //console.log("found fuel text:",foundtext[1]); if (GM_getValue("GMallfuelresults",false)) { GM_setValue("GMallfuelresults", GM_getValue("GMallfuelresults","GM_getValue Error") + "\n" + foundtext[1]); } else{ GM_setValue("GMallfuelresults", "\n" + foundtext[1]); } //console.log("attempted to store fuel results"); var numoffuelsleft=Number(GM_getValue('GMnumoffuelsleft',0));//so we only get it once var outstring=""; var fueled=(numberoffuels-numoffuelsleft+1); //console.log("testing reasons to stop. numoffuelsleft=",numoffuelsleft); if (gib.innerHTML.match(/too hot to approach/)){//stop fueling as too hot //console.log("too hot"); if (fueled==1){//we tried to add fuel but it was too hot on the first attempt outstring="You tried to add a lot of fuel but couldn't even begin as the fire is too hot."; } else{ outstring="You added fuel " + ((fueled-1)==1?'once':(fueled-1)+' times') + " before stopping as the fire became too hot."; }//outstring=outstring.replace(/1 times/,'once'); outputfuelresults(outstring); return cleanupforexit();//quit script } else if (numoffuelsleft==1){//time to stop on 1 because fuel then reduce counter //console.log("done full ammount"); //alert("2"); outputfuelresults("You added fuel " + (numberoffuels-numoffuelsleft+1) + " times."); return cleanupforexit();//quit script } else if (gib.innerHTML.match(/have any sticks/)){ //alert("3"); //console.log("out of sticks"); outputfuelresults("You added fuel " + (fueled==1?'once':fueled+' times') + " before stopping as you have run out of fuel."); return cleanupforexit();//quit script } else{//we should fuel again! //console.log("TRY REFUELING"); GM_setValue('GMnumoffuelsleft',numoffuelsleft-1)//decrement fuelcounter document.getElementById('AutoFuelForm').submit();//fuel } } } //console.log("at the end"); //EOF })();