Source for "Auto-Farmscript"

By Zez
Has no other scripts.


// ==UserScript==
// @name           Auto-Farmscript
// @author         Zezuma
// @description    Travian Auto-farmscript
// @include        http://*.travian.*/*
// @exclude        http://forum.travian.*
// @email          Zezuma@live.nl
// @version        1.0 BETA
// ==/UserScript==


var eigenCoords;
if(false)
{
//names can differ per race and server


troepen = new Array();

	
};


function getNumber(tekst)
{
	var terug;
	//alert(tekst.indexOf("'")+1+"      "+tekst.lastIndexOf("'"));
	if((tekst.indexOf("=")+1 ) == 0 &&  tekst.lastIndexOf(";") == -1)
	{
		return 0;
	}else
	{
		return tekst.substring(tekst.indexOf("=")+1, tekst.indexOf(";"));
	}
};


function Random(minimum, maximum)
{	
	if(minimum == null && maximum == null )
	{
		minimum = 1000;
		maximum = 10000;
	}
	return Math.random()*(maximum-minimum+1);
		
};






function sendtroops()
{
	var tekst = document.URL;
	
	tekst = tekst.substring(tekst.indexOf("://")+3, tekst.lastIndexOf("/") );
	tekst = tekst+getEigen();
	var aantal = GM_getValue("teller"+tekst,0);
	var pagina = document.getElementById("lmid2").innerHTML;	
	if(pagina.indexOf("There isn't a Village on these coördinates.") > -1)
	{
		setTimeout( 'window.location.replace( "a2b.php")', Random(1000, 5000));
	}else{
	if( pagina.indexOf("kid") > -1)
	{
		var e = document.getElementsByTagName('form');
		e[0].submit();

	}else{
		var code = document.getElementById('lmid2').innerHTML;
		//alert (code.substr(code.lastIndexOf("t1.value"), 20));
		var type1 = getNumber(code.substr(code.lastIndexOf("t1.value"), 20));
		var type2 = getNumber(code.substr(code.lastIndexOf("t2.value"), 20));
		var type3 = getNumber(code.substr(code.lastIndexOf("t3.value"), 20));
		var type4 = getNumber(code.substr(code.lastIndexOf("t4.value"), 20));
		var type5 = getNumber(code.substr(code.lastIndexOf("t5.value"), 20));
		var type6 = getNumber(code.substr(code.lastIndexOf("t6.value"), 20));
		var type7 = getNumber(code.substr(code.lastIndexOf("t7.value"), 20));
		var type8 = getNumber(code.substr(code.lastIndexOf("t8.value"), 20));
		var type9 = getNumber(code.substr(code.lastIndexOf("t9.value"), 20));
		var type10 = getNumber(code.substr(code.lastIndexOf("t10.value"), 20));
		//alert(type1+","+type2+","+type3+","+type4+","+type5+","+type6+","+type7+","+type8+","+type9+","+type10);
		
		intevullen = new Array();
		intevullen = GM_getValue("farms"+tekst,"").split("\n");
		if(intevullen == "")
		{
			
			veranderDorp();
		}else{
		
		
			if(aantal < intevullen.length-1)
			{
				aantal = aantal+1;
			}else
			{
				aantal = 0;
			}
			
			//alert(aantal);	
			
			intevullen[aantal] = intevullen[aantal].split("|");
			intevullen[aantal][0] = intevullen[aantal][0].split(",");
			intevullen[aantal][1] = intevullen[aantal][1].split(","); 		
			//alert(type1+","+type2+","+type3+","+type4+","+type5+","+type6+","+type7+","+type8+","+type9+","+type10);
			if(		parseInt(intevullen[aantal][1][0]) > parseInt(type1) ||
					parseInt(intevullen[aantal][1][1]) > parseInt(type2) ||
					parseInt(intevullen[aantal][1][2]) > parseInt(type3) ||
					parseInt(intevullen[aantal][1][3]) > parseInt(type4) ||
					parseInt(intevullen[aantal][1][4]) > parseInt(type5) ||
					parseInt(intevullen[aantal][1][5]) > parseInt(type6) ||
					parseInt(intevullen[aantal][1][6]) > parseInt(type7) ||
					parseInt(intevullen[aantal][1][7]) > parseInt(type8) ||
					parseInt(intevullen[aantal][1][8]) > parseInt(type9) ||
					parseInt(intevullen[aantal][1][9]) > parseInt(type10) )
			{
				//alert ("Not enough troops!");
				/*alert(type1+","+type2+","+type3+","+type4+","+type5+","+type6+","+type7+","+type8+","+type9+","+type10);
				alert(intevullen[aantal][1][0]+","+intevullen[aantal][1][1]+","+intevullen[aantal][1][2]+","+intevullen[aantal][1][3]+","+intevullen[aantal][1][4]+","+intevullen[aantal][1][5]+","+intevullen[aantal][1][6]+","+intevullen[aantal][1][7]+","+intevullen[aantal][1][8]+","+intevullen[aantal][1][9]);*/
				veranderDorp();
			}else{
				
				//alert ("vul in");
				
				
				document.forms.namedItem("snd").elements.namedItem('t1').value= intevullen[aantal][1][0];
				document.forms.namedItem("snd").elements.namedItem('t2').value= intevullen[aantal][1][1];
				document.forms.namedItem("snd").elements.namedItem('t3').value= intevullen[aantal][1][2];
				document.forms.namedItem("snd").elements.namedItem('t4').value= intevullen[aantal][1][3];
				document.forms.namedItem("snd").elements.namedItem('t5').value= intevullen[aantal][1][4];
				document.forms.namedItem("snd").elements.namedItem('t6').value= intevullen[aantal][1][5];
				document.forms.namedItem("snd").elements.namedItem('t7').value= intevullen[aantal][1][6];
				document.forms.namedItem("snd").elements.namedItem('t8').value= intevullen[aantal][1][7];
				document.forms.namedItem("snd").elements.namedItem('t9').value= intevullen[aantal][1][8];
				document.forms.namedItem("snd").elements.namedItem('t10').value= intevullen[aantal][1][9];
				//held  document.forms.namedItem("snd").elements.namedItem('t1').value= "10";
				
				document.forms.namedItem("snd").elements.namedItem('c').value = 3;
				document.forms.namedItem("snd").elements.namedItem('x').value = intevullen[aantal][0][0];
				document.forms.namedItem("snd").elements.namedItem('y').value = intevullen[aantal][0][1];
				GM_setValue("teller"+tekst,aantal);
				document.forms.namedItem("snd").submit();
				//	document.namedItem("s1").submit();
			}
		}
	}
	}
};


function veranderDorp()
{

	var teller = 0 ;
	var linklijst = new Array();
	var doel;
	var plaats;
	dorplink = document.getElementById("lright1").innerHTML;
	//alert (dorplink);
	while(dorplink.indexOf("?newdid=") != -1)
	{
		linklijst[teller] = dorplink.substr(dorplink.indexOf("?newdid=")+8,8);
		linklijst[teller] = linklijst[teller].substring(0,linklijst[teller].indexOf("\""));
		teller++;
		dorplink = dorplink.substr(dorplink.indexOf("?newdid=")+15);
	}
	plaats = Math.round(Random(0, teller-1 )-0.5);
	//alert (plaats);
	doel = linklijst[plaats];
	//alert (doel);
	//window.location.replace( "a2b.php?newdid="+doel+"");
	setTimeout( 'window.location.replace( "a2b.php?newdid='+doel+'")', Random(15000, 50000));
	//alert (dorplink);
	//stringObject.substr(start,length)
	
};

function getEigen()
{
	var code = document.getElementById('lright1').innerHTML;

	code = code.substring(code.indexOf("class=\"active_vl\"")+1);
	//alert (code.substr(code.indexOf(">("),code.indexOf("center dlist2")));
	var x = code.substring(code.indexOf(">(")+2, code.indexOf("center dlist2")-17);
	var y = code.substring(code.indexOf("left dlist3")+13, code.indexOf(")"));;
	//alert (x+"|"+y);
	return (x+y);
};






function voegToe()
{
	var code = document.getElementById('lmid2').innerHTML;
	var x = code.substring(code.indexOf("(")+1,code.indexOf("|"));
	var y = code.substring(code.indexOf("|")+1,code.indexOf(")"));
	var dorpnaam = code.substring(code.indexOf("<h1>")+4,code.indexOf("("));					
	addList(x+","+y+"|10,0,0,0,0,0,0,0,0,0|"+dorpnaam);
	//alert(dorpnaam+"("+x+"|"+y+")"); opslaan moet nog gemaakt worden. afhankelijk van coordinatan van geselecteerd dorp -> eerst coordinaten ophalen.
};
function addList(add)
{
	
	var tekst = document.URL;
	tekst = tekst.substring(tekst.indexOf("://")+3, tekst.lastIndexOf("/") );
	tekst = tekst+getEigen();
	var doel = GM_getValue("farms"+tekst,"");
	doel = doel+"\n"+add;
	//alert(doel);
	GM_setValue("farms"+tekst,doel);

};

function addForm()
{
	addButton = document.createElement('input');
	addButton.type = "button";
	addButton.value = "Add";
	
	addButton.addEventListener('click',voegToe,true);
	document.body.appendChild(addButton);
 

	addButton.style.border = "0.5px solid #CCCCCC";
	addButton.style.background = "white";
	addButton.style.color = "#CCCCCC";
	addButton.style.position = "absolute";
	addButton.style.top = "475px";
	addButton.style.right = "75px";
	addButton.style.zIndex = "999";
	addButton.style.width = "100px";
	addButton.style.height = "25px";
};


function geefOverzicht()
{
	var tekst = document.URL;
	tekst = tekst.substring(tekst.indexOf("://")+3, tekst.lastIndexOf("/") );
	tekst = tekst+getEigen();
	
	bList = document.createElement('textarea');
	/*bList.style.border = "1px solid black";
	bList.style.background = "#ccc";*/
	bList.style.position = "absolute";
	bList.style.top = "0px";
	bList.style.left = "850px";
	bList.style.zIndex = "999";
	bList.style.width = "400px";
	bList.style.height = "475px";
	bList.value = GM_getValue("farms"+tekst,"");
	bList.addEventListener('blur',function () { GM_setValue("farms"+tekst,bList.value); bList.value = GM_getValue("Farms"+tekst,"testerdetest"); alert("Saved"); },true);
	
	addButton = document.createElement('input');
	addButton.type = "button";
	addButton.value = "Start/Stop"; 
	
	addButton.addEventListener('click',startenstop,true);
	addButton.style.position = "absolute";
	addButton.style.top = "475px";
	addButton.style.right = "75px";
	addButton.style.zIndex = "999";
	addButton.style.width = "100px";
	addButton.style.height = "25px";
	
	
	
	document.body.appendChild(addButton);
	
	
	
	document.body.appendChild(bList);
	
	
	
};

function startenstop()
{
	var tekst = document.URL;
	tekst = tekst.substring(tekst.indexOf("://")+3, tekst.lastIndexOf("/") );
	if(GM_getValue("valaan"+tekst,0) == 0)
	{
		GM_setValue("valaan"+tekst,1);
		//alert("start");
	}else{
		GM_setValue("valaan"+tekst,0);
		//alert("stop");
	}
	window.location.reload(); 
	
	
};





function valAan()
{
	var tekst = document.URL;
	
	
	tekst = tekst.substring(tekst.indexOf("://")+3, tekst.lastIndexOf("/") );
	
	
	
	if(GM_getValue("valaan"+tekst,0) == 1)
	{
		addButton = document.createElement('input');
		addButton.type = "button"; // type bepalen
		addButton.value = "Script running, press here to stop!";
	
		addButton.addEventListener('click',startenstop,true);
		addButton.style.position = "absolute";
		addButton.style.top = "250px";
		addButton.style.left = "500px";
		addButton.style.zIndex = "999";
		addButton.style.width = "25%";
		addButton.style.height = "50%";
		addButton.style.background = "#FF0000";
	
		document.body.appendChild(addButton);
		
		var url = document.URL;
		url = url.substring(url.lastIndexOf("/")+1);
		
		switch(url)
		{
				case "a2b.php":
				setTimeout( sendtroops, Random());
	 				 break;
				default:
					 setTimeout( 'window.location.replace( "a2b.php" )', Random());
	
		}

		
	}
	
	
};









function hoofdfunctie()
{
	
	
	tekst = document.body.innerHTML; // In case 'Unable to load site' is showed, try to Refresh the page.
	if(tekst.indexOf(" <!-- ERROR ITEM CONTAINER") != -1)
	{
		window.location.reload();
	}

	
	

	getEigen()
	var url = document.URL;
	url = url.substring(url.lastIndexOf("/")+1);
	//alert (url);
	switch(url)
	{
	case "build.php?gid=16":
	 	geefOverzicht();  
	default:
		valAan();
	  break;
	}
	if (url.indexOf('karte.php?d=') > -1) {
	addForm();
	}
	
	
};



window.addEventListener('DOMContentLoaded', hoofdfunctie, false);
if (document.body) hoofdfunctie();