您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Assistent für das SteinZeitSpiel
// ==UserScript== // @name SZS-Assistent // @namespace Steinzeitspiel // @description Assistent für das SteinZeitSpiel // @author KingMaxi [InGame-Nick] // @version 0.9.11 // @include http://szs.looki.de/* // @exclude http://szs.looki.de/impressum.php // @exclude http://szs.looki.de/logout.php // @exclude http://szs.looki.de/szsb.html* // @exclude http://szs.looki.de/szss.html* // @exclude http://szs.looki.de/premium_looki.php?m=* // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_listValues // @grant GM_xmlhttpRequest // @grant GM_log // @grant GM_info // ==/UserScript== /* changelog v0.1 initial release [06.11.2012] v0.2 several bugs fixed; new: SN-Wiederherstellung, wenn noch nicht abgeschickt [09.11.2012] v0.3 few bugs fixed; new: Thread-, Post- und IGM-Wiederherstellung, wenn noch nicht abgeschickt; new: Kills in der MK-Auswertung werden nun sortiert [14.11.2012] v0.4 bugs fixed; new: Skillsystem, erweiterte eigene Länderansicht [10.12.2012] v0.5 bugs fixed; new/change: Frei definierbarer Name für eigene Länder, Änderung des Update-Timestamp in Länderübersicht, EP in SK-Auswertung, Skillsystem-Config versteht nun neben Dezimalunkt auch Dezimalkomma, Config-Dialog überarbeitet, Seitenzahlen im StammForum, SK-MK-Copy überarbeitet [10.01.2013] v0.6 kleine Verbesserungen; new: Standardtätigkeit hinzugefügt; change: SK-MK-Copy zeigt Waffenstand erst 5h vor Kampf an [13.01.2013] v0.6.1 fixed/change: SK-Copy bricht Script ab, wenn kein Kampf -> SK-MK-Copy mit Waffenstand-Checkbox [14.01.2013] v0.6.2 kleine Verbesserungen; fixed: Thread nach erstem Lesen in Übersicht nicht vollständig als gelesen markiert, wenn Posts am Ende gelöscht wurden; fixed: falsches/überflüssiges Werkzeug-Alert, wenn man mehr als ein Werkzeug einer Klasse besitzt; fixed: Google Chrome-Bugs (u.a. SaveConfig, CSS) [16.01.2013] v0.6.3 kleine Verbesserungen; fixed: InventarIMGHeight wird (manchmal) nicht umgesetzt, wenn Seite neu geladen (Chrome), fixed: Skillsystem läuft nicht, wenn ein SOLL-Wert == 0 [16.01.2013] v0.7 kleine Verbesserungen; Codeoptimierung; new: Einfaches Auszahlen von Einlagerungen aus dem Lagerlog heraus; new: Übertragen-Seite kennt URL-Parameter für Ressis und Tränke; new: Versionsnummer und Autor im Einstellungsdialog; fixed: Lager-Seite bricht ab, wenn unterwegs und Premium; new: Ausrüstung, Opfer, Artefakte wahlweise zentriert oder im rechten Menu [26.01.2013] v0.7.1 new: Links in IGM, SN und Forum werden verlinkt; fixed: SK-Zeit im Menu ohne Anmeldeerkennung (Premium) [28.01.2013] v0.7.2 new: Reminder-Sound; new: Artefakt herstellen/weihen im Aktionen-Menu und als Standardtätigkeit hinzugefügt; new: Logbuch-Filter (nur/keine Nachrichten); fixed: kein Fokus auf Zufallscode, wenn kein aktives Arbeitsopfer oder gültiges Artefakt des Drachenbluts; fixed: Talkampf-Anmeldezeit wird falsch gespeichert; fixed: SK-Zeit im Menu ohne "kein Kampf"-Erkennung (Premium); fixed: Kupfer- und Bronzekessel werden als Ausrüstung nicht erkannt; fixed/change: einige Änderungen der Hinweise beim Starten eines Arbeitsgangs [05.02.2013] v0.7.3 new: Freunde werden alphabetisch sortiert; change: Logbuch-Filter anders angeordnet; fixed: Zeitangaben werden manchmal falsch ausgelesen; fixed: Ist man unterwegs, werden Marktangebote nicht hervorgehoben (Premium); fixed: Artefakte herstellen/weihen wird nicht als Tätigkeit/Arbeit erkannt; fixed: Teilweise veraltete/falsche Tätigkeitsangabe im Tätigkeitscountdown; fixed: Activity-Reminder erinnert nicht, wenn man nach Tätigkeitsbeginn Seite nicht neu lädt; fixed: TK-Anmeldeanzeige zeigt manchmal falschen Status [14.02.2013] v0.7.4 change: Freunde-Sortierung optional/einstellbar [15.02.2013] v0.8 kleine Verbesserungen und Fixes; new: Onlinestatusfarbe von Freunden aktualisiert sich automatisch; new: one-click-Rohstoffesicherung auf Stammkampf-Seite (Markt/Lager: voreingetragene Werte entfernt); new: einstellbare Anzeige für Uhrzeit und SK-Zeit im Menu; new: Stamm-EP in StammTop; change: Stammkampfzeitbestimmung überarbeitet; change: SK-Auswertung überarbeitet (u. a. keine fehlenden Daten mehr, Bugfix); change: Auslesen von Ausrüstung und Artefakten verbessert [26.02.2013] v0.8.1 ein paar Kleinigkeiten; change: one-click-Rohstoffsicherung aus- und alte Rohstoffsicherung wieder eingebaut (wg. Verstoß gegen Punkt 3 der Regeln) [02.03.2013] v0.8.2 new: Message-Reminder und -sound; new: Sound "Glocke" hinzugefügt; new: Sound-Lautstärke einstellbar; fixed/change: Reminder-Hinweise kommen nur noch in einem Tab; change: Länderansicht überarbeitet (immer aktuelle Daten, keine frei definierbaren Namen mehr) [13.03.2013] v0.8.3 new: SK-Gegner zur SK-Zeit im Menu hinzugefügt; fixed: Zeitangaben werden manchmal falsch ausgelesen; fixed: "MK läuft" wird bis 1h nach MK angezeigt [20.03.2013] v0.8.4 fixed: 2 kleine Fehler, wenn man stammlos ist; fixed: SK-Bestimmung fehlerhaft, wenn Sonderzeichen in Gegnername; change: IGM-Wiederherstellung überarbeitet; change: Kommas aus SK-Auswertung entfernt um Kompatibilität mit anderen Programmen zu gewährleisten [25.03.2013] v0.8.5 change: Tätigkeits-Countdown zeigt Zeiten >1h auch in min an; fixed: fehlerhafte ist-derzeit-unterwegs-Erkennung in MK-Startnachricht; fixed: einige Fehler im Bereich Text-/Nickerkennung; fixed: Problem mit Sonderzeichen bei IGM-Wiederherstellung; new: Script-eigener Versions-Check (+ Hinweis im linken Menu einstellbar) [09.04.2013] v0.8.6 fixed: Fehler in SK-Auswertung, falsche Angreifer-/Verteidigeranzahl [21.04.2013] v0.8.7 new: Direktlinks in Hinweise eingefügt (Arbeitsopfer, Waffenopfer); new: PN-Icons in Freundesliste; change: PN-Icons in SN verkleinert; new: gelb in den SN schreiben (sieht natürlich nur, wer auch das Script hat!); new: Stammname in SK-Auswertung; new: Logbuch-Filter zeigt neue Einträge ("NEU") immer an; fixed: KöhlerDingens wird in Länderansicht nicht erkannt; fixed: TK- + MK-Zeiten in Beschreibungstexten falsch [07.05.2013] v0.8.8 new: Auswahlmöglichkeiten für Lagerauszahlungen (nur eigene, + andere, alle) [19.05.2013] v0.8.9 fixed: Direktlinks werden beim zusammenfassen des Inventars angezeigt; new: SK-Auswertung opt-out (Performance); fixed: unvollständige SK-Auswertung, wenn SN-Seite zu früh verlassen wird; new: Waffen- und Werkzeugwarnung (opt-out); new: Landüberwachung; fixed: Menueintrag Lagerfeuer, wenn noch kein Lagerfeuer gebaut; new: CP für SOLL-Skillung; Codeoptimierung [11.06.2013] v0.8.10 new: "Zufallscode nicht richtig" stärker hervorgehoben; new: PN-Icons im StammForum; new: Menupunkt farbig, wenn neuer GB-Eintrag; fixed: Bugs mit Quellcode-komprimierenden Internetanbietern; fixed: Fehler beim Auslösen von Hotkeys im neusten Firefox 22; fixed: HTML-Sonderzeichen in PN-Widerherstellungsvorschau [26.06.2013] v0.8.11 new: Links zur Kartenansicht für Marktländer hinzugefügt; new: Durchschnittswerte in Stammübersicht; new: Status-Spalte in 2. Tabelle in Stammübersicht entfernt und Status mit Spalte 1 verknüpft; new: MK-Startnachricht speichert MK-Teilnehmer; fixed: Doppelte Klammern in SK-Auswertung beim Stammname; new/change: neue/erweiterte MK-Auswertung; new: Links im Logbuch (TK-Gegner, Nachricht an, Übertragungen) [22.08.2013] v0.8.12 change: Links im Logbuch überarbeitet; fixed: Magierkill falsch/gar nicht gewertet; new: Magierkill in MK-Auswertung in orange hervorgehoben; new: Links im Logbuch für Marktein-/-verkäufe; zusätzliche Seitenaufrufe reduziert; new: Auofokus auf Eingabefeld beim Kaufen vom Markt [26.09.2013] v0.8.13 fixed: Logbuch-Links, wenn Angebot nicht verkauft werden konnte; change: SK-Auswertung per Button, Option in Einstellungen entfernt [24.10.2013] v0.8.14 fixed: TK-Anmeldung wird gespeichert, obwohl zu wenig Ressis; fixed: SK-Auswertung funktioniert nicht [24.10.2013] v0.8.15 fixed: Logbuch-Links, wenn Angebot nicht verkauft werden konnte (jetzt aber :D); fixed: Logbuch-TK-Links zur Winterzeit nicht vorhanden; fixed: Sonderzeichen in Vorschau für gespeicherte PN; new: Wenn Zufallscode falsch eingegeben wurde, Weiter-/Zurückleitung zur Arbeitsseite; new: maximal mögliche Kaufmenge auf Marktkaufseite; new: Wenn Müdigkeit >= 80%, verlinkt zu st. Wachtrank; fixed: MK-Teilnehmerstand-Zeit manchmal falsch [22.01.2014] v0.9 change: update- und downloadURL von http auf https geändert; fixed: Logbuchlinks (Sonderzeichennicks); fixed: Handling von URL-Parametern (Sonderzeichen); fixed: SK-Auswertung (Nick kann nicht gefunden weden); fixed: Abbrechen-Link flackert/wird ständig neu gesetzt; new: Inventar überarbeitet; new: Waffen-/Ringtausch; fixed: Konflikt zw. Übertragung und Jagdergebnis (Logbuch); fixed/new: Forum jetzt auch ohne Forenrechte nutzbar (beim Verlust der Forenrechte werden alte Beiträge ggf. als ungelesen markiert!); new: Weiterleitung zurück zur ursprünglichen Seite nach Direktlink; change: Rohstoffsicherung via Stammkampfseite (nicht mehr via Lager + Markt); new: Standardmengen- und preise für alle Rohstoffe; sowie ein paar Kleinigkeiten [16.04.2014] v0.9.1 change: Waffen ab- statt aufsteigend im Inventar; change: Wachtränke vor Heiltränken im Inventar; fixed: Werkzeuge werden nicht angezeigt [17.04.2014] v0.9.2 fixed: Anzahl Ringe/Waffen/Werkezuge, wenn gleicher Gegenstand in der Hand; fixed: Trankverkauf -> Geistertränke auf dem Markt -> Trankverlust (kritisch!) [18.04.2014] v0.9.3 Script wird jetzt auf greasyfork.org gehostet; fixed: Verletzung wird nicht als aktuelle Aktion ausgegeben; Codeoptimierung (Performance); new: Nomadenzeit als Tooltip der Serverzeit im Header; new: leere (= max) und negative (= max-1, usw.) Standardverkaufsmengen für den Markt; new: Ressis-Icons in Einstellungen; remove: @updateURL und @downloadURL; remove: Update-Check im Menu; remove: Onlinestatusfarbe von Freunden aktualisiert sich automatisch (überflüssige Seitenaufrufe); fixed: Script hängt sich bei einigen Userprofilen auf; new: "Dein Alter" im rechten Menu (einstellbar); new: Anzahl Länder auf Landseite; fixed: Scriptupdateprobleme/Audiowiedergabe (u. a. Chrome) [28.07.2014] v0.9.4 fixed: Auslesen des Zeitstempels in SN, wenn Nachricht NEU; new: Marktnavigation auf jeder Marktseite; new Marktseite mit allen Rohstoffen (siehe Marktnavigation); new: dynamische Marktpreishervorhebung (alternativ zu bisheriger -> Einstellungen); new: "Karte zentrieren"-Link auf Landinfoseite; new: Hinweis/Info bei Durchschnitts-EP in Userinfo eingefügt [04.09.2014] v0.9.5 new: "alte"-Link hinter Logbuch im Menu eingefügt; fixed: Vergiftung wird nicht als aktuelle Tätigkeit erkannt/angezeigt; changed: Vote #2-Link entfernt, Seite existiert nicht mehr; fixed: Landausbau wird nicht als aktuelle Tätigkeit erkannt/angezeigt; fixed: Verlinkungen werden bei runden Klammern abgebrochen; new: Standardverkaufsmengen und -preise für Tränke; fixed: EP-Berechnung der Stammkampfauswertung fehlerhaft, sowie Handhabung von Nicks mit Leerzeichen verbessert; new: Fußzeile (== Kopfzeile) in Tabellen in StammÜbersicht eingefügt, wenn >20 Mitglieder; new: farbige Landausbaustufen (0 (rot), 1 bis max-1 (gelb), max (grün)); new: Übertragen-Seite kennt nun auch URL-Parameter "an" (== "anrohstoffe") und "geld" (== "gold"); Codeoptimierung [07.11.2014] v0.9.6 change: Weiter-/Zurückleitung zur Arbeitsseite, wenn Zufallscode falsch eingegeben wurde, entfernt (wg. Verstoß gegen Punkt 3 der Regeln); fixed: nach Magier-Kill in MK-Auswertung wird "orange" nicht aufgehoben; fixed: SK-Teilnahme arbeitet nicht korrekt, zeigt dauerhaft "angemeldet" an; new: neuer Logbuchfilter [27.11.2014] v0.9.7 fixed: aktuelle Tätigkeit zeigt Verletzung an, obwohl nicht mehr verletzt; fixed: Lagerentnahmen, Weihnachtsmann/Rentier und co werden nicht zugeordnet (Logbuchfilter); fixed: Nickauswahl (PN/Handel) im Logbuchfilter nicht sortiert; new: "Alle (ab-) wählen"-Button im Logbuchfilter; new: Thread-Status-Dot im StammForum linkt auf "Antworten"; ein paar Grafiken und kleine Verbesserungen [16.12.2014] v0.9.8 change: Wachtränke wieder hinter Heiltränke im Inventar; new: Trankreihenfolge einstellbar (-> Allgemein); fixed: "Du verpasst SK/MK"-Meldung kommt manchmal falsch; fixed: Einzelkampf, zum Talkampf nicht verfügbar, SK-Start, wenn nicht im Stamm, werden nicht zugeordnet (Logbuchfilter); new: Anzahl der Einträge hinter jeder Auswahl (Logbuchfilter); change: Einstellungen "Markt" umgebaut; new: Ringwarnung (opt-out); fixed: Fehler, wenn nicht genügend Gold für MK-Anmeldung; new: Spieler auf dem Land in Länderübersicht; Codeoptimierung [14.01.2015] v0.9.9 fixed: "wilde Tiere" ohne Zuordnung (Logbuchfilter); fixed: Anzahl Kämpfe NaN (Logbuchfilter); fixed: Standardverkaufspreis Stein verursacht Probleme (-> SteinE) [13.02.2015] v0.9.10 fixed: "vom Stammkampf ausgeschlossen" ohne Zuordnung (Logbuchfilter); fixed: Charakterpunkte formatiert (Tausendertrennzeichen); new: Nahrung in Stammübersicht fett/rot, wenn weniger als 50; new: Artefakt der Gesundheit wird ebenfalls ausgelesen; fixed: Anzahl Angreifer/Verteidiger zu hoch, wenn Nick Leerzeichen enthält (SK-Auswertung); new: SK-Auswertung mit EP für jeden Teilnehmer (opt-out); Codeoptimierung [03.03.2015] v0.9.11 change: Länderansicht überarbeitet (Sortierung nach Entfernung, Design); new: x/y-Überschrift auf Landinfo-Seite; change: Config-Überschriften (auch: "Logbuch-Filter") klickbar, nicht nur Pfeil; fixed: Ausrüstung zeigt Zahlen an [31.03.2015] ------------------------------ Do not change anything further ------------------------------ */ // Login-Focus if(document.URL.indexOf('/login.php') != -1 && document.getElementsByName('code')[0]) { document.getElementsByName('code')[0].focus(); } else if(document.getElementsByTagName('a')[0].href.indexOf('login.php') != -1) { // Weiterleitung zum Login window.setTimeout("window.location.href = 'http://szs.looki.de/login.php';", 50); } else if(document.URL.indexOf('/charakter.php') != -1 && document.getElementsByTagName('body')[0].innerHTML.indexOf('top.location.href=\'charakter.php\'') != -1) { // Charakterpunkte verteilt (Dein SteinzeitMensch hat sich verbessert.) window.location.href = 'http://szs.looki.de/charakter.php'; } else if(document.URL.indexOf('/login.php') == -1) { var scriptstarttime = new Date(); // Standardelemente/Variablen var i, j, k, l; var wrap = document.getElementsByTagName('table')[0]; wrap.setAttribute('id', 'wrap'); var main = document.getElementsByTagName('table')[1]; main.setAttribute('id', 'main'); i=0; while(document.getElementById('main').getElementsByTagName('td')[i].innerHTML.indexOf('<!-- INHALT ANFANG -->') == -1) { i++; } var content = document.getElementById('main').getElementsByTagName('td')[i]; content.setAttribute('id', 'content'); var aktuelleAktion = document.getElementById('content').getElementsByTagName('td')[0]; aktuelleAktion.setAttribute('id', 'aktuelleAktion'); aktuelleAktion.removeAttribute('align'); i=0; while(document.getElementById('main').getElementsByTagName('td')[i].innerHTML.indexOf('<!-- linkes menu ANFANG -->') == -1) { i++; } var menuLeft = main.getElementsByTagName('td')[i]; i=0; while(document.getElementById('main').getElementsByTagName('td')[i].innerHTML.indexOf('<!-- rechtes menu ANFANG -->') == -1) { i++; } var menuRight = main.getElementsByTagName('td')[i]; var isPremiumSpieler = (document.getElementsByTagName('body')[0].getAttribute('onscroll') == null)? true : false; i = (isPremiumSpieler)? 1 : 0; var ep_gesamt = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[1].textContent.replace(/\./g, ''), 10); var ressis_gesamt = new Array(); ressis_gesamt['Nahrung'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[3].textContent.replace(/\./g, ''), 10); ressis_gesamt['Wasser'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[5].textContent.replace(/\./g, ''), 10); ressis_gesamt['Gold'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[7].textContent.replace(/\./g, ''), 10); ressis_gesamt['Holz'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[9].textContent.replace(/\./g, ''), 10); ressis_gesamt['Steine'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[11].textContent.replace(/\./g, ''), 10); ressis_gesamt['Kohle'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[13].textContent.replace(/\./g, ''), 10); ressis_gesamt['Kupfer'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[15].textContent.replace(/\./g, ''), 10); ressis_gesamt['Zinn'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[17].textContent.replace(/\./g, ''), 10); ressis_gesamt['Bronze'] = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[19].textContent.replace(/\./g, ''), 10); menuRight.textContent.search(/Dein Alter:\s*(\d+) Jahre\s*(\d+) Monate/); var alter = new Array(RegExp.$1, RegExp.$2); var waffen = 'Stock#Stock mit Bronze#Keule#Speer mit Holzspitze#Speer mit Steinspitze#Pfeil und Bogen#Pfeil und Bogen PLUS#Pfeil und Bogen Bronze#Knochenspalter#Knochenspalter PLUS#Knochenspalter Bronze#Hammerfaust#Hammerfaust Bronze#Berserkerfaust#Götterzorn'; var werkzeuge = 'Kupfer-Keil#Kupfer-Schaber#Kupfer-Hacke#Zinn-Keil#Zinn-Schaber#Kupferkessel#Bronzekessel'; var ringe = 'Talkampfring#Stammkampfring#Wasserring#Jagdring#Marktring'; var traenke = 'kleiner Heiltrank#mittlerer Heiltrank#starker Heiltrank#Wachtrank#starker Wachtrank#Holztrank#Steintrank#Kupfertrank#Zinntrank'; i=document.getElementsByTagName('center').length-1; while(document.getElementsByTagName('center')[i].textContent.indexOf('Jahres nach der 1. Nacht des Nomaden.') == -1) { i--; } var servertime = document.getElementsByTagName('center')[i].innerHTML; var audioA = document.createElement('audio'); audioA.setAttribute('src', 'https://dl.dropboxusercontent.com/u/79333916/phone.mp3'); audioA.setAttribute('id', 'audioA'); document.body.appendChild(audioA); var audioB = document.createElement('audio'); audioB.setAttribute('src', 'https://dl.dropboxusercontent.com/u/79333916/gong.mp3'); audioB.setAttribute('id', 'audioB'); document.body.appendChild(audioB); var audioC = document.createElement('audio'); audioC.setAttribute('src', 'https://dl.dropboxusercontent.com/u/79333916/glocke.mp3'); audioC.setAttribute('id', 'audioC'); document.body.appendChild(audioC); var audioD = document.createElement('audio'); audioD.setAttribute('src', 'https://dl.dropboxusercontent.com/u/79333916/coin.mp3'); audioD.setAttribute('id', 'audioD'); document.body.appendChild(audioD); // Gespeicherte Variablen var Assi_UserName = GM_getValue("Assi_UserName", ""); var Assi_StammName = GM_getValue("Assi_StammName", ""); var Assi_Infoanzeigen = GM_getValue("Assi_Infoanzeigen", "menu"); var Assi_DeinAlter = GM_getValue("Assi_DeinAlter", true); var Assi_FreundeSortierung = GM_getValue("Assi_FreundeSortierung", false); var Assi_Notizen = GM_getValue("Assi_Notizen", false); var Assi_HotkeyTimeout = parseInt(GM_getValue("Assi_HotkeyTimeout", "500"), 10); var Assi_InventarIMGheight = parseInt(GM_getValue("Assi_InventarIMGheight", "50"), 10); var Assi_InventarTrankreihenfolge = GM_getValue('Assi_InventarTrankreihenfolge', traenke); var Assi_Lagerauszahlungen = GM_getValue("Assi_Lagerauszahlungen", "eigene"); var Assi_LagerauszahlungenNicks = GM_getValue("Assi_LagerauszahlungenNicks", ""); var Assi_MenuUhrzeit = GM_getValue("Assi_MenuUhrzeit", false); var Assi_MenuSKZeit = GM_getValue("Assi_MenuSKZeit", false); var Assi_MenuVersionTip = GM_getValue("Assi_MenuVersionTip", true); var Assi_SKAuswertung = GM_getValue("Assi_SKAuswertung", true); var Assi_ActivityReminder = GM_getValue("Assi_ActivityReminder", false); var Assi_Remindersound = GM_getValue("Assi_Remindersound", ""); var Assi_ReminderSoundVolume = GM_getValue("Assi_ReminderSoundVolume", 100); var Assi_Standardtaetigkeit = GM_getValue("Assi_Standardtaetigkeit", ""); var Assi_MessageReminder = GM_getValue("Assi_MessageReminder", false); var Assi_Messagesound = GM_getValue("Assi_Messagesound", ""); var Assi_MessageSoundVolume = GM_getValue("Assi_MessageSoundVolume", 100); var Assi_WaffenWerkzeugWarnung = GM_getValue("Assi_WaffenWerkzeugWarnung", true); var Assi_RingWarnung = GM_getValue("Assi_RingWarnung", true); var Assi_Gaestebucheintrag = GM_getValue("Assi_Gaestebucheintrag", true); var Assi_Kraft = GM_getValue("Assi_Kraft", ""); var Assi_Intelligenz = GM_getValue("Assi_Intelligenz", ""); var Assi_Geschwindigkeit = GM_getValue("Assi_Geschwindigkeit", ""); var Assi_List = GM_getValue("Assi_List", ""); var Assi_Ausdauer = GM_getValue("Assi_Ausdauer", ""); var Assi_Geschick = GM_getValue("Assi_Geschick", ""); var Assi_NahrungRest = parseInt(GM_getValue("Assi_NahrungRest", "50"), 10); var Assi_GoldRest = parseInt(GM_getValue("Assi_GoldRest", "50"), 10); var Assi_HolzRest = parseInt(GM_getValue("Assi_HolzRest", "0"), 10); var Assi_SteinRest = parseInt(GM_getValue("Assi_SteinRest", "0"), 10); var Assi_NahrungRund = parseInt(GM_getValue("Assi_NahrungRund", "100"), 10); var Assi_GoldRund = parseInt(GM_getValue("Assi_GoldRund", "100"), 10); var Assi_HolzPreis = parseInt(GM_getValue("Assi_HolzPreis", "100"), 10); var Assi_SteinPreis = parseInt(GM_getValue("Assi_SteinPreis", "100"), 10); var Assi_Preishervorhebung = GM_getValue("Assi_Preishervorhebung", "dynamisch"); var Assi_MarktPreis = new Array(); Assi_MarktPreis['Wasser'] = GM_getValue("Assi_MarktWasserPreis", ""); Assi_MarktPreis['Holz'] = GM_getValue("Assi_MarktHolzPreis", ""); Assi_MarktPreis['Stein'] = GM_getValue("Assi_MarktSteinPreis", ""); Assi_MarktPreis['Kohle'] = GM_getValue("Assi_MarktKohlePreis", ""); Assi_MarktPreis['Kupfer'] = GM_getValue("Assi_MarktKupferPreis", ""); Assi_MarktPreis['Zinn'] = GM_getValue("Assi_MarktZinnPreis", ""); Assi_MarktPreis['Bronze'] = GM_getValue("Assi_MarktBronzePreis", ""); var Assi_MarktVerkaufsmenge = new Array(); Assi_MarktVerkaufsmenge['Wasser'] = GM_getValue("Assi_MarktWasserverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Holz'] = GM_getValue("Assi_MarktHolzverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Steine'] = GM_getValue("Assi_MarktSteinverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Kohle'] = GM_getValue("Assi_MarktKohleverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Kupfer'] = GM_getValue("Assi_MarktKupferverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Zinn'] = GM_getValue("Assi_MarktZinnverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Bronze'] = GM_getValue("Assi_MarktBronzeverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Wachtrank'] = GM_getValue("Assi_MarktWachtrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['starker Wachtrank'] = GM_getValue("Assi_MarktstarkerWachtrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['kleiner Heiltrank'] = GM_getValue("Assi_MarktkleinerHeiltrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['mittlerer Heiltrank'] = GM_getValue("Assi_MarktmittlererHeiltrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['starker Heiltrank'] = GM_getValue("Assi_MarktstarkerHeiltrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Holztrank'] = GM_getValue("Assi_MarktHolztrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Steintrank'] = GM_getValue("Assi_MarktSteintrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Kupfertrank'] = GM_getValue("Assi_MarktKupfertrankverkaufsmenge", ""); Assi_MarktVerkaufsmenge['Zinntrank'] = GM_getValue("Assi_MarktZinntrankverkaufsmenge", ""); var Assi_MarktVerkaufspreis = new Array(); Assi_MarktVerkaufspreis['Wasser'] = GM_getValue("Assi_MarktWasserverkaufspreis", ""); Assi_MarktVerkaufspreis['Holz'] = GM_getValue("Assi_MarktHolzverkaufspreis", ""); Assi_MarktVerkaufspreis['Steine'] = GM_getValue("Assi_MarktSteinverkaufspreis", ""); Assi_MarktVerkaufspreis['Kohle'] = GM_getValue("Assi_MarktKohleverkaufspreis", ""); Assi_MarktVerkaufspreis['Kupfer'] = GM_getValue("Assi_MarktKupferverkaufspreis", ""); Assi_MarktVerkaufspreis['Zinn'] = GM_getValue("Assi_MarktZinnverkaufspreis", ""); Assi_MarktVerkaufspreis['Bronze'] = GM_getValue("Assi_MarktBronzeverkaufspreis", ""); Assi_MarktVerkaufspreis['Wachtrank'] = GM_getValue("Assi_MarktWachtrankverkaufspreis", ""); Assi_MarktVerkaufspreis['starker Wachtrank'] = GM_getValue("Assi_MarktstarkerWachtrankverkaufspreis", ""); Assi_MarktVerkaufspreis['kleiner Heiltrank'] = GM_getValue("Assi_MarktkleinerHeiltrankverkaufspreis", ""); Assi_MarktVerkaufspreis['mittlerer Heiltrank'] = GM_getValue("Assi_MarktmittlererHeiltrankverkaufspreis", ""); Assi_MarktVerkaufspreis['starker Heiltrank'] = GM_getValue("Assi_MarktstarkerHeiltrankverkaufspreis", ""); Assi_MarktVerkaufspreis['Holztrank'] = GM_getValue("Assi_MarktHolztrankverkaufspreis", ""); Assi_MarktVerkaufspreis['Steintrank'] = GM_getValue("Assi_MarktSteintrankverkaufspreis", ""); Assi_MarktVerkaufspreis['Kupfertrank'] = GM_getValue("Assi_MarktKupfertrankverkaufspreis", ""); Assi_MarktVerkaufspreis['Zinntrank'] = GM_getValue("Assi_MarktZinntrankverkaufspreis", ""); var notice = GM_getValue("notice", ""); var nextSK = GM_getValue("NextSK", "0"); var tkTeilnahme = parseInt(GM_getValue("TKTeilnahme", "0"), 10); var skTeilnahme = parseInt(GM_getValue("SKTeilnahme", "0"), 10); var mkTeilnahme = parseInt(GM_getValue("MKTeilnahme", "0"), 10); var hand = GM_getValue("Hand", "Unbekannt"); var finger = GM_getValue("Finger", "Unbekannt"); var starkerWachtrankID = GM_getValue("starkerWachtrank", "0"); var drachenblutDate = new Date(parseInt(GM_getValue("DrachenblutTime", "0"), 10)); var glueckDate = new Date(parseInt(GM_getValue("GlueckTime", "0"), 10)); var meisterschmiedDate = new Date(parseInt(GM_getValue("MeisterschmiedTime", "0"), 10)); var gesundheitDate = new Date(parseInt(GM_getValue("GesundheitTime", "0"), 10)); var landControlColor = GM_getValue("LandControlColor", "red"); var statusToggle = new Array(); statusToggle['logbuchFilterOptions'] = GM_getValue("StatusToggle_logbuchFilterOptions", "none"); // Hotkeys var hotkeys = new Array( ['Logbuch', 'http://szs.looki.de/news.php', 'l'], ['Alte Logbucheintrage', 'http://szs.looki.de/news.php?alte=1', ''], ['Profil', 'http://szs.looki.de/profil.php', 'p'], ['Charakter', 'http://szs.looki.de/charakter.php', 'c'], ['Inventar', 'http://szs.looki.de/inventar.php', 'i'], ['Artefakte', 'http://szs.looki.de/artefakt.php', 'a'], ['Karte', 'http://szs.looki.de/karte.php', ''], ['Land', 'http://szs.looki.de/deinland.php', ''], ['Jagd', 'http://szs.looki.de/jagd.php', 'j'], ['Wasser suchen', 'http://szs.looki.de/wasser.php', 'w'], ['Holz fällen', 'http://szs.looki.de/holzfaeller.php', ''], ['Köhlern', 'http://szs.looki.de/koehlern.php', ''], ['Steine metzen', 'http://szs.looki.de/steinmetz.php', ''], ['Kupfer abbauen', 'http://szs.looki.de/kupferding.php', ''], ['Bronze herstellen', 'http://szs.looki.de/bronze.php', ''], ['Zinn abbauen', 'http://szs.looki.de/zinnding.php', ''], ['Trank brauen', 'http://szs.looki.de/schamane.php', ''], ['Waffe bauen', 'http://szs.looki.de/waffenschmied.php', ''], ['Werkzeug bauen', 'http://szs.looki.de/werkzeug.php', ''], ['Schlafen', 'http://szs.looki.de/schlafen.php', ''], ['Einzelkampf', 'http://szs.looki.de/kampf.php', ''], ['Talkampf', 'http://szs.looki.de/grtal.php', ''], ['Stammkampf', 'http://szs.looki.de/stamm.php?do=kampfsuche', ''], ['Magierkampf', 'http://szs.looki.de/stamm.magierkampf.php', ''], ['Markt', 'http://szs.looki.de/markt.php', 'm'], ['Händler', 'http://szs.looki.de/nahrung.php', ''], ['Waffenhöhle', 'http://szs.looki.de/waffenshop.php', ''], ['Nomade', 'http://szs.looki.de/nomade.php', ''], ['StammÜbersicht', 'http://szs.looki.de/stamm.php?do=uebersicht', 'u'], ['StammNachrichten', 'http://szs.looki.de/stamm.php?do=nachricht', 'n'], ['Alte StammNachrichten', 'http://szs.looki.de/stamm.php?do=nachricht&alte=1', ''], ['StammForum', 'http://szs.looki.de/stammforum.forum.php', 'f'], ['Lager', 'http://szs.looki.de/stamm.php?do=lager', ''], ['Waffenlager', 'http://szs.looki.de/stamm.php?do=waffenlager', ''], ['Tranklager', 'http://szs.looki.de/stamm.php?do=tranklager', ''], ['Werkzeuglager', 'http://szs.looki.de/stamm.php?do=werkzeuglager', ''], ['Altar', 'http://szs.looki.de/altar.php', ''], ['Weltwunder', 'http://szs.looki.de/weltwunder.php', ''], ['Lagerfeuer', 'http://szs.looki.de/stamm.php?do=lagerfeuer', ''], ['UserTop', 'http://szs.looki.de/top.php', '1'], ['StammTop', 'http://szs.looki.de/stammtop.php', '2'], ['Aktive Spieler', 'http://szs.looki.de/aktivespieler.php', '3'], ['Aktive Stämme', 'http://szs.looki.de/aktivpunkte.php', '4'], ['VIPTop', 'http://szs.looki.de/viptop.php', ''], ['UserSuche', 'http://szs.looki.de/userinfo.php', ''], ['StammSuche', 'http://szs.looki.de/stamminfo.php', ''], ['OnlineUser', 'http://szs.looki.de/useronline.php', ''] ); var strHotkeys = GM_getValue("Assi_Hotkeys", ""); if(typeof(strHotkeys) == 'undefined') { strHotkeys = ''; } strHotkeys = strHotkeys.split('|'); if(hotkeys.length == strHotkeys.length-1) { for(i=0; i<hotkeys.length; i++) { hotkeys[i][2] = strHotkeys[i]; } } // CSS-Deklarationen var css = document.createElement('style'); css.setAttribute('type', 'text/css'); css.innerHTML = 'body {margin:10px} ' + '#serverzeit {position:absolute; top:27px; font-size:14px; font-weight:bold; background-color:rgba(0, 0, 0, 0.6); padding: 3px 4px; border-radius:4px;} ' + '#reminder {position:absolute; top:27px; width:122px; font-size:14px; font-weight:bold; background-color:rgba(0, 0, 0, 0.6); padding: 3px 4px; border-radius:5px;} ' + '#tk_inner, #sk_inner, #mk_inner {position: absolute; right:4px;} ' + '#weather {position:absolute; top:29px; background-color:rgba(0, 0, 0, 0.6); padding: 6px 5px; border-radius:5px;} ' + '.green, .lime {color:#00ff00;} ' + '.yellow {color:#ffff00;} ' + '.orange {color:#ff8000;} ' + '.red {color:#ff0000;} ' + '.left {text-align:left;} ' + '.center {text-align:center;} ' + '.right {text-align:right;} ' + '.bold {font-weight:bold;} ' + '.pointer {cursor:pointer;} ' + '.underline {text-decoration: underline;} ' + '.pn-icon {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAKCAYAAABrGwT5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAFmSURBVChTlZBNbhNBEIW/bo8zP/Z4Mm4jDsBtcgskNiBvQMolssgROARHYBUFFMwChJAXRvgn2MSyUeRkfrqbGitiAQqIll6Xquu9rlelbm9GPqyu+d+zqdvosnRMFi9Ah6DW/4bwPk2eU5QWrXWLdhAz+jCE1iMpzu+H1M/fPSMIIrTSjTigE/cY5BnvP76C4EiIX/6EvJ+/fYrpZ3SiFKUCNF5+IKGbpJjemIuLEyEe/yY85s3ZEx6IsBunaB/jnUI7ueoqRvkuyUFFdTPl7PVjEbz8hSa3dUwSHaJcB1sleK9Q19vPfrc6FRue5XKHMRHbHyVX61uKwhKGLbEakaYHrFY7Bv2Y2kJkhnedy5jpV0ve62PLhDCQEbI+D43Zxya3wsl7htnc7Z16GVY33meLivzQyPojQYi1iWw0la7ZPjZ5UYSUUsszw+W3mmZXavN97K21OO9xzsksfo+/HaVkXqX4CQKYpMZ5l9XzAAAAAElFTkSuQmCC") no-repeat transparent; display:inline-block; width:15px; height:10px;} ' + '.pn-icon-s {background:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBaRXhpZgAATU0AKgAAAAgABQMBAAUAAAABAAAASgMDAAEAAAABAAAAAFEQAAEAAAABAQAAAFERAAQAAAABAAAOxFESAAQAAAABAAAOxAAAAAAAAYagAACxj//bAEMAAgEBAgEBAgICAgICAgIDBQMDAwMDBgQEAwUHBgcHBwYHBwgJCwkICAoIBwcKDQoKCwwMDAwHCQ4PDQwOCwwMDP/bAEMBAgICAwMDBgMDBgwIBwgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAAcACwMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP1yk8f+I9Du9Qt4NNW9haaQ2slxdANBlm+8AcunQhcqwGRu6BXeGbzULjRY5L/7W14zOZWecEk725+U7cegAAAwMDGKKK/Jcr4Xw1HEOpzzlo1Zyut10stVay8r92ezWxDlC1kf/9k=") no-repeat transparent; display:inline-block; width:11px; height:7px} ' + '#scriptlaufzeit {font-size:9px; font-weight:normal;} ' + '.menuHeadline {background: url("/static/menu.png") repeat-x transparent; height:22px; margin-top:2px; padding-top:8px; text-align:center;} ' + '.menuItemContainer {margin-bottom:12px; padding:0 1px;} ' + '#infoanzeige table {background: url("/static/bgs.png") repeat transparent; width:100%; padding: 0 10px 5px 10px} ' + '#infoanzeige th:nth-child(2n+1) {background: url("/static/menu.png") repeat-x transparent; height:30px; font-size:11px;} ' + '#infoanzeige th:nth-child(2n) {width:50px;} ' + '#infoanzeige td:nth-child(2n+1) {vertical-align:top;} ' + '#aktuelleAktion {text-align:center; height:30px;} ' + '#logbuchFilter {margin: 10px 5px 0;}' + '#logbuchFilterOptions {margin-top:5px; margin-left:5px;}' + '#logbuchFilterOptions div#overallAll {margin:0 10px 10px; text-align:center;}' + '#logbuchFilterOptions div.column {float:left; width:190px; max-height:250px; overflow:auto; margin-bottom:20px;}' + '#logbuchFilterOptions div#trade {margin:0 10px 20px;}' + '#logbuchFilterOptions div#other {width:150px;}' + '#logbuchFilterOptions .layer2 {margin-left: 7px;}' + '#logbuch {width:95%}' + '#logbuch .hide {display:none;}' + '#logbuch tr td:nth-child(3) {padding: 0 5px 3px;}' + '#site_extern {height:100%; text-align:center; vertical-align:top; padding-left:10px; top:'+(window.pageYOffset)+'px} ' + '.headline {position:relative; font-size:18px; text-decoration:underline; padding-bottom:10px;} ' + '#quicklinks td {vertical-align:top; padding-right:5px;} ' + '#notice {position:relative; width:100%; top:0;} ' + '#configLayer {display:none; position:fixed; top:50px; width:500px; background-color:#215C28;} ' + '.border-right {background: url("/static/stab.png") repeat-y transparent; width:8px; height:100%; float:right;} ' + '.border-left {background: url("/static/stab.png") repeat-y transparent; width:8px; height:100%; float:left;} ' + '#config-main {height:100%; margin: 0 8px;} ' + '.border-top {background: url("/static/menu.png") repeat-x transparent; width:100%; height:30px;} ' + '.border-bottom {background: url("/static/menu.png") repeat-x transparent; width:100%; height:30px;} ' + '.close {padding:7px 5px 0 0; font-weight:bold; font-size:12px; float:right;} ' + '.close a {color:#ffffff; text-decoration:none;} ' + '.close a:hover {color:#ACACAC;} ' + '#config-content {padding:5px; width:472px; overflow:auto; margin-bottom:5px;} ' + 'h1 {font-size:16px; margin:0 0 15px 0;} ' + 'h2 {font-size:13px; margin:10px 0 2px; display:inline-block;} ' + '.triggerElementToggle {display: inline-block; width: 16px; height:14px; text-decoration:none; transform: rotateX(0deg); transition: all 0.3s ease-in-out 0s; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAMAAACzB5/1AAABwlBMVEUAAAAAAAAAAAC/v78AAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwAAAAtLS0AAABVVVUAAAAAAAAAAAAAAAC4uLjT09P///9GRkZ5eXny8vK2trbPz8+SkpL///////+/v7/Pz8+xsbG2trb///+6urrGxsb////////y8vLq6urc3Nz////5+fn9/f3c3Nzt7e3////j4+Pl5eXt7e319fXl5eX////////r6+vo6Oj7+/vx8fHs7Oz////y8vL5+fn7+/v////39/f7+/v////8/Pz9/f3////+/v7////+/v7///9ISEj19fVSUlLs7OzV1dVbW1uioqLi4uKjo6NycnLT09NwcHBvb29lZWXY2NilpaWhoaGWlpagoKDf39/g4OCKioqvr6+9vb3U1NR+fn6AgIC4uLi6urq7u7u8vLx9fX2Xl5fHx8fIyMjGxsaBgYHW1tZ0dHTe3t6Li4unp6fh4eGurq6MjIy+vr6ZmZmwsLCxsbHKysrNzc1qamq5ublzc3OmpqZsbGzc3Nzd3d2srKyGhoa/v7/AwMDExMTp6enq6urr6+uHh4d2dnZxcXFpzYrbAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeDBAPLwhmkpoDAAAAJklEQVQI12NgwABsqBQbGyoFYkApKAPOQ/DhZqHwIHwUu9gYsAEAWS4BIadU530AAAAASUVORK5CYII=") no-repeat scroll left 0 center rgba(0, 0, 0, 0);} ' + '.triggerElementToggle.opened, .opened .triggerElementToggle {transform: rotateX(180deg);} ' + '.configTable {width:100%} ' + '.configTable .ressicon {background-repeat:no-repeat; padding-left:25px;} ' + '.configTable .essen {background-image:url(/static/rohstoff_icons/essen.gif);} ' + '.configTable .gold {background-image:url(/static/rohstoff_icons/gold.gif);} ' + '.configTable .wasser {background-image:url(/static/rohstoff_icons/wasser.gif);} ' + '.configTAble .holz {background-image:url(/static/rohstoff_icons/holz.gif);} ' + '.configTAble .steine {background-image:url(/static/rohstoff_icons/stein.gif);} ' + '.configTAble .kohle {background-image:url(/static/rohstoff_icons/kohle.gif);} ' + '.configTAble .kupfer {background-image:url(/static/rohstoff_icons/kupfer.gif);} ' + '.configTAble .zinn {background-image:url(/static/rohstoff_icons/zinn.gif);} ' + '.configTAble .bronze {background-image:url(/static/rohstoff_icons/bronze.gif);} ' + '.configTable .trankicon {background:no-repeat 0 2px / 16px 20px; padding-left:25px;} ' + '.configTAble .klheil {background-image:url(/images/traenke/1.gif);} ' + '.configTAble .miheil {background-image:url(/images/traenke/2.gif);} ' + '.configTAble .stheil {background-image:url(/images/traenke/3.gif);} ' + '.configTAble .wach {background-image:url(/images/traenke/4.gif);} ' + '.configTAble .stwach {background-image:url(/images/traenke/5.gif);} ' + '.configTAble .holztr {background-image:url(/images/traenke/7.gif);} ' + '.configTAble .steintr {background-image:url(/images/traenke/6.gif);} ' + '.configTAble .kupfertr {background-image:url(/images/traenke/8.gif);} ' + '.configTAble .zinntr {background-image:url(/images/traenke/9.gif);} ' + '.i1 {width:100%;} ' + '.i2 {width:55px;} ' + '.i1, .i2 {margin: 1px 0;} ' + '.tir {text-align:right;} ' + '.s {width:7px} ' + '#resetbuttons {text-align:center; margin: 30px 0 15px 0; padding-top: 10px; border-top: 2px solid #ABABAB;} ' + '#button_ResetConfig {position:relative; right:50px;} ' + '#button_DeleteAll {position:relative; left:40px;} ' + '.version {left:15px;} ' + '.scriptlink {left: 204px;} ' + '.author {right:20px;} ' + '.version, .scriptlink, .author {position:absolute; bottom:10px; font-size:10px;} ' + '.good td, .good td a {color:#00ff00;} ' + '.bad td, .bad td a {color:#ff0000;} ' + '#resSaveButton, #forumDataDel {margin:20px 0 10px 10px;} ' + '#forum-legend {margin-left:15px;} ' + '.postrecovery {text-align:center; font-size:10px; color:#ffff00; margin:5px 0 15px;} ' + '.pointer.save { margin: 0 5px;} ' + '.kampfcopy {width:100%; height:150px;} ' + '#stammnachrichteneingabetable {width:95%;} ' + '#stammnachrichteneingabe {width:100%; height:200px;} ' + '#posteingabe {width:100%; height:300px;} ' + '.eigeneLaender thead td {font-weight:bold; text-align:center;} ' + '.eigeneLaender td {padding:3px 1.5px; text-align:center;} ' + '.eigeneLaender td.spieler {text-align:left;} ' + 'table.inventar thead td {font-weight:bold; padding:4px; text-align:center;} ' + 'table.inventar td {padding:0px 4px; text-align:center;} ' + '.greenDot {display:inline-block; background-color:#64c02c ; width:10px; height: 10px; border-radius:5px;} ' + '.redDot {display:inline-block; background-color:#db1100 ; width:10px; height: 10px; border-radius:5px;} ' + '.blueDot {display:inline-block; background-color:#1668df ; width:10px; height: 10px; border-radius:5px;} ' + '#topiceingabe {width:300px;} ' + '#contenteingabe {width:100%; height:300px;} ' + 'table td.top {vertical-align:top;} '; document.getElementsByTagName('head')[0].appendChild(css); // Konfiguration var configLayer = document.createElement("div"); configLayer.setAttribute("id", "configLayer"); var configContent = '<h1>SZS-Assistent - Einstellungen</h1>'; // Allgemein configContent += '<h2 class="pointer" name="configTriggerElementToggle" data-szsa-toggle="configItem-Allgemein">Allgemein <span class="triggerElementToggle"></span></h2><br>'; configContent += '<div id="configItem-Allgemein" style="display: none;">'; configContent += '<table class="configTable" border="1">'; configContent += '<tr><td width="115px">Username</td><td colspan="2"><input class="i1" type="text" name="Assi_UserName" value="'+Assi_UserName+'"></td></tr>'; configContent += '<tr><td>Stamm</td><td colspan="2"><input class="i1" type="text" name="Assi_StammName" value="'+Assi_StammName+'"></td></tr>'; configContent += '<tr><td>Info-Anzeigen</td><td width="130px"><input type="radio" name="Assi_Infoanzeigen" value="menu"'+((Assi_Infoanzeigen == 'menu')? ' checked="checked"' : '')+'>im rechten Menu<br><input type="radio" name="Assi_Infoanzeigen" value="zentriert"'+((Assi_Infoanzeigen == 'zentriert')? ' checked="checked"' : '')+'>zentriert<br></td><td class="center">Position für Ausrüstung-, Opfer- und Artefakte-Info</td></tr>'; configContent += '<tr><td>"Dein Alter"</td><td class="center"><input type="checkbox" name="Assi_DeinAlter"'+((Assi_DeinAlter)? ' checked="checked"' : '')+'></td><td class="center">im rechten Menu anzeigen</td></tr>'; configContent += '<tr><td>Freunde-Sortierung</td><td class="center"><input type="checkbox" name="Assi_FreundeSortierung"'+((Assi_FreundeSortierung)? ' checked="checked"' : '')+'></td><td class="center">Alphabetisch</td></tr>'; configContent += '<tr><td>Notizen anzeigen</td><td class="center"><input type="checkbox" name="Assi_Notizen"'+((Assi_Notizen)? ' checked="checked"' : '')+'></td><td><br></td></tr>'; configContent += '<tr><td>Hotkey-Timeout</td><td><input class="i2 tir" type="text" name="Assi_HotkeyTimeout" value="'+Assi_HotkeyTimeout+'"> ms</td><td class="center">Zeit bis eine Hotkeyeingabe verfällt</td></tr>'; configContent += '<tr><td>Bilderhöhe im Inventar</td><td><input class="i2 tir" type="text" name="Assi_InventarIMGheight" value="'+Assi_InventarIMGheight+'"> Pixel</td><td class="center">0 = Standardgröße</td></tr>'; configContent += '<tr><td>Tränkereihenfolge im Inventar</td><td colspan="2"><input class="i1" type="text" name="Assi_InventarTrankreihenfolge" value="'+Assi_InventarTrankreihenfolge+'"><br>Weggelassene oder falsch geschriebene Tränke werdenans Ende gesetzt!<br><br><b>Standard:</b> '+traenke+'</td></tr>'; configContent += '<tr><td>Lagerauszahlungen</td><td colspan="2"><input type="radio" name="Assi_Lagerauszahlungen" value="eigene"'+((Assi_Lagerauszahlungen == 'eigene')? ' checked="checked"' : '')+'>Nur eigene Einzahlungen<br><input type="radio" name="Assi_Lagerauszahlungen" value="andere"'+((Assi_Lagerauszahlungen == 'andere')? ' checked="checked"' : '')+'>eigene und andere: (Nicks mit Komma trennen)<input class="i1" type="text" name="Assi_LagerauszahlungenNicks" value="'+Assi_LagerauszahlungenNicks+'"><br><input type="radio" name="Assi_Lagerauszahlungen" value="alle"'+((Assi_Lagerauszahlungen == 'alle')? ' checked="checked"' : '')+'>alle<br></td></tr>'; configContent += '<tr><td>Uhrzeit links im Menu</td><td class="center"><input type="checkbox" name="Assi_MenuUhrzeit"'+((Assi_MenuUhrzeit)? ' checked="checked"' : '')+'></td><td class="center"><br></td></tr>'; configContent += '<tr><td>SK-Zeit rechts im Menu</td><td class="center"><input type="checkbox" name="Assi_MenuSKZeit"'+((Assi_MenuSKZeit)? ' checked="checked"' : '')+'></td><td class="center"><br></td></tr>'; configContent += '<tr><td>Versionscheck</td><td class="center"><input type="checkbox" name="Assi_MenuVersionTip"'+((Assi_MenuVersionTip)? ' checked="checked"' : '')+'></td><td class="center">Zeigt dir im Menu, ob eine neue Script-Version verfügbar ist.</td></tr>'; configContent += '<tr><td>SK-Auswertung</td><td class="center"><input type="checkbox" name="Assi_SKAuswertung"'+((Assi_SKAuswertung)? ' checked="checked"' : '')+'></td><td class="center">... mit EP für jeden Teilnehmer?</td></tr>'; configContent += '</table></div>'; // Reminder configContent += '<h2 class="pointer" name="configTriggerElementToggle" data-szsa-toggle="configItem-Reminder">Reminder <span class="triggerElementToggle"></span></h2><br>'; configContent += '<div id="configItem-Reminder" style="display: none;">'; configContent += '<table class="configTable" border="1">'; configContent += '<tr><td width="115px">Activity-Reminder</td><td width="180px" class="center"><input type="checkbox" name="Assi_ActivityReminder"'+((Assi_ActivityReminder)? ' checked="checked"' : '')+'></td><td class="center">Hinweis, wenn du wieder verfügbar bist.</td></tr>'; configContent += '<tr><td>Activity-Sound</td><td>'; configContent += '<input type="radio" name="Assi_Remindersound" value=""'+((Assi_Remindersound == '')? ' checked="checked"':'')+'>Kein Sound<br>'; configContent += '<input type="radio" name="Assi_Remindersound" value="SoundA"'+((Assi_Remindersound == 'SoundA')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_ReminderSoundVolume audioA">Phone-Ring</a><br>'; configContent += '<input type="radio" name="Assi_Remindersound" value="SoundB"'+((Assi_Remindersound == 'SoundB')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_ReminderSoundVolume audioB">Gong</a><br>'; configContent += '<input type="radio" name="Assi_Remindersound" value="SoundC"'+((Assi_Remindersound == 'SoundC')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_ReminderSoundVolume audioC">Glocke</a><br>'; configContent += '<input type="radio" name="Assi_Remindersound" value="SoundD"'+((Assi_Remindersound == 'SoundD')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_ReminderSoundVolume audioD">Coin</a><br>'; configContent += '</td><td class="center">Wird zusätzlich zum Reminder abgespielt.</td></tr>'; configContent += '<tr><td>Lautstärke</td><td><input class="i2 tir" type="text" name="Assi_ReminderSoundVolume" value="'+Assi_ReminderSoundVolume+'"> %</td><td class="center">Lautstärke des <br>Activity-Sounds</td></tr>'; configContent += '<tr><td>Standardtätigkeit</td><td>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value=""'+((Assi_Standardtaetigkeit == '')? ' checked="checked" id="standardtaetigkeit"':'')+'>Keine<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Jagen"'+((Assi_Standardtaetigkeit == 'Jagen')? ' checked="checked" id="standardtaetigkeit"':'')+'>Jagen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Wasser"'+((Assi_Standardtaetigkeit == 'Wasser')? ' checked="checked" id="standardtaetigkeit"':'')+'>Wasser suchen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Holz"'+((Assi_Standardtaetigkeit == 'Holz')? ' checked="checked" id="standardtaetigkeit"':'')+'>Holz fällen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Stein"'+((Assi_Standardtaetigkeit == 'Stein')? ' checked="checked" id="standardtaetigkeit"':'')+'>Steine metzen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Kohle"'+((Assi_Standardtaetigkeit == 'Kohle')? ' checked="checked" id="standardtaetigkeit"':'')+'>Köhlern<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Kupfer"'+((Assi_Standardtaetigkeit == 'Kupfer')? ' checked="checked" id="standardtaetigkeit"':'')+'>Kupfer abbauen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Zinn"'+((Assi_Standardtaetigkeit == 'Zinn')? ' checked="checked" id="standardtaetigkeit"':'')+'>Zinn abbauen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Bronze"'+((Assi_Standardtaetigkeit == 'Bronze')? ' checked="checked" id="standardtaetigkeit"':'')+'>Bronze herstellen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Trank"'+((Assi_Standardtaetigkeit == 'Trank')? ' checked="checked" id="standardtaetigkeit"':'')+'>Trank brauen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Waffe"'+((Assi_Standardtaetigkeit == 'Waffe')? ' checked="checked" id="standardtaetigkeit"':'')+'>Waffe bauen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Werkzeug"'+((Assi_Standardtaetigkeit == 'Werkzeug')? ' checked="checked" id="standardtaetigkeit"':'')+'>Werkzeug bauen<br>'; configContent += '<input type="radio" name="Assi_Standardtaetigkeit" value="Artefakt"'+((Assi_Standardtaetigkeit == 'Artefakt')? ' checked="checked" id="standardtaetigkeit"':'')+'>Artefakt herstellen/weihen<br>'; configContent += '</td><td class="center">Diese Tätigkeit wird aufgerufen, wenn du wieder verfügbar bist.<br><br><br>Funktioniert nur mit aktiviertem Activity-Reminder!</td></tr>'; configContent += '<tr><td>Message-Reminder</td><td class="center"><input type="checkbox" name="Assi_MessageReminder"'+((Assi_MessageReminder)? ' checked="checked"' : '')+'></td><td class="center">Hinweis, wenn eine neue Nachricht eingeht.</td></tr>'; configContent += '<tr><td>Message-Sound</td><td>'; configContent += '<input type="radio" name="Assi_Messagesound" value=""'+((Assi_Messagesound == '')? ' checked="checked"':'')+'>Kein Sound<br>'; configContent += '<input type="radio" name="Assi_Messagesound" value="SoundA"'+((Assi_Messagesound == 'SoundA')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_MessageSoundVolume audioA">Phone-Ring</a><br>'; configContent += '<input type="radio" name="Assi_Messagesound" value="SoundB"'+((Assi_Messagesound == 'SoundB')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_MessageSoundVolume audioB">Gong</a><br>'; configContent += '<input type="radio" name="Assi_Messagesound" value="SoundC"'+((Assi_Messagesound == 'SoundC')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_MessageSoundVolume audioC">Glocke</a><br>'; configContent += '<input type="radio" name="Assi_Messagesound" value="SoundD"'+((Assi_Messagesound == 'SoundD')? ' checked="checked"':'')+'><a class="pointer underline" name="SoundSample" data-szsa-sound="Assi_MessageSoundVolume audioD">Coin</a><br>'; configContent += '</td><td class="center">Wird abgespielt, wenn eine neue Nachricht eingeht.<br>Unabhängig vom Hinweis!</td></tr>'; configContent += '<tr><td>Lautstärke</td><td><input class="i2 tir" type="text" name="Assi_MessageSoundVolume" value="'+Assi_MessageSoundVolume+'"> %</td><td class="center">Lautstärke des Message-Sounds</td></tr>'; configContent += '<tr><td>Waffen- und Werkzeugwarnung</td><td class="center"><input type="checkbox" name="Assi_WaffenWerkzeugWarnung"'+((Assi_WaffenWerkzeugWarnung)? ' checked="checked"' : '')+'></td><td class="center"><br></td></tr>'; configContent += '<tr><td>Ringwarnung</td><td class="center"><input type="checkbox" name="Assi_RingWarnung"'+((Assi_RingWarnung)? 'checked="checked"' : '')+'></td><td class="center"><br></td></tr>'; configContent += '<tr><td>Gästebucheintrag</td><td class="center"><input type="checkbox" name="Assi_Gaestebucheintrag"'+((Assi_Gaestebucheintrag)? ' checked="checked"' : '')+'></td><td class="center">Hinweis bei neuem GB-Eintrag<br></td></tr>'; configContent += '</table></div>'; // Skillsystem configContent += '<h2 class="pointer" name="configTriggerElementToggle" data-szsa-toggle="configItem-Skillsystem">Skillsystem <span class="triggerElementToggle"></span></h2><br>'; configContent += '<div id="configItem-Skillsystem" style="display: none;">'; configContent += '<table class="configTable" border="1">'; configContent += '<tr><td width="115px">Kraft</td><td><input class="i2 tir" type="text" name="Assi_Kraft" value="'+Assi_Kraft+'"></td><td rowspan="6" class="center">Trage hier Punkte oder Prozent ein um die Verteilung zu bestimmen.</td></tr>'; configContent += '<tr><td>Intelligenz</td><td><input class="i2 tir" type="text" name="Assi_Intelligenz" value="'+Assi_Intelligenz+'"></td></tr>'; configContent += '<tr><td>Geschwindigkeit</td><td><input class="i2 tir" type="text" name="Assi_Geschwindigkeit" value="'+Assi_Geschwindigkeit+'"></td></tr>'; configContent += '<tr><td>List</td><td><input class="i2 tir" type="text" name="Assi_List" value="'+Assi_List+'"></td></tr>'; configContent += '<tr><td>Ausdauer</td><td><input class="i2 tir" type="text" name="Assi_Ausdauer" value="'+Assi_Ausdauer+'"></td></tr>'; configContent += '<tr><td>Geschick</td><td><input class="i2 tir" type="text" name="Assi_Geschick" value="'+Assi_Geschick+'"></td></tr>'; configContent += '</table></div>'; // Rohstoffsicherung configContent += '<h2 class="pointer" name="configTriggerElementToggle" data-szsa-toggle="configItem-Rohstoffsicherung">Rohstoffsicherung <span class="triggerElementToggle"></span></h2><br>'; configContent += '<div id="configItem-Rohstoffsicherung" style="display: none;">'; configContent += '<table class="configTable" border="1">'; configContent += '<tr><td class="ressicon essen" width="90px">Nahrung</td><td width="90px"><input class="i2 tir" type="text" name="Assi_NahrungRest" value="'+Assi_NahrungRest+'"></td><td rowspan="4" class="center">Wieviele Rohstoffe sollen mindestens behalten werden?</td></tr>'; configContent += '<tr><td class="ressicon gold">Gold</td><td><input class="i2 tir" type="text" name="Assi_GoldRest" value="'+Assi_GoldRest+'"></td></tr>'; configContent += '<tr><td class="ressicon holz">Holz</td><td><input class="i2 tir" type="text" name="Assi_HolzRest" value="'+Assi_HolzRest+'"></td></tr>'; configContent += '<tr><td class="ressicon steine">Stein</td><td><input class="i2 tir" type="text" name="Assi_SteinRest" value="'+Assi_SteinRest+'"></td></tr>'; configContent += '<tr><td class="ressicon essen">Nahrung</td><td><input class="i2 tir" type="text" name="Assi_NahrungRund" value="'+Assi_NahrungRund+'"></td><td rowspan="2" class="center">Auf was soll beim Sichern abgerundet werden?<br>z. B. 10, 50, 100, ...</td></tr>'; configContent += '<tr><td class="ressicon gold">Gold</td><td><input class="i2 tir" type="text" name="Assi_GoldRund" value="'+Assi_GoldRund+'"></td></tr>'; configContent += '<tr><td class="ressicon holz">Holz</td><td><input class="i2 tir" type="text" name="Assi_HolzPreis" value="'+Assi_HolzPreis+'"> Gold</td><td rowspan="2" class="center">Zu welchem Preis sollen die Rohstoffe eingestellt werden?</td></tr>'; configContent += '<tr><td class="ressicon steine">Stein</td><td><input class="i2 tir" type="text" name="Assi_SteinPreis" value="'+Assi_SteinPreis+'"> Gold</td></tr>'; configContent += '</table></div>'; // Markt configContent += '<h2 class="pointer" name="configTriggerElementToggle" data-szsa-toggle="configItem-Markt">Markt <span class="triggerElementToggle"></span></h2><br>'; configContent += '<div id="configItem-Markt" style="display: none;">'; configContent += '<table class="configTable" border="1">'; configContent += '<tr><td width="115px">Preishervorhebung</td><td width="100px"><input type="radio" name="Assi_Preishervorhebung" value="dynamisch"'+((Assi_Preishervorhebung == 'dynamisch')? ' checked="checked"' : '')+'>dynamisch<br><input type="radio" name="Assi_Preishervorhebung" value="eigenePreise"'+((Assi_Preishervorhebung == 'eigenePreise')? ' checked="checked"' : '')+'>eigene Preise<br></td><td class="center">dynamisch = automatisch vom Script<br>eigene Preise = s.u.</td></tr>'; configContent += '<tr><td class="ressicon wasser">Wasser</td><td><input class="i2 tir" type="text" name="Assi_MarktWasserPreis" value="'+Assi_MarktPreis["Wasser"]+'"> Gold</td><td rowspan="7" class="center">Lege hier Preise für die Preishervorhebung mit <i>eigenen Preisen</i> fest.<br><br>Angebote, deren Preis <b>kleiner</b> dem angegebenen Wert ist, werden hervorgehoben.</td></tr>'; configContent += '<tr><td class="ressicon holz">Holz</td><td><input class="i2 tir" type="text" name="Assi_MarktHolzPreis" value="'+Assi_MarktPreis["Holz"]+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon steine">Steine</td><td><input class="i2 tir" type="text" name="Assi_MarktSteinPreis" value="'+Assi_MarktPreis["Stein"]+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon kohle">Kohle</td><td><input class="i2 tir" type="text" name="Assi_MarktKohlePreis" value="'+Assi_MarktPreis["Kohle"]+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon kupfer">Kupfer</td><td><input class="i2 tir" type="text" name="Assi_MarktKupferPreis" value="'+Assi_MarktPreis["Kupfer"]+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon zinn">Zinn</td><td><input class="i2 tir" type="text" name="Assi_MarktZinnPreis" value="'+Assi_MarktPreis["Zinn"]+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon bronze">Bronze</td><td><input class="i2 tir" type="text" name="Assi_MarktBronzePreis" value="'+Assi_MarktPreis["Bronze"]+'"> Gold</td></tr>'; configContent += '</table><br>'; configContent += '<table class="configTable" border="1">'; configContent += '<tr><td width="115px"><br></td><td width="60px" class="center bold">Standard-<br>menge</td><td width="90px" class="center bold">Standardpreis</td><td rowspan="17" class="center"><b>Standardmengen</b> und <b>-preise</b>, die beim Verkaufen voreingetragen werden.<br><br>Dabei gilt:<br>(für Mengen)<br>leer = keine Standardmenge<br>0 = maximale Menge<br>-1 = max-1, usw.<br><br>(für Preise)<br>Lässt du das Feld leer, wird kein Standardpreis beim Verkauf eingetragen.</td></tr>'; configContent += '<tr><td class="ressicon wasser">Wasser</td><td><input class="i2 tir" type="text" name="Assi_MarktWasserverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Wasser']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktWasserverkaufspreis" value="'+Assi_MarktVerkaufspreis['Wasser']+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon holz">Holz</td><td><input class="i2 tir" type="text" name="Assi_MarktHolzverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Holz']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktHolzverkaufspreis" value="'+Assi_MarktVerkaufspreis['Holz']+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon steine">Steine</td><td><input class="i2 tir" type="text" name="Assi_MarktSteinverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Steine']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktSteinverkaufspreis" value="'+Assi_MarktVerkaufspreis['Steine']+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon kohle">Kohle</td><td><input class="i2 tir" type="text" name="Assi_MarktKohleverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Kohle']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktKohleverkaufspreis" value="'+Assi_MarktVerkaufspreis['Kohle']+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon kupfer">Kupfer</td><td><input class="i2 tir" type="text" name="Assi_MarktKupferverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Kupfer']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktKupferverkaufspreis" value="'+Assi_MarktVerkaufspreis['Kupfer']+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon zinn">Zinn</td><td><input class="i2 tir" type="text" name="Assi_MarktZinnverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Zinn']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktZinnverkaufspreis" value="'+Assi_MarktVerkaufspreis['Zinn']+'"> Gold</td></tr>'; configContent += '<tr><td class="ressicon bronze">Bronze</td><td><input class="i2 tir" type="text" name="Assi_MarktBronzeverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Bronze']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktBronzeverkaufspreis" value="'+Assi_MarktVerkaufspreis['Bronze']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon klheil">kl. Heiltrank</td><td><input class="i2 tir" type="text" name="Assi_MarktkleinerHeiltrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['kleiner Heiltrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktkleinerHeiltrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['kleiner Heiltrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon miheil">mi. Heiltrank</td><td><input class="i2 tir" type="text" name="Assi_MarktmittlererHeiltrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['mittlerer Heiltrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktmittlererHeiltrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['mittlerer Heiltrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon stheil">st. Heiltrank</td><td><input class="i2 tir" type="text" name="Assi_MarktstarkerHeiltrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['starker Heiltrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktstarkerHeiltrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['starker Heiltrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon wach">Wachtrank</td><td><input class="i2 tir" type="text" name="Assi_MarktWachtrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Wachtrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktWachtrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['Wachtrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon stwach">st. Wachtrank</td><td><input class="i2 tir" type="text" name="Assi_MarktstarkerWachtrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['starker Wachtrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktstarkerWachtrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['starker Wachtrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon holztr">Holztrank</td><td><input class="i2 tir" type="text" name="Assi_MarktHolztrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Holztrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktHolztrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['Holztrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon steintr">Steintrank</td><td><input class="i2 tir" type="text" name="Assi_MarktSteintrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Steintrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktSteintrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['Steintrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon kupfertr">Kupfertrank</td><td><input class="i2 tir" type="text" name="Assi_MarktKupfertrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Kupfertrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktKupfertrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['Kupfertrank']+'"> Gold</td></tr>'; configContent += '<tr><td class="trankicon zinntr">Zinntrank</td><td><input class="i2 tir" type="text" name="Assi_MarktZinntrankverkaufsmenge" value="'+Assi_MarktVerkaufsmenge['Zinntrank']+'"></td><td><input class="i2 tir" type="text" name="Assi_MarktZinntrankverkaufspreis" value="'+Assi_MarktVerkaufspreis['Zinntrank']+'"> Gold</td></tr>'; configContent += '</table></div>'; // Hotkeys configContent += '<h2 class="pointer" name="configTriggerElementToggle" data-szsa-toggle="configItem-Hotkeys">Hotkeys <span class="triggerElementToggle"></span></h2><br>'; configContent += '<div id="configItem-Hotkeys" style="display: none;">'; configContent += '<table class="configTable" border="1">'; for(i=0; i<hotkeys.length; i++) { configContent += '<tr>'; configContent += '<td width="115px">'+hotkeys[i][0]+'</td><td><input class="i2 tir" type="text" name="Assi_Hotkeys['+i+']" value="'+hotkeys[i][2]+'"></td>'; if(i == 0) configContent += '<td valign="top" rowspan="'+hotkeys.length+'" class="center">Definiere hier deine eigenen, ganz individuellen Hotkeys.<br><br><br>Erlaubte Zeichen:<br>- Zahlen: 0-9<br>- Buchstaben: a-z<br>- Sonderzeichen: <^#+-,.<br><br><br>Auch eine Zeichenfolge (z.B. a1, holz, etc.) ist möglich. Beachte, dass du diese innerhalb der Hotkey-Timeout-Zeit eingeben musst.<br><br>Doppelte Hotkeys sind nicht möglich, es wird immer der oberste zuerst ausgelöst. Ebenso sind Erweiterungen (z.B. h und h1) nicht möglich, da bei der ersten Übereinstimmung ausgelöst wird.</td>'; configContent += '</tr>'; } configContent += '</table></div><br>'; configContent += '<br><input class="pointer" type="button" id="button_SaveConfig" value="Speichern" data-szsa-toggle="configLayer">'; // Einstellungen zurücksetzen- und Alle Daten löschen-Button var strButtons = '<div id="resetbuttons"><input class="pointer" type="button" id="button_ResetConfig" value="Einstellungen zurücksetzen"><input class="pointer" type="button" id="button_DeleteAll" value="ALLE Daten löschen"></div>'; configLayer.innerHTML = '<div class="border-left"></div><div class="border-right"></div><div id="config-main"><div class="border-top"><div class="close"><a id="toggle_configClose" class="pointer" title="Einstellungen schließen" data-szsa-toggle="configLayer">[X]</a></div></div><div id="config-content">'+configContent+strButtons+'</div><div class="border-bottom"><span class="version">Version: '+GM_info.script.version+'</span><span class="scriptlink"><a href="https://greasyfork.org/scripts/3698-szs-assistent" target="_blank">SZS-Assistent</a></span><span class="author">by <a href="userinfo.php?userinfo=87836">KingMaxi</a></span></div></div>'; document.getElementsByTagName('body')[0].appendChild(configLayer); document.getElementById('toggle_configClose').addEventListener('click', toggleElement, false); var configTrigger = document.getElementsByName('configTriggerElementToggle'); for(i=0; i<configTrigger.length; i++) { configTrigger[i].addEventListener('click', toggleElement, false); } var configSounds = document.getElementsByName('SoundSample'); for(i=0; i<configSounds.length; i++) { document.getElementsByName('SoundSample')[i].addEventListener('click', playSound, false); } // remove/change attributes in body-tag document.getElementsByTagName('body')[0].removeAttribute('onscroll'); document.getElementsByTagName('body')[0].removeAttribute('marginwidth'); document.getElementsByTagName('body')[0].removeAttribute('leftmargin'); document.getElementsByTagName('body')[0].removeAttribute('topmargin'); document.getElementsByTagName('body')[0].removeAttribute('bgcolor'); document.getElementsByTagName('body')[0].removeAttribute('style'); // remove waste childNodes of body var elems = document.getElementsByTagName('body')[0].childNodes; for(i=elems.length-1; i>=0; i--) { if(elems[i].tagName == 'BR' || elems[i].tagName == 'CENTER' || elems[i].tagName == 'SCRIPT' || elems[i].tagName == 'NOSCRIPT' || elems[i].tagName == 'IMG') { elems[i].parentNode.removeChild(elems[i]); } } // header (remove ad + "nur durch Werbung bleibt SteinZeitSpiel.de kostenfrei.") if(!isPremiumSpieler) { i = document.getElementsByTagName('center').length-1; while(i >= 0) { if(document.getElementsByTagName('center')[i].textContent.indexOf('nur durch Werbung bleibt SteinZeitSpiel.de kostenfrei.') != -1) { var elem_temp = document.getElementsByTagName('center')[i]; if(typeof elem_temp == 'object') elem_temp.parentNode.removeChild(elem_temp); break; } i--; } } // first table, wrap-table // left side (remove waste td) wrap.getElementsByTagName('td')[0].parentNode.removeChild(wrap.getElementsByTagName('td')[0]); // right side (replace/add notice) if(isPremiumSpieler) { i=0; while(!(wrap.getElementsByTagName('td')[i].innerHTML.trim() == "" && wrap.getElementsByTagName('td')[i].getAttribute('valign') == 'top')) { i++; } var temp = wrap.getElementsByTagName('td')[i]; } else { var temp = document.getElementById('site_extern').parentNode; } if(Assi_Notizen) { temp.innerHTML = '<div id="site_extern" style="position:relative"></div>'; document.getElementById('site_extern').innerHTML = '<div class="headline">Notizen</div><textarea id="notice"></textarea>'; if(notice != "") { document.getElementById('notice').value = notice; } } else { temp.style.display = "none"; } // second table, main-table - change attributes (move main-container to left side) main.parentNode.setAttribute('width', '800'); main.setAttribute('width', 800); main.removeAttribute('align'); content.removeChild(content.getElementsByTagName('br')[0]); if(Assi_Infoanzeigen == 'zentriert') content.removeChild(content.getElementsByTagName('br')[0]); // Serverzeit auslesen var nomadenzeit = servertime.slice(0, servertime.indexOf('<br>')).trim().replace(/\s\s/g, " "); servertime = servertime.slice(servertime.indexOf('ServerZeit:')+11, servertime.indexOf('Uhr')); var servertimeArray = servertime.split(':'); servertimeDate = new Date(); servertimeDate.setHours(servertimeArray[0]); servertimeDate.setMinutes(servertimeArray[1]); servertimeDate.setSeconds(servertimeArray[2]); servertimeDate.setMilliseconds(0); var diffServertime = (new Date()).getTime()-servertimeDate.getTime(); // Zeitunterschied zwischen PC und Server // Talkampf bestimmen var tkStart = 10; var tkEnde = 12; if(isSommerzeit(servertimeDate)) { tkStart = 12; tkEnde = 14; } else { tkStart = 11; tkEnde = 13; } var talkampfDate = new Date(servertimeDate); talkampfDate.setHours(tkStart); talkampfDate.setMinutes(0); talkampfDate.setSeconds(0); if(servertimeDate.getHours() >= tkEnde) { talkampfDate.setDate(talkampfDate.getDate()+1); } // Talkampf-Teilnahme if(tkTeilnahme+7260000 <= servertimeDate.getTime()) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/grtal.php", onload: function(response) { if(response.responseText.indexOf('Du bist für die Kämpfe im Tal angemeldet.') != -1) { GM_setValue("TKTeilnahme", talkampfDate.getTime().toString()); } else { GM_deleteValue("TKTeilnahme"); } } }); } // Stammkampf bestimmen if(nextSK == "kein Kampf" || parseInt(nextSK.split(',')[0], 10)+3660000 < servertimeDate.getTime()) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/stamm.php?do=uebersicht", onload: function(response) { if(response.responseText.search(/Nächster Kampf: (\d+)\.(\d+)\.(\d+) \- (\d+):(\d+) Uhr gegen: <a href=stamminfo.php\?stammid=(\d+)>(.+)<\/a><br>Kampfstamm/) != -1) { var skStartDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), 0); GM_setValue("NextSK", skStartDate.getTime().toString()+","+RegExp.$6.trim()+","+RegExp.$7.trim()); } else { GM_setValue("NextSK", "kein Kampf"); } } }); } // Stammkampf-Teilnahme if(isNaN(skTeilnahme)) { skTeilnahme = 0; } // fix for v0.9.5, skTeilnahme can be NaN (== 'kein Kampf') if(skTeilnahme+3660000 < servertimeDate.getTime()) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/stamm.php?do=kampfuserauswahl", onload: function(response) { if(response.responseText.indexOf('Uhr kämpft ihr gegen') != -1) { if(response.responseText.indexOf('nicht teilnehmen') != -1 && response.responseText.search(/Am (\d+)\.(\d+)\.(\d+) - (\d+):(\d+) Uhr kämpft ihr gegen/) != -1) { var skStartDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), 0); GM_setValue("SKTeilnahme", skStartDate.getTime().toString()); } else { GM_deleteValue("SKTeilnahme"); } } } }); } // Magierkampf bestimmen var mkStart = 16; var mkEnde = 18; if(isSommerzeit(servertimeDate)) { mkStart = 18; mkEnde = 20; } else { mkStart = 17; mkEnde = 19; } var magierkampfDate = new Date(servertimeDate); if(servertimeDate.getDay() == 1 && servertimeDate.getHours() < mkEnde) { magierkampfDate.setHours(mkStart); } else { var day = (servertimeDate.getDay()==0)? 1 : (8-servertimeDate.getDay()); magierkampfDate.setDate(magierkampfDate.getDate()+day); magierkampfDate.setHours(mkStart); } magierkampfDate.setMinutes(0); magierkampfDate.setSeconds(0); magierkampfDate.setMilliseconds(0); // Magierkampf-Teilnahme if(mkTeilnahme+7260000 <= servertimeDate.getTime()) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/stamm.magierkampf.php", onload: function(response) { if(response.responseText.indexOf('zum Magierkampf eintragen') != -1) { if(response.responseText.indexOf('vom Magierkampf austragen') != -1) { GM_setValue("MKTeilnahme", magierkampfDate.getTime().toString()); } else { GM_deleteValue("MKTeilnahme"); } } } }); } // Logbuch if(document.URL.indexOf('/news.php') != -1) { content.getElementsByTagName('table')[1].setAttribute('id', 'logbuch'); document.getElementById('logbuch').removeAttribute('width'); var logs = content.getElementsByTagName('table')[1].getElementsByTagName('tr'); logs[0].getElementsByTagName('td')[1].setAttribute('colspan', 2); var pn_nicks = new Array(); var trade_nicks = new Array(); var filter = new Array(); var count = new Array(); count['PN'] = 0; count['trade'] = 0; count['Rest'] = 0; count['combat EK'] = 0; count['combat TK'] = 0; count['combat SK'] = 0; count['combat MK'] = 0; for(i=1; i<logs.length; i++) { var dataFilterText = ''; if(logs[i].getElementsByTagName('td')[0].textContent.indexOf('NEU') != -1) { dataFilterText += ' NEU'; } if(logs[i].getElementsByTagName('td')[1].getElementsByTagName('div')[0]) { logs[i].getElementsByTagName('td')[1].getElementsByTagName('div')[0].setAttribute('style', 'width:100%; overflow:auto;'); } logs[i].getElementsByTagName('td')[1].setAttribute('colspan', 2); if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Nachricht') != -1) { // PN count['PN']++; // Textlinks setzen logs[i].getElementsByTagName('td')[1].innerHTML = logs[i].getElementsByTagName('td')[1].innerHTML.replace(/((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#\(\)]*[\w\-\@?^=%&\/~\+#\(\)])?)/g, '<a class="menu" target="_blank" href="$1">$1</a>'); if(logs[i].getElementsByTagName('div')[0].innerHTML.split('<br>')[0].trim().search(/^Du hast an .* diese Nachricht geschrieben:/) != -1) { // gesendete PN (Profillinks) logs[i].getElementsByTagName('td')[1].removeAttribute('colspan'); logs[i].innerHTML += '<td class="center"></td>'; var pnzeilen = logs[i].getElementsByTagName('div')[0].innerHTML.split('<br>'); pnzeilen[0] = pnzeilen[0].trim().replace(/^Du hast an (.*) diese Nachricht geschrieben:/, 'Du hast an <span id="pn_'+i+'"><a href="userinfo.php?s=$1">$1</a></span> diese Nachricht geschrieben:'); var nick = RegExp.$1; logs[i].getElementsByTagName('td')[2].innerHTML = '<span id="pn_'+i+'-2"><a href="message.php?to='+nick+'">Nachricht</a><br><a href="uebertragen.php?anrohstoffe='+nick+'">Übertragen</a></span>'; logs[i].getElementsByTagName('div')[0].innerHTML = pnzeilen.join('<br>'); addLinksToLogbuch(nick, 'pn_'+i); dataFilterText += ' PN '+nick; if(pn_nicks.indexOf(nick) == -1) { pn_nicks.push(nick); } } else { // empfangene PN logs[i].getElementsByTagName('i')[0].innerHTML.search(/von <a href="userinfo\.php\?userinfo=\d*">(.*)<\/a> \| <a href="message\.php/); var nick = RegExp.$1; dataFilterText += ' PN '+nick; if(pn_nicks.indexOf(nick) == -1) { pn_nicks.push(nick); } } } else if((logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du hast an') != -1 && logs[i].getElementsByTagName('td')[1].textContent.indexOf('übertragen.') != -1) || (logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du hast von') != -1 && logs[i].getElementsByTagName('td')[1].textContent.indexOf('bekommen.') != -1)) { // Übertragung (Profillinks) count['trade']++; logs[i].getElementsByTagName('td')[1].removeAttribute('colspan'); logs[i].innerHTML += '<td class="center"></td>'; logs[i].getElementsByTagName('td')[1].innerHTML = logs[i].getElementsByTagName('td')[1].innerHTML.replace(/Du hast (an|von) (.*) (\d)/, 'Du hast $1 <span id="transfer_'+i+'"><a href="userinfo.php?s=$2">$2</a></span><br>$3'); var nick = RegExp.$2; logs[i].getElementsByTagName('td')[2].innerHTML = '<span id="transfer_'+i+'-2"><a href="message.php?to='+nick+'">Nachricht</a><br><a href="uebertragen.php?anrohstoffe='+nick+'">Übertragen</a></span>'; addLinksToLogbuch(nick, 'transfer_'+i); dataFilterText += ' trade '+nick; if(trade_nicks.indexOf(nick) == -1) { trade_nicks.push(nick); } } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('auf dem Markt') != -1 && logs[i].getElementsByTagName('td')[1].textContent.indexOf('konnte nicht auf dem Markt verkauft werden') == -1) { // Marktein-/-verkauf (Profillinks) count['trade']++; logs[i].getElementsByTagName('td')[1].removeAttribute('colspan'); logs[i].innerHTML += '<td class="center"></td>'; logs[i].getElementsByTagName('td')[1].innerHTML = logs[i].getElementsByTagName('td')[1].innerHTML.replace(/von (.*) auf dem Markt (gekauft|zum)/, 'von <span id="market_'+i+'"><a href="userinfo.php?s=$1">$1</a></span> auf dem Markt $2'); var nick = RegExp.$1; logs[i].getElementsByTagName('td')[2].innerHTML = '<span id="market_'+i+'-2"><a href="message.php?to='+nick+'">Nachricht</a><br><a href="uebertragen.php?anrohstoffe='+nick+'">Übertragen</a></span>'; addLinksToLogbuch(nick, 'market_'+i); dataFilterText += ' trade '+nick; if(trade_nicks.indexOf(nick) == -1) { trade_nicks.push(nick); } } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('konnte nicht auf dem Markt verkauft werden') != -1) { // Marktrückläufe count['trade']++; dataFilterText += ' trade tradeReturn'; filter['TradeReturn'] = true; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du bist für die Kämpfe im Tal angemeldet.') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Tal angemeldet, bist aber nicht verfügbar.') != -1) { // Talkampf (Anmeldung, nicht verfügbar) dataFilterText += ' combat TK'; filter['TK'] = true; } else if(logs[i].getElementsByTagName('td')[0].textContent.indexOf(tkEnde+':00') != -1 && logs[i].getElementsByTagName('td')[1].textContent.indexOf('Runde 1 Start:') != -1) { // Talkampfeergebnis (Profillinks) var tkzeilen = logs[i].getElementsByTagName('td')[1].innerHTML.split('<br>'); for(j=2; j<tkzeilen.length-2; j++) { if(tkzeilen[j].indexOf('Du triffst auf') != -1) { tkzeilen[j].search(/Du triffst auf (.*) \(Erfahrungspunkte: (\d*)/); var tkgegner = RegExp.$1; var tkgegnerep = RegExp.$2; tkzeilen[j] = 'Du triffst auf <span id=\"tk_'+i+'_'+j+'"><a href="userinfo.php?s='+encodeURI(tkgegner)+'">'+htmlspecialchars(tkgegner)+'</a></span> (Erfahrungspunkte: '+number_format(tkgegnerep, 0, ',', '.')+').'; addLinksToLogbuch(tkgegner, 'tk_'+i+'_'+j); } } logs[i].getElementsByTagName('td')[1].innerHTML = tkzeilen.join('<br>'); dataFilterText += ' combat TK'; filter['TK'] = true; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('für Deinen Stamm zu kämpfen') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('vom Stammkampf ausgeschlossen') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du machst dich auf, um deinem Stamm im Kampf beizustehen') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du hättest jetzt kämpfen sollen') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('deswegen nimmst du auch nicht am Stammkampf teil.') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Ihr habt den Kampf gewonnen.') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Allerdings hast Du 3 Erfahrungspunkte und 3 frei verteilbare Punkte bekommen') != -1) { // Stammkampf (Anmeldung, Ausschluss, Start und Ergebnis) dataFilterText += ' combat SK'; filter['SK'] = true; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du hast Dich entschieden im Magierkampf anzutreten') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du wurdest beim Magierkampf durch ein Artefakt geschützt') != -1) { // Magierkampf (nur Anmeldung) dataFilterText += ' combat MK'; filter['MK'] = true; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('angegriffen und hast gewonnen.') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('angegriffen und hast verloren.') != -1) { // Einzelkampf dataFilterText += 'combat EK'; filter['EK'] = true; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Nahrungspunkte bekommen') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Wasser geholt') != -1 || logs[i].getElementsByTagName('td')[1].textContent.search(/mit nach\s*Hause/) != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('hergestellt') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('gebaut') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('geschabt') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('geweiht') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('trank gebraut') != -1) { // Arbeitsgang ("Nahrungspunkte bekommen": Nahrung, "Wasser geholt": Wasser, "mit nach Hause": Holz/Stein, "hergestellt": Kohle/Bronze/Artefakt, "gebaut": Kupfer/WW-Stufe, "geschabt": Zinn, "geweiht": Artefakt, "trank gebraut": Tränke dataFilterText += ' AG'; filter['AG'] = true; // ab hier: Rest (Knochenfunde, Funde (Ring/Wasser/Gold), Verletzungen/Artefaktschutz, Ringsuche, Wandern/"angekommen" } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du wurdest verletzt') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Stamm wurde von wilden Tieren angegriffen') != -1) { // Verletzung dataFilterText += ' Rest Verletzung'; filter['Verletzung'] = true; filter['Rest'] = true; count['Rest']++; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('dabei siehst du einen Knochen') != -1) { // Knochenfund dataFilterText += ' Rest Knochenfund'; filter['Knochenfund'] = true; filter['Rest'] = true; count['Rest']++; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Die Götter haben') != -1) { // Ringsuche dataFilterText += ' Rest Ringsuche'; filter['Ringsuche'] = true; filter['Rest'] = true; count['Rest']++; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du wurdest durch ein Artefakt geschützt') != -1) { // Artefaktschutz dataFilterText += ' Rest Artefaktschutz'; filter['Artefaktschutz'] = true; filter['Rest'] = true; count['Rest']++; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Du bist angekommen') != -1) { // Wandern dataFilterText += ' Rest Wandern'; filter['Wandern'] = true; filter['Rest'] = true; count['Rest']++; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('gefunden') != -1) { // Fundgold/-wasser/Ringfund dataFilterText += ' Rest Funde'; filter['Funde'] = true; filter['Rest'] = true; count['Rest']++; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('aus dem Lager genommen') != -1) { dataFilterText += 'Rest Lager'; filter['Lager'] = true; filter['Rest'] = true; count['Rest']++; } else if(logs[i].getElementsByTagName('td')[1].textContent.indexOf('Schneemann') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Rentier') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Mann in roten Kleidern') != -1 || logs[i].getElementsByTagName('td')[1].textContent.indexOf('Knecht Ruprecht') != -1) { dataFilterText += 'Rest Weihnachten'; filter['Weihnachten'] = true; filter['Rest'] = true; count['Rest']++; } else { // Ohne Zuordnung dataFilterText += ' OhneZuordnung'; filter['OhneZuordnung'] = true; } dataFilterText = dataFilterText.trim(); if(dataFilterText.trim() != '') { logs[i].setAttribute('data-szsa-filter', htmlspecialchars(dataFilterText)); } if(count[dataFilterText] == undefined) { count[dataFilterText] = 1; } else { count[dataFilterText]++; } } // Filter-Einstellungen var newDIV = document.createElement('div'); newDIV.setAttribute('id', 'logbuchFilter'); var logbuchFilterContent = '<h2 id="toggle_logbuchFilterOptions" class="pointer" data-szsa-toggle="logbuchFilterOptions" data-szsa-status="save">Logbuch-Filter <span class="triggerElementToggle'+((statusToggle['logbuchFilterOptions'] == 'none')? '':' opened')+'"></span></h2><br>'; logbuchFilterContent += '<div id="logbuchFilterOptions" style="display: '+statusToggle['logbuchFilterOptions']+';"><form id="logbuchFilterForm">'; logbuchFilterContent += '<div id="overallAll"><input id="overallAllButton" class="pointer" type="button" value="Alle abwählen"></div>'; logbuchFilterContent += '<div id="pn" class="column"><b>Private Nachrichten</b><br>'; if(pn_nicks.length > 0) { logbuchFilterContent += '<label class="layer1" for="pnAll"><input type="checkbox" id="pnAll" data-szsa-filter="PN" checked="checked">Alle ('+count['PN']+')</label><br>'; pn_nicks.sort(nickSort); for(i=0; i<pn_nicks.length; i++) { logbuchFilterContent += '<label class="layer2" for="pn['+pn_nicks[i]+']"><input type="checkbox" id="pn['+pn_nicks[i]+']" data-szsa-filter="PN '+pn_nicks[i]+'" checked="checked">'+pn_nicks[i]+' ('+count['PN '+pn_nicks[i]]+')</label><br>'; } } else { logbuchFilterContent += '<i>Keine in der aktuellen Ansicht!</i>'; } logbuchFilterContent += '</div>'; logbuchFilterContent += '<div id="trade" class="column"><b>Handel</b><br>'; if(trade_nicks.length > 0 || filter['TradeReturn']) { logbuchFilterContent += '<label class="layer1" for="tradeAll"><input type="checkbox" id="tradeAll" data-szsa-filter="trade" checked="checked">Alle ('+count['trade']+')</label><br>'; if(filter['TradeReturn']) { logbuchFilterContent += '<label class="layer2" for="tradeReturn"><input type="checkbox" id="tradeReturn" data-szsa-filter="trade tradeReturn" checked="checked">Marktrückläufe ('+count['trade tradeReturn']+')</label><br>'; } trade_nicks.sort(nickSort); for(i=0; i<trade_nicks.length; i++) { logbuchFilterContent += '<label class="layer2" for="trade['+trade_nicks[i]+']"><input type="checkbox" id="trade['+trade_nicks[i]+']" data-szsa-filter="trade '+trade_nicks[i]+'" checked="checked">'+trade_nicks[i]+' ('+count['trade '+trade_nicks[i]]+')</label><br>'; } } else { logbuchFilterContent += '<i>Keine in der aktuellen Ansicht!</i>'; } logbuchFilterContent += '</div>'; logbuchFilterContent += '<div id="other" class="column"><b>Sonstige</b><br>'; if(filter['AG']) { logbuchFilterContent += '<div><label class="layer1" for="ag"><input type="checkbox" id="ag" data-szsa-filter="AG" checked="checked">Arbeitsgänge ('+count['AG']+')</label></div>'; } if(filter['EK'] || filter['TK'] || filter['SK'] || filter['MK']) { logbuchFilterContent += '<div>'; logbuchFilterContent += '<label class="layer1" for="combatAll"><input type="checkbox" id="combatAll" data-szsa-filter="combat" checked="checked">Kämpfe ('+(count['combat EK']+count['combat TK']+count['combat SK']+count['combat MK'])+')</label><br>'; if(filter['EK']) { logbuchFilterContent += '<label class="layer2" for="combat[ek]"><input type="checkbox" id="combat[ek]" data-szsa-filter="combat EK" checked="checked">Einzelkampf ('+count['combat EK']+')</label><br>'; } if(filter['TK']) { logbuchFilterContent += '<label class="layer2" for="combat[tk]"><input type="checkbox" id="combat[tk]" data-szsa-filter="combat TK" checked="checked">Talkampf ('+count['combat TK']+')</label><br>'; } if(filter['SK']) { logbuchFilterContent += '<label class="layer2" for="combat[sk]"><input type="checkbox" id="combat[sk]" data-szsa-filter="combat SK" checked="checked">Stammkampf ('+count['combat SK']+')</label><br>'; } if(filter['MK']) { logbuchFilterContent += '<label class="layer2" for="combat[mk]"><input type="checkbox" id="combat[mk]" data-szsa-filter="combat MK" checked="checked">Magierkampf ('+count['combat MK']+')</label><br>'; } logbuchFilterContent += '</div>'; } if(filter['Rest']) { logbuchFilterContent += '<div><label class="layer1" for="rest"><input type="checkbox" id="rest" data-szsa-filter="Rest" checked="checked">Rest ('+count['Rest']+')</label></div>'; } if(filter['OhneZuordnung']) { logbuchFilterContent += '<br><div><label class="layer1" for="ohneZuordnung"><input type="checkbox" id="ohneZuordnung" data-szsa-filter="OhneZuordnung" checked="checked">Ohne Zuordnung ('+count['OhneZuordnung']+')</label><br><span class="orange">Bitte kopiere <a href="message.php?empf=87836">mir</a> diese Logbucheinträge, damit sie in Zukunft zugeordnet werden können. </span></div>'; } logbuchFilterContent += '</div>'; i = 1; while(content.getElementsByTagName('a')[i].textContent.indexOf('Hilfe') == -1) { i++; } if(content.getElementsByTagName('a')[i+1].textContent.indexOf('Stammnachrichten') != -1) i++; logbuchFilterContent += '</form></div>'; newDIV.innerHTML = logbuchFilterContent; content.insertBefore(newDIV, content.getElementsByTagName('a')[i].nextSibling); document.getElementById('toggle_logbuchFilterOptions').addEventListener('click', toggleElement, false); document.getElementById('overallAllButton').addEventListener('click', function(e) { var newStatus = true; if(this.getAttribute('value') == 'Alle abwählen') { newStatus = false; } var items = document.getElementById('logbuchFilterForm').getElementsByTagName('input'); for(var i=1; i<items.length; i++) { items[i].indeterminate = false; items[i].checked = newStatus; } var logbuchEntrys = document.getElementById('logbuch').getElementsByTagName('tr'); for(i=1; i<logbuchEntrys.length; i++) { if(newStatus) { logbuchEntrys[i].removeAttribute('class'); } else { logbuchEntrys[i].setAttribute('class', 'hide'); } } this.setAttribute('value', (newStatus)? 'Alle abwählen' : 'Alle wählen'); }, false); for(i=1; i<document.getElementById('logbuchFilterForm').getElementsByTagName('input').length; i++) { document.getElementById('logbuchFilterForm').getElementsByTagName('input')[i].addEventListener('change', function(e) { var newStatus = this.checked; var filterTerms = this.getAttribute('data-szsa-filter').split(' '); if(this.parentNode.getAttribute('class') == 'layer1') { var catItems = this.parentNode.parentNode.getElementsByTagName('input'); for(var i=1; i<catItems.length; i++) { catItems[i].checked = newStatus; } } else { var catItems = this.parentNode.parentNode.getElementsByTagName('input'); var catStatus = new Array(); catStatus['true'] = 0; catStatus['false'] = 0; for(var i=1; i<catItems.length; i++) { if(catItems[i].checked) { catStatus['true']++; } else { catStatus['false']++; } } if(catStatus['true'] == 0) { catItems[0].checked = false; catItems[0].indeterminate = false; } else if(catStatus['false'] == 0) { catItems[0].checked = true; catItems[0].indeterminate = false; } else { catItems[0].indeterminate = true; } } var logbuchEntrys = document.getElementById('logbuch').getElementsByTagName('tr'); logbuchLoop: for(i=1; i<logbuchEntrys.length; i++) { var filterThis = true; for(j=0; j<filterTerms.length; j++) { if(logbuchEntrys[i].getAttribute('data-szsa-filter').indexOf(filterTerms[j]) == -1) { filterThis = false; continue logbuchLoop; } } if(filterThis) { if(newStatus) { logbuchEntrys[i].removeAttribute('class'); } else { logbuchEntrys[i].setAttribute('class', 'hide'); } } } }, false); } } // Nachrichten if(document.URL.indexOf('/message.php') != -1) { // Nachricht löschen, wenn abgeschickt var allEmpf = GM_getValue("Message_Empf", "#"); if(content.textContent.search(/Deine Nachricht wurde an (.+) übermittelt./) != -1) { var currEmpf = RegExp.$1; if(allEmpf.indexOf('#'+currEmpf+'#') != -1) { GM_setValue("Message_Empf", allEmpf.replace('#'+currEmpf+'#', '#')); GM_deleteValue("Message_"+currEmpf); } else { GM_setValue("Message_Empf", allEmpf.replace('##', '#')); GM_deleteValue("Message_"); } } else if(content.getElementsByTagName('input')[0] && content.getElementsByTagName('textarea')[0]) { content.getElementsByTagName('input')[0].setAttribute('id', 'empfeingabe'); content.getElementsByTagName('textarea')[0].setAttribute('id', 'contenteingabe'); // Lösche wiederherstellbare Nachricht if(getURLParameter('del') != null) { allEmpf = allEmpf.replace('#'+decodeURI(getURLParameter('del'))+'#', '#') GM_setValue("Message_Empf", allEmpf); GM_deleteValue("Message_"+decodeURI(getURLParameter('del'))); } // Stelle ausgewählte Nachricht wieder her if(getURLParameter('to') != null) { document.getElementById('empfeingabe').value = decodeURI(getURLParameter('to')); document.getElementById('contenteingabe').value = GM_getValue("Message_"+decodeURI(getURLParameter('to')), ""); } // Zeige Tabelle mit wiederherstellbaren Nachrichten if(allEmpf != '#') { allEmpf = allEmpf.split('#'); var newDIV = document.createElement('div'); newDIV.setAttribute('class', 'postrecovery'); content.insertBefore(newDIV, content.getElementsByTagName('center')[0]); var newDIV_inner = 'Nicht abgeschickte Nachrichten wiederherstellen:<br><table border="1" style="margin:auto;"><tbody>'; newDIV_inner += '<tr><td width="110px" class="center bold">User</td><td width="120px" class="center bold">Nachricht</td><td width="75px" class="center bold">Löschen?</td></tr>'; for(i=1; i<allEmpf.length-1; i++) { if(allEmpf[i] == '') { newDIV_inner += '<tr><td class="center"><a href="message.php?to=">NoUser</a></td>'; } else { newDIV_inner += '<tr><td class="center"><a href="message.php?to='+encodeURI(allEmpf[i])+'">'+htmlspecialchars(allEmpf[i])+'</a></td>'; } newDIV_inner += '<td>'+htmlspecialchars(GM_getValue("Message_"+allEmpf[i], "").slice(0, 50))+'</td>'; newDIV_inner += '<td class="center"><a href="message.php?del='+encodeURI(allEmpf[i])+'">Löschen</a></td></tr>'; } newDIV_inner += '</tbody></table>'; newDIV.innerHTML = newDIV_inner; } // Event-Listener document.getElementsByTagName('form')[0].addEventListener('submit', function(e) { var newEmpf = document.getElementById('empfeingabe').value.trim(); var newMessage = document.getElementById('contenteingabe').value.trim(); if(newEmpf == '' || newMessage == '') { e.preventDefault(); alert('Empfänger oder Nachricht leer!'); return false; } else { var allEmpf = GM_getValue("Message_Empf", "#"); if(getURLParameter('to') == '') { GM_setValue("Message_Empf", allEmpf.replace('##', '#')); GM_deleteValue("Message_"); } if(allEmpf.indexOf('#'+newEmpf+'#') == -1) { GM_setValue("Message_Empf", allEmpf+newEmpf+'#'); } GM_setValue("Message_"+newEmpf, newMessage); return true; } }, false); document.getElementById('contenteingabe').addEventListener('keyup', function() { var newEmpf = document.getElementById('empfeingabe').value.trim(); var newMessage = document.getElementById('contenteingabe').value.trim(); var allEmpf = GM_getValue("Message_Empf", "#"); if(newMessage == '') { GM_setValue("Message_Empf", allEmpf.replace('#'+newEmpf+'#', '#')); GM_deleteValue("Message_"+newEmpf); } else { if(allEmpf.indexOf('#'+newEmpf+'#') == -1) { GM_setValue("Message_Empf", allEmpf+newEmpf+'#'); } GM_setValue("Message_"+newEmpf, newMessage); } }, false); } } // Charakter if(document.URL.indexOf('/charakter.php') != -1 && content.textContent.indexOf('Hier kannst du deinen Steinzeitmenschen') != -1) { // aktuelle Position speichern content.textContent.search(/Du stehst im Moment auf Land\:\sX\:\s(\d{1,3})\sY\:\s(\d{1,3})/); var x = RegExp.$1; var y = RegExp.$2; GM_setValue("AktuellePosition", x+"#"+y); // Skillsystem var gesamt_cp = parseInt(content.getElementsByTagName('td')[4].textContent, 10); var kraft_ist = parseInt(content.getElementsByTagName('tr')[3].getElementsByTagName('td')[1].textContent, 10); var intelligenz_ist = parseInt(content.getElementsByTagName('tr')[4].getElementsByTagName('td')[1].textContent, 10); var geschwindigkeit_ist = parseInt(content.getElementsByTagName('tr')[5].getElementsByTagName('td')[1].textContent, 10); var list_ist = parseInt(content.getElementsByTagName('tr')[6].getElementsByTagName('td')[1].textContent, 10); var ausdauer_ist = parseInt(content.getElementsByTagName('tr')[7].getElementsByTagName('td')[1].textContent, 10); var geschick_ist = parseInt(content.getElementsByTagName('tr')[8].getElementsByTagName('td')[1].textContent, 10); var freie_cp = parseInt(content.getElementsByTagName('tr')[9].getElementsByTagName('td')[1].getElementsByTagName('b')[0].textContent, 10); var kraft_soll = parseFloat(Assi_Kraft.replace(/\,/, '.')); if(kraft_soll < 0 || isNaN(kraft_soll)) kraft_soll = 0; var intelligenz_soll = parseFloat(Assi_Intelligenz.replace(/\,/, '.')); if(intelligenz_soll < 0 || isNaN(intelligenz_soll)) kraft_soll = 0; var geschwindigkeit_soll = parseFloat(Assi_Geschwindigkeit.replace(/\,/, '.')); if(geschwindigkeit_soll < 0 || isNaN(geschwindigkeit_soll)) kraft_soll = 0; var list_soll = parseFloat(Assi_List.replace(/\,/, '.')); if(list_soll < 0 || isNaN(list_soll)) kraft_soll = 0; var ausdauer_soll = parseFloat(Assi_Ausdauer.replace(/\,/, '.')); if(ausdauer_soll < 0 || isNaN(ausdauer_soll)) kraft_soll = 0; var geschick_soll = parseFloat(Assi_Geschick.replace(/\,/, '.')); if(geschick_soll < 0 || isNaN(geschick_soll)) kraft_soll = 0; var gesamt_soll = kraft_soll+intelligenz_soll+geschwindigkeit_soll+list_soll+ausdauer_soll+geschick_soll; if(gesamt_soll == 0) gesamt_soll = 1; kraft_soll = kraft_soll/gesamt_soll; intelligenz_soll = intelligenz_soll/gesamt_soll; geschwindigkeit_soll = geschwindigkeit_soll/gesamt_soll; list_soll = list_soll/gesamt_soll; ausdauer_soll = ausdauer_soll/gesamt_soll; geschick_soll = geschick_soll/gesamt_soll; content.getElementsByTagName('tbody')[1].innerHTML += '<tr bgcolor="123014"><td>CP/EP-Verhältnis:</td><td>'+number_format((gesamt_cp-freie_cp)/ep_gesamt, 5)+'</td></tr>'; content.getElementsByTagName('tr')[10].getElementsByTagName('td')[0].getElementsByTagName('b')[0].innerHTML = 'Freie CP:'; content.getElementsByTagName('tr')[4].getElementsByTagName('td')[0].removeAttribute('width'); content.getElementsByTagName('tbody')[2].innerHTML = '<tr bgcolor="173F1A"><td width="*" class="center bold">Fertigkeit</td><td width="26%" class="center bold">Charakterpunkte</td>'+((content.getElementsByTagName('input').length > 1)? '<td width="17%" class="center"><br></td>' : '')+'<td width="12%" class="center bold">IST</td><td width="12%" class="center bold">SOLL</td></tr>'+content.getElementsByTagName('tbody')[2].innerHTML; content.getElementsByTagName('table')[2].getElementsByTagName('tr')[1].innerHTML += '<td class="right">'+number_format(kraft_ist/(gesamt_cp-freie_cp)*100, 2, ',', '.', true)+' %</td><td class="right">'+number_format(kraft_soll*100, 2, ',', '.', true)+' %</td>'; content.getElementsByTagName('table')[2].getElementsByTagName('tr')[2].innerHTML += '<td class="right">'+number_format(intelligenz_ist/(gesamt_cp-freie_cp)*100, 2, ',', '.', true)+' %</td><td class="right">'+number_format(intelligenz_soll*100, 2, ',', '.', true)+' %</td>'; content.getElementsByTagName('table')[2].getElementsByTagName('tr')[3].innerHTML += '<td class="right">'+number_format(geschwindigkeit_ist/(gesamt_cp-freie_cp)*100, 2, ',', '.', true)+' %</td><td class="right">'+number_format(geschwindigkeit_soll*100, 2, ',', '.', true)+' %</td>'; content.getElementsByTagName('table')[2].getElementsByTagName('tr')[4].innerHTML += '<td class="right">'+number_format(list_ist/(gesamt_cp-freie_cp)*100, 2, ',', '.', true)+' %</td><td class="right">'+number_format(list_soll*100, 2, ',', '.', true)+' %</td>'; content.getElementsByTagName('table')[2].getElementsByTagName('tr')[5].innerHTML += '<td class="right">'+number_format(ausdauer_ist/(gesamt_cp-freie_cp)*100, 2, ',', '.', true)+' %</td><td class="right">'+number_format(ausdauer_soll*100, 2, ',', '.', true)+' %</td>'; content.getElementsByTagName('table')[2].getElementsByTagName('tr')[6].innerHTML += '<td class="right">'+number_format(geschick_ist/(gesamt_cp-freie_cp)*100, 2, ',', '.', true)+' %</td><td class="right">'+number_format(geschick_soll*100, 2, ',', '.', true)+' %</td>'; for(i=1; i<=6; i++) { content.getElementsByTagName('table')[2].getElementsByTagName('tr')[i].getElementsByTagName('td')[1].innerHTML = number_format(content.getElementsByTagName('table')[2].getElementsByTagName('tr')[i].getElementsByTagName('td')[1].textContent); } if(content.getElementsByTagName('input').length > 1) { // CP-Verteilung var kraft_ad = 0; var intelligenz_ad = 0; var geschwindigkeit_ad = 0; var list_ad = 0; var ausdauer_ad = 0; var geschick_ad = 0; for(i=freie_cp; i>0; i--) { var fertigkeiten = new Array('Kraft', 'Intelligenz', 'Geschwindigkeit', 'List', 'Ausdauer', 'Geschick'); var potenziale = new Array(); potenziale[fertigkeiten[0]] = 1-((kraft_ist+kraft_ad)/(gesamt_cp*kraft_soll)); potenziale[fertigkeiten[1]] = 1-((intelligenz_ist+intelligenz_ad)/(gesamt_cp*intelligenz_soll)); potenziale[fertigkeiten[2]] = 1-((geschwindigkeit_ist+geschwindigkeit_ad)/(gesamt_cp*geschwindigkeit_soll)); potenziale[fertigkeiten[3]] = 1-((list_ist+list_ad)/(gesamt_cp*list_soll)); potenziale[fertigkeiten[4]] = 1-((ausdauer_ist+ausdauer_ad)/(gesamt_cp*ausdauer_soll)); potenziale[fertigkeiten[5]] = 1-((geschick_ist+geschick_ad)/(gesamt_cp*geschick_soll)); for(j=0; j<fertigkeiten.length; j++) { for(k=j+1; k<fertigkeiten.length; k++) { if(potenziale[fertigkeiten[j]] < potenziale[fertigkeiten[k]]) { var z = fertigkeiten[j]; fertigkeiten[j] = fertigkeiten[k]; fertigkeiten[k] = z; } } } switch(fertigkeiten[0]) { case 'Kraft': kraft_ad++; break; case 'Intelligenz': intelligenz_ad++; break; case 'Geschwindigkeit': geschwindigkeit_ad++; break; case 'List': list_ad++; break; case 'Ausdauer': ausdauer_ad++; break; case 'Geschick': geschick_ad++; break; default: break; } } document.getElementsByName('kraft')[0].value = kraft_ad; document.getElementsByName('intelligenz')[0].value = intelligenz_ad; document.getElementsByName('geschwindigkeit')[0].value = geschwindigkeit_ad; document.getElementsByName('list')[0].value = list_ad; document.getElementsByName('ausdauer')[0].value = ausdauer_ad; document.getElementsByName('geschick')[0].value = geschick_ad; } // erforderliche CP bis Skillung erreicht var highestSkill = new Array(); highestSkill.push(new Array((kraft_ist/(gesamt_cp*kraft_soll)), kraft_ist, kraft_soll)); highestSkill.push(new Array((intelligenz_ist/(gesamt_cp*intelligenz_soll)), intelligenz_ist, intelligenz_soll)); highestSkill.push(new Array((geschwindigkeit_ist/(gesamt_cp*geschwindigkeit_soll)), geschwindigkeit_ist, geschwindigkeit_soll)); highestSkill.push(new Array((list_ist/(gesamt_cp*list_soll)), list_ist, list_soll)); highestSkill.push(new Array((ausdauer_ist/(gesamt_cp*ausdauer_soll)), ausdauer_ist, ausdauer_soll)); highestSkill.push(new Array((geschick_ist/(gesamt_cp*geschick_soll)), geschick_ist, geschick_soll)); for(i=0; i<highestSkill.length; i++) { for(j=i+1; j<highestSkill.length; j++) { if(highestSkill[i][0] < highestSkill[j][0]) { var z = highestSkill[i]; highestSkill[i] = highestSkill[j]; highestSkill[j] = z; } } } var erforderliche_cp = 0; (highestSkill[0][2] == kraft_soll)? erforderliche_cp += kraft_ist : erforderliche_cp += Math.ceil(highestSkill[0][1]/highestSkill[0][2]*kraft_soll); (highestSkill[0][2] == intelligenz_soll)? erforderliche_cp += intelligenz_ist : erforderliche_cp += Math.ceil(highestSkill[0][1]/highestSkill[0][2]*intelligenz_soll); (highestSkill[0][2] == geschwindigkeit_soll)? erforderliche_cp += geschwindigkeit_ist : erforderliche_cp += Math.ceil(highestSkill[0][1]/highestSkill[0][2]*geschwindigkeit_soll); (highestSkill[0][2] == list_soll)? erforderliche_cp += list_ist : erforderliche_cp += Math.ceil(highestSkill[0][1]/highestSkill[0][2]*list_soll); (highestSkill[0][2] == ausdauer_soll)? erforderliche_cp += ausdauer_ist : erforderliche_cp += Math.ceil(highestSkill[0][1]/highestSkill[0][2]*ausdauer_soll); (highestSkill[0][2] == geschick_soll)? erforderliche_cp += geschick_ist : erforderliche_cp += Math.ceil(highestSkill[0][1]/highestSkill[0][2]*geschick_soll); content.getElementsByTagName('tbody')[1].innerHTML += '<tr bgcolor="173f1a"><td>benötigte CP für SOLL-Skillung:</td><td>'+number_format(erforderliche_cp)+' (noch: '+number_format(erforderliche_cp-gesamt_cp)+')</td></tr>'; } // Inventar // Ausrüstung auslesen if(!document.getElementsByName('zufallscode')[0]) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/inventar.php", onload: function(response) { // in der Hand var anfang = response.responseText.indexOf('Diesen Gegenstand hältst du in der Hand:'); var ende = response.responseText.indexOf('Diesen Ring hast du am Finger:'); if(anfang != -1 && ende != -1) { var html = response.responseText.slice(anfang, ende); html.search(/<b>([\S\s]*)<\/b>/); var handAkt = RegExp.$1.replace(/<[\S\s]*>/g, '').trim(); if(hand.indexOf(handAkt) == -1) { if(handAkt == 'nichts') { handAkt = '<span class="green">nichts</span>'; } else if(waffen.indexOf(handAkt) != -1) { handAkt = '<span class="red">'+handAkt+'</span>'; } else if(werkzeuge.indexOf(handAkt) != -1) { handAkt = '<span class="yellow">'+handAkt+'</span>'; } GM_setValue("Hand", handAkt); if(document.getElementById('hand')) document.getElementById('hand').innerHTML = handAkt; } } // am Finger anfang = response.responseText.indexOf('Diesen Ring hast du am Finger:'); ende = response.responseText.indexOf('Ringe in der Truhe:'); if(anfang != -1 && ende != -1) { html = response.responseText.slice(anfang, ende); html.search(/<b>([\S\s]*)<\/b>/); var fingerAkt = RegExp.$1.replace(/<[\S\s]*>/g, '').trim(); if(finger.indexOf(fingerAkt) == -1) { if(fingerAkt == 'keinen') { fingerAkt = '<span class="green">nichts</span>'; } else if(ringe.indexOf(fingerAkt) != -1) { fingerAkt = '<span class="green">'+fingerAkt+'</font>'; } GM_setValue("Finger", fingerAkt); if(document.getElementById('finger')) document.getElementById('finger').innerHTML = fingerAkt; } } } }); } // Inventar-Seite if(document.URL.indexOf('/inventar.php') != -1 && document.URL.indexOf('aktion') == -1 && content.textContent.indexOf('Inventar aufräumen') != -1) { content.innerHTML = content.innerHTML.replace(/\s*<br>\s*<br>\s*<br>\s*<br>\s*<br>\s*/g, '<br><br><br><br>').replace(/\s*<br>\s*<br>\s*<br>\s*<br>\s*/g, '<br><br><br>').replace(/\s*<br>\s*<br>\s*<br>\s*/g, '<br><br>'); // vorhandenes Inventar speichern if(content.textContent.indexOf('Kupfer-Hacke') != -1) { GM_setValue("Kupfer-Hacke", true); } else { GM_setValue("Kupfer-Hacke", false); } if(content.textContent.indexOf('Kupfer-Schaber') != -1) { GM_setValue("Kupfer-Schaber", true); } else { GM_setValue("Kupfer-Schaber", false); } if(content.textContent.indexOf('Kupfer-Keil') != -1) { GM_setValue("Kupfer-Keil", true); } else { GM_setValue("Kupfer-Keil", false); } if(content.textContent.indexOf('Zinn-Schaber') != -1) { GM_setValue("Zinn-Schaber", true); } else { GM_setValue("Zinn-Schaber", false); } if(content.textContent.indexOf('Zinn-Keil') != -1) { GM_setValue("Zinn-Keil", true); } else { GM_setValue("Zinn-Keil", false); } if(content.textContent.indexOf('Wasserring') != -1) { GM_setValue("Wasserring", true); } else { GM_setValue("Wasserring", false); } if(content.textContent.indexOf('Jagdring') != -1) { GM_setValue("Jagdring", true); } else { GM_setValue("Jagdring", false); } if(content.textContent.indexOf('Talkampfring') != -1) { GM_setValue("Talkampfring", true); } else { GM_setValue("Talkampfring", false); } if(content.textContent.indexOf('Stammkampfring') != -1) { GM_setValue("Stammkampfring", true); } else { GM_setValue("Stammkampfring", false); } if(content.innerHTML.indexOf('Verringert deine Müdigkeit um 80%') != -1) { var html = content.innerHTML.slice(content.innerHTML.indexOf('Verringert deine Müdigkeit um 80%')); var anfang = html.indexOf('inventar.php?aktion=trinken2&trankid='); var ende = html.indexOf('Trinken'); starkerWachtrankID = html.slice(anfang+41, ende-2) GM_setValue("starkerWachtrank", starkerWachtrankID); } else { starkerWachtrankID = 0; GM_setValue("starkerWachtrank", 0); } if(content.innerHTML.indexOf('Verringert deine Müdigkeit um 20%') != -1) { var html = content.innerHTML.slice(content.innerHTML.indexOf('Verringert deine Müdigkeit um 20%')); var anfang = html.indexOf('inventar.php?aktion=trinken2&trankid='); var ende = html.indexOf('Trinken'); GM_setValue("Wachtrank", html.slice(anfang+41, ende-2)); } else { GM_setValue("Wachtrank", 0); } // Ringe auslesen var ringeInventar = new Array(); var ringeZeilen = content.getElementsByTagName('table')[3].getElementsByTagName('tr'); for(i=1; i<ringeZeilen.length; i++) { var temp = new Array(); temp[0] = ringeZeilen[i].getElementsByTagName('td')[0].textContent.trim(); ringeZeilen[i].getElementsByTagName('a')[0].getAttribute('href').search(/id=(\d+)/); temp[1] = RegExp.$1; temp[2] = ringeZeilen[i].getElementsByTagName('td')[1].textContent.trim(); temp[3] = ringeZeilen[i].getElementsByTagName('img')[0].getAttribute('src').trim(); ringeInventar.push(temp); } // Waffen auslesen var waffenInventar = new Array(); var waffenZeilen = content.getElementsByTagName('table')[4].getElementsByTagName('tr'); for(i=1; i<waffenZeilen.length; i++) { var temp = new Array(); temp[0] = waffenZeilen[i].getElementsByTagName('td')[0].textContent.trim() waffenZeilen[i].getElementsByTagName('a')[0].getAttribute('href').search(/id=(\d+)/); temp[1] = RegExp.$1; temp[2] = waffenZeilen[i].getElementsByTagName('td')[1].textContent.trim(); temp[3] = waffenZeilen[i].getElementsByTagName('img')[0].getAttribute('src').trim(); waffenInventar.push(temp); } // Werkzeug auslesen var werkzeugeInventar = new Array(); var werkzeugeZeilen = content.getElementsByTagName('table')[5].getElementsByTagName('tr'); for(i=1; i<werkzeugeZeilen.length; i++) { var temp = new Array(); temp[0] = werkzeugeZeilen[i].getElementsByTagName('td')[0].textContent.trim(); werkzeugeZeilen[i].getElementsByTagName('a')[0].getAttribute('href').search(/id=(\d+)/); temp[1] = RegExp.$1; temp[2] = werkzeugeZeilen[i].getElementsByTagName('td')[1].textContent.trim(); temp[3] = werkzeugeZeilen[i].getElementsByTagName('img')[0].getAttribute('src').trim(); werkzeugeInventar.push(temp); } // Tränke auslesen var traenkeInventar = new Array(); var traenkeZeilen = content.getElementsByTagName('table')[6].getElementsByTagName('tr'); for(i=1; i<traenkeZeilen.length; i++) { var temp = new Array(); temp[0] = traenkeZeilen[i].getElementsByTagName('td')[0].textContent.trim(); traenkeZeilen[i].getElementsByTagName('a')[0].getAttribute('href').search(/id=(\d+)/); temp[1] = RegExp.$1; temp[2] = parseInt(traenkeZeilen[i].getElementsByTagName('td')[1].textContent.trim(), 10); temp[3] = traenkeZeilen[i].getElementsByTagName('img')[0].getAttribute('src').trim(); traenkeInventar.push(temp); } // Inventarcontent ändern var contentHTML = content.innerHTML; var ende = contentHTML.indexOf('Ringe in der Truhe'); contentHTML = contentHTML.slice(0, ende); // Grafikhöhe anpassen var inventarIMGheight = Assi_InventarIMGheight; if(inventarIMGheight < 0 || isNaN(inventarIMGheight)) inventarIMGheight = 0; contentHTML += '<b>Ringe:</b><br>'; var tempContent = ''; var ringe2 = ringe.split('#'); for(i=0; i<ringe2.length; i++) { for(j=0; j<ringeInventar.length; j++) { if(ringe2[i] == ringeInventar[j][0]) { tempContent += '<tr><td>'+ringeInventar[j][0]+'</td><td class="center">'+ringeInventar[j][2]+'</td><td><img height='+inventarIMGheight+' src="'+ringeInventar[j][3]+'"></td><td><a href="inventar.php?aktion=take&id='+ringeInventar[j][1]+'&artgegen=ring">Anlegen</a></td><td><a href="inventar.php?aktion=verkaufen&id='+ringeInventar[j][1]+'">Verkaufen</a></td><td><a href="inventar.php?aktion=uebertragen&id='+ringeInventar[j][1]+'">Übertragen</a></td></tr>'; } } } if(tempContent != '') { contentHTML += '<table class="inventar" border="1"><thead><tr bgcolor="#173f1a"><td>Name</td><td>Anzahl</td><td>Bild</td><td>Anlegen</td><td>Verkaufen</td><td>Übertragen</td></tr></thead></tbody>'; contentHTML += tempContent; contentHTML += '</tbody></table>'; } else { contentHTML += 'Keine Ringe vorhanden<br>'; } contentHTML += '<br><br><b>Waffen:</b><br>'; var tempContent = ''; var waffen2 = waffen.split('#'); waffen2.reverse(); for(i=0; i<waffen2.length; i++) { for(j=0; j<waffenInventar.length; j++) { if(waffen2[i] == waffenInventar[j][0]) { tempContent += '<tr><td>'+waffenInventar[j][0]+'</td><td class="center">'+waffenInventar[j][2]+'</td><td><img height='+inventarIMGheight+' src="'+waffenInventar[j][3]+'"></td><td><a href="inventar.php?aktion=take&id='+waffenInventar[j][1]+'&artgegen=hand">Anlegen</a></td><td><a href="inventar.php?aktion=verkaufen&id='+waffenInventar[j][1]+'">Verkaufen</a></td><td><a href="inventar.php?aktion=uebertragen&id='+waffenInventar[j][1]+'">Übertragen</a></td><td><a href="inventar.php?aktion=stamm&id='+waffenInventar[j][1]+'">Einlagern</a></td></tr>'; } } } if(tempContent != '') { contentHTML += '<table class="inventar" border="1"><thead><tr bgcolor="#173f1a"><td>Name</td><td>Anzahl</td><td>Bild</td><td>Anlegen</td><td>Verkaufen</td><td>Übertragen</td><td>Stammlager</td></tr></thead></tbody>'; contentHTML += tempContent; contentHTML += '</tbody></table>'; } else { contentHTML += 'Keine Waffen vorhanden<br>'; } contentHTML += '<br><br><b>Werkzeuge:</b><br>'; var tempContent = ''; var werkzeuge2 = werkzeuge.split('#'); for(i=0; i<werkzeuge2.length; i++) { for(j=0; j<werkzeugeInventar.length; j++) { if(werkzeuge2[i] == werkzeugeInventar[j][0]) { tempContent += '<tr><td>'+werkzeugeInventar[j][0]+'</td><td class="center">'+werkzeugeInventar[j][2]+'</td><td><img height='+inventarIMGheight+' src="'+werkzeugeInventar[j][3]+'"></td><td><a href="inventar.php?aktion=take&id='+werkzeugeInventar[j][1]+'&artgegen=hand">Anlegen</a></td><td><a href="inventar.php?aktion=verkaufen&id='+werkzeugeInventar[j][1]+'">Verkaufen</a></td><td><a href="inventar.php?aktion=uebertragen&id='+werkzeugeInventar[j][1]+'">Übertragen</a></td><td><a href="inventar.php?aktion=stamm&id='+werkzeugeInventar[j][1]+'">Einlagern</a></td></tr>'; } } } if(tempContent != '') { contentHTML += '<table class="inventar" border="1"><thead><tr bgcolor="#173f1a"><td>Name</td><td>Anzahl</td><td>Bild</td><td>Anlegen</td><td>Verkaufen</td><td>Übertragen</td><td>Stammlager</td></tr></thead></tbody>'; contentHTML += tempContent; contentHTML += '</tbody></table>'; } else { contentHTML += 'Keine Werkzeuge vorhanden<br>'; } contentHTML += '<br><br><b>Tränke:</b><br>'; var tempContent = ''; var traenke2 = Assi_InventarTrankreihenfolge.split('#'); for(i=0; i<traenke2.length; i++) { for(j=0; j<traenkeInventar.length; j++) { if(traenke2[i] == traenkeInventar[j][0]) { // Standardverkaufsmenge für Verkaufen-URL bestimmen var menge = ''; Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] = parseInt(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]], 10); if(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] > 0) { if(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] < traenkeInventar[j][2]) { menge = Assi_MarktVerkaufsmenge[traenkeInventar[j][0]]; } else { menge = traenkeInventar[j][2]; } } else if(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] <= 0) { if(traenkeInventar[j][2]+Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] > 0) { menge = traenkeInventar[j][2]+Assi_MarktVerkaufsmenge[traenkeInventar[j][0]]; } else { menge = 0 } } tempContent += '<tr><td>'+traenkeInventar[j][0]+'</td><td class="center">'+traenkeInventar[j][2]+'</td><td><img height='+inventarIMGheight+' src="'+traenkeInventar[j][3]+'"></td><td><a href="inventar.php?aktion=trinken2&trankid='+traenkeInventar[j][1]+'">Trinken</a></td><td><a href="inventar.php?aktion=trankverkaufen&id='+traenkeInventar[j][1]+((menge != '')? '&menge='+menge : '')+((Assi_MarktVerkaufspreis[traenkeInventar[j][0]] != '')? '&preis='+Assi_MarktVerkaufspreis[traenkeInventar[j][0]] : '')+'">Verkaufen</a>'+((menge != '' && Assi_MarktVerkaufspreis[traenkeInventar[j][0]] != '')? '<br>('+menge+' für '+Assi_MarktVerkaufspreis[traenkeInventar[j][0]]+')' : '')+'</td><td><a href="inventar.php?aktion=uebertragen&id='+traenkeInventar[j][1]+'">Übertragen</a></td><td><a href="inventar.php?aktion=trankstamm&id='+traenkeInventar[j][1]+'">Einlagern</a></td></tr>'; traenkeInventar.splice(j, 1); j--; } } } // Tränke, die in den Einstellungen vergessen wurden for(j=0; j<traenkeInventar.length; j++) { // Standardverkaufsmenge für Verkaufen-URL bestimmen var menge = ''; Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] = parseInt(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]], 10); if(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] > 0) { if(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] < traenkeInventar[j][2]) { menge = Assi_MarktVerkaufsmenge[traenkeInventar[j][0]]; } else { menge = traenkeInventar[j][2]; } } else if(Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] <= 0) { if(traenkeInventar[j][2]+Assi_MarktVerkaufsmenge[traenkeInventar[j][0]] > 0) { menge = traenkeInventar[j][2]+Assi_MarktVerkaufsmenge[traenkeInventar[j][0]]; } else { menge = 0 } } tempContent += '<tr><td>'+traenkeInventar[j][0]+'</td><td class="center">'+traenkeInventar[j][2]+'</td><td><img height='+inventarIMGheight+' src="'+traenkeInventar[j][3]+'"></td><td><a href="inventar.php?aktion=trinken2&trankid='+traenkeInventar[j][1]+'">Trinken</a></td><td><a href="inventar.php?aktion=trankverkaufen&id='+traenkeInventar[j][1]+((menge != '')? '&menge='+menge : '')+((Assi_MarktVerkaufspreis[traenkeInventar[j][0]] != '')? '&preis='+Assi_MarktVerkaufspreis[traenkeInventar[j][0]] : '')+'">Verkaufen</a>'+((menge != '' && Assi_MarktVerkaufspreis[traenkeInventar[j][0]] != '')? '<br>('+menge+' für '+Assi_MarktVerkaufspreis[traenkeInventar[j][0]]+')' : '')+'</td><td><a href="inventar.php?aktion=uebertragen&id='+traenkeInventar[j][1]+'">Übertragen</a></td><td><a href="inventar.php?aktion=trankstamm&id='+traenkeInventar[j][1]+'">Einlagern</a></td></tr>'; } if(tempContent != '') { contentHTML += '<table class="inventar" border="1"><thead><tr bgcolor="#173f1a"><td>Name</td><td>Anzahl</td><td>Bild</td><td>Trinken</td><td>Verkaufen</td><td>Übertragen</td><td>Stammlager</td></tr></thead></tbody>'; contentHTML += tempContent; contentHTML += '</tbody></table>'; } else { contentHTML += 'Keine Tränke vorhanden<br>'; } contentHTML += '<br><br><center>[<a href="inventar.php?aktion=zusammenfassen">Inventar aufräumen</a>]</center><br>'; content.innerHTML = contentHTML; if(getURLParameter('szsa') == 'stwach') { if(starkerWachtrankID != 0) { window.location.href = 'http://szs.looki.de/inventar.php?aktion=trinken2&trankid='+starkerWachtrankID; } else { alert("Du besitzt keinen starken Wachtrank mehr!"); } } // "Trinken"-Button fokusieren } else if(document.URL.indexOf('inventar.php?aktion=trinken2') != -1 && content.textContent.indexOf('Wie oft möchtest Du') != -1) { content.getElementsByTagName('input')[2].focus(); // Standardverkaufsmengen und -preise für Trankverkäufe auslesen/eintrangen } else if(document.URL.indexOf('inventar.php?aktion=trankverkaufen') != -1 && content.textContent.indexOf('Wie oft möchtest du diesen Trank auf dem Markt anbieten ?') != -1) { document.getElementsByName('verkaufanzahl')[0].value = getURLParameter('menge'); document.getElementsByName('preis')[0].value = getURLParameter('preis'); content.getElementsByTagName('input')[3].focus(); // Trank-ID vom st. Wachtrank nicht gefunden -> Fehlernummer } else if(document.URL.indexOf('inventar.php') != -1 && content.textContent.indexOf('Es ist ein Fehler aufgetreten. Fehlernummer:') != -1 && getURLParameter('szsa') == 'stwach') { window.location.href = 'http://szs.looki.de/inventar.php?szsa=stwach'; // Waffe/Ring ablegen -> bereits Waffe in der Hand/Ring am Finger } else if(document.URL.indexOf('inventar.php?aktion=take') != -1 && (content.textContent.indexOf('Du hast schon etwas in der Hand, bitte lege diesen Gegenstand erst in die Truhe.') != -1 || content.textContent.indexOf('Du trägst bereits einen Ring.') != -1)) { content.innerHTML += '<br><br><span class="yellow"><b>SZS-Assistent:</b> Es wird versucht die Gegenstände zu tauschen.<br>'; GM_xmlhttpRequest({ method: "POST", url: "http://szs.looki.de/inventar.php", data: "aktion=intruhe&artgegen="+getURLParameter('artgegen'), headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var anfang = response.responseText.indexOf('<!-- INHALT ANFANG -->'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->'); var html = response.responseText.slice(anfang, ende); if(html.indexOf('Du hast den Gegenstand in die Truhe gelegt.') != -1) { window.location.href = document.URL; } else { content.innerHTML += '<br><br><span class="red"><b>Es ist ein Fehler aufgetreten!</b><br><br>Content:<br></span>'+html; } } }); // schnellere Weiterleitung zurück zum Invenatar } else if(document.URL.indexOf('inventar.php') != -1 && (content.textContent.indexOf('falls dein Browser keine automatische Weiterleitung') != -1 || content.getElementsByTagName('meta')[0])) { window.setTimeout("window.location.href = 'http://szs.looki.de/inventar.php';", 50); // Direktlinks für Waffenopfer } else if(document.URL.indexOf('inventar.php') != -1 && content.textContent.indexOf('Die Götter erlauben Dir das Tragen dieser Waffe nicht.') != -1) { content.innerHTML += '<br><br><span class="yellow">Direktlinks:<br>- <a href="altar.php?do=waffenopfer&auswahl=1&szsa=link&url='+encodeURIComponent(document.URL)+'">kleines Waffenopfer</a> (Kosten: 50 Zinn + 50 Wasser)<br>- <a href="altar.php?do=waffenopfer&auswahl=2&szsa=link&url='+encodeURIComponent(document.URL)+'">großes Waffenopfer</a> (Kosten: 50 Bronze + 50 Wasser)</span>'; } // Artefakte if(!document.getElementsByName('zufallscode')[0]) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/artefakt.php", onload: function(response) { if(response.responseText.indexOf('Diese Artefakte hast du angelegt:') != -1) { var anfang = response.responseText.indexOf('Diese Artefakte hast du angelegt:'); var html = response.responseText.slice(anfang); var zeilen = html.split('<tr'); i = 1; while(zeilen[i].indexOf('noch bis zum') != -1) { // Drachenblut if(zeilen[i].indexOf('Drachenblut') != -1) { zeilen[i].search(/<span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); var artefaktDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); GM_setValue("DrachenblutTime", artefaktDate.getTime().toString()); // Glück } else if(zeilen[i].indexOf('Glück') != -1) { zeilen[i].search(/<span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); var artefaktDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); GM_setValue("GlueckTime", artefaktDate.getTime().toString()); // Meisterschmied } else if(zeilen[i].indexOf('Meisterschmied') != -1) { zeilen[i].search(/<span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); var artefaktDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); GM_setValue("MeisterschmiedTime", artefaktDate.getTime().toString()); // Gesundheit } else if(zeilen[i].indexOf('Gesundheit') != -1) { zeilen[i].search(/<span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); var artefaktDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); GM_setValue("GesundheitTime", artefaktDate.getTime().toString()); } i++; } } } }); } // Altar if(document.URL.indexOf('/altar.php') != -1 && document.URL.indexOf('szsa=link') != -1 && (content.textContent.indexOf('Die Götter haben Dein Opfer angenommen.') != -1 || content.textContent.indexOf('Die Götter haben dein Opfer akzeptiert.') != -1)) { content.innerHTML += '<br><br><span class="yellow"><b>SZS-Assistent:</b> Du wirst auf die vorherige Seite weitergeleitet.<br>'; window.setTimeout("window.location.href = '"+decodeURIComponent(getURLParameter('url'))+"';", 100); } // Karte if(document.URL.indexOf('/karte.php') != -1) { // aktuelle Position speichern if(content.getElementsByTagName('table')[2].getElementsByTagName('tr')[5].getElementsByTagName('td')[5].innerHTML.indexOf('red') != -1) { var x = document.getElementsByName('x')[0].value; var y = document.getElementsByName('y')[0].value; GM_setValue("AktuellePosition", x+"#"+y); } // optimierte Marktländer-Darstellung + Entfernung zur aktuellen Position var x1 = document.getElementsByName('x')[0].value; var y1 = document.getElementsByName('y')[0].value; var marktlaender = content.getElementsByTagName('table')[3].getElementsByTagName('tr'); marktlaender[0].innerHTML += '<td class="center bold">Entf.</td><td><br></td>'; for(i=1; i<marktlaender.length; i++) { x2 = marktlaender[i].getElementsByTagName('td')[0].textContent.trim(); y2 = marktlaender[i].getElementsByTagName('td')[1].textContent.trim(); var distance = (Math.max(x1, x2)-Math.min(x1, x2))+(Math.max(y1, y2)-Math.min(y1, y2)); marktlaender[i].innerHTML += '<td class="right">'+distance+'</td>'; marktlaender[i].innerHTML += '<td class="center"><a href="karte.php?x='+x2+'&y='+y2+'">Karte</a></td>'; } } // Landinfo if(document.URL.indexOf('landinfo.php') != -1) { if(getURLParameter('id') != null) { content.innerHTML = content.innerHTML.replace(/<br>\s*<a href="wandern.php\?do=1&wposx=(\d+)&wposy=(\d+)">\[zu diesem Land wandern\]/, '<h2>$1/$2</h2><br><br><a href="wandern.php?do=1&wposx=$1&wposy=$2">[zu diesem Land wandern]</a> | <a href="karte.php?x=$1&y=$2">[Karte zentrieren]</a>'); } } // Länder if(document.URL.indexOf('/deinland.php') != -1) { var curr_coords = GM_getValue("AktuellePosition", "0#0").split('#'); curr_coords[0] = parseInt(curr_coords[0], 10); curr_coords[1] = parseInt(curr_coords[1], 10); var bgcolor = new Array('#123014', '#173F1A'); var laenderHTML = content.innerHTML.split('<br>'); var laender = new Array(); for(i=0; i<laenderHTML.length; i++) { if(laenderHTML[i].search(/ID : (\d{1,5}) X\: (\d{1,3}) Y\: (\d{1,3})/) != -1) { var landid = RegExp.$1; var x = parseInt(RegExp.$2, 10); var y = parseInt(RegExp.$3, 10); var temp = new Array(landid, x, y, Math.abs(x-curr_coords[0])+Math.abs(y-curr_coords[1])); laender.push(temp); } } var newContent = ''; newContent += '<h2>Deine Länder: '+laender.length+' Stück</h2><br><br>'; if(curr_coords[0] != 0 && curr_coords[1] != 0) { newContent += '<b>Aktuelle Position:</b> '+curr_coords[0]+' | '+curr_coords[1]+'<br><br>'; } newContent += '<table class="eigeneLaender" border="0" align="center"><thead>'; newContent += '<tr bgcolor="'+bgcolor[0]+'">'; newContent += '<td rowspan="2">X/Y</td>'; newContent += '<td rowspan="2">Entf.</td>'; newContent += '<td colspan="9">Ausbau-Stufen</td>' newContent += '<td colspan="4">Rohstoffe</td>'; newContent += '</tr><tr bgcolor="'+bgcolor[0]+'">'; newContent += '<td title="HolzhauDing"><img src="/static/rohstoff_icons/holz.gif"></td>'; newContent += '<td title="SteinhauDingens"><img src="/static/rohstoff_icons/stein.gif"></td>'; newContent += '<td title="KöhlerDingens"><img src="/static/rohstoff_icons/kohle.gif"></td>'; newContent += '<td title="Mine"><img src="/static/rohstoff_icons/kupfer.gif"></td>'; newContent += '<td title="ZinnDing"><img src="/static/rohstoff_icons/zinn.gif"></td>'; newContent += '<td title="BronzeDing"><img src="/static/rohstoff_icons/bronze.gif"></td>'; newContent += '<td title="SchamanenDingensDa">Tr.</td>'; newContent += '<td title="Waffenbauplatz">Wa.</td>'; newContent += '<td title="Werkzeugbauplatz">We.</td>'; newContent += '<td title="Holz"><img src="/static/rohstoff_icons/holz.gif"></td>'; newContent += '<td title="Stein"><img src="/static/rohstoff_icons/stein.gif"></td>'; newContent += '<td title="Kupfer"><img src="/static/rohstoff_icons/kupfer.gif"></td>'; newContent += '<td title="Zinn"><img src="/static/rohstoff_icons/zinn.gif"></td>'; newContent += '</tr></thead><tbody>'; var gesamtHolz = 0; var gesamtStein = 0; var gesamtKupfer = 0; var gesamtZinn = 0; var configLandControlFormInner = '<table class="eigeneLaender" border="0" align="center"><thead><tr bgcolor="'+bgcolor[0]+'"><td>X/Y</td><td>Entf.</td><td>Holz</td><td>Stein</td><td>Kupfer</td><td>Zinn</td></tr></thead><tbody>'; var landControlData = GM_getValue("LandControlData", "#").split('#'); var landControlData2 = new Array(); for(i=1; i<landControlData.length-1; i++) { var temp = landControlData[i].split(','); landControlData2[temp[0]] = new Object(); landControlData2[temp[0]]["Holz"] = temp[1]; landControlData2[temp[0]]["Stein"] = temp[2]; landControlData2[temp[0]]["Kupfer"] = temp[3]; landControlData2[temp[0]]["Zinn"] = temp[4]; } // Länder nach Entfernung sortieren for(i=0; i<laender.length; i++) { for(j=i+1; j<laender.length; j++) { if(laender[i][3] > laender[j][3] || (laender[i][3] == laender[j][3] && laender[i][0] > laender[j][0])) { var z = laender[i]; laender[i] = laender[j]; laender[j] = z; } } } var lineCounter = 1; for(i=0; i<laender.length; i++) { if(i != 0 && i%20 == 0) { newContent += '</tbody><thead><tr bgcolor="'+bgcolor[lineCounter%2]+'"><td>X/Y</td><td>Entf.</td><td><img src="/static/rohstoff_icons/holz.gif"></td><td><img src="/static/rohstoff_icons/stein.gif"></td><td><img src="/static/rohstoff_icons/kohle.gif"></td><td><img src="/static/rohstoff_icons/kupfer.gif"></td><td><img src="/static/rohstoff_icons/zinn.gif"></td><td><img src="/static/rohstoff_icons/bronze.gif"></td><td>Tr.</td><td>Wa.</td><td>We.</td><td><img src="/static/rohstoff_icons/holz.gif"></td><td><img src="/static/rohstoff_icons/stein.gif"></td><td><img src="/static/rohstoff_icons/kupfer.gif"></td><td><img src="/static/rohstoff_icons/zinn.gif"></td></tr></thead><tbody>'; lineCounter++; } newContent += '<tr id="land_'+laender[i][0]+'" bgcolor="'+bgcolor[lineCounter%2]+'">'; newContent += '<td><a href="landinfo.php?id='+laender[i][0]+'">'+laender[i][1]+'/'+laender[i][2]+'</a></td>'; newContent += '<td>'+((laender[i][3] == 0)? '-' : (laender[i][3]))+'</td>'; newContent += '<td colspan="13" class="center yellow">Daten werden geladen</td>'; newContent += '</tr>'; newContent += '<tr id="spieler_'+laender[i][0]+'" bgcolor="'+bgcolor[lineCounter%2]+'" style="display:none;"></tr>'; configLandControlFormInner += '<tr bgcolor="'+bgcolor[lineCounter%2]+'" data-szsa-landid="'+laender[i][0]+'">'; configLandControlFormInner += '<td><a href="landinfo.php?id='+laender[i][0]+'">'+laender[i][1]+'/'+laender[i][2]+'</a></td>'; configLandControlFormInner += '<td>'+((laender[i][3] == 0)? '-' : (laender[i][3]))+'</td>'; configLandControlFormInner += '<td><input class="i2 tir" type="text" value="'+((landControlData2[laender[i][0]])? landControlData2[laender[i][0]]["Holz"] : '')+'"></td>'; configLandControlFormInner += '<td><input class="i2 tir" type="text" value="'+((landControlData2[laender[i][0]])? landControlData2[laender[i][0]]["Stein"] : '')+'"></td>'; configLandControlFormInner += '<td><input class="i2 tir" type="text" value="'+((landControlData2[laender[i][0]])? landControlData2[laender[i][0]]["Kupfer"] : '')+'"></td>'; configLandControlFormInner += '<td><input class="i2 tir" type="text" value="'+((landControlData2[laender[i][0]])? landControlData2[laender[i][0]]["Zinn"] : '')+'"></td>'; configLandControlFormInner += '</tr>'; lineCounter++; // Landinfos laden GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/landinfo.php?id="+laender[i][0], onload: function(response) { var id = response.finalUrl.replace(/\D*/, ''); if(document.getElementById('land_'+id)) { var anfang = response.responseText.indexOf('Diese Dinge stehen auf deinem Land:'); var ende = response.responseText.indexOf('Diese Dinge kannst du bauen:'); var html = response.responseText.slice(anfang, ende); var landinfos = new Array(); landinfos['Bauplatzvorbereitung'] = 0; landinfos['HolzhauDing'] = 0; landinfos['SteinhauDingens'] = 0; landinfos['KöhlerDingens'] = 0; landinfos['Mine'] = 0; landinfos['ZinnDing'] = 0; landinfos['BronzeDing'] = 0; landinfos['SchamanenDingensDa'] = 0; landinfos['Waffenbauplatz'] = 0; landinfos['Werkzeugbauplatz'] = 0; var dinge = html.split('<tr>'); for(i=1; i<dinge.length; i++) { dinge[i].search(/<td valign=top>\s*([A-Za-zö]*)\s*<\/td>/); var ding = RegExp.$1; dinge[i].search(/(\d+)/); var stufe = RegExp.$1; landinfos[ding] = stufe; } response.responseText.search(/Holz:\s*(\-?\d*)<br>\s*Stein:\s*(\-?\d*)<br>\s*Kupfer:\s*(\-?\d*)<br>\s*Zinn:\s*(\-?\d*)<br>/); var holz = parseInt(RegExp.$1, 10); var stein = parseInt(RegExp.$2, 10); var kupfer = parseInt(RegExp.$3, 10); var zinn = parseInt(RegExp.$4, 10); var str_landinfo = ''; if(landinfos['Bauplatzvorbereitung'] == 0) { str_landinfo += '<td colspan="9" class="center">keine Bauplatzvorbereitung</td>'; } else { var dinge = new Array('HolzhauDing', 'SteinhauDingens', 'KöhlerDingens', 'Mine', 'ZinnDing', 'BronzeDing', 'SchamanenDingensDa', 'Waffenbauplatz', 'Werkzeugbauplatz'); var maxAusbaustufe = new Array(); maxAusbaustufe['HolzhauDing'] = 4; maxAusbaustufe['SteinhauDingens'] = 4; maxAusbaustufe['KöhlerDingens'] = 1; maxAusbaustufe['Mine'] = 1; maxAusbaustufe['ZinnDing'] = 1; maxAusbaustufe['BronzeDing'] = 1; maxAusbaustufe['SchamanenDingensDa'] = 5; maxAusbaustufe['Waffenbauplatz'] = 10; maxAusbaustufe['Werkzeugbauplatz'] = 5; for(i=0; i<dinge.length; i++) { if(landinfos[dinge[i]] == 0) { str_landinfo += '<td class="red">'; } else if(landinfos[dinge[i]] == maxAusbaustufe[dinge[i]]) { str_landinfo += '<td class="green">'; } else { str_landinfo += '<td class="yellow">'; } str_landinfo += landinfos[dinge[i]]+'</td>'; } } anfang = response.responseText.indexOf('Auf diesem Land stehen im Moment diese Spieler:'); ende = response.responseText.indexOf('<!-- INHALT ENDE -->'); html = response.responseText.slice(anfang, ende); html = html.split('<a href=userinfo.php?'); if(html.length > 1) { var str_spielerinfo = '<td colspan="13" class="spieler">Spieler: '; for(i=1; i<html.length; i++) { if(html[i].search(/userinfo=(\d*)>(.*)<\/a>/) != -1) { if(str_spielerinfo.indexOf('userinfo') != -1) { str_spielerinfo += ', '; } str_spielerinfo += '<a href="userinfo.php?userinfo='+RegExp.$1+'">'+RegExp.$2+'</a>'; } } str_spielerinfo += '</td>'; document.getElementById('land_'+id).getElementsByTagName('td')[0].setAttribute('rowspan', 2); document.getElementById('land_'+id).getElementsByTagName('td')[1].setAttribute('rowspan', 2); document.getElementById('spieler_'+id).innerHTML = str_spielerinfo; document.getElementById('spieler_'+id).removeAttribute('style'); } str_landinfo += '<td'+((landControlData2[id] && holz <= landControlData2[id]["Holz"])? ' class="'+landControlColor+'"' : '')+'>'+number_format(holz)+'</td>'; str_landinfo += '<td'+((landControlData2[id] && stein <= landControlData2[id]["Stein"])? ' class="'+landControlColor+'"' : '')+'>'+number_format(stein)+'</td>'; str_landinfo += '<td'+((landControlData2[id] && kupfer <= landControlData2[id]["Kupfer"])? ' class="'+landControlColor+'"' : '')+'>'+number_format(kupfer)+'</td>'; str_landinfo += '<td'+((landControlData2[id] && zinn <= landControlData2[id]["Zinn"])? ' class="'+landControlColor+'"' : '')+'>'+number_format(zinn)+'</td>'; document.getElementById('land_'+id).getElementsByTagName('td')[2].outerHTML = str_landinfo; gesamtHolz += holz; gesamtStein += stein; gesamtKupfer += kupfer; gesamtZinn += zinn; if(document.getElementById('gesamtHolz')) document.getElementById('gesamtHolz').innerHTML = number_format(gesamtHolz); if(document.getElementById('gesamtStein')) document.getElementById('gesamtStein').innerHTML = number_format(gesamtStein); if(document.getElementById('gesamtKupfer')) document.getElementById('gesamtKupfer').innerHTML = number_format(gesamtKupfer); if(document.getElementById('gesamtZinn')) document.getElementById('gesamtZinn').innerHTML = number_format(gesamtZinn); } } }); } configLandControlFormInner += '</tbody></table>'; newContent += '<tr bgcolor="'+bgcolor[laender.length%2]+'"><td class="bold" colspan="2">Σ</td><td colspan="9"><br></td><td id="gesamtHolz"></td><td id="gesamtStein"></td><td id="gesamtKupfer"></td><td id="gesamtZinn"></td></tr>'; newContent += '</tbody></table>'; newContent += '<br><br><br><h2>Landüberwachung</h2><br><br>Trage hier den Rohstoffwert ein, ab dem du gewarnt werden möchtest.<br>Der Menueintrag "Land" und der entsprechende Wert in der Tabelle oben werden <span class="'+landControlColor+' bold">eingefärbt</span>.<br>Lasse ein Feld leer, wenn du keine Warnung erhalten möchtest.<br><br>'; newContent += '<form id="configLandControl" method="post" action=""><div id="toggle_landueberwachung" class="pointer bold center" data-szsa-toggle="landueberwachung">Auswahl anzeigen <span class="triggerElementToggle"></span></div><br><div id="landueberwachung" style="display:none;">'+configLandControlFormInner+'</div><br><b>Farbe:</b><input type="radio" name="configLandControlColor" value="red"'+((landControlColor == 'red')? ' checked="checked"':'')+'><span class="red">rot</span> <input type="radio" name="configLandControlColor" value="orange"'+((landControlColor == 'orange')? ' checked="checked"':'')+'><span class="orange">orange</span> <input type="radio" name="configLandControlColor" value="yellow"'+((landControlColor == 'yellow')? ' checked="checked"':'')+'><span class="yellow">gelb</span><br><br><input class="pointer" type="submit" value="Speichern"></form>'; content.innerHTML = content.innerHTML.replace(/<br>\s*Dein\(e\) Landstück\(e\):.*/, newContent); document.getElementById('toggle_landueberwachung').addEventListener('click', toggleElement, false); document.getElementById('configLandControl').addEventListener('submit', function() { var laender = document.getElementById('configLandControl').getElementsByTagName('tr'); var laender_str = '#'; for(var i=1; i<laender.length; i++) { var landid = laender[i].getAttribute('data-szsa-landid'); var holz = parseInt(laender[i].getElementsByTagName('input')[0].value, 10); if(holz < 0 || isNaN(holz)) holz = ""; var stein = parseInt(laender[i].getElementsByTagName('input')[1].value, 10); if(stein < 0 || isNaN(stein)) stein = ""; var kupfer = parseInt(laender[i].getElementsByTagName('input')[2].value, 10); if(kupfer < 0 || isNaN(kupfer)) kupfer = ""; var zinn = parseInt(laender[i].getElementsByTagName('input')[3].value, 10); if(zinn < 0 || isNaN(zinn)) zinn = ""; if(holz != "" || stein != "" || kupfer != "" || zinn != "") { laender_str += landid+','+holz+','+stein+','+kupfer+','+zinn+'#'; } } GM_setValue("LandControlData", laender_str); GM_setValue("LandControlColor", getRadioValue(document.getElementsByName('configLandControlColor'))); }, true); } // Gästebuch if(document.URL.indexOf('/gbuch.php') != -1) { var entrys = document.getElementById('content').getElementsByTagName('table'); for(i=entrys.length-1; i>0; i--) { var data_entrys = GM_getValue("GBEntrys", "0#"); data_entrys = (data_entrys == '')? '0#': data_entrys; entrys[i].getElementsByTagName('td')[0].innerHTML.search(/eintragid=(\d+)/); var entryid = parseInt(RegExp.$1, 10); if(data_entrys.indexOf('#'+entryid+'#') == -1) { entrys[i].getElementsByTagName('td')[1].setAttribute('bgcolor', '#3468a8'); data_entrys += entryid+'#'; } var isPageOne = (document.getElementById('content').getElementsByTagName('div')[1].getElementsByTagName('b')[0].textContent.trim() == '1')? true : false; entrys[i].getElementsByTagName('td')[0].textContent.search(/(\d+)\.(\d+)\.(\d+) - (\d+):(\d+)/); var entryDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), 0); var lastGBEntry = parseInt(data_entrys.split('#')[0], 10); if(lastGBEntry < entryDate.getTime() && isPageOne) { data_entrys = data_entrys.replace(/^\d+#/, entryDate.getTime().toString()+'#'); } GM_setValue("GBEntrys", data_entrys); } } if(Assi_Gaestebucheintrag) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/gbuch.php", onload: function(response) { var anfang = response.responseText.indexOf('<!-- INHALT ANFANG -->'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->'); if(anfang != -1 && ende != -1) { var html = response.responseText.slice(anfang, ende); var entrys = html.split('<table border="0" cellspacing="0" width="99%">'); html = entrys[1]; anfang = html.indexOf('</a>'); ende = html.indexOf('löschen</a>'); html = html.slice(anfang+6, ende).trim(); html.search(/(\d+)\.(\d+)\.(\d+) - (\d+):(\d+)/); var lastGBDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), 0); var data_entrys = GM_getValue("GBEntrys", "0#"); data_entrys = (data_entrys == '')? '0#': data_entrys; var lastGBEntry = parseInt(data_entrys.split('#')[0], 10); if(parseInt(lastGBEntry, 10) < lastGBDate.getTime()) { if(document.getElementById('guestbook')) document.getElementById('guestbook').setAttribute('class', 'menu yellow'); } } } }); } // Schlafen if(document.URL.indexOf('/schlafen.php') != -1) { // Automatisches einschlafen bzw. aufwachen, je nach vorhandenem Link if(content.textContent.indexOf('[jetzt schlafen legen]') != -1) { window.location.href = 'http://szs.looki.de/schlafen.php?aktion=schlafen'; } else if(content.textContent.indexOf('[aufwachen]') != -1) { window.location.href = 'http://szs.looki.de/schlafen.php?aktion=aufwachen'; } } // Markt if(document.URL.indexOf('/markt.php') != -1) { if(document.URL.indexOf('markt.php') != -1 && content.textContent.indexOf('Du bist im Moment unterwegs.') == -1) { // Marktnavigation einfügen var marktnavi = document.createElement('div'); marktnavi.innerHTML = '<br><b>Marktnavigation:</b><br>- Gegenstände: <a href="markt.php?do=waffen">Waffen</a> | <a href="markt.php?do=ringe">Ringe</a> | <a href="markt.php?do=trank">Tränke</a> | <a href="markt.php?do=werkzeug">Werkzeuge</a> | <a href="markt.php?do=landverkauf">Länder</a><br>- Rohstoffe: <a href="markt.php?do=rohstoffe&rohausw=1">Wasser</a> | <a href="markt.php?do=rohstoffe&rohausw=2">Holz</a> | <a href="markt.php?do=rohstoffe&rohausw=3">Stein</a> | <a href="markt.php?do=rohstoffe&rohausw=4">Kohle</a> | <a href="markt.php?do=rohstoffe&rohausw=5">Kupfer</a> | <a href="markt.php?do=rohstoffe&rohausw=6">Zinn</a> | <a href="markt.php?do=rohstoffe&rohausw=7">Bronze</a> | <a href="markt.php?do=rohstoffe&rohausw=all">Alle</a><br><br><br>'; content.insertBefore(marktnavi, content.getElementsByTagName('table')[0].nextSibling); } if(document.URL.indexOf('do=rohstoffe&rohausw=') != -1 && content.textContent.indexOf('Du bist im Moment unterwegs.') == -1) { var angebote = 4; if(content.textContent.indexOf('Da dein Steini gerade beschäftigt ist, kannst du weder etwas auf den Markt stellen, noch etwas kaufen.') == -1) { angebote = 12; // Standardverkaufsmengen var ressis = new Array('Wasser', 'Holz', 'Steine', 'Kohle', 'Kupfer', 'Zinn', 'Bronze'); for(i=0; i<ressis.length; i++) { Assi_MarktVerkaufsmenge[ressis[i]] = parseInt(Assi_MarktVerkaufsmenge[ressis[i]], 10); if(Assi_MarktVerkaufsmenge[ressis[i]] > 0) { if(Assi_MarktVerkaufsmenge[ressis[i]] < ressis_gesamt[ressis[i]]) { document.getElementsByName('menge'+ressis[i].toLowerCase())[0].value = Assi_MarktVerkaufsmenge[ressis[i]]; } else { document.getElementsByName('menge'+ressis[i].toLowerCase())[0].value = ressis_gesamt[ressis[i]]; } } else if(Assi_MarktVerkaufsmenge[ressis[i]] <= 0) { if(ressis_gesamt[ressis[i]]+Assi_MarktVerkaufsmenge[ressis[i]] > 0) { document.getElementsByName('menge'+ressis[i].toLowerCase())[0].value = ressis_gesamt[ressis[i]]+Assi_MarktVerkaufsmenge[ressis[i]]; } else { document.getElementsByName('menge'+ressis[i].toLowerCase())[0].value = 0 } } // Standardverkaufspreise if(Assi_MarktVerkaufspreis[ressis[i]] != "") { document.getElementsByName('preis'+ressis[i].toLowerCase())[0].value = Assi_MarktVerkaufspreis[ressis[i]]; } } } // Preise hervorheben if(content.textContent.indexOf('Du befindest dich auf dem steinzeitlichen Rohstoffmarkt.') != -1 && content.getElementsByTagName('table')[angebote]) { var angebote = content.getElementsByTagName('table')[angebote].getElementsByTagName('tr'); if(Assi_Preishervorhebung == 'dynamisch') { // Hervorhebung: dynamisch if(parseInt(angebote[1].getElementsByTagName('td')[2].textContent, 10) < parseInt(angebote[2].getElementsByTagName('td')[2].textContent, 10)) { angebote[1].setAttribute('class', 'good'); i = 2; } else if(parseInt(angebote[1].getElementsByTagName('td')[2].textContent, 10) == parseInt(angebote[2].getElementsByTagName('td')[2].textContent, 10) && parseInt(angebote[2].getElementsByTagName('td')[2].textContent, 10) < parseInt(angebote[3].getElementsByTagName('td')[2].textContent, 10)) { angebote[1].setAttribute('class', 'good'); angebote[2].setAttribute('class', 'good'); i = 3; } else { i = 1; } for(j=i; j<angebote.length; j++) { if(parseInt(angebote[i].getElementsByTagName('td')[2].textContent, 10) < parseInt(angebote[j].getElementsByTagName('td')[2].textContent, 10)) { angebote[j].setAttribute('class', 'bad'); } } } else { // Hervorhebung: "eigene Preise" for(i=1; i<angebote.length; i++) { var rohstoff = angebote[i].getElementsByTagName('td')[1].textContent.trim(); var preis = parseInt(angebote[i].getElementsByTagName('td')[2].textContent, 10); if(preis < parseInt(Assi_MarktPreis[rohstoff], 10)) { angebote[i].setAttribute('bgcolor', '#3468a8'); } } } } // Rohstoffauswahl: alle if(document.URL.indexOf('rohausw=all') != -1) { var status = content.getElementsByTagName('table')[0]; var rohstoffmarktInfo = content.getElementsByTagName('table')[1]; var rohstoffeAnbieten = content.getElementsByTagName('table')[2]; content.innerHTML = ''; var div = document.createElement('div'); div.appendChild(status); div.appendChild(marktnavi); div.appendChild(rohstoffmarktInfo); div.appendChild(rohstoffeAnbieten); var marktAll = document.createElement('center'); marktAll.innerHTML += '<br><br><div class="headline">Wasser</div><div id="markt-1"></div><br><div class="headline">Holz</div><div id="markt-2"></div><br><div class="headline">Stein</div><div id="markt-3"></div><br><div class="headline">Kohle</div><div id="markt-4"></div><br><div class="headline">Kupfer</div><div id="markt-5"></div><br><div class="headline">Zinn</div><div id="markt-6"></div><br><div class="headline">Bronze</div><div id="markt-7"></div><br>'; div.appendChild(marktAll); content.appendChild(div); for(i=1; i<=7; i++) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/markt.php?do=rohstoffe&rohausw="+i, onload: function(response) { var id = response.finalUrl.replace(/\D*/, ''); if(response.responseText.indexOf('Du bist im Moment unterwegs') == -1 && document.getElementById('markt-'+id)) { var anfang = response.responseText.indexOf('Rohstoffe einkaufen:'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->'); var html = response.responseText.slice(anfang, ende); anfang = html.indexOf('<table'); ende = html.lastIndexOf('</table>'); var angebote = html.slice(anfang, ende+8).split('<tr>'); if(angebote.length > 2) { var ausgabe = '<table width="97%" border="1"><thead><tr><td class="center bold">von</td><td class="center bold">Rohstoff</td><td class="center bold">Preis / Stück</td><td class="center bold">Anzahl</td><td class="center bold">Kaufen</td></tr></thead><tbody>'; if(Assi_Preishervorhebung == 'dynamisch') { // Hervorhebung: dynamisch if(parseInt(angebote[2].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10) < parseInt(angebote[3].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10)) { ausgabe += '<tr class="good">'+angebote[2]; j = 3; } else if(parseInt(angebote[2].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10) == parseInt(angebote[3].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10) && parseInt(angebote[3].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10) < parseInt(angebote[4].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10)) { ausgabe += '<tr class="good">'+angebote[2]; ausgabe += '<tr class="good">'+angebote[3]; j = 4; } else { j = 2; } for(k=j; k<angebote.length; k++) { if(parseInt(angebote[j].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10) < parseInt(angebote[k].split(/<\/td>\s*<td NOWRAP>/)[2].trim(), 10)) { ausgabe += '<tr class="bad">'+angebote[k]; } else { ausgabe += '<tr>'+angebote[k]; } } } else { // Hervorhebung: "eigene Preise" for(j=2; j<angebote.length; j++) { var temp = angebote[j].split(/<\/td>\s*<td NOWRAP>/); var rohstoff = temp[1].trim(); var preis = parseInt(temp[2].trim(), 10); if(preis < parseInt(Assi_MarktPreis[rohstoff], 10)) { ausgabe += '<tr bgcolor="#3468a8">'+angebote[j]; } else { ausgabe += '<tr>'+angebote[j]; } } } ausgabe += '</tbody></table>'; } else { var ausgabe = 'Keine Angebote vorhanden!<br>'; } if(document.getElementById('markt-'+id)) document.getElementById('markt-'+id).innerHTML = ausgabe; } } }); } } } else if(document.URL.indexOf('do=kaufen') != -1 && document.getElementsByName('amount')[0]) { i = (isPremiumSpieler)? 1 : 0; var gold = parseInt(menuRight.getElementsByTagName('table')[1+i].getElementsByTagName('td')[7].textContent.trim().replace(/\./g, ''), 10); content.getElementsByTagName('b')[1].textContent.search(/(\S+) für\s*(\d*) Gold/); var rohstoff = RegExp.$1; var preis = RegExp.$2; content.textContent.search(/maximal (\d*) Stück/); var menge = RegExp.$1; if(gold/preis < menge) { content.innerHTML += '<br>Du besitzt '+number_format(gold)+' Gold und kannst daher maximal <b>'+number_format(parseInt(gold/preis, 10))+' '+rohstoff+'</b> kaufen.' } document.getElementsByName('amount')[0].focus(); } } // Übertragen if(document.URL.indexOf('/uebertragen.php') != -1 && content.textContent.indexOf('Hier kannst du anderen Spielern Rohstoffe übertragen') != -1) { var an = getURLParameter('an'); if(an != null && an != '') document.getElementsByName('an')[0].value = an; var nahrung = parseInt(getURLParameter('nahrung'), 10); if(!(nahrung <= 0 || isNaN(nahrung))) document.getElementsByName('nahrung')[0].value = nahrung; var wasser = parseInt(getURLParameter('wasser'), 10); if(!(wasser <= 0 || isNaN(wasser))) document.getElementsByName('wasser')[0].value = wasser; var gold = parseInt(getURLParameter('gold'), 10); if(!(gold <= 0 || isNaN(gold))) document.getElementsByName('geld')[0].value = gold; var geld = parseInt(getURLParameter('geld'), 10); if(!(geld <= 0 || isNaN(geld))) document.getElementsByName('geld')[0].value = geld; var holz = parseInt(getURLParameter('holz'), 10); if(!(holz <= 0 || isNaN(holz))) document.getElementsByName('holz')[0].value = holz; var stein = parseInt(getURLParameter('stein'), 10); if(!(stein <= 0 || isNaN(stein))) document.getElementsByName('stein')[0].value = stein; var kohle = parseInt(getURLParameter('kohle'), 10); if(!(kohle <= 0 || isNaN(kohle))) document.getElementsByName('kohle')[0].value = kohle; var kupfer = parseInt(getURLParameter('kupfer'), 10); if(!(kupfer <= 0 || isNaN(kupfer))) document.getElementsByName('kupfer')[0].value = kupfer; var zinn = parseInt(getURLParameter('zinn'), 10); if(!(zinn <= 0 || isNaN(zinn))) document.getElementsByName('zinn')[0].value = zinn; var bronze = parseInt(getURLParameter('bronze'), 10); if(!(bronze <= 0 || isNaN(bronze))) document.getElementsByName('bronze')[0].value = bronze; var klheil = parseInt(getURLParameter('klheil'), 10); if(!(klheil <= 0 || isNaN(klheil))) document.getElementsByName('klheil')[0].value = klheil; var mtheil = parseInt(getURLParameter('mtheil'), 10); if(!(mtheil <= 0 || isNaN(mtheil))) document.getElementsByName('mtheil')[0].value = mtheil; var stheil = parseInt(getURLParameter('stheil'), 10); if(!(stheil <= 0 || isNaN(stheil))) document.getElementsByName('stheil')[0].value = stheil; var wach = parseInt(getURLParameter('wach'), 10); if(!(wach <= 0 || isNaN(wach))) document.getElementsByName('wach')[0].value = wach; var stwach = parseInt(getURLParameter('stwach'), 10); if(!(stwach <= 0 || isNaN(stwach))) document.getElementsByName('stwach')[0].value = stwach; var holzt = parseInt(getURLParameter('holzt'), 10); if(!(holzt <= 0 || isNaN(holzt))) document.getElementsByName('holzt')[0].value = holzt; var kupfert = parseInt(getURLParameter('kupfert'), 10); if(!(kupfert <= 0 || isNaN(kupfert))) document.getElementsByName('kupfert')[0].value = kupfert; var zinnt = parseInt(getURLParameter('zinnt'), 10); if(!(zinnt <= 0 || isNaN(zinnt))) document.getElementsByName('zinnt')[0].value = zinnt; var steint = parseInt(getURLParameter('steint'), 10); if(!(steint <= 0 || isNaN(steint))) document.getElementsByName('steint')[0].value = steint; } // Lager if(document.URL.indexOf('/stamm.php?do=lager') != -1 && content.textContent.indexOf('Hier kannst du Rohstoffe von dir in das Stammlager schieben, aber auch Rohstoffe entnehmen.') != -1) { // Links zum Rohstoffe übertragen var lagerlogs = content.getElementsByTagName('table')[4].getElementsByTagName('tr'); lagerlogs[0].innerHTML += '<td></td>'; for(i=1; i<lagerlogs.length; i++) { lagerlogs[i].innerHTML += '<td></td>'; var username = lagerlogs[i].getElementsByTagName('td')[0].innerHTML.split('<br>')[0].trim(); if(lagerlogs[i].textContent.indexOf('in das Lager verfrachtet.') != -1 && (Assi_UserName == username || Assi_Lagerauszahlungen == "alle" || (Assi_Lagerauszahlungen == "andere" && (','+Assi_LagerauszahlungenNicks+',').indexOf(','+username+',') != -1))) { var texts = lagerlogs[i].getElementsByTagName('font')[0].innerHTML.split('<br>'); var sURL = 'http://szs.looki.de/uebertragen.php?anrohstoffe='+username; var inputParam = ''; for(j=1; j<texts.length-1; j++) { var ress = texts[j].trim().split(' '); sURL += '&'+ress[1].trim().toLowerCase()+'='+ress[0].trim().replace(/\./g, ''); inputParam += ' '+ress[1].trim().toLowerCase()+'="'+ress[0].trim().replace(/\./g, '')+'"'; } lagerlogs[i].getElementsByTagName('td')[0].innerHTML = lagerlogs[i].getElementsByTagName('td')[0].innerHTML.replace(/.*<br>/, '<a href="'+sURL+'">'+username+'</a><br>'); // Checkboxen zum Rohstoffe auszahlen lagerlogs[i].getElementsByTagName('td')[2].innerHTML += '<input id="take['+i+']" type="checkbox"'+inputParam+'>'; document.getElementById('take['+i+']').addEventListener('change', function() { var nahrung = parseInt(document.getElementsByName('menge_nahrung')[1].value, 10); var nahrung2 = parseInt(this.getAttribute('nahrung'), 10); if(nahrung < 0 || isNaN(nahrung)) nahrung = 0; if(nahrung2 < 0 || isNaN(nahrung2)) nahrung2 = 0; var wasser = parseInt(document.getElementsByName('menge_wasser')[1].value, 10); var wasser2 = parseInt(this.getAttribute('wasser'), 10); if(wasser < 0 || isNaN(wasser)) wasser = 0; if(wasser2 < 0 || isNaN(wasser2)) wasser2 = 0; var gold = parseInt(document.getElementsByName('menge_geld')[1].value, 10); var gold2 = parseInt(this.getAttribute('gold'), 10); if(gold < 0 || isNaN(gold)) gold = 0; if(gold2 < 0 || isNaN(gold2)) gold2 = 0; var holz = parseInt(document.getElementsByName('menge_holz')[1].value, 10); var holz2 = parseInt(this.getAttribute('holz'), 10); if(holz < 0 || isNaN(holz)) holz = 0; if(holz2 < 0 || isNaN(holz2)) holz2 = 0; var stein = parseInt(document.getElementsByName('menge_stein')[1].value, 10); var stein2 = parseInt(this.getAttribute('stein'), 10); if(stein < 0 || isNaN(stein)) stein = 0; if(stein2 < 0 || isNaN(stein2)) stein2 = 0; var kohle = parseInt(document.getElementsByName('menge_kohle')[1].value, 10); var kohle2 = parseInt(this.getAttribute('kohle'), 10); if(kohle < 0 || isNaN(kohle)) kohle = 0; if(kohle2 < 0 || isNaN(kohle2)) kohle2 = 0; var kupfer = parseInt(document.getElementsByName('menge_kupfer')[1].value, 10); var kupfer2 = parseInt(this.getAttribute('kupfer'), 10); if(kupfer < 0 || isNaN(kupfer)) kupfer = 0; if(kupfer2 < 0 || isNaN(kupfer2)) kupfer2 = 0; var zinn = parseInt(document.getElementsByName('menge_zinn')[1].value, 10); var zinn2 = parseInt(this.getAttribute('zinn'), 10); if(zinn < 0 || isNaN(zinn)) zinn = 0; if(zinn2 < 0 || isNaN(zinn2)) zinn2 = 0; var bronze = parseInt(document.getElementsByName('menge_bronze')[1].value, 10); var bronze2 = parseInt(this.getAttribute('bronze'), 10); if(bronze < 0 || isNaN(bronze)) bronze = 0; if(bronze2 < 0 || isNaN(bronze2)) bronze2 = 0; if(this.checked) { document.getElementsByName('menge_nahrung')[1].value = nahrung+nahrung2; document.getElementsByName('menge_wasser')[1].value = wasser+wasser2; document.getElementsByName('menge_geld')[1].value = gold+gold2; document.getElementsByName('menge_holz')[1].value = holz+holz2; document.getElementsByName('menge_stein')[1].value = stein+stein2; document.getElementsByName('menge_kohle')[1].value = kohle+kohle2; document.getElementsByName('menge_kupfer')[1].value = kupfer+kupfer2; document.getElementsByName('menge_zinn')[1].value = zinn+zinn2; document.getElementsByName('menge_bronze')[1].value = bronze+bronze2; } else { document.getElementsByName('menge_nahrung')[1].value = nahrung-nahrung2; document.getElementsByName('menge_wasser')[1].value = wasser-wasser2; document.getElementsByName('menge_geld')[1].value = gold-gold2; document.getElementsByName('menge_holz')[1].value = holz-holz2; document.getElementsByName('menge_stein')[1].value = stein-stein2; document.getElementsByName('menge_kohle')[1].value = kohle-kohle2; document.getElementsByName('menge_kupfer')[1].value = kupfer-kupfer2; document.getElementsByName('menge_zinn')[1].value = zinn-zinn2; document.getElementsByName('menge_bronze')[1].value = bronze-bronze2; } }, false); } } } // Talkampf if(document.URL.indexOf('/grtal.php') != -1) { // Beschreibung anpassen var tkBeschreibung = content.innerHTML.replace(/12:00/, tkEnde+':00').replace(/10:00/g, tkStart+':00'); if(tkBeschreibung.indexOf('Anmeldung zum Talkampf erst ab 12:05 möglich.') != -1 || tkBeschreibung.indexOf('Hier kannst du dich zum Talkampf eintragen.') != -1) { tkBeschreibung += '<br><span class="yellow"><b>TIPP:</b><br> Wenn du dich zw. 12:05 Uhr und '+tkEnde+' Uhr anmeldest, nimmst du am Talkampf teil und kannst nebenbei noch arbeiten, jagen, o.a.</span>'; } content.innerHTML = tkBeschreibung; // Teilnahme speichern if(tkBeschreibung.indexOf('Du bist für die Kämpfe im Tal angemeldet.') != -1) { tkTeilnahme = talkampfDate.getTime().toString(); GM_setValue("TKTeilnahme", tkTeilnahme); } } if(document.URL.indexOf('/grtal.php?teil=true') != -1 && content.textContent.indexOf('Dafür hast du leider zu wenig Rohstoffe.') == -1) { // Teilnahme speichern tkTeilnahme = talkampfDate.getTime().toString(); GM_setValue("TKTeilnahme", tkTeilnahme); } // Stammkampf if(document.URL.indexOf('/stamm.php?do=kampfuserauswahl') != -1) { if(content.textContent.indexOf('Ihr habt noch keinen Stamm herausgefordert bzw. seid herausgefordert worden.') != -1) { window.location.href = 'http://szs.looki.de/stamm.php?do=kampfsuche'; } else if(content.textContent.indexOf('Du bist unterwegs.') == -1 && content.textContent.indexOf('Der Kampf läuft schon.') == -1) { var stammWaffen = GM_getValue("StammWaffen", ""); // EPs + Waffen var gesamtTeilnehmer = 0; var gesamtEPs = 0; var teilnehmer = content.getElementsByTagName('table')[1].getElementsByTagName('tr'); teilnehmer[0].innerHTML = teilnehmer[0].innerHTML+'<td>Waffen</td>'; var strStammkampfTeilnehmer = servertimeDate.getTime().toString()+'#'; for(i=1; i<teilnehmer.length; i++) { gesamtEPs += parseInt(teilnehmer[i].getElementsByTagName('td')[1].textContent, 10); teilnehmer[i].getElementsByTagName('td')[1].innerHTML = number_format(parseInt(teilnehmer[i].getElementsByTagName('td')[1].textContent, 10)); teilnehmer[i].getElementsByTagName('td')[1].setAttribute('class', 'right'); gesamtTeilnehmer += 1; var nick = teilnehmer[i].getElementsByTagName('td')[0].textContent.trim(); strStammkampfTeilnehmer += nick+'#'; if(stammWaffen.indexOf(nick) != -1) { var waffe = stammWaffen; waffe = waffe.slice(waffe.indexOf(nick)); waffe = waffe.slice(waffe.indexOf(',')+1); waffe = waffe.slice(0, waffe.indexOf('#')); teilnehmer[i].innerHTML = teilnehmer[i].innerHTML+'<td>'+waffe+'</td>'; } else { teilnehmer[i].innerHTML = teilnehmer[i].innerHTML+'<td></td>'; } } teilnehmer[0].getElementsByTagName('td')[0].innerHTML = '<b>Name</b> ('+gesamtTeilnehmer+')'; teilnehmer[0].getElementsByTagName('td')[1].innerHTML = '<b>Erfahrung</b> ('+number_format(parseFloat(gesamtEPs))+')'; teilnehmer[0].getElementsByTagName('td')[2].innerHTML = '<b>Optionen</b>'; teilnehmer[0].getElementsByTagName('td')[3].innerHTML = '<b>in der Hand<span class="red">*</span></b>'; GM_setValue("StammkampfTeilnehmer", strStammkampfTeilnehmer); // Rohstoffsicherung var nahrung = ressis_gesamt['Nahrung']-Assi_NahrungRest; if(nahrung < 0 || isNaN(nahrung)) nahrung = 0; if(Assi_NahrungRund > 0) { nahrung -= nahrung%Assi_NahrungRund; } var gold = ressis_gesamt['Gold']-Assi_GoldRest; if(gold < 0 || isNaN(gold)) gold = 0; if(Assi_GoldRund > 0) { gold -= gold%Assi_GoldRund; } var holz = ressis_gesamt['Holz']-Assi_HolzRest; if(holz < 0 || isNaN(holz)) holz = 0; var stein = ressis_gesamt['Steine']-Assi_SteinRest; if(stein < 0 || isNaN(stein)) stein = 0; content.innerHTML += '<br><br><b>Ressis sichern:</b><br><br>'; var input = document.createElement('input'); input.setAttribute('id', 'saveNahrungGoldButton'); input.setAttribute('type', 'button'); input.setAttribute('class', 'pointer save'); input.setAttribute('value', 'Nahrung & Gold ins Lager'); input.setAttribute('nahrung', nahrung); input.setAttribute('gold', gold); input.setAttribute('title', number_format(nahrung, 0, ',', '.')+' Nahrung & '+number_format(gold, 0, ',', '.')+' Gold'); input.addEventListener('click', function() { var nahrung = parseInt(this.getAttribute('nahrung'), 10); var gold = parseInt(this.getAttribute('gold'), 10); GM_xmlhttpRequest({ method: "POST", url: "http://szs.looki.de/stamm.php", data: "do=lager_anbiet&menge_nahrung="+nahrung+"&menge_geld="+gold+"&art=anbieten", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var anfang = response.responseText.indexOf('<!-- INHALT ANFANG -->'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->')+20; var html = response.responseText.slice(anfang, ende); anfang = html.indexOf('</table>')+12; ende = html.length-20; html = html.slice(anfang, ende).trim(); if(html == 'Deine ausgewählten Rohstoffe liegen jetzt im Stammlager.') { alert(number_format(nahrung)+' Nahrung und '+number_format(gold)+' Gold in das Lager verfrachtet.'); } else { alert('Fehler:\n\n'+html+'\n\nNahrung: '+nahrung+'\nGold: '+gold); } } }); }); content.appendChild(input); var input = document.createElement('input'); input.setAttribute('id', 'saveHolzButton'); input.setAttribute('type', 'button'); input.setAttribute('class', 'pointer save'); input.setAttribute('value', 'Holz auf den Markt'); input.setAttribute('holz', holz); input.setAttribute('title', number_format(holz, 0, ',', '.')+' Holz') input.addEventListener('click', function() { var holz = parseInt(this.getAttribute('holz'), 10); GM_xmlhttpRequest({ method: "POST", url: "http://szs.looki.de/markt.php", data: "do=rohverkauf&mengeholz="+holz+"&preisholz="+Assi_HolzPreis+"&art=Holz+anbieten", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var anfang = response.responseText.indexOf('<!-- INHALT ANFANG -->'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->')+20; var html = response.responseText.slice(anfang, ende); anfang = html.indexOf('</table>')+12; ende = html.length-20; html = html.slice(anfang, ende).trim(); if(html == 'Dein Rohstoff wird jetzt auf dem Markt angeboten.') { alert(number_format(holz)+' Holz zum Preis von '+number_format(Assi_HolzPreis)+' Gold auf den Markt gestellt.'); } else { alert('Fehler:\n\n'+html+'\n\nHolz: '+holz+'\nHolzpreis: '+Assi_HolzPreis); } } }); }); content.appendChild(input); var input = document.createElement('input'); input.setAttribute('id', 'saveSteinButton'); input.setAttribute('type', 'button'); input.setAttribute('class', 'pointer save'); input.setAttribute('value', 'Steine auf den Markt'); input.setAttribute('stein', stein); input.setAttribute('title', number_format(stein, 0, ',', '.')+' Steine') input.addEventListener('click', function() { var stein = parseInt(this.getAttribute('stein'), 10); GM_xmlhttpRequest({ method: "POST", url: "http://szs.looki.de/markt.php", data: "do=rohverkauf&mengesteine="+stein+"&preissteine="+Assi_SteinPreis+"&art=Stein+anbieten", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var anfang = response.responseText.indexOf('<!-- INHALT ANFANG -->'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->')+20; var html = response.responseText.slice(anfang, ende); anfang = html.indexOf('</table>')+12; ende = html.length-20; html = html.slice(anfang, ende).trim(); if(html == 'Dein Rohstoff wird jetzt auf dem Markt angeboten.') { alert(number_format(stein)+' Steine zum Preis von '+number_format(Assi_SteinPreis)+' Gold auf den Markt gestellt.'); } else { alert('Fehler:\n\n'+html+'\n\nSteine: '+stein+'\nSteinpreis: '+Assi_SteinPreis); } } }); }); content.appendChild(input); // Hinweis ausgeben var hinweisDIV = document.createElement('div'); hinweisDIV.setAttribute('class', 'yellow'); hinweisDIV.innerHTML = '<br><br><span class="red bold">* Hinweis:</span><br>Daten zuletzt aktualisiert vor '; var stammWaffenDate = new Date(parseInt(stammWaffen.split('#')[0], 10)); var count = Math.floor(servertimeDate.getTime()/1000)-Math.floor(stammWaffenDate.getTime()/1000); var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; if(hours > 0) { hinweisDIV.innerHTML += hours+':'+format2(minutes)+':'+format2(seconds)+' Std'; } else if(minutes > 0) { hinweisDIV.innerHTML += minutes+':'+format2(seconds)+' Min'; } else { hinweisDIV.innerHTML += seconds+' Sek'; } hinweisDIV.innerHTML += ' ('+format2(stammWaffenDate.getDate())+'.'+format2(stammWaffenDate.getMonth()+1)+'.'+stammWaffenDate.getFullYear()+' - '+format2(stammWaffenDate.getHours())+':'+format2(stammWaffenDate.getMinutes())+':'+format2(stammWaffenDate.getSeconds())+' Uhr)<br>'; hinweisDIV.innerHTML += '-> via <a href="stamm.php?do=uebersicht">StammÜbersicht</a> aktualisieren<br>'; content.appendChild(hinweisDIV); } } else if(document.URL.indexOf('/stamm.php?do=kampfsuche') && content.textContent.indexOf('Ihr habt schon einen Stamm herausgefordert bzw. wurdet herausgefordert.') != -1) { window.location.href = 'http://szs.looki.de/stamm.php?do=kampfuserauswahl'; } if(document.URL.indexOf('/stamm.php?do=kampfteilnehmen') != -1) { // Teilnahme speichern skTeilnahme = nextSK.split(',')[0]; GM_setValue("SKTeilnahme", skTeilnahme); } if(document.URL.indexOf('/stamm.php?do=nichtteil') != -1) { // Teilnahme löschen GM_deleteValue("SKTeilnahme"); } // Magierkampf if(document.URL.indexOf('/stamm.magierkampf.php') != -1 && content.textContent.indexOf('Du bist jetzt') == -1 && content.textContent.indexOf('Derzeit laufen die Magierkämpfe.') == -1 && content.textContent.indexOf('Du hast nicht genügend Gold um dich zum Magierkampf anzumelden!') == -1 && document.URL.indexOf('action=update') == -1) { // Beschreibung anpassen content.innerHTML = content.innerHTML.replace('18:00', mkEnde+':00').replace('16:00', mkStart+':00'); content.innerHTML = content.innerHTML.replace('<b>Teilnehmer:</b>', ''); // Teilnehmer speichern + Waffen hinzufügen var strMagierkampfTeilnehmer = servertimeDate.getTime().toString()+'#'; if(content.getElementsByTagName('table')[1]) { var stammWaffen = GM_getValue("StammWaffen", ""); var gesamtTeilnehmer = 0; content.getElementsByTagName('table')[1].setAttribute('border', '1'); var teilnehmer = content.getElementsByTagName('table')[1].getElementsByTagName('tr'); for(i=0; i<teilnehmer.length; i++) { gesamtTeilnehmer++; var nick = teilnehmer[i].getElementsByTagName('td')[0].textContent.trim(); strMagierkampfTeilnehmer += nick+'#'; if(!teilnehmer[i].getElementsByTagName('td')[1]) { teilnehmer[i].innerHTML = teilnehmer[i].innerHTML+'<td></td>'; } if(stammWaffen.indexOf(nick) != -1) { var waffe = stammWaffen; waffe = waffe.slice(waffe.indexOf(nick)); waffe = waffe.slice(waffe.indexOf(',')+1); waffe = waffe.slice(0, waffe.indexOf('#')); teilnehmer[i].innerHTML = teilnehmer[i].innerHTML+'<td>'+waffe+'</td>'; } else { teilnehmer[i].innerHTML = teilnehmer[i].innerHTML+'<td></td>'; } } var headTD = document.createElement('tr'); headTD.innerHTML = '<td class="center"><b>Teilnehmer</b> ('+gesamtTeilnehmer+')</td><td class="center bold">Optionen</td><td class="center bold">in der Hand<span class="red">*</span></td>'; teilnehmer[0].parentNode.insertBefore(headTD, teilnehmer[0]); } GM_setValue("MagierkampfTeilnehmer", strMagierkampfTeilnehmer); var stammWaffenDate = new Date(parseInt(stammWaffen.split('#')[0], 10)); var hinweis = '<br><br><span class="red bold">* Hinweis:</span><br><span class="yellow">Daten zuletzt aktualisiert vor '; var count = Math.floor(servertimeDate.getTime()/1000)-Math.floor(stammWaffenDate.getTime()/1000); var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; if(hours > 0) { hinweis += hours+':'+format2(minutes)+':'+format2(seconds)+' Std'; } else if(minutes > 0) { hinweis += minutes+':'+format2(seconds)+' Min'; } else { hinweis += seconds+' Sek'; } hinweis += ' ('+format2(stammWaffenDate.getDate())+'.'+format2(stammWaffenDate.getMonth()+1)+'.'+stammWaffenDate.getFullYear()+' - '+format2(stammWaffenDate.getHours())+':'+format2(stammWaffenDate.getMinutes())+':'+format2(stammWaffenDate.getSeconds())+' Uhr)<br>'; hinweis += '-> via <a href="stamm.php?do=uebersicht">StammÜbersicht</a> aktualisieren</span><br>'; content.innerHTML += hinweis; // Teilnahme speichern if(document.URL.indexOf('stamm.magierkampf.php?action=anmelden') != -1 || content.textContent.indexOf('vom Magierkampf austragen') != -1) { mkTeilnahme = magierkampfDate.getTime().toString(); GM_setValue("MKTeilnahme", mkTeilnahme); } } // Stammübersicht if(document.URL.indexOf('/stamm.php?do=uebersicht') != -1) { var stammkampfTeilnehmer = GM_getValue("StammkampfTeilnehmer", ""); var magierkampfTeilnehmer = GM_getValue("MagierkampfTeilnehmer", ""); // SK-Datum speichern if(content.textContent.indexOf('Nächster Kampf: kein Kampf') == -1) { content.textContent.search(/Nächster Kampf: (\d+)\.(\d+)\.(\d+) \- (\d+):(\d+)/); var skStartDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), 0); i=0; while(content.getElementsByTagName('a')[i].getAttribute('href').indexOf('stamminfo.php?stammid=') == -1) { i++; } var skGegner = content.getElementsByTagName('a')[i].textContent.trim(); content.getElementsByTagName('a')[i].getAttribute('href').search(/stammid=(\d*)/); var newSPAN = document.createElement('span'); newSPAN.innerHTML = ' (<span id="ep_skGegner"></span> EP)'; content.insertBefore(newSPAN, content.getElementsByTagName('a')[i].nextSibling); getClanEPByClanId(RegExp.$1, 'ep_skGegner'); } else { content.innerHTML = content.innerHTML.replace(/Nächster Kampf: kein Kampf/, 'Nächster Kampf: kein Kampf <a href="stamm.php?do=kampfsuche">[Gegnersuche]</a>'); } // EPs etc. var gesamtEPs = 0; var gesamtHolz = 0; var gesamtStein = 0; var gesamtGold = 0; var gesamtWasser = 0; var gesamtNahrung = 0; var gesamtOnline = 0; var skTeilnehmerEP = 0; var starvationCounter = 0; var gruender = 0; if(content.getElementsByTagName('table')[1].textContent.indexOf('Als Gründer kannst du hier das Passwort ändern:') != -1) gruender = 1; var mitglieder = content.getElementsByTagName('table')[1+gruender].getElementsByTagName('tr'); for(i=1; i<mitglieder.length; i++) { var user = mitglieder[i].getElementsByTagName('td')[1].textContent.trim(); var ep = parseInt(mitglieder[i].getElementsByTagName('td')[2].textContent, 10); var holz = parseInt(mitglieder[i].getElementsByTagName('td')[3].textContent, 10); var stein = parseInt(mitglieder[i].getElementsByTagName('td')[4].textContent, 10); var gold = parseInt(mitglieder[i].getElementsByTagName('td')[5].textContent, 10); var wasser = parseInt(mitglieder[i].getElementsByTagName('td')[6].textContent, 10); var nahrung = parseInt(mitglieder[i].getElementsByTagName('td')[7].textContent, 10); gesamtEPs += ep; gesamtHolz += holz; gesamtStein += stein; gesamtGold += gold; gesamtWasser += wasser; gesamtNahrung += nahrung; mitglieder[i].getElementsByTagName('td')[2].setAttribute('class', 'right'); mitglieder[i].getElementsByTagName('td')[2].innerHTML = number_format(ep); mitglieder[i].getElementsByTagName('td')[3].setAttribute('class', 'right'); mitglieder[i].getElementsByTagName('td')[3].innerHTML = number_format(holz); mitglieder[i].getElementsByTagName('td')[4].setAttribute('class', 'right'); mitglieder[i].getElementsByTagName('td')[4].innerHTML = number_format(stein); mitglieder[i].getElementsByTagName('td')[5].setAttribute('class', 'right'); mitglieder[i].getElementsByTagName('td')[5].innerHTML = number_format(gold); mitglieder[i].getElementsByTagName('td')[6].setAttribute('class', 'right'); mitglieder[i].getElementsByTagName('td')[6].innerHTML = number_format(wasser); if(nahrung < 50) { mitglieder[i].getElementsByTagName('td')[7].setAttribute('class', 'right red bold'); starvationCounter++; } else { mitglieder[i].getElementsByTagName('td')[7].setAttribute('class', 'right'); } mitglieder[i].getElementsByTagName('td')[7].innerHTML = number_format(nahrung); mitglieder[i].getElementsByTagName('td')[8].setAttribute('class', 'right'); if(mitglieder[i].getElementsByTagName('td')[8].textContent.indexOf('online') != -1) { gesamtOnline += 1; } if(stammkampfTeilnehmer.indexOf(user) != -1) { skTeilnehmerEP += ep; } } var gesamtMitglieder = mitglieder.length-1; mitglieder[0].innerHTML = '<td class="center bold top">#<br>Σ<br>\u2300</td>' + '<td class="center top"><b>Name</b><br><i>'+gesamtMitglieder+'</i><br><br></td>' + '<td class="right top"><center><b>EP</b></center><i>'+number_format(gesamtEPs)+'<br>'+number_format(gesamtEPs/gesamtMitglieder)+'</i></td>' + '<td class="right top"><center><b>Holz</b></center><i>'+number_format(gesamtHolz)+'<br>'+number_format(gesamtHolz/gesamtMitglieder)+'</i></td>' + '<td class="right top"><center><b>Stein</b></center><i>'+number_format(gesamtStein)+'<br>'+number_format(gesamtStein/gesamtMitglieder)+'</i></td>' + '<td class="right top"><center><b>Gold</b></center><i>'+number_format(gesamtGold)+'<br>'+number_format(gesamtGold/gesamtMitglieder)+'</i></td>' + '<td class="right top"><center><b>Wasser</b></center><i>'+number_format(gesamtWasser)+'<br>'+number_format(gesamtWasser/gesamtMitglieder)+'</i></td>' + '<td class="right top"><center><b>Nahrung</b></center><i>'+number_format(gesamtNahrung)+'<br>'+number_format(gesamtNahrung/gesamtMitglieder)+'</i>'+((starvationCounter > 0)? '<br><center class="bold red">'+starvationCounter+' (!)</center>' : '' )+'</td>' + '<td class="center top"><b>Status</b><br><i>'+number_format(gesamtOnline)+'</i><br><br></td>'; if(mitglieder.length-1 > 20) { // wenn >20 Mitglieder var newTR = document.createElement('tr'); newTR.setAttribute('bgcolor', mitglieder[mitglieder.length-2].getAttribute('bgcolor')); newTR.innerHTML = '<td class="center bold">#</td><td class="center bold">Name</td><td class="center bold">EP</td><td class="center bold">Holz</td><td class="center bold">Stein</td><td class="center bold">Gold</td><td class="center bold">Wasser</td><td class="center bold">Nahrung</td><td class="center bold">Status</td>'; mitglieder[0].parentNode.appendChild(newTR); } // SK+MK-Anmeldungen und StammWaffen für SK+MK var skTeilnehmerDate = new Date(parseInt(stammkampfTeilnehmer.split('#')[0], 10)); var mkTeilnehmerDate = new Date(parseInt(magierkampfTeilnehmer.split('#')[0], 10)); var isOldSK = (skStartDate && skStartDate.getTime()-86400000 >= skTeilnehmerDate.getTime()) ? true : false; // 86.400.000 = 1d var isOldMK = (magierkampfDate.getTime()-604800000 >= mkTeilnehmerDate.getTime()) ? true : false; // 604.800.000 = 7d var strStammWaffen = servertimeDate.getTime().toString()+'#'; mitglieder = content.getElementsByTagName('table')[2+gruender].getElementsByTagName('tr'); var skTeilnehmer = new Array(); var skTeilnehmerOhneWaffe = new Array(); var skNichtTeilnehmerOhneWaffeninfo = new Array(); var skNichtTeilnehmerMitWaffeninfo = new Array(); var skCountNichtTeilnehmerOhneWaffe = 0; var mkTeilnehmer = new Array(); var mkTeilnehmerOhneWaffe = new Array(); var mkNichtTeilnehmerOhneWaffeninfo = new Array(); var mkNichtTeilnehmerMitWaffeninfo = new Array(); var mkCountNichtTeilnehmerOhneWaffe = 0; for(i=1; i<mitglieder.length; i++) { var nick = mitglieder[i].getElementsByTagName('td')[1].textContent.trim(); var waffe = mitglieder[i].getElementsByTagName('td')[3].textContent.trim(); var status = mitglieder[i].getElementsByTagName('td')[8].getElementsByTagName('font')[0].getAttribute('color').trim(); mitglieder[i].getElementsByTagName('td')[0].innerHTML = '<span class="'+status+'">'+i+'</span>'; mitglieder[i].removeChild(mitglieder[i].getElementsByTagName('td')[8]); var skTD = document.createElement('td'); skTD.setAttribute('class', 'center'); if(!isOldSK) { if(stammkampfTeilnehmer.indexOf(nick) != -1) { skTD.innerHTML = '<div class="greenDot"></div>'; skTeilnehmer.push(nick); if(waffe == '' || waffen.indexOf(waffe) == -1) { skTeilnehmerOhneWaffe.push(nick); } } else { skTD.innerHTML = '<div class="redDot"></div>'; skNichtTeilnehmerOhneWaffeninfo.push(nick); if(waffe == '' || waffen.indexOf(waffe) == -1) { skNichtTeilnehmerMitWaffeninfo.push(nick+"(*)"); skCountNichtTeilnehmerOhneWaffe++; } else { skNichtTeilnehmerMitWaffeninfo.push(nick); } } } mitglieder[i].insertBefore(skTD, mitglieder[i].getElementsByTagName('td')[4]); var mkTD = document.createElement('td'); mkTD.setAttribute('class', 'center'); if(!isOldMK) { if(magierkampfTeilnehmer.indexOf(nick) != -1) { mkTD.innerHTML = '<div class="greenDot"></div>'; mkTeilnehmer.push(nick); if(waffe == '' || waffen.indexOf(waffe) == -1) { mkTeilnehmerOhneWaffe.push(nick); } } else { mkTD.innerHTML = '<div class="redDot"></div>'; mkNichtTeilnehmerOhneWaffeninfo.push(nick); if(waffe == '' || waffen.indexOf(waffe) == -1) { mkNichtTeilnehmerMitWaffeninfo.push(nick+"(*)"); mkCountNichtTeilnehmerOhneWaffe++; } else { mkNichtTeilnehmerMitWaffeninfo.push(nick); } } } mitglieder[i].insertBefore(mkTD, mitglieder[i].getElementsByTagName('td')[5]); strStammWaffen += nick+','+waffe+'#'; } GM_setValue("StammWaffen", strStammWaffen); mitglieder[0].innerHTML = '<td class="center bold">#</td><td class="center bold">Name</td><td class="center bold">Beruf</td><td class="center bold">in der Hand</td><td class="center bold">SK<span class="red">*</span></td><td class="center bold">MK<span class="red">*</span></td><td class="center bold">Kicken</td><td class="center bold" title="Lagerrechte">LR</td><td class="center bold" title="Gründerrechte">GR</td><td class="center bold" title="Forenrechte">FR</td>'; if(mitglieder.length-1 > 20) { // wenn >20 Mitglieder var newTR = document.createElement('tr'); newTR.setAttribute('bgcolor', mitglieder[mitglieder.length-2].getAttribute('bgcolor')); newTR.innerHTML = '<td class="center bold">#</td><td class="center bold">Name</td><td class="center bold">Beruf</td><td class="center bold">in der Hand</td><td class="center bold">SK<span class="red">*</span></td><td class="center bold">MK<span class="red">*</span></td><td class="center bold">Kicken</td><td class="center bold" title="Lagerrechte">LR</td><td class="center bold" title="Gründerrechte">GR</td><td class="center bold" title="Forenrechte">FR</td>'; mitglieder[0].parentNode.appendChild(newTR); } var hinweis = '<br><br><span class="red bold">* Hinweis:</span><br><span class="yellow">Teilnehmer-Daten zuletzt aktualisiert<br>'; hinweis += '- SK: '; if(isOldSK) { hinweis += '<span class="red bold">Veraltet! Vom letzten SK!</span>'; } else { var count = Math.floor(servertimeDate.getTime()/1000)-Math.floor(skTeilnehmerDate.getTime()/1000); var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; if(hours > 0) { hinweis += hours+':'+format2(minutes)+':'+format2(seconds)+' Std'; } else if(minutes > 0) { hinweis += minutes+':'+format2(seconds)+' Min'; } else { hinweis += seconds+' Sek'; } hinweis += ' ('+format2(skTeilnehmerDate.getDate())+'.'+format2(skTeilnehmerDate.getMonth()+1)+'.'+skTeilnehmerDate.getFullYear()+' - '+format2(skTeilnehmerDate.getHours())+':'+format2(skTeilnehmerDate.getMinutes())+':'+format2(skTeilnehmerDate.getSeconds())+' Uhr)'; } hinweis += ' -> via <a href="stamm.php?do=kampfuserauswahl">Stammkampf</a> aktualisieren<br>'; hinweis += '- MK: '; if(isOldMK) { hinweis += '<span class="red" bold>Veraltet! Vom letzten MK!</span>'; } else { var count = Math.floor(servertimeDate.getTime()/1000)-Math.floor(mkTeilnehmerDate.getTime()/1000); var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; if(hours > 0) { hinweis += hours+':'+format2(minutes)+':'+format2(seconds)+' Std'; } else if(minutes > 0) { hinweis += minutes+':'+format2(seconds)+' Min'; } else { hinweis += seconds+' Sek'; } hinweis += ' ('+format2(mkTeilnehmerDate.getDate())+'.'+format2(mkTeilnehmerDate.getMonth()+1)+'.'+mkTeilnehmerDate.getFullYear()+' - '+format2(mkTeilnehmerDate.getHours())+':'+format2(mkTeilnehmerDate.getMinutes())+':'+format2(mkTeilnehmerDate.getSeconds())+' Uhr)'; } hinweis += ' -> via <a href="stamm.magierkampf.php">Magierkampf</a> aktualisieren</span><br><br>'; var skCopyOhneWaffenstand = ''; var skCopyMitWaffenstand = ''; if(skStartDate) { skCopyOhneWaffenstand = 'Stammkampf: '+format2(skStartDate.getDate())+'.'+format2(skStartDate.getMonth()+1)+'.'+skStartDate.getFullYear()+' - '+format2(skStartDate.getHours())+':'+format2(skStartDate.getMinutes())+' Uhr'; skCopyOhneWaffenstand += '\nGegner: '+skGegner; skCopyMitWaffenstand = skCopyOhneWaffenstand; if(isOldSK) { skCopyOhneWaffenstand += '\n\nVeraltete Teilnehmer-Daten vom letzten Stammkampf!'; skCopyMitWaffenstand = skCopyOhneWaffenstand; } else { skCopyOhneWaffenstand += '\n\nTeilnehmer: '+skTeilnehmer.length+'/'+gesamtMitglieder+' ('+number_format(skTeilnehmerEP)+' EP)'; skCopyOhneWaffenstand += '\n\nNICHT angemeldet ('+skNichtTeilnehmerOhneWaffeninfo.length+'): '+skNichtTeilnehmerOhneWaffeninfo.join(', '); skCopyOhneWaffenstand += '\n\nStand (Teilnehmer): '+format2(skTeilnehmerDate.getDate())+'.'+format2(skTeilnehmerDate.getMonth()+1)+'.'+skTeilnehmerDate.getFullYear()+' - '+format2(skTeilnehmerDate.getHours())+':'+format2(skTeilnehmerDate.getMinutes())+':'+format2(skTeilnehmerDate.getSeconds())+' Uhr'; skCopyMitWaffenstand += '\n\nTeilnehmer: '+skTeilnehmer.length+'/'+gesamtMitglieder+' ('+number_format(skTeilnehmerEP)+' EP)'+'\ndavon OHNE Waffe: ('+skTeilnehmerOhneWaffe.length+'): '+skTeilnehmerOhneWaffe.join(', '); skCopyMitWaffenstand += '\n\nNICHT angemeldet ('+skNichtTeilnehmerMitWaffeninfo.length+'): '+skNichtTeilnehmerMitWaffeninfo.join(', ')+((skCountNichtTeilnehmerOhneWaffe > 0)? '\n(*) = ohne Waffe ('+skCountNichtTeilnehmerOhneWaffe+')':''); skCopyMitWaffenstand += '\n\nStand (Teilnehmer): '+format2(skTeilnehmerDate.getDate())+'.'+format2(skTeilnehmerDate.getMonth()+1)+'.'+skTeilnehmerDate.getFullYear()+' - '+format2(skTeilnehmerDate.getHours())+':'+format2(skTeilnehmerDate.getMinutes())+':'+format2(skTeilnehmerDate.getSeconds())+' Uhr'; skCopyMitWaffenstand += '\nStand (Waffen): '+format2(servertimeDate.getDate())+'.'+format2(servertimeDate.getMonth()+1)+'.'+servertimeDate.getFullYear()+' - '+format2(servertimeDate.getHours())+':'+format2(servertimeDate.getMinutes())+':'+format2(servertimeDate.getSeconds())+' Uhr'; } } else { skCopyOhneWaffenstand = 'Derzeit kein Stammkampf!'; skCopyMitWaffenstand = skCopyOhneWaffenstand; } var mkCopyOhneWaffenstand = 'Magierkampf: '+format2(magierkampfDate.getDate())+'.'+format2(magierkampfDate.getMonth()+1)+'.'+magierkampfDate.getFullYear()+' - '+format2(magierkampfDate.getHours())+':'+format2(magierkampfDate.getMinutes())+' Uhr'; var mkCopyMitWaffenstand = mkCopyOhneWaffenstand; if(isOldMK) { mkCopyOhneWaffenstand += '\n\nVeraltete Teilnehmer-Daten vom letzten Magierkampf!'; mkCopyMitWaffenstand = mkCopyOhneWaffenstand; } else { mkCopyOhneWaffenstand += '\n\nTeilnehmer: '+mkTeilnehmer.length+'/'+gesamtMitglieder; mkCopyOhneWaffenstand += '\n\nNICHT angemeldet ('+mkNichtTeilnehmerOhneWaffeninfo.length+'): '+mkNichtTeilnehmerOhneWaffeninfo.join(', '); mkCopyOhneWaffenstand += '\n\nStand (Teilnehmer): '+format2(mkTeilnehmerDate.getDate())+'.'+format2(mkTeilnehmerDate.getMonth()+1)+'.'+mkTeilnehmerDate.getFullYear()+' - '+format2(mkTeilnehmerDate.getHours())+':'+format2(mkTeilnehmerDate.getMinutes())+':'+format2(mkTeilnehmerDate.getSeconds())+' Uhr'; mkCopyMitWaffenstand += '\n\nTeilnehmer: '+mkTeilnehmer.length+'/'+gesamtMitglieder+'\ndavon OHNE Waffe ('+mkTeilnehmerOhneWaffe.length+'): '+mkTeilnehmerOhneWaffe.join(', '); mkCopyMitWaffenstand += '\n\nNICHT angemeldet ('+mkNichtTeilnehmerMitWaffeninfo.length+'): '+mkNichtTeilnehmerMitWaffeninfo.join(', ')+((mkCountNichtTeilnehmerOhneWaffe > 0)? '\n(*) = ohne Waffe ('+mkCountNichtTeilnehmerOhneWaffe+')':''); mkCopyMitWaffenstand += '\n\nStand (Teilnehmer): '+format2(mkTeilnehmerDate.getDate())+'.'+format2(mkTeilnehmerDate.getMonth()+1)+'.'+mkTeilnehmerDate.getFullYear()+' - '+format2(mkTeilnehmerDate.getHours())+':'+format2(mkTeilnehmerDate.getMinutes())+':'+format2(mkTeilnehmerDate.getSeconds())+' Uhr'; mkCopyMitWaffenstand += '\nStand (Waffen): '+format2(servertimeDate.getDate())+'.'+format2(servertimeDate.getMonth()+1)+'.'+servertimeDate.getFullYear()+' - '+format2(servertimeDate.getHours())+':'+format2(servertimeDate.getMinutes())+':'+format2(servertimeDate.getSeconds())+' Uhr'; } content.innerHTML += hinweis+'<br><b>Stammkampf-Copy:</b> <input id="skcopycheckbox" type="checkbox">mit Waffenstand<br><textarea id="skcopy" class="kampfcopy"></textarea><br><br><br><b>Magierkampf-Copy:</b> <input id="mkcopycheckbox" type="checkbox">mit Waffenstand<br><textarea id="mkcopy" class="kampfcopy"></textarea><br><br><br>'; document.getElementById('skcopy').innerHTML = skCopyOhneWaffenstand; document.getElementById('mkcopy').innerHTML = mkCopyOhneWaffenstand; // Event-Listener document.getElementById('skcopycheckbox').addEventListener('change', function() { if(document.getElementById('skcopycheckbox').checked) { document.getElementById('skcopy').innerHTML = skCopyMitWaffenstand; } else { document.getElementById('skcopy').innerHTML = skCopyOhneWaffenstand; } }, false); document.getElementById('mkcopycheckbox').addEventListener('change', function() { if(document.getElementById('mkcopycheckbox').checked) { document.getElementById('mkcopy').innerHTML = mkCopyMitWaffenstand; } else { document.getElementById('mkcopy').innerHTML = mkCopyOhneWaffenstand; } }, false); } // StammInfo if(document.URL.indexOf("/stamminfo.php") != -1) { if(content.textContent.indexOf('Hier werden Stammdaten angezeigt:') != -1) { var mitglieder = content.getElementsByTagName('table')[3].getElementsByTagName('tr'); var gesamtEPs = 0; var gesamtOnline = 0; for(i=1; i<mitglieder.length; i++) { var ep = parseInt(mitglieder[i].getElementsByTagName('td')[1].textContent, 10); gesamtEPs += ep; mitglieder[i].getElementsByTagName('td')[1].innerHTML = number_format(ep); mitglieder[i].getElementsByTagName('td')[1].setAttribute('class', 'right'); mitglieder[i].getElementsByTagName('td')[2].setAttribute('class', 'center'); if(mitglieder[i].getElementsByTagName('td')[2].textContent.indexOf('online') != -1) gesamtOnline++; } var gesamtMitglieder = mitglieder.length-1; mitglieder[0].getElementsByTagName('td')[0].innerHTML = '<b>Name</b> ('+gesamtMitglieder+')'; mitglieder[0].getElementsByTagName('td')[1].innerHTML = '<b>Erfahrung</b> ('+number_format(gesamtEPs)+')'; mitglieder[0].getElementsByTagName('td')[2].innerHTML = '<b>Status</b> ('+gesamtOnline+')'; mitglieder[0].getElementsByTagName('td')[0].setAttribute('class', 'center'); mitglieder[0].getElementsByTagName('td')[1].setAttribute('class', 'center'); mitglieder[0].getElementsByTagName('td')[2].setAttribute('class', 'center'); var gesamtep = document.createElement('tr'); gesamtep.innerHTML = '<td>Gesamt-EP</td><td>'+number_format(gesamtEPs)+' (\u2300 '+number_format(gesamtEPs/(mitglieder.length-1), 2)+')</td>'; var mitgliederanzahl = document.createElement('tr'); mitgliederanzahl.innerHTML = '<td>Mitgliederanzahl</td><td>'+gesamtMitglieder+' ('+gesamtOnline+' online)</td>'; content.getElementsByTagName('table')[2].getElementsByTagName('tbody')[0].insertBefore(mitgliederanzahl, content.getElementsByTagName('table')[2].getElementsByTagName('tr')[6]); content.getElementsByTagName('table')[2].getElementsByTagName('tbody')[0].insertBefore(gesamtep, content.getElementsByTagName('table')[2].getElementsByTagName('tr')[7]); content.getElementsByTagName('div')[0].setAttribute('style', 'overflow:auto; width:550px;'); } else if(content.textContent.indexOf('Hier kannst du nach einem Steinzeit-Stamm suchen:') != -1) { if(getURLParameter('s') != null) { document.getElementsByName('stammname')[0].value = decodeURI(getURLParameter('s')); } document.getElementsByName('stammname')[0].focus(); } } // UserInfo if(document.URL.indexOf('/userinfo.php') != -1) { if(content.textContent.indexOf('Userdaten:') != -1) { i=0; while(content.getElementsByTagName('table')[4].getElementsByTagName('tr')[i].textContent.indexOf("Erfahrung:") == -1) { i++; } var ep = parseInt(content.getElementsByTagName('table')[4].getElementsByTagName('tr')[i].getElementsByTagName('td')[1].textContent, 10); var realtage = content.getElementsByTagName('table')[4].getElementsByTagName('tr')[i+1].getElementsByTagName('td')[1].textContent.trim(); realtage = realtage.split(' '); realtage = 15*parseInt(realtage[0], 10)+parseInt(realtage[4], 10)-197; // realtage == SZS-Monate, 197 -> Startalter (13J2M) if(realtage <= 0) realtage = 1; content.getElementsByTagName('table')[4].getElementsByTagName('tr')[i].getElementsByTagName('td')[1].innerHTML = number_format(ep)+' (\u2300 '+number_format(ep/realtage, 2)+') <span class="pointer" onclick="javascript:alert(this.title)" title="Dieser Wert errechnet sich aus Gesamt-EP geteilt durch \'Alter im Spiel\'.\nDa seit einiger Zeit allerdings jeden Tag mehrere Tage vergehen, ist dieser Wert quasi nicht mehr zu gebrauchen.">[?]</span>'; var beschreibung = content.getElementsByTagName('table')[5].getElementsByTagName('td')[0]; beschreibung.innerHTML = '<div style="overflow:auto;width:550px;">'+beschreibung.innerHTML+'</div>'; } else if(content.textContent.indexOf('Hier kannst du nach einem Steinzeitmenschen suchen.') != -1) { if(getURLParameter('s') != null) { document.getElementsByName('userdatenname')[0].value = decodeURI(getURLParameter('s')); } document.getElementsByName('userdatenname')[0].focus(); } } // Aktive Spieler & Stämme var resetZeit = 4; if(isSommerzeit(servertimeDate)) { resetZeit = 6; } else { resetZeit = 5; } if(document.URL.indexOf('/aktivespieler.php') != -1) { GM_setValue("Assi_UserName", content.getElementsByTagName('table')[1].getElementsByTagName('td')[56].textContent.trim()); // Beschreibung anpassen content.innerHTML = content.innerHTML.replace('4:15 Uhr', resetZeit+':15 Uhr'); } if(document.URL.indexOf('/aktivpunkte.php') != -1) { GM_setValue("Assi_StammName", content.getElementsByTagName('table')[1].getElementsByTagName('td')[64].textContent.trim()); content.innerHTML = content.innerHTML.replace('4:15 Uhr', resetZeit+':15 Uhr'); } // Stammnachrichten (Profil-Links, IGM-Icons, SK-, MK-Auswertung) // Nachricht löschen, wenn abgeschickt if(document.URL.indexOf('/stamm.php') && content.textContent.indexOf('Die Nachricht wurde hinzugefügt.') != -1) { GM_deleteValue("Stammnachricht"); } if(document.URL.indexOf('/stamm.php?do=nachricht') != -1) { content.getElementsByTagName('table')[1].setAttribute('id', 'stammnachrichteneingabetable'); content.getElementsByTagName('textarea')[0].setAttribute('id', 'stammnachrichteneingabe'); document.getElementById('stammnachrichteneingabetable').getElementsByTagName('td')[2].innerHTML += '<br><br><b>SZS-Assistent:</b> Willst du <span class="yellow">gelb</span> schreiben, beginne deine Nachricht mit <b>*gelb*</b> (mit *).<br>'; document.getElementById('stammnachrichteneingabe').addEventListener('keyup', function() { GM_setValue("Stammnachricht", document.getElementById('stammnachrichteneingabe').value); }, false); // Letzte nicht abgeschickte StammNachricht wiederherstellen var stammnachricht = GM_getValue("Stammnachricht", ""); if(stammnachricht != "") { var newDIV = document.createElement('div'); newDIV.setAttribute('class', 'postrecovery'); newDIV.innerHTML = 'Letzte nicht abgeschickte StammNachricht wiederhergestellt.'; content.insertBefore(newDIV, content.getElementsByTagName('form')[0]); document.getElementById("stammnachrichteneingabe").value = stammnachricht; } var stammnachrichten = content.getElementsByTagName('table')[2].getElementsByTagName('tr'); for(i=1; i<stammnachrichten.length; i++) { stammnachrichten[i].getElementsByTagName('td')[0].innerHTML.split('<br>')[1].search(/(\d+)\.(\d+)\.(\d+) \- (\d+):(\d+)/); var postDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), 0); var userID = stammnachrichten[i].getElementsByTagName('a')[0].getAttribute('href').slice(17); if(userID != 0) { // Profil-Link, PN-Icon stammnachrichten[i].getElementsByTagName('a')[0].setAttribute('href', 'userinfo.php?userinfo='+userID); var newA = document.createElement('a'); newA.setAttribute('href', 'message.php?empf='+userID); newA.setAttribute('style', 'margin-left: 5px;'); newA.setAttribute('title', 'Private Nachricht'); var newSPAN = document.createElement('span'); newSPAN.setAttribute('class', 'pn-icon'); newA.appendChild(newSPAN); stammnachrichten[i].getElementsByTagName('td')[0].insertBefore(newA, stammnachrichten[i].getElementsByTagName('br')[0]); // Textlinks setzen stammnachrichten[i].getElementsByTagName('td')[1].innerHTML = stammnachrichten[i].getElementsByTagName('td')[1].innerHTML.replace(/((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#\(\)]*[\w\-\@?^=%&\/~\+#\(\)])?)/g, '<a class="menu" target="_blank" href="$1">$1</a>'); // *gelb* Schreiben if(stammnachrichten[i].getElementsByTagName('td')[1].textContent.indexOf('*gelb*') == 0) { stammnachrichten[i].getElementsByTagName('td')[1].innerHTML = '<div style="width:430px; overflow:auto; color:yellow;">'+stammnachrichten[i].getElementsByTagName('td')[1].innerHTML.slice(6)+'</div>'; } else { stammnachrichten[i].getElementsByTagName('td')[1].innerHTML = '<div style="width:430px; overflow:auto;">'+stammnachrichten[i].getElementsByTagName('td')[1].innerHTML+'</div>'; } } else { // Stammkampfauswertung if(stammnachrichten[i].getElementsByTagName('td')[1].textContent.indexOf('Der Kampf wurde') != -1) { if(!counterGesamtEP) var counterGesamtEP = new Array(); if(!gesamtEP) var gesamtEP = new Array(); if(!stammname) var stammname = new Array(); var input = document.createElement('input'); input.setAttribute('id', 'skauswertung_'+i); input.setAttribute('type', 'button'); input.setAttribute('class', 'pointer'); input.setAttribute('value', 'Auswerten'); input.setAttribute('snnum', i); input.addEventListener('click', function() { var snnum = this.getAttribute('snnum'); gesamtEP[snnum+'a'] = 0; gesamtEP[snnum+'v'] = 0; stammname[snnum+'a'] = new Array(); stammname[snnum+'v'] = new Array(); var plotContent = stammnachrichten[snnum].getElementsByTagName('td')[1].getElementsByTagName('font'); // Angreifer var angreifer = stammnachrichten[snnum].getElementsByTagName('td')[1].innerHTML.replace(/.*Für den angreifenden Stamm sind angetreten:\s*/, '').replace(/\s*<br>.*/, '').replace(/<font color="red"><b>/g, '').replace(/<\/b><\/font>/g, '').trim(); angreifer = angreifer.split(' '); for(j=0; j<angreifer.length; j++) { addDataForSKresult(angreifer[j], snnum+'a', angreifer, j); } counterGesamtEP[snnum+'a'] = angreifer.length; // Verteidiger var verteidiger = stammnachrichten[snnum].getElementsByTagName('td')[1].innerHTML.replace(/.*Für den angegriffenen Stamm sind angetreten:\s*/, '').replace(/\s*\.<br>.*/, '').replace(/<font color="red"><b>/g, '').replace(/<\/b><\/font>/g, '').trim(); verteidiger = verteidiger.split(' '); for(j=0; j<verteidiger.length; j++) { addDataForSKresult(verteidiger[j], snnum+'v', verteidiger, j); } counterGesamtEP[snnum+'v'] = verteidiger.length; // Inhalt ausgeben var newContent = plotContent[0].outerHTML+'<br>'; newContent += '<br><b>Für den angreifenden Stamm (<span id="stamm_'+snnum+'a"><span class="yellow">...</span></span>) sind angetreten (<span id="anz_'+snnum+'a">'+angreifer.length+'</span>):</b><br>'; for(j=0; j<angreifer.length; j++) { newContent += '<span id="sk_'+snnum+'a_'+angreifer[j].trim()+'">'+angreifer[j]+'</span> '; } newContent += '<br><br><b>Für den angegriffenen Stamm (<span id="stamm_'+snnum+'v"><span class="yellow">...</span></span>) sind angetreten (<span id="anz_'+snnum+'v">'+verteidiger.length+'</span>):</b><br>'; for(j=0; j<verteidiger.length; j++) { newContent += '<span id="sk_'+snnum+'v_'+verteidiger[j].trim()+'">'+verteidiger[j]+'</span> '; } newContent += '<br><br><b>Angreifer-EP:</b> <span id="ep_'+snnum+'a"><span class="yellow">Daten werden geladen...</span></span>'; newContent += '<br><b>Verteidiger-EP:</b> <span id="ep_'+snnum+'v"><span class="yellow">Daten werden geladen...</span></span>'; newContent += '<br><br>'+plotContent[plotContent.length-1].outerHTML; stammnachrichten[snnum].getElementsByTagName('td')[1].innerHTML = newContent; this.parentNode.removeChild(this); }, false); stammnachrichten[i].getElementsByTagName('td')[0].appendChild(input); // MK: Startnachricht } else if(stammnachrichten[i].getElementsByTagName('td')[1].textContent.indexOf('Magierkampf') != -1) { var startnachricht = stammnachrichten[i].getElementsByTagName('td')[1].innerHTML.split('<br>'); var teilnehmeranzahl = 0; var newContent = ''; var strMagierkampfTeilnehmer = postDate.getTime().toString()+"#"; for(j=0; j<startnachricht.length-1; j++) { if(startnachricht[j].indexOf('macht sich auf den Weg zum Magierkampf.') != -1) { teilnehmeranzahl++; newContent += startnachricht[j]+'<br>'; var nick = startnachricht[j].replace(/<font color="red"><b>/, '').replace(/<\/b><\/font>/, '').trim(); nick = nick.substring(0, nick.length-40); strMagierkampfTeilnehmer += nick+'#'; } else { newContent += '<span class="red">'+startnachricht[j]+'</span><br>'; } } if(parseInt(GM_getValue("MagierkampfTeilnehmer", "").split('#')[0], 10) <= postDate.getTime()) { GM_setValue("MagierkampfTeilnehmer", strMagierkampfTeilnehmer); } stammnachrichten[i].getElementsByTagName('td')[0].innerHTML += '<br><br><br><b>Teilnehmer:</b> '+teilnehmeranzahl+'<br>'; if(document.getElementById('mkTeilnehmeranzahl')) document.getElementById('mkTeilnehmeranzahl').innerHTML = '('+teilnehmeranzahl+' Teilnehmer)'; stammnachrichten[i].getElementsByTagName('td')[1].innerHTML = newContent; // MK: Ergebnisnachricht | MK-Auswertung } else if(stammnachrichten[i].getElementsByTagName('td')[1].textContent.indexOf('50 Holz, 50 Stein, 20 Bronze.') != -1) { var mkEreignisse = stammnachrichten[i].getElementsByTagName('td')[1].innerHTML.split("<br>"); mkEreignisse.pop(); var killer_stamm = new Array(); // USERNAME var killer_gegner = new Array(); // USERNAME (STAMMNAME) var gekillteStaemme_stamm = new Array(); // STAMMNAME var killendeStaemme_gegner = new Array(); // STAMMNAME var angreifer_stamm = new Array(); // USERNAME var angreifer_gegner = new Array(); // USERNAME (STAMMNAME) var angegriffeneUser_stamm = new Array(); // USERNAME var angegriffeneUser_gegner = new Array(); // USERNAME (STAMMNAME) var angegriffeneStaemme_stamm = new Array(); // STAMMNAME var angreifendeStaemme_gegner = new Array(); // STAMMNAME var kills_stamm = 0; var kills_gegner = 0; var angriffe_stamm = 0; var angriffe_gegner = 0; var newContent = ''; for(j=0; j<mkEreignisse.length; j++) { if(mkEreignisse[j].indexOf('wurde dabei verletzt.') == -1) { // aktuelles mkEreignis ist Attacke mkEreignisse[j] = mkEreignisse[j].replace(/^<\/font>/, ''); mkEreignisse[j].search(/(.*) \((.*), \d{1,3}%\) trifft auf (.*) \(((.*), )?\d{1,3}%\) und fügt (ihm )?\d{1,3} (S|s)chaden zu./); var user1 = RegExp.$1; // Angreifer var stamm1 = RegExp.$2; var user2 = RegExp.$3; // Verteidiger var stamm2 = RegExp.$5; if(user2 == 'Magier') stamm2 = '<span class="orange bold">Magier</span>'; if(stamm1 == Assi_StammName) { // Angriff des eigenen Stammes angriffe_stamm++; if(angreifer_stamm.indexOf(user1) == -1) { angreifer_stamm.push(user1); angreifer_stamm[user1] = 1; } else { angreifer_stamm[user1]++; } if(angegriffeneUser_gegner.indexOf(user2+' ('+stamm2+')') == -1) { angegriffeneUser_gegner.push(user2+' ('+stamm2+')'); angegriffeneUser_gegner[user2+' ('+stamm2+')'] = 1; } else { angegriffeneUser_gegner[user2+' ('+stamm2+')']++; } if(angegriffeneStaemme_stamm.indexOf(stamm2) == -1) { angegriffeneStaemme_stamm.push(stamm2); angegriffeneStaemme_stamm[stamm2] = 1; } else { angegriffeneStaemme_stamm[stamm2]++; } } else { // Angriff eines gegnerischen Stammes angriffe_gegner++; if(angreifer_gegner.indexOf(user1+' ('+stamm1+')') == -1) { angreifer_gegner.push(user1+' ('+stamm1+')'); angreifer_gegner[user1+' ('+stamm1+')'] = 1; } else { angreifer_gegner[user1+' ('+stamm1+')']++; } if(angegriffeneUser_stamm.indexOf(user2) == -1) { angegriffeneUser_stamm.push(user2); angegriffeneUser_stamm[user2] = 1; } else { angegriffeneUser_stamm[user2]++; } if(angreifendeStaemme_gegner.indexOf(stamm1) == -1) { angreifendeStaemme_gegner.push(stamm1); angreifendeStaemme_gegner[stamm1] = 1; } else { angreifendeStaemme_gegner[stamm1]++; } } if(j+1 < mkEreignisse.length && mkEreignisse[j+1].indexOf('wurde dabei verletzt.') != -1) { // aktuelles mkEreignis ist auch Kill if(stamm1 == Assi_StammName) { // Kill des eigenen Stammes if(user2 == 'Magier') { mkEreignisse[j+1] = mkEreignisse[j+1].replace(/^<font color="red">/, '<span class="orange">').replace(/<\/font>$/, '</span>'); } else { mkEreignisse[j+1] = mkEreignisse[j+1].replace(/^<font color="red">/, '<span class="green">'); mkEreignisse[j+1] += '</span>'; } kills_stamm++; if(killer_stamm.indexOf(user1) == -1) { killer_stamm.push(user1); killer_stamm[user1] = 1; } else { killer_stamm[user1]++; } if(gekillteStaemme_stamm.indexOf(stamm2) == -1) { gekillteStaemme_stamm.push(stamm2); gekillteStaemme_stamm[stamm2] = 1; } else { gekillteStaemme_stamm[stamm2]++; } } else { // Kill eines gegnerischen Stammes mkEreignisse[j+1] += '</font>'; kills_gegner++; if(killer_gegner.indexOf(user1+' ('+stamm1+')') == -1) { killer_gegner.push(user1+' ('+stamm1+')'); killer_gegner[user1+' ('+stamm1+')'] = 1; } else { killer_gegner[user1+' ('+stamm1+')']++; } if(killendeStaemme_gegner.indexOf(stamm1) == -1) { killendeStaemme_gegner.push(stamm1); killendeStaemme_gegner[stamm1] = 1; } else { killendeStaemme_gegner[stamm1]++; } } } } } // Sortiere Arrays for(k=0; k<killer_stamm.length; k++) { for(l=k+1; l<killer_stamm.length; l++) { if(killer_stamm[killer_stamm[k]] < killer_stamm[killer_stamm[l]]) { var z = killer_stamm[k]; killer_stamm[k] = killer_stamm[l]; killer_stamm[l] = z; } } } for(k=0; k<killer_gegner.length; k++) { for(l=k+1; l<killer_gegner.length; l++) { if(killer_gegner[killer_gegner[k]] < killer_gegner[killer_gegner[l]]) { var z = killer_gegner[k]; killer_gegner[k] = killer_gegner[l]; killer_gegner[l] = z; } } } for(k=0; k<gekillteStaemme_stamm.length; k++) { for(l=k+1; l<gekillteStaemme_stamm.length; l++) { if(gekillteStaemme_stamm[gekillteStaemme_stamm[k]] < gekillteStaemme_stamm[gekillteStaemme_stamm[l]]) { var z = gekillteStaemme_stamm[k]; gekillteStaemme_stamm[k] = gekillteStaemme_stamm[l]; gekillteStaemme_stamm[l] = z; } } } for(k=0; k<killendeStaemme_gegner.length; k++) { for(l=k+1; l<killendeStaemme_gegner.length; l++) { if(killendeStaemme_gegner[killendeStaemme_gegner[k]] < killendeStaemme_gegner[killendeStaemme_gegner[l]]) { var z = killendeStaemme_gegner[k]; killendeStaemme_gegner[k] = killendeStaemme_gegner[l]; killendeStaemme_gegner[l] = z; } } } for(k=0; k<angreifer_stamm.length; k++) { for(l=k+1; l<angreifer_stamm.length; l++) { if(angreifer_stamm[angreifer_stamm[k]] < angreifer_stamm[angreifer_stamm[l]]) { var z = angreifer_stamm[k]; angreifer_stamm[k] = angreifer_stamm[l]; angreifer_stamm[l] = z; } } } for(k=0; k<angreifer_gegner.length; k++) { for(l=k+1; l<angreifer_gegner.length; l++) { if(angreifer_gegner[angreifer_gegner[k]] < angreifer_gegner[angreifer_gegner[l]]) { var z = angreifer_gegner[k]; angreifer_gegner[k] = angreifer_gegner[l]; angreifer_gegner[l] = z; } } } for(k=0; k<angegriffeneUser_stamm.length; k++) { for(l=k+1; l<angegriffeneUser_stamm.length; l++) { if(angegriffeneUser_stamm[angegriffeneUser_stamm[k]] < angegriffeneUser_stamm[angegriffeneUser_stamm[l]]) { var z = angegriffeneUser_stamm[k]; angegriffeneUser_stamm[k] = angegriffeneUser_stamm[l]; angegriffeneUser_stamm[l] = z; } } } for(k=0; k<angegriffeneUser_gegner.length; k++) { for(l=k+1; l<angegriffeneUser_gegner.length; l++) { if(angegriffeneUser_gegner[angegriffeneUser_gegner[k]] < angegriffeneUser_gegner[angegriffeneUser_gegner[l]]) { var z = angegriffeneUser_gegner[k]; angegriffeneUser_gegner[k] = angegriffeneUser_gegner[l]; angegriffeneUser_gegner[l] = z; } } } for(k=0; k<angegriffeneStaemme_stamm.length; k++) { for(l=k+1; l<angegriffeneStaemme_stamm.length; l++) { if(angegriffeneStaemme_stamm[angegriffeneStaemme_stamm[k]] < angegriffeneStaemme_stamm[angegriffeneStaemme_stamm[l]]) { var z = angegriffeneStaemme_stamm[k]; angegriffeneStaemme_stamm[k] = angegriffeneStaemme_stamm[l]; angegriffeneStaemme_stamm[l] = z; } } } for(k=0; k<angreifendeStaemme_gegner.length; k++) { for(l=k+1; l<angreifendeStaemme_gegner.length; l++) { if(angreifendeStaemme_gegner[angreifendeStaemme_gegner[k]] < angreifendeStaemme_gegner[angreifendeStaemme_gegner[l]]) { var z = angreifendeStaemme_gegner[k]; angreifendeStaemme_gegner[k] = angreifendeStaemme_gegner[l]; angreifendeStaemme_gegner[l] = z; } } } // Inhalt + Auswertung ausgeben var newContent = '<b><u>MK-Ereignisse</u></b><br><br><div id="mkEreignisse" style="height:350px; overflow:auto;">'+mkEreignisse.join('<br>')+'</div>'; newContent += '<br><br><br><b><u>MK-Auswertung</u></b> <span id="mkTeilnehmeranzahl"></span><br><br><div id="mkAuswertung" style="height:400px; overflow:auto;">'; newContent += '<b>Killer (Stamm):</b> '+kills_stamm+' Kills<br>'; for(k=0; k<killer_stamm.length; k++) { newContent += killer_stamm[killer_stamm[k]]+'x '+killer_stamm[k]+'<br>'; } newContent += '<br><br><b>Killer (Gegner):</b> '+kills_gegner+' Kills<br>'; for(k=0; k<killer_gegner.length; k++) { newContent += killer_gegner[killer_gegner[k]]+'x '+killer_gegner[k]+'<br>'; } newContent += '<br><br><b>Gekillte Stämme (Stamm):</b><br>'; for(k=0; k<gekillteStaemme_stamm.length; k++) { newContent += gekillteStaemme_stamm[gekillteStaemme_stamm[k]]+'x '+gekillteStaemme_stamm[k]+'<br>'; } newContent += '<br><br><b>Killende Stämme (Gegner):</b><br>'; for(k=0; k<killendeStaemme_gegner.length; k++) { newContent += killendeStaemme_gegner[killendeStaemme_gegner[k]]+'x '+killendeStaemme_gegner[k]+'<br>'; } newContent += '<br><br><b>Angreifer (Stamm):</b> '+angriffe_stamm+' Angriffe<br>'; for(k=0; k<angreifer_stamm.length; k++) { newContent += angreifer_stamm[angreifer_stamm[k]]+'x '+angreifer_stamm[k]+'<br>'; } newContent += '<br><br><b>Angreifer (Gegner):</b> '+angriffe_gegner+' Angriffe<br>'; for(k=0; k<angreifer_gegner.length; k++) { newContent += angreifer_gegner[angreifer_gegner[k]]+'x '+angreifer_gegner[k]+'<br>'; } newContent += '<br><br><b>Angegriffene User (Stamm):</b><br>'; for(k=0; k<angegriffeneUser_stamm.length; k++) { newContent += angegriffeneUser_stamm[angegriffeneUser_stamm[k]]+'x '+angegriffeneUser_stamm[k]+'<br>'; } newContent += '<br><br><b>Angegriffene User (Gegner):</b><br>'; for(k=0; k<angegriffeneUser_gegner.length; k++) { newContent += angegriffeneUser_gegner[angegriffeneUser_gegner[k]]+'x '+angegriffeneUser_gegner[k]+'<br>'; } newContent += '<br><br><b>Angegriffene Stämme (Stamm):</b><br>'; for(k=0; k<angegriffeneStaemme_stamm.length; k++) { newContent += angegriffeneStaemme_stamm[angegriffeneStaemme_stamm[k]]+'x '+angegriffeneStaemme_stamm[k]+'<br>'; } newContent += '<br><br><b>Angreifende Stämme (Gegner):</b><br>'; for(k=0; k<angreifendeStaemme_gegner.length; k++) { newContent += angreifendeStaemme_gegner[angreifendeStaemme_gegner[k]]+'x '+angreifendeStaemme_gegner[k]+'<br>'; } newContent += '<br><br><b>Einnahmen</b><br>- Holz: '+(50*kills_stamm)+'<br>- Stein: '+(50*kills_stamm)+'<br>- Bronze: '+(20*kills_stamm)+'<br></div>'; stammnachrichten[i].getElementsByTagName("td")[1].innerHTML = newContent; } } } } // StammForum - Forum if(document.URL.indexOf('/stammforum.forum.php') != -1) { var threads = content.getElementsByTagName('table')[3].getElementsByTagName('tr'); var data_topics = GM_getValue("topics"); data_topics = data_topics? data_topics:''; for(i=1; i<threads.length; i++) { var numPages = Math.ceil((parseInt(threads[i].getElementsByTagName('td')[3].textContent, 10)+1)/25); var topicid = threads[i].getElementsByTagName('a')[0].getAttribute('href').slice(29); if(data_topics.indexOf('#'+topicid+'.') == -1) { threads[i].getElementsByTagName('td')[0].innerHTML = '<a href="http://szs.looki.de/stammforum.post.php?topicid='+topicid+'" title="Antworten"><div class="blueDot"></div></a>'; } else { var postDate = threads[i].getElementsByTagName('td')[4].textContent.trim(); postDate = new Date(postDate.slice(3,5)+' '+postDate.slice(0,2)+', '+postDate.slice(6,10)+' '+postDate.slice(14,19)+':00'); var datatime = data_topics.slice(data_topics.indexOf('#'+topicid+'.')+1); datatime = parseInt(datatime.slice(datatime.indexOf('.')+1, datatime.indexOf('#')), 10); if(postDate.getTime() > datatime) { threads[i].getElementsByTagName('td')[0].innerHTML = '<a href="http://szs.looki.de/stammforum.post.php?topicid='+topicid+'" title="Antworten"><div class="redDot"></div></a>'; } else { threads[i].getElementsByTagName('td')[0].innerHTML = '<a href="http://szs.looki.de/stammforum.post.php?topicid='+topicid+'" title="Antworten"><div class="greenDot"></div></a>'; } } // Hinzufügen von Seitenzahlen if(numPages > 1) { threads[i].getElementsByTagName('td')[1].innerHTML += ' ('; for(j=1; j<=numPages; j++) { threads[i].getElementsByTagName('td')[1].innerHTML += '<a href="stammforum.topic.php?topicid='+topicid+'&seite='+j+'">'+j+'</a>'; if(j != numPages) threads[i].getElementsByTagName('td')[1].innerHTML += ' '; } threads[i].getElementsByTagName('td')[1].innerHTML += ')'; } } //Legende var legend = document.createElement('div'); legend.setAttribute('id', 'forum-legend'); legend.innerHTML = '<div class="blueDot"></div> = neues Thema<br>'; legend.innerHTML += '<div class="redDot"></div> = neue Beiträge im Thema<br>'; legend.innerHTML += '<div class="greenDot"></div> = Thema gelesen<br>'; content.insertBefore(legend, content.getElementsByTagName('table')[5]); // Forendaten löschen-Button var input = document.createElement('input'); content.insertBefore(input, document.getElementById('forum-legend').nextSibling); input.setAttribute('id', 'forumDataDel'); input.setAttribute('type', 'button'); input.setAttribute('class', 'pointer'); input.setAttribute('value', 'Forendaten zurücksetzen'); input.addEventListener('click', function() { var really = confirm('Es werden alle Daten zu gelesenen Beiträgen und Themen gelöscht!'); if(really) { GM_deleteValue('topics'); GM_deleteValue('posts'); } }, false); } // StammForum - Topic if(document.URL.indexOf('/stammforum.topic.php?topicid=') != -1 && getURLParameter('topicid') != '') { var data_posts = GM_getValue("posts", "#"); var posts = content.getElementsByTagName('table')[3].getElementsByTagName('tr'); for(i=1; i<posts.length; i+=3) { var postid = posts[i+1].getElementsByTagName('a')[0].getAttribute('href').slice(22)+'.'; var postDate = posts[i+1].getElementsByTagName('i')[0].textContent.slice(posts[i+1].getElementsByTagName('i')[0].textContent.indexOf('|')+1).trim(); postDate = new Date(postDate.slice(3,5)+' '+postDate.slice(0,2)+', '+postDate.slice(6,10)+' '+postDate.slice(14,19)+':00'); postid += postDate.getTime()+'.'; postid += hashCode(posts[i+2].innerHTML); if(posts[i+1].getElementsByTagName('a')[1]) { var postid_old = posts[i+1].getElementsByTagName('a')[1].getAttribute('href').slice(29); } else { var postid_old = '0'; } var hasread = true; var newTD = document.createElement('td'); if(data_posts.indexOf('#'+postid+'#') == -1 && data_posts.indexOf('#'+postid_old+'#') == -1) { hasread = false; newTD.innerHTML = '<div class="redDot"></div>'; posts[i+0].getElementsByTagName('td')[0].setAttribute('bgcolor', '#3468a8'); data_posts += postid+'#'; } else { newTD.innerHTML = '<div class="greenDot"></div>'; // Speichere neue postid, falls nur alte bisher vorhanden if(data_posts.indexOf('#'+postid+'#') == -1 && data_posts.indexOf('#'+postid_old+'#') != -1) { data_posts += postid+'#'; } } var lastPostDate = postDate; posts[i+1].insertBefore(newTD, posts[i+1].getElementsByTagName('td')[0]); // Textlinks setzen posts[i].getElementsByTagName('td')[4].innerHTML = posts[i].getElementsByTagName('td')[4].innerHTML.replace(/((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#\(\)]*[\w\-\@?^=%&\/~\+#\(\)])?)/g, '<a class="menu" target="_blank" href="$1">$1</a>'); var nick = posts[i+1].getElementsByTagName('a')[0].textContent.trim(); var userid = posts[i+1].getElementsByTagName('a')[0].getAttribute('href').replace(/\D*/, ''); var privatePostLink = '<a title="Private Nachricht" href="message.php?empf='+userid+'"><span class="pn-icon-s"></span></a>'; posts[i+1].getElementsByTagName('i')[0].innerHTML = posts[i+1].getElementsByTagName('i')[0].innerHTML.replace('</a>', '</a> '+privatePostLink); } GM_setValue("posts", data_posts); // #postid# var data_topics = GM_getValue('topics'); data_topics = data_topics? data_topics:'#'; var topicid = getURLParameter('topicid'); var isLastPage = (content.getElementsByTagName('table')[1].getElementsByTagName('td')[1].innerHTML.trim().search(/<\/b>$/) != -1)? true : false; if(data_topics.indexOf('#'+topicid+'.') == -1) { if(isLastPage) { data_topics += topicid+'.'+servertimeDate.getTime()+'#'; } else { data_topics += topicid+'.'+lastPostDate.getTime()+'#'; } } else { var datatime = data_topics.slice(data_topics.indexOf('#'+topicid+'.')+1); datatime = parseInt(datatime.slice(datatime.indexOf('.')+1, datatime.indexOf('#')), 10); if(lastPostDate.getTime()>datatime && !isLastPage) { data_topics = data_topics.replace(new RegExp('\#'+topicid+'\.([0-9]+)\#'), '#'+topicid+'.'+lastPostDate.getTime()+'#'); } else if(isLastPage) { data_topics = data_topics.replace(new RegExp('\#'+topicid+'\.([0-9]+)\#'), '#'+topicid+'.'+servertimeDate.getTime()+'#'); } } GM_setValue("topics", data_topics); } // StammForum - Thread wiederherstellen if(document.URL.indexOf('/stammforum.post.php') != -1 && document.URL.indexOf('topicid=') == -1) { // Thread löschen, wenn abgeschickt if(content.textContent.indexOf('Dein Thema wurde hinzugefügt') != -1) { GM_deleteValue("Thread_Topic"); GM_deleteValue("Thread_Content"); } else { content.getElementsByTagName('input')[0].setAttribute('id', 'topiceingabe'); content.getElementsByTagName('textarea')[0].setAttribute('id', 'contenteingabe'); document.getElementById('topiceingabe').addEventListener('keyup', function() { GM_setValue("Thread_Topic", document.getElementById('topiceingabe').value); }, false); document.getElementById('contenteingabe').addEventListener('keyup', function() { GM_setValue("Thread_Content", document.getElementById('contenteingabe').value); }, false); // Letztes nicht abgeschicktes Thema wiederherstellen var thread_topic = GM_getValue("Thread_Topic", ""); var thread_content = GM_getValue("Thread_Content", ""); if(thread_topic != "" || thread_content != "") { var newDIV = document.createElement('div'); newDIV.setAttribute('class', 'postrecovery'); newDIV.innerHTML = 'Letztes nicht abgeschicktes Thema wiederhergestellt.'; content.insertBefore(newDIV, content.getElementsByTagName('form')[0]); document.getElementById("topiceingabe").value = thread_topic; document.getElementById("contenteingabe").value = thread_content; } } } // StammForum - Post wiederherstellen if(document.URL.indexOf('/stammforum.post.php?topicid=') != -1 && content.textContent.indexOf('Ein paar Worte solltest du wenigstens schreiben.') == -1) { var topicid = getURLParameter('topicid'); // Post löschen, wenn abgeschickt if(content.textContent.indexOf('Dein Post wurde hinzugefügt') != -1) { GM_deleteValue("Post_"+topicid); } else { content.getElementsByTagName('textarea')[0].setAttribute('id', 'posteingabe'); document.getElementById('posteingabe').addEventListener('keyup', function() { GM_setValue("Post_"+topicid, document.getElementById('posteingabe').value); }, false); // Letzten nicht abgeschickten Post wiederherstellen var post_content = GM_getValue("Post_"+topicid, ""); if(post_content != "") { var newDIV = document.createElement('div'); newDIV.setAttribute('class', 'postrecovery'); newDIV.innerHTML = 'Letzten nicht abgeschickten Post wiederhergestellt.'; content.insertBefore(newDIV, content.getElementsByTagName('form')[0]); document.getElementById("posteingabe").value = post_content; } } } // UserTop if(document.URL.indexOf('/top.php') != -1) { var spieler = content.getElementsByTagName('table')[1].getElementsByTagName('tr'); for(i=1; i<spieler.length; i++) { spieler[i].getElementsByTagName('td')[3].innerHTML = number_format(spieler[i].getElementsByTagName('td')[3].textContent.trim()); } } // StammTop if(document.URL.indexOf('/stammtop.php') != -1) { var clans = content.getElementsByTagName('table')[1].getElementsByTagName('tr'); clans[0].innerHTML = '<td class="center bold">Pos.</td><td class="center bold">Stammname</td><td class="center bold">Gründer</td><td class="center bold">Gesamt-EP</td><td class="center bold">Siege</td><td class="center bold">Niederl.</td><td class="center bold">Diff.</td>'; for(i=1; i<clans.length; i++) { clans[i].getElementsByTagName('td')[3].setAttribute('class', 'right'); clans[i].getElementsByTagName('td')[4].setAttribute('class', 'right'); clans[i].getElementsByTagName('td')[5].setAttribute('class', 'right'); clans[i].getElementsByTagName('a')[0].getAttribute('href').search(/stammid=(\d*)/); var clanid = RegExp.$1; var newTD = document.createElement('td'); newTD.setAttribute('class', 'right'); newTD.innerHTML = '<span id="ep_'+i+'"></span>'; clans[i].insertBefore(newTD, clans[i].getElementsByTagName('td')[3]); getClanEPByClanId(clanid, 'ep_'+i); } } // OnlineUser if(document.URL.indexOf('/useronline.php') != -1) { content.getElementsByTagName('table')[1].removeAttribute('width'); var spieler = content.getElementsByTagName('table')[1].getElementsByTagName('tr'); for(i=1; i<spieler.length; i++) { spieler[i].getElementsByTagName('td')[1].innerHTML = number_format(spieler[i].getElementsByTagName('td')[1].textContent.trim()); spieler[i].getElementsByTagName('td')[1].setAttribute('class', 'right'); } } // aktuelle Aktion var aktionHTML = aktuelleAktion.textContent; var remainActivityMin = 0; remindActivity = true; sessionStorage.setItem("RemindActivity", true); if(aktionHTML.indexOf('Minuten') == -1 && aktionHTML.indexOf('Sekunden') == -1) { remindActivity = false; sessionStorage.setItem("RemindActivity", false); } else if(aktionHTML.indexOf('Minuten') != -1) { aktionHTML.search(/Du bist noch (ca\.\s)?(\d+) Minuten/); remainActivityMin = parseInt(RegExp.$2, 10); } if(remindActivity) { document.getElementById('aktuelleAktion').innerHTML = 'Du bist noch <span id="countdown"></span>. [<a href="status.php?do=abbrechen"><span class="red">Abbrechen</span></a>]'; } var activityEndDate = new Date(servertimeDate); activityEndDate.setMinutes(servertimeDate.getMinutes()+remainActivityMin+1); activityEndDate.setSeconds(0); activityEndDate.setMilliseconds(0); if(aktionHTML.indexOf('verletzt') != -1) { GM_setValue("Arbeit", "verletzt"); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); } else if(aktionHTML.indexOf('Kampf') != -1 && GM_getValue("Arbeit", "").indexOf('kampf') == -1) { var skEndTime = parseInt(nextSK.split(',')[0], 10)+3660000; // SK-Länge: 61 min var differenz = Math.abs(activityEndDate.getTime()-skEndTime); if(differenz < 65000) { GM_setValue("Ankunftszeit", skEndTime.toString()); GM_setValue("Arbeit", "im Stammkampf"); } else { if(activityEndDate.getDay() == 1 && activityEndDate.getHours() == mkEnde && (activityEndDate.getMinutes() == 0 || activityEndDate.getMinutes() == 1)) { activityEndDate.setMinutes(1); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); GM_setValue("Arbeit", "im Magierkampf"); } else if(activityEndDate.getHours() == tkEnde && (activityEndDate.getMinutes() == 0 || activityEndDate.getMinutes() == 1)) { activityEndDate.setMinutes(1); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); GM_setValue("Arbeit", "im Talkampf"); } } } else if(aktionHTML.indexOf('vergiftet') != -1) { GM_setValue("Arbeit", "vergiftet"); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); } else if(GM_getValue("Arbeit", "") == 'beim Landausbau' && servertimeDate.getTime() < parseInt(GM_getValue("Ankunftszeit", "0"), 10) && parseInt(GM_getValue("Ankunftszeit", "0"), 10) < activityEndDate.getTime()) { GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); } else if(GM_getValue("Arbeit", "") == 'verletzt') { GM_setValue("Arbeit", "auf Arbeit"); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); } // Opferzeit ermitteln var waffenopferKleinDate; var waffenopferGrossDate; var arbeitsopferDate; var ringopferDate; if(menuRight.textContent.indexOf('opfer') != -1) { if(menuRight.textContent.indexOf('kl. Waffenopfer:') != -1) { menuRight.innerHTML.search(/kl\. Waffenopfer:<\/td><\/tr><tr><td align="right"><span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); waffenopferKleinDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); } if(menuRight.textContent.indexOf('gr. Waffenopfer:') != -1) { menuRight.innerHTML.search(/gr\. Waffenopfer:<\/td><\/tr><tr><td align="right"><span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); waffenopferGrossDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); } if(menuRight.textContent.indexOf('Arbeitsopfer:') != -1) { menuRight.innerHTML.search(/Arbeitsopfer:<\/td><\/tr><tr><td align="right"><span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); arbeitsopferDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); } if(menuRight.textContent.indexOf('Ringopfer:') != -1) { menuRight.innerHTML.search(/Ringopfer:<\/td><\/tr><tr><td align="right"><span title="noch bis zum (\d+)\.(\d+)\.(\d+) um (\d+):(\d+):(\d+)">/); ringopferDate = new Date(RegExp.$3, parseInt(RegExp.$2, 10)-1, parseInt(RegExp.$1, 10), parseInt(RegExp.$4, 10), parseInt(RegExp.$5, 10), parseInt(RegExp.$6, 10)); } } // Arbeit (Focus, Waffen-Warnung, etc.) if(document.URL.indexOf('/jagd.php')!=-1 || document.URL.indexOf('/holzfaeller.php')!=-1 || document.URL.indexOf('/koehlern.php')!=-1 || document.URL.indexOf('/steinmetz.php')!=-1 || document.URL.indexOf('/kupferding.php')!=-1 || document.URL.indexOf('/wasser.php')!=-1 || document.URL.indexOf('/wasser2.php')!=-1 || document.URL.indexOf('/bronze.php')!=-1 || document.URL.indexOf('/schamane.php')!=-1 || document.URL.indexOf('/zinnding.php')!=-1 || document.URL.indexOf('/waffenschmied.php')!=-1 || document.URL.indexOf('/werkzeug.php')!=-1 || document.URL.indexOf('/kampf')!=-1 || document.URL.indexOf('/altar.artefakt.php')!=-1 || document.URL.indexOf('/bau.php')!=-1) { if(document.getElementsByName('zufallscode')[0]) { var str_alert = 'ACHTUNG!\n'; // Waffenwarnung if(Assi_WaffenWerkzeugWarnung) { if(document.URL.indexOf('jagd.php')!=-1 || document.URL.indexOf('holzfaeller.php')!=-1 || document.URL.indexOf('koehlern.php')!=-1 || document.URL.indexOf('steinmetz.php')!=-1 || document.URL.indexOf('wasser.php')!=-1 || document.URL.indexOf('wasser2.php')!=-1) { if(hand.indexOf('nichts') == -1) { str_alert += '- Du hast eine Waffe oder ein falsches Werkzeug in der Hand!\n'; } } else if(document.URL.indexOf('zinnding.php') != -1) { if(hand.indexOf('nichts') == -1 && hand.indexOf('Zinn') == -1) { str_alert += '- Du hast eine Waffe oder ein falsches Werkzeug in der Hand!\n'; } if(GM_getValue("Zinn-Schaber", false)) { if(hand.indexOf('Zinn-Schaber') == -1) { str_alert += '- Du hast deinen Zinn-Schaber vergessen!\n'; } } else if(GM_getValue("Zinn-Keil", false)) { if(hand.indexOf('Zinn-Keil') == -1) { str_alert += '- Du hast deinen Zinn-Keil vergessen!\n'; } } } else if(document.URL.indexOf('kupferding.php') != -1) { if(hand.indexOf('nichts') == -1 && hand.indexOf('Kupfer') == -1) { str_alert += '- Du hast eine Waffe oder ein falsches Werkzeug in der Hand!\n'; } if(GM_getValue("Kupfer-Hacke", false)) { if(hand.indexOf('Kupfer-Hacke') == -1) { str_alert += '- Du hast deine Kupfer-Hacke vergessen!\n'; } } else if(GM_getValue("Kupfer-Schaber", false)) { if(hand.indexOf('Kupfer-Schaber') == -1) { str_alert += '- Du hast deinen Kupfer-Schaber vergessen!\n'; } } else if(GM_getValue("Kupfer-Keil", false)) { if(hand.indexOf('Kupfer-Keil') == -1) { str_alert += '- Du hast deinen Kupfer-Keil vergessen!\n'; } } } } // Fehlender Ring if(Assi_RingWarnung) { if(document.URL.indexOf('jagd.php')!=-1) { if(GM_getValue("Jagdring", false) && finger.indexOf('Jagdring') == -1) { str_alert += '- Du hast deinen Jagdring vergessen!\n'; } } else if(document.URL.indexOf('wasser.php')!=-1 || document.URL.indexOf('wasser2.php')!=-1) { if(GM_getValue("Wasserring", false) && finger.indexOf('Wasserring') == -1) { str_alert += '- Du hast deinen Wasserring vergessen!\n'; } } } // Bevorstehender SK oder MK var activityEndDate2 = new Date(activityEndDate); activityEndDate2.setMinutes(parseInt(activityEndDate.getMinutes(), 10)+31); var skStartTime = parseInt(nextSK.split(',')[0], 10); var diff = Math.floor(skStartTime/60000-servertimeDate.getTime()/60000); if(diff >= -1 && diff <= 31) { str_alert += '- Du verpasst einen Stammkampf!\n'; if(skTeilnahme+3600000 < servertimeDate.getTime()) { str_alert += '- Du bist noch nicht zum Stammkampf angemeldet!\n'; } } if(activityEndDate2.getDay() == 1 && ((activityEndDate2.getHours() == mkStart && activityEndDate2.getMinutes() <= 31) || (activityEndDate2.getHours() == mkStart-1 && activityEndDate2.getMinutes() >= 59))) { str_alert += '- Du verpasst den Magierkampf!\n'; if(mkTeilnahme+7200000 < servertimeDate.getTime()) { str_alert += '- Du bist noch nicht zum Magierkampf angemeldet!\n'; } } if(str_alert.length > 9 && getURLParameter('szsa') != "codefalsch") { alert(str_alert); } // Fehlendes Arbeitsopfer / Drachenblutartefakt if(drachenblutDate.getTime() < servertimeDate.getTime()) { drachenblutDate.setTime(0); } if(getURLParameter('szsa') == "codefalsch") { content.innerHTML += '<span class="red">Du hast den Zufallscode leider nicht richtig abgeschrieben und wurdest daher hierher um-/zurückgeleitet.</span><br><br>'; if(str_alert.length > 9) { content.innerHTML += '<span class="yellow">'+str_alert.replace(/\n/g, '<br>')+'<span><br><br>'; } } if((arbeitsopferDate == null || arbeitsopferDate.getTime() < (activityEndDate.getTime()+1800000)) && (drachenblutDate.getTime() == 0 || drachenblutDate.getTime() < (activityEndDate.getTime()+1800000))) { content.innerHTML += '<span class="yellow">ACHTUNG! Du könntest dich verletzen, da du weder ein aktives Arbeitsopfer noch ein gültiges Artefakt des Drachenbluts hast.<br><br>Direktlink: <a href="altar.php?do=arbeits&auswahl=1&szsa=link&url='+encodeURIComponent(document.URL)+'">Arbeitsopfer</a> (Kosten: 2 Zinn, 2 Wasser und 2 Kupfer)</span><br>'; } // Focus document.getElementsByName('zufallscode')[0].focus(); } else if(content.textContent.indexOf('Du bist für') != -1 || content.textContent.indexOf('Du bist jetzt') != -1 || content.textContent.indexOf('Du machst dich auf') != -1 || content.textContent.indexOf('Du stellst jetzt') != -1 || content.textContent.indexOf('Du weihst jetzt') != -1) { remindActivity = true; sessionStorage.setItem("RemindActivity", true); // Ankunftszeit setzen activityEndDate.setMinutes(parseInt(servertimeDate.getMinutes(), 10)+31); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); // Tätigkeit setzen if(document.URL.indexOf('/jagd.php') != -1) { GM_setValue("Arbeit", "auf der Jagd"); if(content.textContent.indexOf('60 Minuten') != -1) { activityEndDate.setMinutes(parseInt(servertimeDate.getMinutes(), 10)+61); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); } else if(content.textContent.indexOf('120 Minuten') != -1) { activityEndDate.setMinutes(parseInt(servertimeDate.getMinutes(), 10)+121); GM_setValue("Ankunftszeit", activityEndDate.getTime().toString()); } } else if(document.URL.indexOf('/holzfaeller.php') != -1) { GM_setValue("Arbeit", "beim Holzfällen"); } else if(document.URL.indexOf('/koehlern.php') != -1) { GM_setValue("Arbeit", "beim Köhlern"); } else if(document.URL.indexOf('/steinmetz.php') != -1) { GM_setValue("Arbeit", "beim Steine metzen"); } else if(document.URL.indexOf('/kupferding.php') != -1) { GM_setValue("Arbeit", "beim Kupfer abbauen"); } else if(document.URL.indexOf('/wasser.php') != -1 || document.URL.indexOf('wasser2.php') != -1) { GM_setValue("Arbeit", "beim Wassersuchen"); } else if(document.URL.indexOf('/bronze.php') != -1) { GM_setValue("Arbeit", "beim Bronze herstellen"); } else if(document.URL.indexOf('/schamane.php') != -1) { GM_setValue("Arbeit", "beim Trank brauen"); } else if(document.URL.indexOf('/zinnding.php') != -1) { GM_setValue("Arbeit", "beim Zinn abbauen"); } else if(document.URL.indexOf('/waffenschmied.php') != -1) { GM_setValue("Arbeit", "beim Waffe bauen"); } else if(document.URL.indexOf('/werkzeug.php') != -1) { GM_setValue("Arbeit", "beim Werkzeug bauen"); } else if(document.URL.indexOf('/kampf.php') != -1) { GM_setValue("Arbeit", "im Einzelkampf"); } else if(document.URL.indexOf('/altar.artefakt.php') != -1 && content.textContent.indexOf('weihst') != -1) { GM_setValue("Arbeit", "beim Artefakt weihen"); } else if(document.URL.indexOf('/altar.artefakt.php') != -1 && content.textContent.indexOf('stellst') != -1) { GM_setValue("Arbeit", "beim Artefakt herstellen"); } else if(document.URL.indexOf('/bau.php') != -1) { GM_setValue("Arbeit", "beim Landausbau"); } else { GM_setValue("Arbeit", "auf Arbeit"); } } else if(content.textContent.indexOf('Du hast den Zufallscode leider nicht richtig abgeschrieben.') != -1) { content.innerHTML = content.innerHTML.replace('Du hast den Zufallscode leider nicht richtig abgeschrieben.', '<span class="red">Du hast den Zufallscode leider nicht richtig abgeschrieben.</span>'); } } // Header-Inlays var kopf = document.getElementsByTagName('img')[0].parentNode; // Serverzeit var strInlay = '<div id="serverzeit"'+((menuLeft.innerHTML.indexOf('color:red') != -1)? ' class="red" title="Lagerfeuer aus\n'+nomadenzeit+'"' : 'title="'+nomadenzeit+'"')+'></div>'; // Reminder strInlay += '<div id="reminder">'; strInlay += '<div id="reminder_tk"'+((tkTeilnahme+7200000 < servertimeDate.getTime())? ' class="red" title="Nicht angemeldet!"' : '')+'>TK: <span id="tk_inner"></span></div>'; strInlay += '<div id="reminder_sk"'+((skTeilnahme+3600000 < servertimeDate.getTime() && nextSK != 'kein Kampf')? ' class="red" title="Nicht angemeldet!"' : '')+'>SK: <span id="sk_inner"></span></div>'; strInlay += '<div id="reminder_mk"'+((mkTeilnahme+7200000 < servertimeDate.getTime())? ' class="red" title="Nicht angemeldet!"' : '')+'>MK: <span id="mk_inner"></span></div>'; strInlay += '</div>'; kopf.innerHTML += strInlay; // Wetter var wetterGrafik = document.getElementsByTagName('img')[0].src.replace('_kopf', ''); var wetterText = 'Lorem ipsum...'; switch(wetterGrafik) { case 'http://szs.looki.de/static/wetter/1.jpg': wetterText = 'Sonne'; break; case 'http://szs.looki.de/static/wetter/2.jpg': wetterText = 'Regen'; break; case 'http://szs.looki.de/static/wetter/3.jpg': wetterText = 'Schnee'; break; case 'http://szs.looki.de/static/wetter/4.jpg': wetterText = 'Nebel'; break; case 'http://szs.looki.de/static/wetter/5.jpg': wetterText = 'bewölkt'; break; default: wetterText = '<span class="red">Fehler</span>'; break; } var wetterDIV = document.createElement('div'); wetterDIV.setAttribute('id', 'weather'); wetterDIV.innerHTML = '<a href="wetter.php"><img src="'+wetterGrafik+'" height="40px"></a><br><center><a href="wetter.php">'+wetterText+'</a></center>'; kopf.appendChild(wetterDIV); // Linkes Menü var lagerfeuerColor = (menuLeft.innerHTML.indexOf('color:lime') != -1)? 'lime' : 'red'; // Persönliches var leftMenuHTML = ''; // Uhrzeit if(Assi_MenuUhrzeit) { leftMenuHTML += '<div class="center" style="margin: 10px 0;">'+servertimeDate.getHours()+':'+format2(servertimeDate.getMinutes())+':'+format2(servertimeDate.getSeconds())+' Uhr</div>'; } leftMenuHTML += '<div class="menuHeadline">Persönliches</div><div class="menuItemContainer">'; leftMenuHTML += '<a class="menu" href="news.php">Logbuch</a> | <a class="menu" href="news.php?alte=1">alte</a><br>'; leftMenuHTML += '<a class="menu" href="message.php">Nachrichten</a><br>'; leftMenuHTML += '<a class="menu" href="profil.php">Profil</a><br>'; leftMenuHTML += '<a class="menu" href="charakter.php">Charakter</a><br>'; leftMenuHTML += '<a class="menu" href="inventar.php">Inventar</a><br>'; leftMenuHTML += '<a class="menu" href="artefakt.php">Artefakte</a><br>'; leftMenuHTML += '<a class="menu" href="beruf.php">Beruf</a><br>'; leftMenuHTML += '<a class="menu" href="karte.php">Karte</a><br>'; leftMenuHTML += '<a class="menu" id="landControl" href="deinland.php">Länder</a><br>'; leftMenuHTML += '<a class="menu" id="guestbook" href="gbuch.php">Gästebuch</a><br>'; if(isPremiumSpieler) { leftMenuHTML += '<a class="menu" href="notizbuch.php">Notizbuch</a><br>'; } leftMenuHTML += '<a id="toggle_configLayer" class="menu pointer" data-szsa-toggle="configLayer">SZS-Assistent</a><br>'; if(Assi_MenuVersionTip) { leftMenuHTML += '<div id="neueVersion" class="center" style="display:none"></div>'; } leftMenuHTML += '</div>'; //Aktionen leftMenuHTML += '<div class="menuHeadline">Aktionen</div><div class="menuItemContainer">'; if(menuLeft.textContent.indexOf('Köhlern') != -1) { leftMenuHTML += '<a class="menu" href="holzfaeller.php">Holz fällen</a><br>'; leftMenuHTML += '<a class="menu" href="koehlern.php">Köhlern</a><br>'; leftMenuHTML += '<a class="menu" href="jagd.php">Jagen</a><br>'; leftMenuHTML += '<a class="menu" href="wasser2.php">Wasser suchen</a><br>'; } else if(menuLeft.textContent.indexOf('Kupfer') != -1) { leftMenuHTML += '<a class="menu" href="steinmetz.php">Steine metzen</a><br>'; leftMenuHTML += '<a class="menu" href="kupferding.php">Kupfer abbauen</a><br>'; leftMenuHTML += '<a class="menu" href="jagd.php">Jagen</a><br>'; leftMenuHTML += '<a class="menu" href="wasser2.php">Wasser suchen</a><br>'; } else if(menuLeft.textContent.indexOf('Bronze') != -1) { leftMenuHTML += '<a class="menu" href="wasser.php">Wasser suchen</a><br>'; leftMenuHTML += '<a class="menu" href="bronze.php"><nobr>Bronze herstellen</nobr></a><br>'; leftMenuHTML += '<a class="menu" href="jagd.php">Jagen</a><br>'; } else if(menuLeft.textContent.indexOf('Zinn') != -1) { leftMenuHTML += '<a class="menu" href="zinnding.php">Zinn abbauen</a><br>'; leftMenuHTML += '<a class="menu" href="schamane.php">Trank brauen</a><br>'; leftMenuHTML += '<a class="menu" href="altar.artefakt.php">Artefakt weihen</a><br>'; //leftMenuHTML += '<!--<a class="menu" href="schamane.spenden.php">Opfergaben</a><br>-->'; leftMenuHTML += '<a class="menu" href="jagd.php">Jagen</a><br>'; leftMenuHTML += '<a class="menu" href="wasser2.php">Wasser suchen</a><br>'; } else if(menuLeft.textContent.indexOf('Waffen bauen') != -1) { leftMenuHTML += '<a class="menu" href="waffenschmied.php">Waffe bauen</a><br>'; leftMenuHTML += '<a class="menu" href="werkzeug.php">Werkzeug bauen</a><br>'; leftMenuHTML += '<a class="menu" href="altar.artefakt.php">Artefakt herstellen</a><br>'; leftMenuHTML += '<a class="menu" href="jagd.php">Jagen</a><br>'; leftMenuHTML += '<a class="menu" href="wasser2.php">Wasser suchen</a><br>'; } else { leftMenuHTML += '<a class="menu" href="jagd.php">Jagen</a><br>'; leftMenuHTML += '<a class="menu" href="wasser2.php">Wasser suchen</a><br>'; } if(menuLeft.innerHTML.indexOf('kochen.php') != -1) { leftMenuHTML += '<a class="menu" href="kochen.php">Kochen</a><br>'; } leftMenuHTML += '<a class="menu" href="wandern.php">Wandern</a><br>'; leftMenuHTML += '<a class="menu" href="schlafen.php">Schlafen</a><br>'; leftMenuHTML += '<a class="menu" href="magier.php">Weiser Magier</a><br>'; leftMenuHTML += '</div>'; // Kämpfe leftMenuHTML += '<div class="menuHeadline">Kämpfe</div><div class="menuItemContainer">'; leftMenuHTML += '<a class="menu" href="kampf.php">Einzelkampf</a><br>'; leftMenuHTML += '<a class="menu" href="grtal.php">Talkampf</a><br>'; if(menuLeft.innerHTML.indexOf('stammjoinen.php') == -1) { if(parseInt(nextSK.split(',')[0], 10)+3600000 < servertimeDate.getTime() || nextSK == "kein Kampf") { leftMenuHTML += '<a class="menu" href="stamm.php?do=kampfsuche">Stammkampf</a><br>'; } else { leftMenuHTML += '<a class="menu" href="stamm.php?do=kampfuserauswahl">Stammkampf</a><br>'; } leftMenuHTML += '<a class="menu" href="stamm.magierkampf.php">Magierkampf</a><br>'; } leftMenuHTML += '</div>'; // Handel leftMenuHTML += '<div class="menuHeadline">Handel</div><div class="menuItemContainer">'; leftMenuHTML += '<a class="menu" href="markt.php">Markt</a><br>'; leftMenuHTML += '<a class="menu" href="uebertragen.php">Übertragen</a><br>'; leftMenuHTML += '<a class="menu" href="http://www.looki.de/forum/tauschforum_f111/" target="_blank">Tauschforum</a><br>'; leftMenuHTML += '<a class="menu" href="nahrung.php">Händler</a><br>'; leftMenuHTML += '<a class="menu" href="waffenshop.php">Waffenhöhle</a><br>'; leftMenuHTML += '<a class="menu" href="nomade.php">Nomade</a><br>'; leftMenuHTML += '<a class="menu" href="http://www.looki.de/forum/lagerdiebstahl_handelsbetrug_f129/liste_aller_lagerdiebe_und_handelsbetrueger_93131.html" target="_blank">Diebesliste</a><br>'; leftMenuHTML += '</div>'; // Stamm leftMenuHTML += '<div class="menuHeadline">Stamm</div><div class="menuItemContainer">'; if(menuLeft.innerHTML.indexOf('stammjoinen.php') == -1) { leftMenuHTML += '<a class="menu" href="stamm.php?do=uebersicht">Übersicht</a><br>'; leftMenuHTML += '<a class="menu" href="stamm.php?do=nachricht">Nachrichten</a><br>'; leftMenuHTML += '<a class="menu" href="stammforum.forum.php">StammForum</a><br>'; leftMenuHTML += '<a class="menu" href="stamm.php?do=lager">Lager</a><br>'; leftMenuHTML += '<a class="menu" href="stamm.php?do=waffenlager">Waffenlager</a><br>'; leftMenuHTML += '<a class="menu" href="stamm.php?do=tranklager">Tranklager</a><br>'; leftMenuHTML += '<a class="menu" href="stamm.php?do=werkzeuglager">Werkzeuglager</a><br>'; leftMenuHTML += '<a class="menu" href="altar.php">Altar</a><br>'; leftMenuHTML += '<a class="menu" href="weltwunder.php">Weltwunder</a><br>'; leftMenuHTML += '<a class="menu" href="stamm.php?do=austreten">Austreten</a><br>'; if(menuLeft.innerHTML.indexOf('stamm.php?do=lagerfeuerbauen') == -1) { leftMenuHTML += '<a class="menu" style="color:'+lagerfeuerColor+'" href="stamm.php?do=lagerfeuer">Lagerfeuer</a><br>'; } else { leftMenuHTML += '<a class="menu" href="stamm.php?do=lagerfeuerbauen">Lagerfeuer</a><br>'; } } else if(menuLeft.innerHTML.indexOf('hausbau.php') == -1) { leftMenuHTML += '<a class="menu" href="hausbau.php">Haus bauen</a><br>'; leftMenuHTML += '<a class="menu" href="stammjoinen.php">Stamm joinen</a><br>'; } else { leftMenuHTML += '<a class="menu" href="stammgruenden.php">Stamm gründen</a><br>'; leftMenuHTML += '<a class="menu" href="stammjoinen.php">Stamm joinen</a><br>'; } leftMenuHTML += '</div>'; // Toplisten leftMenuHTML += '<div class="menuHeadline">Toplisten</div><div class="menuItemContainer">'; leftMenuHTML += '<a class="menu" href="top.php">UserTop</a><br>'; leftMenuHTML += '<a class="menu" href="stammtop.php">StammTop</a><br>'; leftMenuHTML += '<a class="menu" href="aktivespieler.php">Aktive Spieler</a><br>'; leftMenuHTML += '<a class="menu" href="aktivpunkte.php">Aktive Stämme</a><br>'; leftMenuHTML += '<a class="menu" href="viptop.php">VIPTop</a><br>'; leftMenuHTML += '</div>'; // Sonstiges leftMenuHTML += '<div class="menuHeadline">Sonstiges</div><div class="menuItemContainer">'; leftMenuHTML += '<a class="menu" href="userinfo.php">UserSuche</a><br>'; leftMenuHTML += '<a class="menu" href="stamminfo.php">StammSuche</a><br>'; leftMenuHTML += '<a class="menu" href="useronline.php">OnlineUser</a><br>'; leftMenuHTML += '</div>'; menuLeft.innerHTML = leftMenuHTML; // Info-Anzeigen (Ausrüstung, Opfer, Artefakte) if(Assi_Infoanzeigen == 'zentriert') { var infoanzeigeDIV = document.createElement('div'); infoanzeigeDIV.setAttribute('id', 'infoanzeige'); content.insertBefore(infoanzeigeDIV, content.firstChild); // Ausrüstung var infoanzeigeHEAD = '<th><a class="menu" href="inventar.php">Ausrüstung</a></th>'; var infoanzeigenBODY = '<td><div>Hand: <span id="hand">'+hand+'</span></div><div>Finger: <span id="finger">'+finger+'</span></div></td>'; // Opfer if(waffenopferKleinDate != null || waffenopferGrossDate != null || arbeitsopferDate != null || ringopferDate != null) { infoanzeigeHEAD += '<th></th><th><a class="menu" href="altar.php">Opfer</a></th>'; infoanzeigenBODY += '<td></td><td>'; if(waffenopferKleinDate != null) infoanzeigenBODY += '<div title="kleines Waffenopfer bis '+format2(waffenopferKleinDate.getDate())+'.'+format2(waffenopferKleinDate.getMonth()+1)+'.'+waffenopferKleinDate.getFullYear()+' - '+format2(waffenopferKleinDate.getHours())+':'+format2(waffenopferKleinDate.getMinutes())+':'+format2(waffenopferKleinDate.getSeconds())+'">kl. WO: <span id="WaffenopferKleinSpan"></span></div>'; if(waffenopferGrossDate != null) infoanzeigenBODY += '<div title="großes Waffenopfer bis '+format2(waffenopferGrossDate.getDate())+'.'+format2(waffenopferGrossDate.getMonth()+1)+'.'+waffenopferGrossDate.getFullYear()+' - '+format2(waffenopferGrossDate.getHours())+':'+format2(waffenopferGrossDate.getMinutes())+':'+format2(waffenopferGrossDate.getSeconds())+'">gr. WO: <span id="WaffenopferGrossSpan"></span></div>'; if(arbeitsopferDate != null) infoanzeigenBODY += '<div title="Arbeitsopfer bis '+format2(arbeitsopferDate.getDate())+'.'+format2(arbeitsopferDate.getMonth()+1)+'.'+arbeitsopferDate.getFullYear()+' - '+format2(arbeitsopferDate.getHours())+':'+format2(arbeitsopferDate.getMinutes())+':'+format2(arbeitsopferDate.getSeconds())+'">AO: <span id="ArbeitsopferSpan"></span></div>'; if(ringopferDate != null) infoanzeigenBODY += '<div title="Ringopfer bis '+format2(ringopferDate.getDate())+'.'+format2(ringopferDate.getMonth()+1)+'.'+ringopferDate.getFullYear()+' - '+format2(ringopferDate.getHours())+':'+format2(ringopferDate.getMinutes())+':'+format2(ringopferDate.getSeconds())+'">RO: <span id="RingopferSpan"></span></div>'; infoanzeigenBODY += '</td>'; } // Artefakte if(drachenblutDate.getTime() < servertimeDate.getTime()) drachenblutDate = null; if(glueckDate.getTime() < servertimeDate.getTime()) glueckDate = null; if(meisterschmiedDate.getTime() < servertimeDate.getTime()) meisterschmiedDate = null; if(gesundheitDate.getTime() < servertimeDate.getTime()) gesundheitDate = null; if(drachenblutDate != null || glueckDate != null || meisterschmiedDate != null || gesundheitDate != null) { infoanzeigeHEAD += '<th></th><th><a class="menu" href="artefakt.php">Artefakte</a></th>'; infoanzeigenBODY += '<td></td><td>'; if(drachenblutDate != null) infoanzeigenBODY += '<div title="Drachenblut bis '+format2(drachenblutDate.getDate())+'.'+format2(drachenblutDate.getMonth()+1)+'.'+drachenblutDate.getFullYear()+' - '+format2(drachenblutDate.getHours())+':'+format2(drachenblutDate.getMinutes())+':'+format2(drachenblutDate.getSeconds())+'">DB: <span id="DrachenblutSpan"></span></div>'; if(glueckDate != null) infoanzeigenBODY += '<div title="Glück bis '+format2(glueckDate.getDate())+'.'+format2(glueckDate.getMonth()+1)+'.'+glueckDate.getFullYear()+' - '+format2(glueckDate.getHours())+':'+format2(glueckDate.getMinutes())+':'+format2(glueckDate.getSeconds())+'">Gl: <span id="GlueckSpan"></span></div>'; if(meisterschmiedDate != null) infoanzeigenBODY += '<div title="Meisterschmied bis '+format2(meisterschmiedDate.getDate())+'.'+format2(meisterschmiedDate.getMonth()+1)+'.'+meisterschmiedDate.getFullYear()+' - '+format2(meisterschmiedDate.getHours())+':'+format2(meisterschmiedDate.getMinutes())+':'+format2(meisterschmiedDate.getSeconds())+'">MS: <span id="MeisterschmiedSpan"></span></div>'; if(gesundheitDate != null) infoanzeigenBODY += '<div title="Gesundheit bis '+format2(gesundheitDate.getDate())+'.'+format2(gesundheitDate.getMonth()+1)+'.'+gesundheitDate.getFullYear()+' - '+format2(gesundheitDate.getHours())+':'+format2(gesundheitDate.getMinutes())+':'+format2(gesundheitDate.getSeconds())+'">Ge: <span id="GesundheitSpan"></span></div>'; infoanzeigenBODY += '</td>'; } var infoanzeigeHTML = '<table><thead><tr>'+infoanzeigeHEAD+'</tr></thead><tbody><tr>'+infoanzeigenBODY+'</tr></tbody></table>'; document.getElementById('infoanzeige').innerHTML = infoanzeigeHTML; } // Rechtes Menü i = (isPremiumSpieler)? 1 : 0; var muedigkeit = parseInt(menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[21].textContent, 10); var muedeColor = menuRight.getElementsByTagName("table")[1+i].getElementsByTagName('td')[21].getElementsByTagName('font')[0].getAttribute('color'); var muedeUpdateAusgefuehrt = false; var muedigkeitNeu = -1; var isFreieCP = (menuRight.getElementsByTagName("table")[0+i].textContent.indexOf("Du hast noch Punkte übrig, die du verteilen kannst.") != -1)? true : false; var isNeueNachricht = (menuRight.getElementsByTagName("table")[0+i].textContent.indexOf("Du hast eine neue private Nachricht erhalten.") != -1)? true : false; if(isNeueNachricht) { sessionStorage.setItem("RemindNewMessage", false); } else { sessionStorage.setItem("RemindNewMessage", true); } var rightMenuHTML = ''; // SK-Zeit if(Assi_MenuSKZeit && parseInt(nextSK, 10) != 0) { rightMenuHTML += '<div id="menu_sk" class="center" style="margin: 10px 0;">'; if(nextSK == 'kein Kampf') { rightMenuHTML += '<a class="menu yellow" href="stamm.php?do=kampfsuche">kein Kampf</a>'; } else { var stammkampfDate = new Date(parseInt(nextSK.split(',')[0], 10)); if(skTeilnahme+3600000 < servertimeDate.getTime()) { rightMenuHTML += '<a class="menu yellow" href="stamm.php?do=kampfuserauswahl">'+format2(stammkampfDate.getDate())+'.'+format2(stammkampfDate.getMonth()+1)+'.'+stammkampfDate.getFullYear().toString().slice(2)+' - '+format2(stammkampfDate.getHours())+':'+format2(stammkampfDate.getMinutes())+'</a>'; } else { rightMenuHTML += '<span class="green">'+format2(stammkampfDate.getDate())+'.'+format2(stammkampfDate.getMonth()+1)+'.'+stammkampfDate.getFullYear().toString().slice(2)+' - '+format2(stammkampfDate.getHours())+':'+format2(stammkampfDate.getMinutes())+'</span>'; } rightMenuHTML += '<br><a class="menu" href="stamminfo.php?stammid='+nextSK.split(',')[1]+'">'+nextSK.split(',')[2]+'</a>'; } rightMenuHTML += '</div>'; } // UserDaten rightMenuHTML += '<div class="menuHeadline"><a class="menu" href="charakter.php">UserDaten</a></div><div class="menuItemContainer">'; rightMenuHTML += '<table id="rohstoffe" width="100%" cellspacing="0" cellpadding="0"><tbody>' rightMenuHTML += '<tr><td><img title="Erfahrung" src="/static/rohstoff_icons/erfahrung.gif"></td><td class="right">'+number_format(ep_gesamt, 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Nahrung" src="/static/rohstoff_icons/essen.gif"></td><td class="right">'+number_format(ressis_gesamt['Nahrung'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Wasser" src="/static/rohstoff_icons/wasser.gif"></td><td class="right">'+number_format(ressis_gesamt['Wasser'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Gold" src="/static/rohstoff_icons/gold.gif"></td><td class="right">'+number_format(ressis_gesamt['Gold'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Holz" src="/static/rohstoff_icons/holz.gif"></td><td class="right">'+number_format(ressis_gesamt['Holz'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Steine" src="/static/rohstoff_icons/stein.gif"></td><td class="right">'+number_format(ressis_gesamt['Steine'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Kohle" src="/static/rohstoff_icons/kohle.gif"></td><td class="right">'+number_format(ressis_gesamt['Kohle'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Kupfer" src="/static/rohstoff_icons/kupfer.gif"></td><td class="right">'+number_format(ressis_gesamt['Kupfer'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Zinn" src="/static/rohstoff_icons/zinn.gif"></td><td class="right">'+number_format(ressis_gesamt['Zinn'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Bronze" src="/static/rohstoff_icons/bronze.gif"></td><td class="right">'+number_format(ressis_gesamt['Bronze'], 0, ',', '.')+'</td></tr>'; rightMenuHTML += '<tr><td><img title="Müdigkeit" src="/static/rohstoff_icons/muedigkeit.gif"></td><td id="muede" class="right">'; if(muedigkeit < 80) { rightMenuHTML += '<span class="'+muedeColor+'">'+muedigkeit+'%</span>'; } else { rightMenuHTML += '<a class="menu '+muedeColor+'" href="http://szs.looki.de/inventar.php?aktion=trinken2&trankid='+starkerWachtrankID+'&szsa=stwach">'+muedigkeit+'%</a>'; } rightMenuHTML += '</td></tr>'; rightMenuHTML += '</tbody></table>'; if(Assi_DeinAlter) { rightMenuHTML += '<br><div class="center">Dein Alter:<br>'+alter[0]+' Jahre<br>'+alter[1]+' Monate<br></div>'; } if(isFreieCP) rightMenuHTML += '<br><div class="center"><a class="menu red" href="charakter.php">CP verteilen!</a></div>'; rightMenuHTML += '<div id="neueNachricht" class="center" style="display:'+((isNeueNachricht)? 'block' : 'none')+'"><br><a class="menu yellow" href="news.php">Neue Nachricht erhalten</a></div>'; rightMenuHTML += '</div>'; // Info-Anzeigen if(Assi_Infoanzeigen == 'menu') { // Ausrüstung rightMenuHTML += '<div class="menuHeadline"><a class="menu" href="inventar.php">Ausrüstung</a></div><div class="menuItemContainer">'; rightMenuHTML += '<div>In der Hand:<div id="hand" class="right">'+hand+'</div></div>'; rightMenuHTML += '<div>Am Finger:<div id="finger" class="right">'+finger+'</div></div>'; rightMenuHTML += '</div>'; // Opfer if(waffenopferKleinDate != null || waffenopferGrossDate != null || arbeitsopferDate != null || ringopferDate != null) { rightMenuHTML += '<div class="menuHeadline"><a class="menu" href="altar.php">Opfer</a></div><div class="menuItemContainer">'; if(waffenopferKleinDate != null) rightMenuHTML += '<div title="kleines Waffenopfer bis '+format2(waffenopferKleinDate.getDate())+'.'+format2(waffenopferKleinDate.getMonth()+1)+'.'+waffenopferKleinDate.getFullYear()+' - '+format2(waffenopferKleinDate.getHours())+':'+format2(waffenopferKleinDate.getMinutes())+':'+format2(waffenopferKleinDate.getSeconds())+'">kl. Waffenopfer: <div id="WaffenopferKleinSpan" class="right"></div></div>'; if(waffenopferGrossDate != null) rightMenuHTML += '<div title="großes Waffenopfer bis '+format2(waffenopferGrossDate.getDate())+'.'+format2(waffenopferGrossDate.getMonth()+1)+'.'+waffenopferGrossDate.getFullYear()+' - '+format2(waffenopferGrossDate.getHours())+':'+format2(waffenopferGrossDate.getMinutes())+':'+format2(waffenopferGrossDate.getSeconds())+'">gr. Waffenopfer: <div id="WaffenopferGrossSpan" class="right"></div></div>'; if(arbeitsopferDate != null) rightMenuHTML += '<div title="Arbeitsopfer bis '+format2(arbeitsopferDate.getDate())+'.'+format2(arbeitsopferDate.getMonth()+1)+'.'+arbeitsopferDate.getFullYear()+' - '+format2(arbeitsopferDate.getHours())+':'+format2(arbeitsopferDate.getMinutes())+':'+format2(arbeitsopferDate.getSeconds())+'">Arbeitsopfer: <div id="ArbeitsopferSpan" class="right"></div></div>'; if(ringopferDate != null) rightMenuHTML += '<div title="Ringopfer bis '+format2(ringopferDate.getDate())+'.'+format2(ringopferDate.getMonth()+1)+'.'+ringopferDate.getFullYear()+' - '+format2(ringopferDate.getHours())+':'+format2(ringopferDate.getMinutes())+':'+format2(ringopferDate.getSeconds())+'">Ringopfer: <div id="RingopferSpan" class="right"></div></div>'; rightMenuHTML += '</div>'; } // Artefakte if(drachenblutDate.getTime() < servertimeDate.getTime()) drachenblutDate = null; if(glueckDate.getTime() < servertimeDate.getTime()) glueckDate = null; if(meisterschmiedDate.getTime() < servertimeDate.getTime()) meisterschmiedDate = null; if(gesundheitDate.getTime() < servertimeDate.getTime()) gesundheitDate = null; if(drachenblutDate != null || glueckDate != null || meisterschmiedDate != null || gesundheitDate != null) { rightMenuHTML += '<div class="menuHeadline"><a class="menu" href="artefakt.php">Artefakte</a></div><div class="menuItemContainer">'; if(drachenblutDate != null) rightMenuHTML += '<div title="Drachenblut bis '+format2(drachenblutDate.getDate())+'.'+format2(drachenblutDate.getMonth()+1)+'.'+drachenblutDate.getFullYear()+' - '+format2(drachenblutDate.getHours())+':'+format2(drachenblutDate.getMinutes())+':'+format2(drachenblutDate.getSeconds())+'">Drachenblut: <div id="DrachenblutSpan" class="right"></div></div>'; if(glueckDate != null) rightMenuHTML += '<div title="Glück bis '+format2(glueckDate.getDate())+'.'+format2(glueckDate.getMonth()+1)+'.'+glueckDate.getFullYear()+' - '+format2(glueckDate.getHours())+':'+format2(glueckDate.getMinutes())+':'+format2(glueckDate.getSeconds())+'">Glück: <div id="GlueckSpan" class="right"></div></div>'; if(meisterschmiedDate != null) rightMenuHTML += '<div title="Meisterschmied bis '+format2(meisterschmiedDate.getDate())+'.'+format2(meisterschmiedDate.getMonth()+1)+'.'+meisterschmiedDate.getFullYear()+' - '+format2(meisterschmiedDate.getHours())+':'+format2(meisterschmiedDate.getMinutes())+':'+format2(meisterschmiedDate.getSeconds())+'">Meisterschmied: <div id="MeisterschmiedSpan" class="right"></div></div>'; if(gesundheitDate != null) rightMenuHTML += '<div title="Gesundheit bis '+format2(gesundheitDate.getDate())+'.'+format2(gesundheitDate.getMonth()+1)+'.'+gesundheitDate.getFullYear()+' - '+format2(gesundheitDate.getHours())+':'+format2(gesundheitDate.getMinutes())+':'+format2(gesundheitDate.getSeconds())+'">Gesundheit: <div id="GesundheitSpan" class="right"></div></div>'; rightMenuHTML += '</div>'; } } // Freundesliste i = 1; while(menuRight.getElementsByTagName('table')[i+1].innerHTML.indexOf('Freundesliste</td>') == -1) { i++ } i++; var freunde = menuRight.getElementsByTagName('table')[i].getElementsByTagName('a'); var freunde2 = new Array(); rightMenuHTML += '<div class="menuHeadline"><a class="menu" href="friendlist.php">Freunde</a></div><div class="menuItemContainer">'; for(i=0; i<freunde.length-1; i++) { var temp = new Array(); temp[0] = freunde[i].textContent.trim().toLowerCase(); temp[1] = freunde[i].textContent.trim(); temp[2] = freunde[i].getAttribute('href'); temp[3] = (freunde[i].getElementsByTagName('font')[0].getAttribute('color') == 'lime')? 'green':'red'; freunde2.push(temp); } if(Assi_FreundeSortierung) freunde2.sort(); for(i=0; i<freunde2.length; i++) { var userid = freunde2[i][2].replace(/\D*/, ''); rightMenuHTML += '<nobr><a class="menu '+freunde2[i][3]+'" href="'+freunde2[i][2]+'">'+freunde2[i][1]+'</a> <a href="message.php?empf='+userid+'" title="Private Nachricht"><span class="pn-icon-s"></span></a></nobr><br>'; } rightMenuHTML += '</div>'; // Hilfe rightMenuHTML += '<div class="menuHeadline">Hilfe</div><div class="menuItemContainer">'; rightMenuHTML += '<a class="menu" href="einsteiger.php">Einsteiger</a><br>'; rightMenuHTML += '<a class="menu" href="http://www.looki.de/forum/der_rat_der_weisen_fragen_zum_steinzeitspiel_f108/das_1x1_der_steinzeit_230325.html" target="_blank">Das SZS 1x1</a><br>'; rightMenuHTML += '<a class="menu" href="faq-sys.php">FAQ</a><br>'; rightMenuHTML += '<a class="menu" href="regeln.php">Regeln</a><br>'; rightMenuHTML += '</div>'; // Allgemeines rightMenuHTML += '<div class="menuHeadline">Allgemeines</div><div class="menuItemContainer">'; rightMenuHTML += '<a class="menu" href="http://www.looki.de/forum/das_steinzeitspiel_f89/" target="_blank">Forum</a><br>'; rightMenuHTML += '<a class="menu" href="http://www.szstool.de" target="_blank">SZS-Tool</a><br>'; rightMenuHTML += '<a class="menu" href="ipliste.php">IP-Liste</a><br>'; rightMenuHTML += '<a class="menu" href="statistik.php">Statistiken</a><br>'; rightMenuHTML += '<a class="menu" href="gamenews.php">Gamenews</a><br>'; rightMenuHTML += '<a class="menu" href="geworbene.php">Geworbene</a><br>'; rightMenuHTML += '<a class="menu" target="_blank" href="http://www.galaxy-news.de/?page=charts&op=vote&game_id=97">Vote</a><br>'; rightMenuHTML += '<a class="menu" href="http://www.looki.de/support.html" target="_blank">Support</a><br>'; rightMenuHTML += '<a class="menu" href="cheater.php">Cheater melden</a><br>'; rightMenuHTML += '<a class="menu" href="bug.php">Bug melden</a><br>'; rightMenuHTML += '<a class="menu" href="impressum.php">Impressum</a><br>'; rightMenuHTML += '<br><a class="menu" href="logout.php">Logout</a><br>'; rightMenuHTML += '</div>'; menuRight.innerHTML = rightMenuHTML; // Scriptversion-Check if(Assi_MenuVersionTip) { GM_xmlhttpRequest({ method: "GET", url: "https://greasyfork.org/scripts/3698-szs-assistent/code/SZS-Assistent.meta.js", onload: function(response) { if(response.responseText.indexOf('// @version') != -1) { var html = response.responseText.slice(response.responseText.indexOf('// @version')+11); var versionOnline = html.slice(0, html.indexOf('//')).trim(); var versionOffline = GM_info.script.version; var vOn = versionOnline.split("."); var vOff = versionOffline.split("."); var isNewVersion = 0; var i = 0; while(typeof vOn[i] != 'undefined' || typeof vOff[i] != 'undefined') { if(parseInt(vOn[i], 10) == parseInt(vOff[i], 10)) { i++; continue; } else { isNewVersion = (parseInt(vOn[i], 10) > parseInt(vOff[i], 10)); break; } i++; } if(isNewVersion) { document.getElementById('neueVersion').innerHTML = '<br><a class="menu yellow" href="https://greasyfork.org/scripts/3698-szs-assistent" target="_blank">Neue Version verfügbar!</a>'; document.getElementById('neueVersion').style.display = 'block'; } } } }); } // Event-Listener (global) if(window.addEventListener) { window.addEventListener('resize', pageUpdate, false); window.addEventListener('scroll', pageUpdate, false); } if(document.getElementById('notice') && document.getElementById('notice').addEventListener) { document.getElementById('notice').addEventListener('keyup', function() { GM_setValue("notice", document.getElementById('notice').value); }, false); } if(document.addEventListener) { var hotkey = ''; var hotkeyTime = 0; document.addEventListener('keyup', handleHotkey, false); } if(document.getElementById('button_SaveConfig') && document.getElementById('button_SaveConfig').addEventListener) { document.getElementById('button_SaveConfig').addEventListener('click', toggleElement, false); document.getElementById('button_SaveConfig').addEventListener('click', saveConfig, true); } if(document.getElementById('button_ResetConfig') && document.getElementById('button_ResetConfig').addEventListener) { document.getElementById('button_ResetConfig').addEventListener('click', resetConfig, false); } if(document.getElementById('button_DeleteAll') && document.getElementById('button_DeleteAll').addEventListener) { document.getElementById('button_DeleteAll').addEventListener('click', deleteAllData, false); } if(document.getElementById('toggle_configLayer') && document.getElementById('toggle_configLayer').addEventListener) { document.getElementById('toggle_configLayer').addEventListener('click', toggleElement, false); } // Scriptlaufzeit var scriptendtime = new Date(); document.getElementById('reminder').innerHTML += '<div id="scriptlaufzeit">Scriptlaufzeit: '+(scriptendtime.getTime()-scriptstarttime.getTime())+' ms</div>'; pageUpdate(); sessionStorage.setItem("Ankunftszeit", GM_getValue("Ankunftszeit", "0")); sessionStorage.setItem("Arbeit", GM_getValue("Arbeit", "auf Arbeit")); countdown(); setTimeout(checkForNewMessage, 30000); checkLandControl(); } // Main-Ende /* FUNCTIONS */ function countdown() { var countdownDate = new Date((new Date()).getTime()-diffServertime); // serverzeit document.getElementById('serverzeit').innerHTML = 'Serverzeit: '+countdownDate.getHours()+':'+format2(countdownDate.getMinutes())+':'+format2(countdownDate.getSeconds())+' Uhr'; // Restarbeitszeit var count = Math.floor(activityEndDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); var nochUnterwegs = false; if(count<0) count=0; if(count>10) nochUnterwegs=true; var seconds = count%60; count = Math.floor(count/60); var minutes = count; var countdownHTML = ''; if(minutes > 0) { countdownHTML = minutes+':'+format2(seconds)+' Minuten (bis '+format2(activityEndDate.getHours())+':'+format2(activityEndDate.getMinutes())+' Uhr) '; } else { countdownHTML = seconds+' Sekunden (bis '+format2(activityEndDate.getHours())+':'+format2(activityEndDate.getMinutes())+' Uhr) '; } if(parseInt(sessionStorage.getItem("Ankunftszeit"), 10)+180000 > activityEndDate.getTime()) { countdownHTML += sessionStorage.getItem("Arbeit"); } else { countdownHTML += 'unterwegs'; } if(document.getElementById('countdown')) document.getElementById('countdown').innerHTML = countdownHTML; // Müdigkeit var muedeDate = new Date(countdownDate); if(muedeDate.getMinutes()%10 == 0) { muedeDate.setMinutes(muedeDate.getMinutes()+10); } muedeDate.setSeconds(0); muedeDate.setMilliseconds(0); while(muedeDate.getMinutes()%10 != 0) { muedeDate.setMinutes(muedeDate.getMinutes()+1); } count = Math.floor(muedeDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); if(muedigkeitNeu == -1) muedigkeitNeu=muedigkeit; if(count<0) count=0; var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; if (minutes > 0) { if(minutes == 10) { if(!muedeUpdateAusgefuehrt) { if(nochUnterwegs) { muedigkeitNeu += 2; } else { muedigkeitNeu -= 1; } var color = 'green'; if(muedigkeitNeu >= 100) { muedigkeitNeu = 100; } else if(muedigkeitNeu <= 0) { muedigkeitNeu = 0; } if(muedigkeitNeu >= 80) { color = 'red'; } else if(muedigkeitNeu > 60) { color = 'yellow'; } var muedehtml = '<span class="'+color+'">'+muedigkeitNeu+'%</span>'; if(muedigkeitNeu >= 80) { muedehtml = '<a class="menu '+color+'" href="http://szs.looki.de/inventar.php?aktion=trinken2&trankid='+starkerWachtrankID+'&szsa=stwach">'+muedigkeitNeu+'%</a>'; } document.getElementById('muede').innerHTML = muedehtml; muedeUpdateAusgefuehrt = true; } } else { muedeUpdateAusgefuehrt = false; } } // Artefaktzeit if(drachenblutDate != null) { count = Math.floor(drachenblutDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'DrachenblutSpan'); } if(glueckDate != null) { count = Math.floor(glueckDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'GlueckSpan'); } if(meisterschmiedDate != null) { count = Math.floor(meisterschmiedDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'MeisterschmiedSpan'); } if(gesundheitDate != null) { count = Math.floor(gesundheitDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'GesundheitSpan'); } // Opferzeit if(waffenopferKleinDate != null) { count = Math.floor(waffenopferKleinDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'WaffenopferKleinSpan'); } if(waffenopferGrossDate != null) { count = Math.floor(waffenopferGrossDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'WaffenopferGrossSpan'); } if(arbeitsopferDate != null) { count = Math.floor(arbeitsopferDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'ArbeitsopferSpan'); } if(ringopferDate != null) { count = Math.floor(ringopferDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); printCountdownZeit(count, 'RingopferSpan'); } // Activity-Reminder if(countdownDate >= activityEndDate && Assi_ActivityReminder && remindActivity && sessionStorage.getItem("RemindActivity")) { remindActivity = false; sessionStorage.setItem("RemindActivity", false); var volume = parseFloat(Assi_ReminderSoundVolume.replace(',', '.')/100); if(volume<0) volume=0; if(volume>1) volume=1; switch(Assi_Remindersound) { case 'SoundA': audioA.volume = volume; audioA.play(); break; case 'SoundB': audioB.volume = volume; audioB.play(); break; case 'SoundC': audioC.volume = volume; audioC.play(); break; case 'SoundD': audioD.volume = volume; audioD.play(); break; default: break; } if(Assi_Standardtaetigkeit == "") { alert('Du bist wieder verfügbar!'); } else { if(confirm('Du bist wieder verfügbar!\n\nStandardtätigkeit aufrufen?')) { var url = ''; switch(Assi_Standardtaetigkeit) { case 'Jagen': url = 'http://szs.looki.de/jagd.php'; break; case 'Wasser': url = 'http://szs.looki.de/wasser.php'; break; case 'Holz': url = 'http://szs.looki.de/holzfaeller.php'; break; case 'Stein': url = 'http://szs.looki.de/steinmetz.php'; break; case 'Kohle': url = 'http://szs.looki.de/koehlern.php'; break; case 'Kupfer': url = 'http://szs.looki.de/kupferding.php'; break; case 'Zinn': url = 'http://szs.looki.de/zinnding.php'; break; case 'Bronze': url = 'http://szs.looki.de/bronze.php'; break; case 'Trank': url = 'http://szs.looki.de/schamane.php'; break; case 'Waffe': url = 'http://szs.looki.de/waffenschmied.php'; break; case 'Werkzeug': url = 'http://szs.looki.de/werkzeug.php'; break; case 'Artefakt': url = 'http://szs.looki.de/altar.artefakt.php'; break; default: url = ''; break; } if(url.indexOf('http://szs.looki.de/wasser.php') == 0 && main.innerHTML.indexOf('<a class="menu" href="wasser2.php">Wasser suchen</a>') != -1) { url = 'http://szs.looki.de/wasser2.php'; } if(url != '') window.location.href = url; } } } // Talkampf-Reminder var tk_inner = document.getElementById('tk_inner'); if(talkampfDate.getTime()-countdownDate.getTime() >= 0) { var count = Math.floor(talkampfDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); if(count<0) count=0; var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; if(hours >=5) { tk_inner.setAttribute('class', 'green'); } else if(hours >=2) { tk_inner.setAttribute('class', 'yellow'); } else if(hours >=1) { tk_inner.setAttribute('class', 'orange'); } else { tk_inner.setAttribute('class', 'red'); } tk_inner.innerHTML = hours+':'+format2(minutes)+':'+format2(seconds); } else { tk_inner.setAttribute('class', 'green'); tk_inner.innerHTML = 'TK läuft'; } // Stammkampf-Reminder var sk_inner = document.getElementById('sk_inner'); if(parseInt(nextSK, 10) != 0) { if(nextSK != 'kein Kampf') { var stammkampfDate = new Date(parseInt(nextSK.split(',')[0], 10)); if(stammkampfDate.getTime()-countdownDate.getTime() >= 0) { var count = Math.floor(stammkampfDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); if(count<0) count=0; var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; var sk_inner = document.getElementById('sk_inner'); if(hours >=5) { sk_inner.setAttribute('class', 'green'); } else if(hours >=2) { sk_inner.setAttribute('class', 'yellow'); } else if(hours >=1) { sk_inner.setAttribute('class', 'orange'); } else { sk_inner.setAttribute('class', 'red'); } sk_inner.innerHTML = hours+':'+format2(minutes)+':'+format2(seconds); } else if(stammkampfDate.getTime()-countdownDate.getTime() >= -3600000) { // == 1h sk_inner.setAttribute('class', 'green'); sk_inner.innerHTML = 'SK läuft'; } else { sk_inner.setAttribute('class', 'red'); sk_inner.innerHTML = 'old data'; } } else { sk_inner.setAttribute('class', 'yellow'); sk_inner.innerHTML = 'kein Kampf'; } } else { sk_inner.setAttribute('class', 'orange'); sk_inner.innerHTML = 'no data'; } // Magierkampf-Reminder var mk_inner = document.getElementById('mk_inner'); if(magierkampfDate.getTime()-countdownDate.getTime() >= 0) { var count = Math.floor(magierkampfDate.getTime()/1000)-Math.floor(countdownDate.getTime()/1000); if(count<0) count=0; var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; count = Math.floor(count/24); hours = hours+24*count; if(hours >=5) { mk_inner.setAttribute('class', 'green'); } else if(hours >=2) { mk_inner.setAttribute('class', 'yellow'); } else if(hours >=1) { mk_inner.setAttribute('class', 'orange'); } else { mk_inner.setAttribute('class', 'red'); } mk_inner.innerHTML = hours+':'+format2(minutes)+':'+format2(seconds); } else { mk_inner.setAttribute('class', 'green'); mk_inner.innerHTML = 'MK läuft'; } setTimeout(countdown, 500); } function checkForNewMessage() { if(document.getElementById('neueNachricht').style.display == 'none') { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/statistik.php", onload: function(response) { if(response.responseText.indexOf('Du hast eine neue private Nachricht erhalten.') != -1) { document.getElementById('neueNachricht').style.display = 'block'; if(sessionStorage.getItem("RemindNewMessage")) { sessionStorage.setItem("RemindNewMessage", false); var volume = parseFloat(Assi_MessageSoundVolume.replace(',', '.')/100); if(volume<0) volume=0; if(volume>1) volume=1; switch(Assi_Messagesound) { case 'SoundA': audioA.volume = volume; audioA.play(); break; case 'SoundB': audioB.volume = volume; audioB.play(); break; case 'SoundC': audioC.volume = volume; audioC.play(); break; case 'SoundD': audioD.volume = volume; audioD.play(); break; default: break; } if(Assi_MessageReminder) { alert('Du hast eine neue Nachricht erhalten!'); } } } } }); } setTimeout(checkForNewMessage, 20000); } function checkLandControl() { var landControlData = GM_getValue("LandControlData", "#").split('#'); var landids = new Array(); var landControlData2 = new Array(); for(var i=1; i<landControlData.length-1; i++) { var temp = landControlData[i].split(','); landids.push(temp[0]); landControlData2[temp[0]] = new Object(); landControlData2[temp[0]]["Holz"] = temp[1]; landControlData2[temp[0]]["Stein"] = temp[2]; landControlData2[temp[0]]["Kupfer"] = temp[3]; landControlData2[temp[0]]["Zinn"] = temp[4]; } for(var i=0; i<landids.length; i++) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/landinfo.php?id="+landids[i], onload: function(response) { var id = response.finalUrl.replace(/\D*/, ''); response.responseText.search(/Holz:\s*(\d*)<br>\s*Stein:\s*(\d*)<br>\s*Kupfer:\s*(\d*)<br>\s*Zinn:\s*(\d*)<br>/); var holz = parseInt(RegExp.$1, 10); var stein = parseInt(RegExp.$2, 10); var kupfer = parseInt(RegExp.$3, 10); var zinn = parseInt(RegExp.$4, 10); if((landControlData2[id]["Holz"] != "" && holz <= landControlData2[id]["Holz"]) || (landControlData2[id]["Stein"] != "" && stein <= landControlData2[id]["Stein"]) || (landControlData2[id]["Kupfer"] != "" && kupfer <= landControlData2[id]["Kupfer"]) || (landControlData2[id]["Zinn"] != "" && zinn <= landControlData2[id]["Zinn"])) { if(document.getElementById('landControl')) document.getElementById('landControl').setAttribute('class', 'menu bold '+landControlColor); } } }); } } function printCountdownZeit(count, spanId) { if(document.getElementById(spanId)) { if(count<0) count=0; var seconds = count%60; count = Math.floor(count/60); var minutes = count%60; count = Math.floor(count/60); var hours = count%24; count = Math.floor(count/24); var days = Math.floor(count); document.getElementById(spanId).setAttribute('style', 'color:lime'); var restZeitString = ''; if(days > 0) { restZeitString = days+'T '+format2(hours)+':'+format2(minutes)+':'+format2(seconds)+' Std'; } else if (hours > 0) { restZeitString = hours+':'+format2(minutes)+':'+format2(seconds)+' Std'; } else if (minutes > 0) { restZeitString = minutes+':'+format2(seconds)+' Min'; document.getElementById(spanId).setAttribute('style','color:yellow'); } else { restZeitString = seconds+' Sek'; document.getElementById(spanId).setAttribute('style','color:red'); } document.getElementById(spanId).innerHTML = restZeitString; } } function handleHotkey(e) { if(String(e.target).indexOf('[object HTMLBodyElement]') != -1) { var keyCode = e.keyCode ? e.keyCode : (e.charCode ? e.charCode : e.which); var hotkeyTime2 = (new Date).getTime(); if(hotkey == '') { hotkeyTime = (new Date).getTime(); } if(keyCode == 27 || hotkeyTime2-hotkeyTime > Assi_HotkeyTimeout) { hotkey = ''; } else { hotkey += keyCodeToChar(keyCode); if(hotkey != '') { var url = ''; for(var i=0; i<hotkeys.length; i++) { if(hotkey == hotkeys[i][2] && e.altKey == false && e.ctrlKey == false && e.shiftKey == false) { url = hotkeys[i][1]; break; } } if(url.indexOf('http://szs.looki.de/wasser.php') == 0 && main.innerHTML.indexOf('<a class="menu" href="wasser2.php">Wasser suchen</a>') != -1) { url = 'http://szs.looki.de/wasser2.php'; } else if(url.indexOf('http://szs.looki.de/stamm.php?do=kampfsuche') == 0 && main.innerHTML.indexOf('<a class="menu" href="stamm.php?do=kampfuserauswahl">Stammkampf</a>') != -1) { url = 'http://szs.looki.de/stamm.php?do=kampfuserauswahl'; } if(url != '') window.location.href = url; } } } } function keyCodeToChar(key) { var i, keys, c; if(key>=48 && key<=57) { i = 48; keys = '0123456789'; c = keys.charAt(key-i); } else if(key>=96 && key<=105) { i = 96; keys = '0123456789'; c = keys.charAt(key-i); } else if(key>=65 && key<=90) { i = 65; keys = 'abcdefghijklmnopqrstuvwxyz'; c = keys.charAt(key-i); } else { switch(key) { case 37: c = 'LEFT'; break; case 38: c = 'UP'; break; case 39: c = 'RIGHT'; break; case 40: c = 'DOWN'; break; case 60: c = '<'; case 160: c = '^'; break; case 163: c = '#'; break; case 171: c = '+'; break; case 173: c = '-'; break; case 188: c = ','; break; case 190: c = '.'; break; default: c = ''; // ehem. false break; } } return c; } function pageUpdate() { var sp = (Assi_Notizen)? 0 : window.innerWidth/2-390; if(document.getElementById('serverzeit')) document.getElementById('serverzeit').setAttribute('style', 'left: '+(sp+300)+'px'); if(document.getElementById('reminder')) document.getElementById('reminder').setAttribute('style', 'left: '+(sp+550)+'px'); if(document.getElementById('weather')) document.getElementById('weather').setAttribute('style', 'left: '+(sp+730)+'px'); if(document.getElementById('notice')) document.getElementById('notice').setAttribute('style', 'height: '+(window.innerHeight-document.getElementById('notice').offsetTop-25)+'px'); if(document.getElementById('configLayer')) { if(document.getElementById('configLayer').getAttribute('style') && document.getElementById('configLayer').getAttribute('style').indexOf('display: block') != -1) { document.getElementById('configLayer').setAttribute('style', 'display: block; left: '+(sp+160)+'px; height: '+(window.innerHeight-150)+'px'); } else { document.getElementById('configLayer').setAttribute('style', 'display: none; left: '+(sp+160)+'px; height: '+(window.innerHeight-150)+'px'); } } if(document.getElementById('config-content')) document.getElementById('config-content').setAttribute('style', 'height: '+(window.innerHeight-150-75)+'px'); } function addDataForSKresult(username, id, teilnehmer, n) { username = username.trim(); GM_xmlhttpRequest({ method: "POST", url: "http://szs.looki.de/userinfo.php", data: "userdatenname="+escape(username), headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var anfang = response.responseText.indexOf('Stamm:'); var ende = response.responseText.indexOf('Erfahrung:'); if(anfang != -1 && ende != -1) { var html = response.responseText.slice(anfang, ende); html.search(/<a href="stamminfo.php\?stammid=\d+">(.+)<\/a>/); var stamm = RegExp.$1.trim(); if(typeof stammname[id][stamm] == 'undefined') { stammname[id].push(stamm); stammname[id][stamm] = 1; } else { stammname[id][stamm]++; } anfang = response.responseText.indexOf('Erfahrung:'); ende = response.responseText.indexOf('Alter (im Spiel):'); html = response.responseText.slice(anfang, ende); html.search(/<td>\s*(\d*)\s*<\/td>/); var ep = parseInt(RegExp.$1, 10); if(ep < 0 || isNaN(ep)) ep = 0; gesamtEP[id] += ep; counterGesamtEP[id]--; if(Assi_SKAuswertung && document.getElementById('sk_'+id+'_'+username.replace(/\s/g, ''))) { document.getElementById('sk_'+id+'_'+username.replace(/\s/g, '')).innerHTML += ' ('+number_format(ep)+')'; } if(document.getElementById('ep_'+id) && document.getElementById('stamm_'+id)) { document.getElementById('ep_'+id).innerHTML = number_format(gesamtEP[id]); if(counterGesamtEP[id] != 0) { document.getElementById('ep_'+id).innerHTML += ' (noch '+counterGesamtEP[id]+')'; } // Sortiere Stammnamen if(stammname[id].length > 1) { for(var i=0; i<stammname[id].length; i++) { for(var j=i+1; j<stammname[id].length; j++) { if(stammname[id][stammname[id][i]] < stammname[id][stammname[id][j]]) { var z = stammname[id][i]; stammname[id][i] = stammname[id][j]; stammname[id][j] = z; } } } } if(document.getElementById('stamm_'+id).innerHTML != stammname[id][0]) { document.getElementById('stamm_'+id).innerHTML = stammname[id][0]; } } } else { var anfang = response.responseText.indexOf('<!-- INHALT ANFANG -->'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->'); var html = response.responseText.slice(anfang, ende); if(html.indexOf('Diesen Steinzeitmenschen habe ich nicht gefunden.') == -1) { html.search(new RegExp('href=userinfo.php\\?userinfo=(\\d+)>'+username+'<\\/a>')); var userid = parseInt(RegExp.$1, 10); if(document.getElementById('sk_'+id+'_'+username.replace(/\s/g, ''))) { document.getElementById('sk_'+id+'_'+username.replace(/\s/g, '')).setAttribute('id', 'sk_'+id+'_'+userid); } addDataForSKresult2(userid, id); } else { // Steinzeitmensch konnte nicht gefunden werden if(typeof teilnehmer[n+1] != 'undefined' && (username+' '+teilnehmer[n+1]).length <= 20) { counterGesamtEP[id]--; if(document.getElementById('anz_'+id)) { document.getElementById('anz_'+id).innerHTML = parseInt(document.getElementById('anz_'+id).textContent, 10)-1; } if(document.getElementById('sk_'+id+'_'+username) && document.getElementById('sk_'+id+'_'+teilnehmer[n+1])) { document.getElementById('sk_'+id+'_'+username).setAttribute('id', 'sk_'+id+'_'+username+teilnehmer[n+1]); document.getElementById('sk_'+id+'_'+username+teilnehmer[n+1]).innerHTML += ' '+teilnehmer[n+1]; document.getElementById('sk_'+id+'_'+teilnehmer[n+1]).parentNode.removeChild(document.getElementById('sk_'+id+'_'+teilnehmer[n+1])); } addDataForSKresult(username+' '+teilnehmer[n+1], id, teilnehmer, n+1); } } } } }); } function addDataForSKresult2(userid, id) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/userinfo.php?userinfo="+userid, onload: function(response) { var anfang = response.responseText.indexOf('Stamm:'); var ende = response.responseText.indexOf('Erfahrung:'); if(anfang != -1 && ende != -1) { var html = response.responseText.slice(anfang, ende); html.search(/<a href="stamminfo.php\?stammid=\d+">(.+)<\/a>/); var stamm = RegExp.$1.trim(); if(typeof stammname[id][stamm] == 'undefined') { stammname[id].push(stamm); stammname[id][stamm] = 1; } else { stammname[id][stamm]++; } anfang = response.responseText.indexOf('Erfahrung:'); ende = response.responseText.indexOf('Alter (im Spiel):'); html = response.responseText.slice(anfang, ende); html.search(/<td>\s*(\d*)\s*<\/td>/); var ep = parseInt(RegExp.$1, 10); if(ep < 0 || isNaN(ep)) ep = 0; gesamtEP[id] += ep; counterGesamtEP[id]--; if(Assi_SKAuswertung && document.getElementById('sk_'+id+'_'+userid)) { document.getElementById('sk_'+id+'_'+userid).innerHTML += ' ('+number_format(ep)+')'; } if(document.getElementById('ep_'+id) && document.getElementById('stamm_'+id)) { document.getElementById('ep_'+id).innerHTML = number_format(gesamtEP[id]); if(counterGesamtEP[id] != 0) { document.getElementById('ep_'+id).innerHTML += ' (noch '+counterGesamtEP[id]+')'; } // Sortiere Stammnamen if(stammname[id].length > 1) { for(var i=0; i<stammname[id].length; i++) { for(var j=i+1; j<stammname[id].length; j++) { if(stammname[id][stammname[id][i]] < stammname[id][stammname[id][j]]) { var z = stammname[id][i]; stammname[id][i] = stammname[id][j]; stammname[id][j] = z; } } } } if(document.getElementById('stamm_'+id).innerHTML != stammname[id][0]) { document.getElementById('stamm_'+id).innerHTML = stammname[id][0]; } } } else { GM_log('Fehler in addDataForSKresult2 | '+anfang+'/'+ende+' | userid='+userid+' | id='+id+'\n'+response.responseText); if(Assi_SKAuswertung && document.getElementById('sk_'+id+'_'+userid)) { document.getElementById('sk_'+id+'_'+userid).innerHTML += ' (Fehler, siehe Konsole)'; } } } }); } function getClanEPByClanId(clanid, id) { GM_xmlhttpRequest({ method: "GET", url: "http://szs.looki.de/extern/memberstamm.php?stammid="+clanid, onload: function(response) { var anfang = response.responseText.indexOf('("'); var html = response.responseText.slice(anfang); var users = html.split('document.write'); var gesamtEP = 0; for(var i=1; i<users.length-1; i++) { users[i].search(/ffffff\s>(\d*)<\/font>/); var ep = parseInt(RegExp.$1, 10); if(ep < 0 || isNaN(ep)) ep = 0; gesamtEP += ep; } if(document.getElementById(id)) document.getElementById(id).innerHTML = number_format(gesamtEP); } }); } function addLinksToLogbuch(username, id) { username = username.trim(); GM_xmlhttpRequest({ method: "POST", url: "http://szs.looki.de/userinfo.php", data: "userdatenname="+escape(username), headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var anfang = response.responseText.indexOf('ID:'); var ende = response.responseText.indexOf('Username:'); if(anfang != -1 && ende != -1) { html = response.responseText.slice(anfang, ende); html.search(/<td>\s*(\d*)\s*<\/td>/); var userid = parseInt(RegExp.$1, 10); } else { var anfang = response.responseText.indexOf('<!-- INHALT ANFANG -->'); var ende = response.responseText.indexOf('<!-- INHALT ENDE -->'); var html = response.responseText.slice(anfang, ende); if(html.indexOf('Diesen Steinzeitmenschen habe ich nicht gefunden.') == -1) { html.search(new RegExp('href=userinfo.php\\?userinfo=(\\d+)>'+username+'<\\/a>')); var userid = parseInt(RegExp.$1, 10); } else { var userid = 0; } } if(userid > 0 && document.getElementById(id)) { if(id.indexOf('tk') == 0) { document.getElementById(id).innerHTML = '<a href="userinfo.php?userinfo='+userid+'">'+htmlspecialchars(username)+'</a>'; } else if(id.indexOf('transfer') == 0 || id.indexOf('pn') == 0 || id.indexOf('market') == 0) { document.getElementById(id).innerHTML = '<a href="userinfo.php?userinfo='+userid+'">'+htmlspecialchars(username)+'</a>'; document.getElementById(id+'-2').innerHTML = '<a href="message.php?empf='+userid+'">Nachricht</a><br><a href="uebertragen.php?anrohstoffe='+htmlspecialchars(username)+'">Übertragen</a>'; } } } }); } function number_format(number, laenge, sep, th_sep, fix) { /* out: String in: number as float laenge as integer (optional) sep as String (optional) th_sep as String (optional) fix as boolean (optional) */ if(!laenge) laenge = 0; if(!sep) sep = ','; if(!th_sep) th_sep = '.'; number = Math.round(number*Math.pow(10, laenge))/Math.pow(10, laenge); str_number = number+''; var arr_int = str_number.split('.'); if(!arr_int[0]) arr_int[0] = '0'; if(!arr_int[1]) arr_int[1] = ''; if(arr_int[1].length < laenge && fix) { var nachkomma = arr_int[1]; for(var i=arr_int[1].length+1; i<=laenge; i++) { nachkomma += '0'; } arr_int[1] = nachkomma; } if(th_sep != '' && arr_int[0].length > 3) { var Begriff = arr_int[0]; arr_int[0] = ''; for(var j=3; j<Begriff.length; j+=3) { var extrakt = Begriff.slice(Begriff.length-j, Begriff.length-j+3); arr_int[0] = th_sep+extrakt+arr_int[0]+''; } var str_first = Begriff.substr(0, (Begriff.length%3 == 0)? 3 : (Begriff.length%3)); arr_int[0] = str_first+arr_int[0]; } return arr_int[0]+((arr_int[1].length>0)? sep : '')+arr_int[1]; } function format2(n) { if(n<10) n = '0'+n; return n.toString(); } function isSommerzeit(d) { return (((new Date(1).getTimezoneOffset()) != (d.getTimezoneOffset()))? true : false); } function getURLParameter(name) { if(location.search) { var params = location.search.substring(1).split('&'); for(var i=0; i<params.length; i++) { var param = params[i].split('='); if(param[0] == name) { return param[1]; } } return null; } else { return null; } } function htmlspecialchars(str) { return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') ; } function nickSort(a, b) { a = a.toLowerCase(); b = b.toLowerCase(); if(a > b) { return 1; } else if(a < b) { return -1; } else { return 0; } } function hashCode(str) { var hash = 0, chr; str += ''; if(str.length == 0) return hash; for(var i=0; i < str.length; i++) { chr = str.charCodeAt(i); hash = ((hash << 5) - hash) + chr; hash |= 0; // Convert to 32bit integer } return hash; } function getRadioValue(rObj) { for(var i=0; i<rObj.length; i++) { if(rObj[i].checked) return rObj[i].value; } return false; } function toggleElement(e) { var el = this.getAttribute('data-szsa-toggle'); if(document.getElementById(el).style.display == 'block') { document.getElementById(el).style.display = 'none'; this.setAttribute('class', this.getAttribute('class').replace(' opened', '')); if(this.getAttribute('data-szsa-status') == 'save') { GM_setValue("StatusToggle_"+el, "none"); } } else { document.getElementById(el).style.display = 'block'; this.setAttribute('class', this.getAttribute('class')+' opened'); if(this.getAttribute('data-szsa-status') == 'save') { GM_setValue("StatusToggle_"+el, "block"); } } } function playSound(e) { var data = this.getAttribute('data-szsa-sound').split(' '); var volume = parseFloat(parseFloat(document.getElementsByName(data[0])[0].value.trim())/100); if(volume < 0) { volume = 0; } if(volume > 1) { volume = 1; } document.getElementById(data[1]).volume = volume; document.getElementById(data[1]).play(); } function saveConfig() { GM_setValue("Assi_UserName", document.getElementsByName('Assi_UserName')[0].value.trim()); GM_setValue("Assi_StammName", document.getElementsByName('Assi_StammName')[0].value.trim()); GM_setValue("Assi_Infoanzeigen", getRadioValue(document.getElementsByName('Assi_Infoanzeigen'))); GM_setValue("Assi_DeinAlter", document.getElementsByName('Assi_DeinAlter')[0].checked); GM_setValue("Assi_FreundeSortierung", document.getElementsByName('Assi_FreundeSortierung')[0].checked); GM_setValue("Assi_Notizen", document.getElementsByName('Assi_Notizen')[0].checked); GM_setValue("Assi_HotkeyTimeout", document.getElementsByName('Assi_HotkeyTimeout')[0].value.trim()); GM_setValue("Assi_InventarIMGheight", document.getElementsByName('Assi_InventarIMGheight')[0].value.trim()); GM_setValue("Assi_InventarTrankreihenfolge", document.getElementsByName('Assi_InventarTrankreihenfolge')[0].value.trim()); GM_setValue("Assi_Lagerauszahlungen", getRadioValue(document.getElementsByName('Assi_Lagerauszahlungen'))); GM_setValue("Assi_LagerauszahlungenNicks", document.getElementsByName('Assi_LagerauszahlungenNicks')[0].value.trim().replace(/\s?,\s?/g, ',')); GM_setValue("Assi_MenuUhrzeit", document.getElementsByName('Assi_MenuUhrzeit')[0].checked); GM_setValue("Assi_MenuSKZeit", document.getElementsByName('Assi_MenuSKZeit')[0].checked); GM_setValue("Assi_MenuVersionTip", document.getElementsByName('Assi_MenuVersionTip')[0].checked); GM_setValue("Assi_SKAuswertung", document.getElementsByName('Assi_SKAuswertung')[0].checked); GM_setValue("Assi_ActivityReminder", document.getElementsByName('Assi_ActivityReminder')[0].checked); GM_setValue("Assi_Remindersound", getRadioValue(document.getElementsByName('Assi_Remindersound'))); GM_setValue("Assi_ReminderSoundVolume", document.getElementsByName('Assi_ReminderSoundVolume')[0].value.trim()); GM_setValue("Assi_Standardtaetigkeit", getRadioValue(document.getElementsByName('Assi_Standardtaetigkeit'))); GM_setValue("Assi_MessageReminder", document.getElementsByName('Assi_MessageReminder')[0].checked); GM_setValue("Assi_Messagesound", getRadioValue(document.getElementsByName('Assi_Messagesound'))); GM_setValue("Assi_MessageSoundVolume", document.getElementsByName('Assi_MessageSoundVolume')[0].value.trim()); GM_setValue("Assi_WaffenWerkzeugWarnung", document.getElementsByName('Assi_WaffenWerkzeugWarnung')[0].checked); GM_setValue("Assi_RingWarnung", document.getElementsByName('Assi_RingWarnung')[0].checked); GM_setValue("Assi_Gaestebucheintrag", document.getElementsByName('Assi_Gaestebucheintrag')[0].checked); GM_setValue("Assi_Kraft", document.getElementsByName('Assi_Kraft')[0].value.trim()); GM_setValue("Assi_Intelligenz", document.getElementsByName('Assi_Intelligenz')[0].value.trim()); GM_setValue("Assi_Geschwindigkeit", document.getElementsByName('Assi_Geschwindigkeit')[0].value.trim()); GM_setValue("Assi_List", document.getElementsByName('Assi_List')[0].value.trim()); GM_setValue("Assi_Ausdauer", document.getElementsByName('Assi_Ausdauer')[0].value.trim()); GM_setValue("Assi_Geschick", document.getElementsByName('Assi_Geschick')[0].value.trim()); GM_setValue("Assi_NahrungRest", document.getElementsByName('Assi_NahrungRest')[0].value.trim()); GM_setValue("Assi_GoldRest", document.getElementsByName('Assi_GoldRest')[0].value.trim()); GM_setValue("Assi_HolzRest", document.getElementsByName('Assi_HolzRest')[0].value.trim()); GM_setValue("Assi_SteinRest", document.getElementsByName('Assi_SteinRest')[0].value.trim()); GM_setValue("Assi_NahrungRund", document.getElementsByName('Assi_NahrungRund')[0].value.trim()); GM_setValue("Assi_GoldRund", document.getElementsByName('Assi_GoldRund')[0].value.trim()); GM_setValue("Assi_HolzPreis", document.getElementsByName('Assi_HolzPreis')[0].value.trim()); GM_setValue("Assi_SteinPreis", document.getElementsByName('Assi_SteinPreis')[0].value.trim()); GM_setValue("Assi_Preishervorhebung", getRadioValue(document.getElementsByName('Assi_Preishervorhebung'))); GM_setValue("Assi_MarktWasserPreis", document.getElementsByName('Assi_MarktWasserPreis')[0].value.trim()); GM_setValue("Assi_MarktHolzPreis", document.getElementsByName('Assi_MarktHolzPreis')[0].value.trim()); GM_setValue("Assi_MarktSteinPreis", document.getElementsByName('Assi_MarktSteinPreis')[0].value.trim()); GM_setValue("Assi_MarktKohlePreis", document.getElementsByName('Assi_MarktKohlePreis')[0].value.trim()); GM_setValue("Assi_MarktKupferPreis", document.getElementsByName('Assi_MarktKupferPreis')[0].value.trim()); GM_setValue("Assi_MarktZinnPreis", document.getElementsByName('Assi_MarktZinnPreis')[0].value.trim()); GM_setValue("Assi_MarktBronzePreis", document.getElementsByName('Assi_MarktBronzePreis')[0].value.trim()); GM_setValue("Assi_MarktWasserverkaufsmenge", document.getElementsByName('Assi_MarktWasserverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktHolzverkaufsmenge", document.getElementsByName('Assi_MarktHolzverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktSteinverkaufsmenge", document.getElementsByName('Assi_MarktSteinverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktKohleverkaufsmenge", document.getElementsByName('Assi_MarktKohleverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktKupferverkaufsmenge", document.getElementsByName('Assi_MarktKupferverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktZinnverkaufsmenge", document.getElementsByName('Assi_MarktZinnverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktBronzeverkaufsmenge", document.getElementsByName('Assi_MarktBronzeverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktkleinerHeiltrankverkaufsmenge", document.getElementsByName('Assi_MarktkleinerHeiltrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktmittlererHeiltrankverkaufsmenge", document.getElementsByName('Assi_MarktmittlererHeiltrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktstarkerHeiltrankverkaufsmenge", document.getElementsByName('Assi_MarktstarkerHeiltrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktWachtrankverkaufsmenge", document.getElementsByName('Assi_MarktWachtrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktstarkerWachtrankverkaufsmenge", document.getElementsByName('Assi_MarktstarkerWachtrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktHolztrankverkaufsmenge", document.getElementsByName('Assi_MarktHolztrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktSteintrankverkaufsmenge", document.getElementsByName('Assi_MarktSteintrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktZinntrankverkaufsmenge", document.getElementsByName('Assi_MarktZinntrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktKupfertrankverkaufsmenge", document.getElementsByName('Assi_MarktKupfertrankverkaufsmenge')[0].value.trim()); GM_setValue("Assi_MarktWasserverkaufspreis", document.getElementsByName('Assi_MarktWasserverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktHolzverkaufspreis", document.getElementsByName('Assi_MarktHolzverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktSteinverkaufspreis", document.getElementsByName('Assi_MarktSteinverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktKohleverkaufspreis", document.getElementsByName('Assi_MarktKohleverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktKupferverkaufspreis", document.getElementsByName('Assi_MarktKupferverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktZinnverkaufspreis", document.getElementsByName('Assi_MarktZinnverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktBronzeverkaufspreis", document.getElementsByName('Assi_MarktBronzeverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktkleinerHeiltrankverkaufspreis", document.getElementsByName('Assi_MarktkleinerHeiltrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktmittlererHeiltrankverkaufspreis", document.getElementsByName('Assi_MarktmittlererHeiltrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktstarkerHeiltrankverkaufspreis", document.getElementsByName('Assi_MarktstarkerHeiltrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktWachtrankverkaufspreis", document.getElementsByName('Assi_MarktWachtrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktstarkerWachtrankverkaufspreis", document.getElementsByName('Assi_MarktstarkerWachtrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktHolztrankverkaufspreis", document.getElementsByName('Assi_MarktHolztrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktSteintrankverkaufspreis", document.getElementsByName('Assi_MarktSteintrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktZinntrankverkaufspreis", document.getElementsByName('Assi_MarktZinntrankverkaufspreis')[0].value.trim()); GM_setValue("Assi_MarktKupfertrankverkaufspreis", document.getElementsByName('Assi_MarktKupfertrankverkaufspreis')[0].value.trim()); var strHotkeys = ''; for(var i=0; i<hotkeys.length; i++) { strHotkeys += document.getElementsByName('Assi_Hotkeys['+i+']')[0].value.trim()+'|'; } GM_setValue("Assi_Hotkeys", strHotkeys); alert('Einstellungen gespeichert!\n\nSeite neu laden, damit Änderungen wirksam werden.'); document.getElementById('configLayer').style.display = 'none'; } function resetConfig() { var really = confirm('Es werden alle Einstellungen zurückgesetzt/gelöscht!'); if(really) { GM_deleteValue("Assi_UserName"); GM_deleteValue("Assi_StammName"); GM_deleteValue("Assi_Infoanzeigen"); GM_deleteValue("Assi_DeinAlter"); GM_deleteValue("Assi_FreundeSortierung"); GM_deleteValue("Assi_Notizen"); GM_deleteValue("Assi_HotkeyTimeout"); GM_deleteValue("Assi_InventarIMGheight"); GM_deleteValue("Assi_InventarTrankreihenfolge"); GM_deleteValue("Assi_Lagerauszahlungen"); GM_deleteValue("Assi_LagerauszahlungenNicks"); GM_deleteValue("Assi_MenuUhrzeit"); GM_deleteValue("Assi_MenuSKZeit"); GM_deleteValue("Assi_MenuVersionTip"); GM_deleteValue("Assi_SKAuswertung"); GM_deleteValue("Assi_ActivityReminder"); GM_deleteValue("Assi_Remindersound"); GM_deleteValue("Assi_ReminderSoundVolume"); GM_deleteValue("Assi_Standardtaetigkeit"); GM_deleteValue("Assi_MessageReminder"); GM_deleteValue("Assi_Messagesound"); GM_deleteValue("Assi_MessageSoundVolume"); GM_deleteValue("Assi_WaffenWerkzeugWarnung"); GM_deleteValue("Assi_RingWarnung"); GM_deleteValue("Assi_Gaestebucheintrag"); GM_deleteValue("Assi_Kraft"); GM_deleteValue("Assi_Intelligenz"); GM_deleteValue("Assi_Geschwindigkeit"); GM_deleteValue("Assi_List"); GM_deleteValue("Assi_Ausdauer"); GM_deleteValue("Assi_Geschick"); GM_deleteValue("Assi_NahrungRest"); GM_deleteValue("Assi_GoldRest"); GM_deleteValue("Assi_HolzRest"); GM_deleteValue("Assi_SteinRest"); GM_deleteValue("Assi_NahrungRund"); GM_deleteValue("Assi_GoldRund"); GM_deleteValue("Assi_HolzPreis"); GM_deleteValue("Assi_SteinPreis"); GM_deleteValue("Assi_Preishervorhebung"); GM_deleteValue("Assi_MarktWasserPreis"); GM_deleteValue("Assi_MarktHolzPreis"); GM_deleteValue("Assi_MarktSteinPreis"); GM_deleteValue("Assi_MarktKohlePreis"); GM_deleteValue("Assi_MarktKupferPreis"); GM_deleteValue("Assi_MarktZinnPreis"); GM_deleteValue("Assi_MarktBronzePreis"); GM_deleteValue("Assi_Hotkeys"); GM_deleteValue("Assi_MarktWasserverkaufsmenge"); GM_deleteValue("Assi_MarktHolzverkaufsmenge"); GM_deleteValue("Assi_MarktSteinverkaufsmenge"); GM_deleteValue("Assi_MarktKohleverkaufsmenge"); GM_deleteValue("Assi_MarktKupferverkaufsmenge"); GM_deleteValue("Assi_MarktZinnverkaufsmenge"); GM_deleteValue("Assi_MarktBronzeverkaufsmenge"); GM_deleteValue("Assi_MarktkleinerHeiltrankverkaufsmenge"); GM_deleteValue("Assi_MarktmittlererHeiltrankverkaufsmenge"); GM_deleteValue("Assi_MarktstarkerHeiltrankverkaufsmenge"); GM_deleteValue("Assi_MarktWachtrankverkaufsmenge"); GM_deleteValue("Assi_MarktstarkerWachtrankverkaufsmenge"); GM_deleteValue("Assi_MarktHolztrankverkaufsmenge"); GM_deleteValue("Assi_MarktSteintrankverkaufsmenge"); GM_deleteValue("Assi_MarktZinntrankverkaufsmenge"); GM_deleteValue("Assi_MarktKupfertrankverkaufsmenge"); GM_deleteValue("Assi_MarktWasserverkaufspreis"); GM_deleteValue("Assi_MarktHolzverkaufspreis"); GM_deleteValue("Assi_MarktSteinverkaufspreis"); GM_deleteValue("Assi_MarktKohleverkaufspreis"); GM_deleteValue("Assi_MarktKupferverkaufspreis"); GM_deleteValue("Assi_MarktZinnverkaufspreis"); GM_deleteValue("Assi_MarktBronzeverkaufspreis"); GM_deleteValue("Assi_MarktkleinerHeiltrankverkaufspreis"); GM_deleteValue("Assi_MarktmittlererHeiltrankverkaufspreis"); GM_deleteValue("Assi_MarktstarkerHeiltrankverkaufspreis"); GM_deleteValue("Assi_MarktWachtrankverkaufspreis"); GM_deleteValue("Assi_MarktstarkerWachtrankverkaufspreis"); GM_deleteValue("Assi_MarktHolztrankverkaufspreis"); GM_deleteValue("Assi_MarktSteintrankverkaufspreis"); GM_deleteValue("Assi_MarktZinntrankverkaufspreis"); GM_deleteValue("Assi_MarktKupfertrankverkaufspreis"); } } function deleteAllData() { var really = confirm('Es werden ALLE Daten des SZS-Assistenten gelöscht!\n- Einstellungen\n- Notizen\n- Forendaten\n- Landüberwachung'); if(really) { var keys = GM_listValues(); for(var i=0; i<key.length(); i++) { GM_deleteValue(keys[i]); } } }