Die Stämme - Forum
 

Zurück   Die Stämme - Forum > Spielerprojekte > Scripte & Tools

Antwort
 
Themen-Optionen Thema durchsuchen
poncho
 
Benutzerbild von poncho
 
Registriert seit: 14.05.2003
Ort: Nahe Berlin
  Alt #1   20.04.2007, 10:19   Nach oben Mit Zitat antworten
Hallo Leute,

ich hab gestern ein kleines Javascript zum zählen der Truppen geschrieben... einfach so aus Interesse und Schwanzlängenvergleich

Da ich selber nur auf Welt 7 Spiele, kann ich es auch nur da testen. Wer ein bisschen Ahnung von Javascript hat, kann es aber sicherlich auch schnell für andere Welten anpassen.

Um es zu nutzen erstellt ihr einfach einen neuen Link in der Schnellleiste mit folgendem Code als Ziel-URL:
Code:
javascript:javascript:var b=new Array(0,0,0,0,0,0,0,0);var c=0;var d=document.getElementsByTagName('table');for(var a=0;a<d.length;a++){if(d[a].className=='main'){var e=d[a].getElementsByTagName('table');for(var i=0;i<e.length;i++){if(e[i].className='vis'){var f=e[i].getElementsByTagName('tr');for(var j=0;j<f.length;j++){if(f[j].className=='nowrap row_a'||f[j].className=='nowrap row_b'){var g=f[j].getElementsByTagName('td');for(var k=7;k<=14;k++){b[k-7]+=parseInt(g[k].firstChild.nodeValue);}c++;}}}}}}alert("Einheit - Truppen - Durchschnitt\n---------------------------------\nSpeerträger: "+b[0]+" ("+Math.round(b[0]/c)+")\nSchwertkämpfer: "+b[1]+" ("+Math.round(b[1]/c)+")\nAxtkämpfer: "+b[2]+" ("+Math.round(b[2]/c)+")\nSpäher: "+b[3]+" ("+Math.round(b[3]/c)+")\nLeichte Kavallerie: "+b[4]+" ("+Math.round(b[4]/c)+")\nSchwere Kavallerie: "+b[5]+" ("+Math.round(b[5]/c)+")\nRammböcke: "+b[6]+" ("+Math.round(b[6]/c)+")\nKatapulte: "+b[7]+" ("+Math.round(b[7]/c)+")");
Zum Zählen der Truppen geht ihr auf die Dorfübersicht in der "Kombiniert"-Ansicht und klickt auf den erstellten Link in der Schnellleiste. Es erscheint ein Popup mit der Summe aller Truppen.

Es werden dabei nur die Truppen gezählt, die auch auf der Dorf-Übersicht angezeigt werden. Truppen die nicht im Heimatdorf stehen, werden nicht gezählt.

Viel Spaß damit



Und ganz hinten noch der Code ohne Komprimierung, damit jeder sehen kann, dass der Code nichts böses macht
Code:
var troups = new Array(0, 0, 0, 0, 0, 0, 0, 0);
var numvil = 0;
var main = document.getElementsByTagName('table');
for(var a = 0; a < main.length; a++)
{
	if(main[a].className == 'main')
	{
		var par = main[a].getElementsByTagName('table');
		for(var i = 0; i < par.length; i++)
		{
			if(par[i].className = 'vis')
			{
				var rows = par[i].getElementsByTagName('tr');
				for(var j = 0; j < rows.length; j++)
				{
					if(rows[j].className == 'nowrap row_a' || rows[j].className == 'nowrap row_b')
					{
						var cells = rows[j].getElementsByTagName('td');
						for(var k = 7; k <= 14; k++)
						{
							troups[k-7] += parseInt(cells[k].firstChild.nodeValue);
						}
						numvil++;
					}
				}
			}
		}
	}
}
alert(
	"Einheit - Truppen - Durchschnitt\n" +
	"---------------------------------\n" +
	"Speerträger: " + troups[0] + " (" + Math.round(troups[0]/numvil) + ")\n" +
	"Schwertkämpfer: " + troups[1] + " (" + Math.round(troups[1]/numvil) + ")\n" +
	"Axtkämpfer: " + troups[2] + " (" + Math.round(troups[2]/numvil) + ")\n" +
	"Späher: " + troups[3] + " (" + Math.round(troups[3]/numvil) + ")\n" +
	"Leichte Kavallerie: " + troups[4] + " (" + Math.round(troups[4]/numvil) + ")\n" +
	"Schwere Kavallerie: " + troups[5] + " (" + Math.round(troups[5]/numvil) + ")\n" +
	"Rammböcke: " + troups[6] + " (" + Math.round(troups[6]/numvil) + ")\n" +
	"Katapulte: " + troups[7] + " (" + Math.round(troups[7]/numvil) + ")"
);

Geändert von poncho (20.04.2007 um 15:33 Uhr)
poncho ist offline  
jumpa
 
Benutzerbild von jumpa
 
Registriert seit: 16.08.2006
  Alt #2   20.04.2007, 13:23   Nach oben Mit Zitat antworten
Nicht schlecht!

Funktioniert aber nicht auf welt11 und 12
jumpa ist offline  
Alexander der Große III
 
Benutzerbild von Alexander der Große III
 
Registriert seit: 18.10.2005
Ort: @Home
  Alt #3   20.04.2007, 13:27   Nach oben Mit Zitat antworten
Zitat:
Zitat von jumpa Beitrag anzeigen
Nicht schlecht!

Funktioniert aber nicht auf welt11 und 12
Rate mal... weils da Bogis gibt

lg
__________________
Alexander der Große III ist offline  
jumpa
 
Benutzerbild von jumpa
 
Registriert seit: 16.08.2006
  Alt #4   20.04.2007, 13:28   Nach oben Mit Zitat antworten
Zitat:
Zitat von Alexander der Große III Beitrag anzeigen
Rate mal... weils da Bogis gibt

lg


Soweit war ich auch schon!
Meine Frage war ja auch, ob er das auch für welt11 / 12 machen kann!
jumpa ist offline  
Sideshowbob
 
Benutzerbild von Sideshowbob
 
Registriert seit: 22.03.2007
  Alt #5   20.04.2007, 13:48   Nach oben Mit Zitat antworten
iwie geht des bei mri ned... oda ich mach was falsch

naja wen ich in die schnelleiste eingeb udn ok drück erscheint a fenster aba da steht imm 0 bei die truppen
__________________
Spoiler -.-':

Sideshowbob ist offline  
jumpa
 
Benutzerbild von jumpa
 
Registriert seit: 16.08.2006
  Alt #6   20.04.2007, 13:52   Nach oben Mit Zitat antworten
du musst vorher in die kombinierte übersicht wechseln.
jumpa ist offline  
Sideshowbob
 
Benutzerbild von Sideshowbob
 
Registriert seit: 22.03.2007
  Alt #7   20.04.2007, 14:51   Nach oben Mit Zitat antworten
bin ich!!

kan vlt mal eina nen screen machn??
__________________
Spoiler -.-':

Sideshowbob ist offline  
poncho
 
Benutzerbild von poncho
 
Registriert seit: 14.05.2003
Ort: Nahe Berlin
  Alt #8   20.04.2007, 15:35   Nach oben Mit Zitat antworten
Daran hab ich gar nicht gedacht. Ich spiele auf Welt 7 und dafür hab ich es auch geschrieben. Wer sich mit Javascript ein bisschen auskennt, kann es sicherlich schnell anpassen.
poncho ist offline  
Zappelphilipp
 
Benutzerbild von Zappelphilipp
 
Registriert seit: 14.02.2005
  Alt #9   20.04.2007, 20:32   Nach oben Mit Zitat antworten
Sehr nice!
Hab's mal für mich angepasst (wollte noch AGs und Händler haben ^^). Nur auf W9 mit Firefox getestet.

Code:
javascript:var troups = new Array(); var numvil = 0; var main = document.getElementsByTagName('table'); var names = new Array(); for(var a = 0; a < main.length; a++) { if(main[a].className == 'main') { var par = main[a].getElementsByTagName('table'); for(var i = 0; i < par.length; i++) { if(par[i].className = 'vis') { var rows = par[i].getElementsByTagName('tr'); for(var j = 0; j < rows.length; j++) { if(rows[j].className == 'nowrap row_a' || rows[j].className == 'nowrap row_b') { var cells = rows[j].getElementsByTagName('td'); if(names.length < 1) { for(var k=7; k <= (cells.length-1); k++) { names.push(rows[0].getElementsByTagName('th')[k].getElementsByTagName('img')[0].title); troups.push(0); } } var val=0; for(var k = 7; k <= (cells.length-1); k++) { val = cells[k].firstChild.nodeValue; if(!val) { val = cells[k].firstChild.innerHTML.replace(/<[^>]*>/g,'').replace(/\s+/,'').match(/\d+/)[0]; } troups[k-7] += parseInt(val,10); } numvil++; } } } } } } var msg = "Einheit - Truppen - Durchschnitt\n" + "---------------------------------\n"; for(var i = 0; i < troups.length; i++) { msg += names[i]+': '+troups[i] + " (" + Math.round(troups[i]/numvil) + ")\n"; } alert(msg);
Mit Einrückung:
Code:
javascript:var troups = new Array();
var numvil = 0;
var main = document.getElementsByTagName('table');
var names = new Array();
for(var a = 0; a < main.length; a++)
{
	if(main[a].className == 'main')
	{
		var par = main[a].getElementsByTagName('table');
		for(var i = 0; i < par.length; i++)
		{
			if(par[i].className = 'vis')
			{
				var rows = par[i].getElementsByTagName('tr');
				for(var j = 0; j < rows.length; j++)
				{
					if(rows[j].className == 'nowrap row_a' || rows[j].className == 'nowrap row_b')
					{
						var cells = rows[j].getElementsByTagName('td');
						if(names.length < 1) {
							for(var k=7; k <= (cells.length-1); k++) {
								names.push(rows[0].getElementsByTagName('th')[k].getElementsByTagName('img')[0].title);
								troups.push(0);
							}
						}
						var val=0;
						for(var k = 7; k <= (cells.length-1); k++)
						{
							val = cells[k].firstChild.nodeValue;
							if(!val) {
								val = cells[k].firstChild.innerHTML.replace(/<[^>]*>/g,'').replace(/\s+/,'').match(/\d+/)[0];
							}
							troups[k-7] += parseInt(val,10);
						}
						numvil++;
					}
				}
			}
		}
	}
}
var msg =
	"Einheit - Truppen - Durchschnitt\n" +
	"---------------------------------\n";
for(var i = 0; i < troups.length; i++) {
	msg += names[i]+': '+troups[i] + " (" + Math.round(troups[i]/numvil) + ")\n";
}
alert(msg);
__________________
hier steht nichts
Zappelphilipp ist offline  
Sportino I.
 
Benutzerbild von Sportino I.
 
Registriert seit: 16.02.2007
  Alt #10   20.04.2007, 21:08   Nach oben Mit Zitat antworten
Zitat:
Zitat von Zappelphilipp Beitrag anzeigen
Sehr nice!
Hab's mal für mich angepasst (wollte noch AGs und Händler haben ^^). Nur auf W9 mit Firefox getestet.

Code:
javascript:var troups = new Array(); var numvil = 0; var main = document.getElementsByTagName('table'); var names = new Array(); for(var a = 0; a < main.length; a++) { if(main[a].className == 'main') { var par = main[a].getElementsByTagName('table'); for(var i = 0; i < par.length; i++) { if(par[i].className = 'vis') { var rows = par[i].getElementsByTagName('tr'); for(var j = 0; j < rows.length; j++) { if(rows[j].className == 'nowrap row_a' || rows[j].className == 'nowrap row_b') { var cells = rows[j].getElementsByTagName('td'); if(names.length < 1) { for(var k=7; k <= (cells.length-1); k++) { names.push(rows[0].getElementsByTagName('th')[k].getElementsByTagName('img')[0].title); troups.push(0); } } var val=0; for(var k = 7; k <= (cells.length-1); k++) { val = cells[k].firstChild.nodeValue; if(!val) { val = cells[k].firstChild.innerHTML.replace(/<[^>]*>/g,'').replace(/\s+/,'').match(/\d+/)[0]; } troups[k-7] += parseInt(val,10); } numvil++; } } } } } } var msg = "Einheit - Truppen - Durchschnitt\n" + "---------------------------------\n"; for(var i = 0; i < troups.length; i++) { msg += names[i]+': '+troups[i] + " (" + Math.round(troups[i]/numvil) + ")\n"; } alert(msg);
[..]
Öhm, also ich kriegs nicht hin ... Funktioniert irgendwie nicht
__________________
TW Sigs - TWForums - TWplus
Sportino I. ist offline  
DamienThorn
 
Benutzerbild von DamienThorn
 
Registriert seit: 12.02.2007
  Alt #11   22.04.2007, 08:06   Nach oben Mit Zitat antworten
Du darfst die Link nicht in einem neuen Fenster öffnen, dann gehts...

Es ist wahrscheinlich nicht machbar, dass ALLE Einheiten, also auch die verliehenen, angezeigt werden, oder?
DamienThorn ist offline  
forestking
 
Benutzerbild von forestking
 
Registriert seit: 06.09.2006
  Alt #12   22.04.2007, 08:44   Nach oben Mit Zitat antworten
da die verliehenen ja nicht in der kombinierten ansicht angezeigt werden wird das wohl nicht funktionieren. vllt. kann man das ganze aber auf die "truppen" ansicht umschreiben...
forestking ist offline  
Akita
 
Benutzerbild von Akita
 
Registriert seit: 22.04.2004
Ort: Greifswald
  Alt #13   22.04.2007, 10:26   Nach oben Mit Zitat antworten
nice
Akita ist offline  
poncho
 
Benutzerbild von poncho
 
Registriert seit: 14.05.2003
Ort: Nahe Berlin
  Alt #14   22.04.2007, 11:08   Nach oben Mit Zitat antworten
Zitat:
Zitat von forestking Beitrag anzeigen
da die verliehenen ja nicht in der kombinierten ansicht angezeigt werden wird das wohl nicht funktionieren. vllt. kann man das ganze aber auf die "truppen" ansicht umschreiben...
Kann man schon aber hab ich absichtlich nicht gemacht.
In der Truppen-Ansicht weiß man ja nicht, ob die alle von einem selber sind oder auch von anderen Spielern Unterstützung drin ist.
poncho ist offline  
Sportino I.
 
Benutzerbild von Sportino I.
 
Registriert seit: 16.02.2007
  Alt #15   22.04.2007, 13:24   Nach oben Mit Zitat antworten
Zitat:
Zitat von DamienThorn Beitrag anzeigen
Du darfst die Link nicht in einem neuen Fenster öffnen, dann gehts...
Mach ich ja auch nicht -.-
Bei mir steht dann nur
Einheit - Truppen - Durchschnitt
------------------------------
__________________
TW Sigs - TWForums - TWplus
Sportino I. ist offline  
karter
 
Registriert seit: 23.10.2005
Ort: Hessen
  Alt #16   22.04.2007, 13:38   Nach oben Mit Zitat antworten
Zitat:
Zitat von Sportino I. Beitrag anzeigen
Mach ich ja auch nicht -.-
Bei mir steht dann nur
Einheit - Truppen - Durchschnitt
------------------------------
Musst auf komb. Übersicht, dann den Link der Schnelleiste aufrufen, ansonsten haste keine Dörfer xD
karter ist offline  
Sportino I.
 
Benutzerbild von Sportino I.
 
Registriert seit: 16.02.2007
  Alt #17   22.04.2007, 13:45   Nach oben Mit Zitat antworten
Zitat:
Zitat von karter Beitrag anzeigen
Musst auf komb. Übersicht, dann den Link der Schnelleiste aufrufen, ansonsten haste keine Dörfer xD
Aaaahhh, es funktioniert... danke!
__________________
TW Sigs - TWForums - TWplus
Sportino I. ist offline  
ili87
 
Benutzerbild von ili87
 
Registriert seit: 25.02.2004
Ort: Karlsruhe
  Alt #18   23.04.2007, 08:47   Nach oben Mit Zitat antworten
wenn man in der truppenübersicht jeweils nur die eigenen und die außerhalb addiert würde es klappen
__________________
The first time Microsoft makes something that doesn't suck
is when they start making vacuum cleaners.
ili87 ist offline  
Eknoes
 
Benutzerbild von Eknoes
 
Registriert seit: 05.03.2007
Ort: Kassel
  Alt #19   23.04.2007, 14:24   Nach oben Mit Zitat antworten
Kann dass auch mal wer für w12 machen???
__________________
Eknoes ist offline  
fetter sack2
 
Registriert seit: 26.02.2007
  Alt #20   23.04.2007, 14:34   Nach oben Mit Zitat antworten
Zitat:
Zitat von poncho Beitrag anzeigen
Daran hab ich gar nicht gedacht. Ich spiele auf Welt 7 und dafür hab ich es auch geschrieben. Wer sich mit Javascript ein bisschen auskennt, kann es sicherlich schnell anpassen.
da hat er aber recht also, mein tipp: mal eben kurz javascript lernen und für welt 10-12 anpassen^^
fetter sack2 ist offline  
Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.