Da ich nicht weiß wo es sonst passen würde, stell ich mein Civstats Greasemonkey Script mal hier vor:
PHP-Code:
// ==UserScript==
// @name Pitboss Frei?
// @namespace www.civforum.de
// @description Susammenfassung von Civstats im Title
// @include http://www.civstats.com/viewgame.php*
// ==/UserScript==
var USERNAME = "lpw"; //Natürlich anpassen ;)
var RELOAD = 90000; //Alle ... Millisekunden neuladen
var i = 0;
var j = 0;
var k = 0;
var online = 0;
var ich = -1;
var fehlenOf = 0;
var fehlenOn = 0;
var zeit = -1;
var down = 0;
if(document.title.indexOf("Error") > -1)
{
window.setTimeout("location.reload()", RELOAD/5);
}else
{
while(document.getElementsByTagName("td").length > i)
{
if(document.getElementsByTagName("td")[i].firstChild != null)
{
if(document.getElementsByTagName("td")[i].firstChild.data == "Online")
{
online++;
if(document.getElementsByTagName("td")[i-4].firstChild == null)
{
fehlenOn++;
}
}
if(document.getElementsByTagName("td")[i].firstChild.data == "Offline")
{
if(document.getElementsByTagName("td")[i-4].firstChild == null)
{
fehlenOf++;
}
}
if(document.getElementsByTagName("td")[i].firstChild.firstChild != null)
{
if(document.getElementsByTagName("td")[i].firstChild.firstChild.data.indexOf(USERNAME) > -1 && ich < 0)
{
ich = i;
}
}
if(document.getElementsByTagName("td")[i].className == "warningbar")
{
down = 1;
break;
}
}
i++;
}
while(j < 100)
{
if(document.title.indexOf(j+"") > -1)
{
k = j;
}
j++;
}
if(document.title.indexOf("All your") > -1) //Hiernach weitere PBs eintagen, die ihre Nummer nicht im Namen haben
{
k = 23;
}
document.title = "PB " + k;
if(down == 0)
{
if(ich > -1 && document.getElementsByTagName("td")[ich-1].firstChild != null)
{
document.title = document.title + " G";
}else
{
document.title = document.title + " ";
}
if(online == 0)
{
document.title = document.title + "F";
} else if(document.getElementsByTagName("td")[ich+3].firstChild.data == "Online")
{
document.title = document.title + "E(" + (online-1) + ")";
} else
{
document.title = document.title + "B(" + online + ")";
}
document.title = document.title + "+" + fehlenOf + "F" + fehlenOn + "N";
zeit = document.getElementById("turntimer").innerHTML;
zeit = zeit.substring(0, 2);
document.title = document.title + "/" + zeit;
} else
{
document.title = document.title + " DOWN";
}
window.setTimeout("location.reload()", RELOAD);
}
Greasemonkey ist eine Erweiterung für Firefox, die es einem erlaubt Javascript auf bestimmten Seiten auszuführen.
Dieses Script fasst die wichtigsten Daten von Civstats im Titel zusammen.
Als erstes kommt die Bezeichnung PB und die Nummer, die entweder direkt aus dem ehemaligen Titel ausgelesen wird oder (wie beim alten PB 23 Civstats) mit Hilfe von Schlüsselworten im Titel ermittelt wird.
PHP-Code:
if(document.title.indexOf("All your") > -1)
{
k = 23;
}
Danach kommen die interessanten Daten:
Das G bedeutet, das man schon gezogen hat (damit das richtig ermittelt werden kann, muss natürlich oben der richtige (teil) eines Usernames eingetragen sein (dh. auch wenn da lpwFuerKloppa erkennt er das lpw).
Das F bedeutet, das der Server Frei ist, man stört also keinen beim einloggen (ich währe froh wenn das mehr Leute beachten würden, aber manchmal geht's nicht anders...).
Außerdem möglich sind hier ein E für eingeloggt, oder ein B für Besetzt, wobei dabei dann jeweils noch dahinter die Anzahl der (anderen) eingeloggten steht.
Das + ist nur für die Übersichtlichkeit, gefolgt von der Anzahl der Spieler die noch ziehen müssen und nicht angemeldet sind, einem F, der Anzahl der Spieler die noch ziehen müssen und angemeldet sind, einem N (für oFline und oNline), danach kommt ein / zur Trennung und die (abgerundete) Zeit in Stunden bis zu nächsten Runde. Das dient als Hilfe um Abzuschätzen wann die nächste Runde startet.
Ich habe dieses Script für mich entwickelt, weil ich halt schnell wissen wollte, ob ich mich anmelden kann (oder schon eingeloggte Nerven würde) und muss (oder ich schon gezogen hab), während ich mit Firefox normal weiter surfe.
Ich "veröffentliche" es jetzt, weil ich halt denke, das es auch anderen helfen könnte Zeit zu sparen. Falls ihr Verbesserungsvorschläge/Kritik habt, bitte posten.