[Script Legal] Granjeo con selector de unidades

  • Autor de hilo DeletedUser23980
  • Fecha de inicio

DeletedUser23980

Guest
Titulo del tema: Granjeo con selector de unidades a utilizar, maximo de saqueo y espia opcional

Este script es basado en la idea de un script legal de granjeo que se puede hallar en este mismo foro en la seccion de
scripts permitidos pero no tiene muchas opciones, (o las que yo queria asi que me las he hecho).

Lo hice para poder seleccionar previo que unidades se desean para saquear,
el máximo de recursos a saquear y que el espia sea opcional.

El script busca que cantidad de unidades se tiene, calcula cuantas son necesarias para saquear el maximo dado,
y rellena el formulario con el numero en la casilla debida, según se haya activado las unidades, es decir,
si se activa Lanceros, no se activa Espadas, y se activa Hachas. El script llenará tantos lanceros sea necesario,
la siguiente vez, si no hay suficientes Lanceros disponibles, colocara los que hay y el resto llenará con las Hachas...
asi sucesivamente por cada uso.

De igual manera, coloca en el formulario las coordenadas del pueblo, verificando antes si no hay un ataque de ida
o vuelta a ese mismo pueblo. Por lo tanto, si hay un ataque iendo o viniendo de ese pueblo, sencillamente se lo salta
del granjeo.

Como Hacerlo funcionar?
  1. Debe ser utilizado desde en la Plaza de reuniones.
  2. Se coloca la lista de coordenadas separadas por puntos (.): XXX1|YYY1.XXX2|YYY2
  3. Se coloca el maximo a saquear por pueblo, separado por punto (.): ####1.####2
  4. Donde ####1 es el máximo de recursos a saquear de XXX1|YYY1 y ####2 de XXX2|YYY2
  5. Se coloca el maximo de capacidad de cada unidad segun el mundo que se pretende utilizar el script.
  6. Se activa o desactiva el espia opcional con el granjeo.
  7. Se activan las unidades a utilizar para granjear. (obviamente hay unidades que no se deberian usar en granjeos)

Si activan una unidad cuya capacidad de carga de recursos es 0 pillos, el script la desactiva y no la utiliza,
dejando todo a CERO eh, que está la posibilidad en caso que un mundo varie luego las capacidades de 0 a algunas unidades.
Si resulta que hay menos tropas de las necesarias para granjear el maximo de recursos colocado, les avisara con ventana
emergente, no sea que envíen un granjeo sin querer de 1 Lancero solitario y que se estampe, mientras que si las tropas
son suficientes, continua sin aviso y solo nos resta hacer click en atacar y luego en ok como es normal.

Nombre de la entrada:
Un nombre? no se, ponerle Granjeador 2012, creativo no?

URL de la imagen: Ehm no... N/A

URL de destino:
El script a validar, con comentarios de donde se colocan los datos. ( //comentario )

[SPOIL]
PHP:
javascript:
var Unidades=['unit_input_spear','unit_input_sword','unit_input_axe','unit_input_archer','unit_input_spy','unit_input_light','unit_input_marcher','unit_input_heavy','unit_input_ram','unit_input_catapult','unit_input_knight','unit_input_snob']; //Unidades del mundo por orden en la plaza de reuniones por columnas
var Activar=[true,false,true,false,false,true,true,true,false,false,true,false];	//Correspondiente a la lista de arriba de unidades: true activa la unidad para granjear, false para desactivarla. (obviamente hay unidades que jamas deberian activarse)
var Cuantos=[];	//No tocar aqui
var Capacidad=[];	//No tocar aqui tampoco
//Aqui si, colocar el maximo de capacidad para cada unidad segun el mundo
Capacidad['unit_input_spear']=[25];
Capacidad['unit_input_sword']=[15];
Capacidad['unit_input_axe']=[10];
Capacidad['unit_input_archer']=[10];
Capacidad['unit_input_spy']=[0];
Capacidad['unit_input_light']=[80];
Capacidad['unit_input_marcher']=[50];
Capacidad['unit_input_heavy']=[50];
Capacidad['unit_input_ram']=[0];
Capacidad['unit_input_catapult']=[0];
Capacidad['unit_input_knight']=[100];
Capacidad['unit_input_snob']=[0];
var espiar=true; //Colocar true para enviar 1 espia con cada granjeo, false para no enviarlo
var doc=document;if(window.frames.length>0)doc=window.main.document;url=document.URL;
if(url.indexOf('screen=place')==-1)alert('Debes ejecutar el script en la Plaza de Reuniones');
else{
	var coord="000|000.000|000"; //Coordenadas de los pueblos a saquear, separados por puntos XXX|YYY.XXX|YYY
	coords=coord.split(".");
    var tope="5000.5000";	//Cuanto saquear (capacidad) de cada pueblo separado por puntos (.)
	topes=tope.split(".");
	var t=0;
	for(var i=0; i < coords.length; i++){
		$("table.vis > tbody > tr > td > span > a > span").each(function(){
			var existe=false;
			if($(this).html().indexOf(coords[i]) != -1){
				existe = true;
			}	
			if(!existe){
				selectAllUnits(true);
				var activos=0;
				for(var j=0;j<Unidades.length;j++){
					if(Activar[j]){
						if($("#"+Unidades[j]).val()==0 || Capacidad[Unidades[j]]==0){
							Activar[j]=false;
							Cuantos[j]=0;
						}else{
							Cuantos[j]=$("#"+Unidades[j]).val();
						}
					}else{
						Cuantos[j]=0;
					}
				}
				selectAllUnits(false);
				var aux=0;
				for(var k=0;k<Cuantos.length;k++){
					if(aux==0){
						var top=topes[i];
					}else{
						var top=aux;
					}
					var N=Math.ceil(top/Capacidad[Unidades[k]]);
					if(N > Cuantos[k]){
						N=Cuantos[k];
						$("#"+Unidades[k]).val(N);
						aux=top-N*Capacidad[Unidades[k]];
						t+=Capacidad[Unidades[k]]*N;
					}else{
						aux=0;
						$("#"+Unidades[k]).val(N);
						var x=coords[i].split("|")[0];
						var y=coords[i].split("|")[1];
						$("#inputx").val(x);
						$("#inputy").val(y);
						t+=Capacidad[Unidades[k]]*N;
						if(espiar) $("#unit_input_spy").val(1);
						break;
					}
				}
				if(t < topes[i]){
					alert("No hay suficientes unidades activas para cubrir los "+topes[i]+" recursos");
				}
				return false;
			}
		});
		if(!existe){ break; }
	}
}
[/SPOIL]

El script para copiar, pegar y probar, sin los comentarios de explicacion (que por alguna razon no permiten que funcione, me refiero a los //comentario que salen en el de arriba) y sin espacios ni saltos de linea, es decir, minified:

[SPOIL]
PHP:
javascript:var Unidades=['unit_input_spear','unit_input_sword','unit_input_axe','unit_input_archer','unit_input_spy','unit_input_light','unit_input_marcher','unit_input_heavy','unit_input_ram','unit_input_catapult','unit_input_knight','unit_input_snob'];var Activar=[true,false,false,false,false,false,false,false,false,false,false,false];var Cuantos=[];var Capacidad=[];Capacidad['unit_input_spear']=[25];Capacidad['unit_input_sword']=[15];Capacidad['unit_input_axe']=[10];Capacidad['unit_input_archer']=[10];Capacidad['unit_input_spy']=[0];Capacidad['unit_input_light']=[80];Capacidad['unit_input_marcher']=[50];Capacidad['unit_input_heavy']=[50];Capacidad['unit_input_ram']=[0];Capacidad['unit_input_catapult']=[0];Capacidad['unit_input_knight']=[100];Capacidad['unit_input_snob']=[0];var espiar=false;var doc=document;if(window.frames.length>0)doc=window.main.document;url=document.URL;if(url.indexOf('screen=place')==-1)alert('Para ejecutar el script necesitas estar en la Plaza de Reuniones');else{var coord="000|000.000|000";coords=coord.split(".");var tope="5000.5000";topes=tope.split(".");var t=0;for(var i=0; i < coords.length; i++){var existe=false;$("table.vis > tbody > tr > td > span > a > span").each(function(){if($(this).html().indexOf(coords[i]) != -1){existe = true;}if(!existe){selectAllUnits(true);var activos=0;for(var j=0;j<Unidades.length;j++){if(Activar[j]){if($("#"+Unidades[j]).val()==0 || Capacidad[Unidades[j]]==0){Activar[j]=false;Cuantos[j]=0;}else{Cuantos[j]=$("#"+Unidades[j]).val();}}else{Cuantos[j]=0;}}selectAllUnits(false);var aux=0;for(var k=0;k<Cuantos.length;k++){if(aux==0){var top=topes[i];}else{var top=aux;}var N=Math.ceil(top/Capacidad[Unidades[k]]);if(N > Cuantos[k]){N=Cuantos[k];$("#"+Unidades[k]).val(N);aux=top-N*Capacidad[Unidades[k]];t+=Capacidad[Unidades[k]]*N;}else{aux=0;$("#"+Unidades[k]).val(N);var x=coords[i].split("|")[0];var y=coords[i].split("|")[1];$("#inputx").val(x);$("#inputy").val(y);t+=Capacidad[Unidades[k]]*N;if(espiar) $("#unit_input_spy").val(1);break;}}if(t < topes[i]){alert("No hay suficientes unidades activas para cubrir los "+topes[i]+" recursos");}return false;}});if(!existe){ break; }}}
[/SPOIL]

Bien, funciona como se espera, cuestion de configurarlo una sola vez para cada pueblo que tengamos y colocarnos en la plaza de reuniones,
llena el formulario y solo nos preocupapos por dar click en atacar y luego en ok.

Si lo validan, lo usaría como el script de Granjeo legal que está en los permitidos, desde los bookmarks, pero como no tengo premium,
no puedo decirles como colocarlo para los de premium.

Cualquier cosa me haya faltado la agregaré cuando lo comenten, si no he cubierto algo o si algo parece que no funciona.
 
Última edición por un moderador:
Arriba