FBHW - Advanced RPSLS

By kidfierce Last update Jan 5, 2009 — Installed 315 times.

There are 1 previous version of this script.

// ==UserScript==
// @name           FBHW - Advanced RPSLS
// @namespace      http://localhost
// @description    Automatically Plays RPSLS For you to a strategy that plays far more consistantly than the other scripts by skipping certain hints. Use in conjunction with my FBHW - RPSLS Refresh script to macro the whole process. Based on the original RPSLS Script by Xyan Flux.//
// @description    Virtually indetectable (as long as you bank at reset).//
// @author	   KidFiercer
// @author         Xyan Flux
// @version        1.1.0
// @include        http://www.hobowars.com/fb/game.php* 
// @include        http://hobowars.com/fb/game.php* 
// @exclude
// ==/UserScript==


var auto=1;      //auto click 0=disabled,1=enabled
var dispInfo=0;  //display extended info 0=disabled,1=enabled


/* You can decode the color (gameID) by using java.awt.Robot or equivalent. 
Color c = robot.getPixelColor(x,y);
int gameID = c.getRGB()&16777215;
if(gameID==16711680){//FF0000
	isMainPage=true;
}else if(gameID==15597568){//EE0000
	isNoCash=true;
}else if(gameID==14483456){//DD0000
	isNoAwake=true;
}else{
	hint = gameID%7; gameID/=7;
	yourMove = gameID%6; gameID/=6;
	johnsonMove = gameID%7; gameID/=7;
	bet = gameID*50;
}
*/


var menu, contents;

menu = document.getElementById('menu');
contents = document.getElementById('contents');

if(contents){
	if(contents.textContent.match('City Hall.*')){

		var page=0;        //0=NaN,1=Play RPSLS,2=Main City Hall,3=No Cash,4=No Awake
		var hint=0;        //0=NaN,1=Tongue,2=Ground,3=Thumb,4=Ears,5=Eyes,6=Nothing
		var yourMove=0;    //0=NaN,1=Rock,2=Paper,3=Scissors,4=Lizard,5=Spock
		var johnsonMove=0; //0=NaN,1=Rock,2=Paper,3=Scissors,4=Lizard,5=Spock,6=Goatse
		var bet='0';       // =dollars
		var betint=0;      // =bet/50
		var color='000000';
		var colorint=0;

		var link, linkText,additionalText;
		var allLinks, thisLink;
		allLinks = document.evaluate('//a[@href]',document,null,
			XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
		for (var i = 0; i < allLinks.snapshotLength; i++) {
			thisLink = allLinks.snapshotItem(i);
			if(thisLink.textContent=='Play Rock Paper Scissors Lizard Spock'){
				link =thisLink.href;
				linkText='Continue';
				page=2;
				break;
			}else if(thisLink.textContent=='Forget this'){
				link =thisLink.href;
				linkText='Skip';
				page=1;
				break;
			}
		}

		var text= contents.textContent;
		if (menu&&link&&text) {
			
			if(text.indexOf('gonna need')+1){
				linkText='Continue';
				page=3;
			}else if(text.indexOf('too tired')+1){
				linkText='Continue';
				page=4;
			}
			if(page==1){
				if(text.indexOf('ear wiggles')+1){
					link+='&action=rpsls&move=lizard';
					linkText='Lizard'
					hint=5;
				}else if(text.indexOf('ground')+1){
					link+='&action=rpsls&move=spock';
					linkText='Spock'
					hint=2;
				}else if(text.indexOf('his eyes')+1){
					link+='&action=rpsls&move=rock';
					linkText='Rock'
					hint=5;
				}else {
					link+='&action=rpsls';
					hint=6;
				}

				var firstDollar = text.indexOf('$');
				var secondDollar = text.indexOf('$',firstDollar+1);
				secondDollar = secondDollar<0?firstDollar:secondDollar
				var space = text.indexOf(' ',secondDollar);
				text = text.substring(0, space);
				bet = text.substring(secondDollar+1,space);

				if(text.indexOf('!')+1){
					if(text.indexOf('soul')+1){
						johnsonMove=6;
						yourMove=0;
					}else if(text.indexOf('rock')+1){
						johnsonMove=1;
						yourMove=1;
					}else if(text.indexOf('paper')+1){
						johnsonMove=2;
						yourMove=2;
					}else if(text.indexOf('scissors')+1){
						johnsonMove=3;
						yourMove=3;
					}else if(text.indexOf('lizard')+1){
						johnsonMove=4;
						yourMove=4;
					}else if(text.indexOf('spock')+1){
						johnsonMove=5;
						yourMove=5;
					}else if(text.indexOf('crushes Scissors')+1){
						johnsonMove=1;
						yourMove=3;
					}else if(text.indexOf('crushes Lizard')+1){
						johnsonMove=1;
						yourMove=4;
					}else if(text.indexOf('covers')+1){
						johnsonMove=2;
						yourMove=1;
					}else if(text.indexOf('disproves')+1){
						johnsonMove=2;
						yourMove=5;
					}else if(text.indexOf('cut')+1){
						johnsonMove=3;
						yourMove=2;
					}else if(text.indexOf('decapitate')+1){
						johnsonMove=3;
						yourMove=4;
					}else if(text.indexOf('eats')+1){
						johnsonMove=4;
						yourMove=2;
					}else if(text.indexOf('poisons')+1){
						johnsonMove=4;
						yourMove=5;
					}else if(text.indexOf('vaporizes')+1){
						johnsonMove=5;
						yourMove=1;
					}else if(text.indexOf('Spock smashes')+1){
						johnsonMove=5;
						yourMove=3;
					}
					if(text.match('.win!.*')){
						var temp=johnsonMove;
						johnsonMove=yourMove;
						yourMove=temp;
					}
				}else{
					johnsonMove=0;
					yourMove=0;
				}

				betint =parseInt(bet)/50;
				colorint= hint + yourMove*7 + johnsonMove*42 + betint*294;

				color='';
				var temp=colorint;
				var digit=0;
				for(var i=0;i<6;++i){
					digit=temp%16;
					if(digit<10){
						color=String.fromCharCode(digit+48)+color;
					}else{
						color=String.fromCharCode(digit+55)+color;
					}
					temp/=16;
				}

				//extended - additionalText ='   hint:'+hint+', yourMove:'+yourMove+', johnsonMove:'+johnsonMove+', bet:'+bet+', betint:'+betint +'color:'+color+', colorint:'+colorint;
				additionalText ='   hint:'+hint+', yourMove:'+yourMove+', johnsonMove:'+johnsonMove+', bet:'+betint +', gameID:'+color;


				if(auto){
					location.href = link;
				}
			}else if(page==2){
				color='FF0000';
				additionalText='';
				if(auto){
					location.href = link;
				}
			}else if(page==3){
				color='EE0000';
				additionalText='   No Cash';
			}else if(page==4){
				color='DD0000';
				additionalText='   No Awake';
			}

			var newElement = document.createElement("div");
			newElement.innerHTML='<div style="color: #'+color+';">\u2022<a href=' + link + '>' + linkText + '</a>' + (dispInfo?additionalText:'') +'</div>';

			menu.parentNode.insertBefore(newElement, menu.nextSibling);

		}
	}
}