// ==UserScript== // @name Werte Abgabe für Legionäre // @namespace http://greasyfork.org/scripts/2064-werte-abgabe-für-legionäre // @author Bizzy13 // @version 2.0.1 Bugfix HT-Shop Redirect Sylt // @description Gibt eine Meldung aus sobald der Legionär seine Werte auf DF.de neu abgeben muss // @include http://*.pennergame.de/* // @exclude http://*board.pennergame.de/* // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @downloadURL none // ==/UserScript==  //======================// // Update Informationen // //======================// var Script_URL = 'http://greasyfork.org/scripts/2064-werte-abgabe-für-legionäre'; var Update_URL = 'http://greasyfork.org/scripts/2064-werte-abgabe-für-legionäre/code'; var Version = '2.0.1'; //===================================HISTORY====================================// // // @version 2.0.1 Bugfix HT-Shop Redirect Sylt // @version 2.0 Scriptumzug nach greasyfork.org // @version 1.1.8 Testupdate // @version 1.1.7 Updatefunktion angepasst // @version 1.1.6 Anpassung zum auslesen des Usernamens // @version 1.1.5 Abgabeverfahren geändert um Probleme mit Pop-up zu lösen // @version 1.1.4 Auto-Updatemeldung angepasst // @version 1.1.3 GET URL's korregiert // @version 1.1.2 Variablenname korregiert // @version 1.1.1 Einige Testvariablen entfernt // @version 1.1 Test Update // //==============================================================================// //============================// // Update-Funktion im 6h Takt // //============================// var Jetzt = (new Date().getTime()/3600000).toString().split('\.')[0]; var Letztes_Update = GM_getValue('Letztes_Update','0'); if (Jetzt - Letztes_Update >= 6) { GM_xmlhttpRequest({ method: 'GET', url: Update_URL, onload: function(responseDetails) { var Scriptname = (/@name\s*(.*?)\s*$/m.exec(responseDetails.responseText))[1].split('')[0]; var History = (/@version\s*(.*?)\s*$/m.exec(responseDetails.responseText))[1].split('')[0]; var Neue_Version = (/@version\s*(.*?)\s/m.exec(responseDetails.responseText))[1]; if (Neue_Version != Version) { if (confirm('Es gibt eine neue Version des Skriptes '+Scriptname+':\n\nVersion: \n'+History+'\n\nDie neue Version kann Fehlerbehebungen und/oder neue Funktionen beinhalten.\n\nEine Aktualisierung ist empfehlenswert und kann direkt anschliessend durchgeführt werden.')) { window.location.href = ''+Script_URL+''; } } } }, false); GM_setValue('Letztes_Update', Jetzt); } //=================================================================// // Ermitteln der Stadt und setzen des Stadtspezifischen Grundlinks // //=================================================================// if (location.toString().indexOf("www.pennergame.de") != -1) { var Stadt = 'Hamburg'; var Stadtkuerzel = 'de_DE'; var Link = 'http://www.pennergame.de/'; var Meldung = 'Deine Kraftwerte der Stadt Hamburg sind älter als 7 Tage!'; var Skill_Suchmaske_Start = ''; var Skill_Suchmaske_Ende = ''; } if (location.toString().indexOf("berlin") != -1) { var Stadt = 'Berlin'; var Stadtkuerzel = 'bl_DE'; var Link = 'http://berlin.pennergame.de/'; var Meldung = 'Deine Kraftwerte der Stadt Berlin sind älter als 7 Tage!'; var Skill_Suchmaske_Start = ''; var Skill_Suchmaske_Ende = ''; } if (location.toString().indexOf("muenchen") != -1) { var Stadt = 'München'; var Stadtkuerzel = 'mu_DE'; var Link = 'http://muenchen.pennergame.de/'; var Meldung = 'Deine Kraftwerte der Stadt München sind älter als 7 Tage!'; var Skill_Suchmaske_Start = ''; var Skill_Suchmaske_Ende = ''; } if (location.toString().indexOf("koeln") != -1) { var Stadt = 'Köln'; var Stadtkuerzel = 'kl_DE'; var Link = 'http://koeln.pennergame.de/'; var Meldung = 'Deine Kraftwerte der Stadt Köln sind älter als 7 Tage!'; var Skill_Suchmaske_Start = ''; var Skill_Suchmaske_Ende = ''; } if (location.toString().indexOf("reloaded") != -1) { var Stadt = 'Hamburg Reloaded'; var Stadtkuerzel = 'hr_DE'; var Link = 'http://reloaded.pennergame.de/'; var Meldung = 'Deine Kraftwerte der Stadt HRRamburg sind älter als 7 Tage!'; var Skill_Suchmaske_Start = ''; var Skill_Suchmaske_Ende = ''; } if (location.toString().indexOf("sylt") != -1) { var Stadt = 'Sylt'; var Stadtkuerzel = 'sy_DE'; var Link = 'http://sylt.pennergame.de/'; var Meldung = 'Deine Kraftwerte der Stadt Sylt sind älter als 7 Tage!'; var Skill_Suchmaske_Start = ''; var Skill_Suchmaske_Ende = ''; } //============================// // Hinweistext zusammensetzen // //============================// var Hinsweistext = 'Deine Kraftwerte für '+Stadt+' sind älter als 7 Tage!\n\nDurch ein Klick auf OK werden die abzugebenden Werte ermittelt.'; //====================================================// // Setzen der Zeitvariablen für das Kontrollintervall // //====================================================// var Zeitstempel = (new Date().getTime()/3600000).toString().split('\.')[0]; var Letzte_Kontrolle = GM_getValue('Letzte_Kontrolle['+Stadt+']','0'); //======================// // Kontrolle im 1h Takt // //======================// if (Zeitstempel - Letzte_Kontrolle >= 1) { //===================// // Username auslesen // //===================// GM_xmlhttpRequest( { method: 'GET', url: Link+'overview/', onload: function(responseDetails) { var Quelltext = responseDetails.responseText; var Username = Quelltext.split('font-family:\'CrackhousefranceRegular\'; font-size: 48px;">')[1].split('')[0]; //=======================================// // Userdaten über Downfight OPI abrufen // //=======================================// GM_xmlhttpRequest( { method: 'GET', url: 'http://downfight.de/opi.php?username='+Username+'&stadt='+Stadtkuerzel, onload: function(responseDetails) { var Quelltext = responseDetails.responseText; var Gruppe = Quelltext.split('')[1].split('')[0]; //============================// // Wenn der User Legionär ist // //============================// if (Gruppe == 'Kopfgeld Legion') { //===========================// // DF-Login Parameter setzen // //===========================// var DF_Domain = new Array('', '1.', '2.', '3.', '4.'); var Index = 0; //=======================// // DF-Login Suchfunktion // //=======================// function Login(Wert) // "Wert" beschreibt eine Zahl welche durch "Index" gesetzt wird { if (Wert < DF_Domain.length - 1) { GM_xmlhttpRequest( { method: 'GET', url: 'http://'+DF_Domain[Wert]+'downfight.de/opi.php?username='+Username+'&stadt='+Stadtkuerzel+'&showlogin=1', onload: function(responseDetails) { var Quelltext = responseDetails.responseText; var DF_Login = Quelltext.split('')[1].split('')[0]; //=========================// // Kein passender DF-Login // //=========================// if (DF_Login == 0) { Index++; Login(Index); } //=========================// // Kein passender DF-Login // //=========================// if (DF_Login == 1) { Index++; Login(Index); } //====================// // Passender DF-Login // //====================// if (DF_Login == 2) { var Hauptquartier = 'http://'+DF_Domain[Index]+'downfight.de/?seite=hauptquartier'; //============================================// // Quelltext vom Legionshauptquartier abrufen // //============================================// GM_xmlhttpRequest( { method: 'GET', url: Hauptquartier, onload: function (responseDetails) { var Quelltext = responseDetails.responseText; //====================================================// // Hauptquartier nach passenden Meldungen durchsuchen // //====================================================// if (Quelltext.search(Meldung) != -1) { //===============================================================// // Hinweistext anzeigen / wenn der User seine Werte abgeben will // //===============================================================// if (confirm(Hinsweistext) == true) { var Ziel_URL = 'http://'+DF_Domain[Index]+'downfight.de/?seite=hauptquartier'; //=================// // Skills abfragen // //=================// GM_xmlhttpRequest( { method: 'GET', url: Link+'skills/', onload: function (responseDetails) { var Quelltext = responseDetails.responseText; //========================================================// // Skills auslesen & überflüssige "Whitespaces" entfernen // //========================================================// var ATT_Skill = Number(Quelltext.split(Skill_Suchmaske_Start)[1].split(Skill_Suchmaske_Ende)[0].replace(/\s/g, '')); var DEF_Skill = Number(Quelltext.split(Skill_Suchmaske_Start)[2].split(Skill_Suchmaske_Ende)[0].replace(/\s/g, '')); var DEX_Skill = Number(Quelltext.split(Skill_Suchmaske_Start)[3].split(Skill_Suchmaske_Ende)[0].replace(/\s/g, '')); //=============================// // verfügbare Waffen ermitteln // //=============================// GM_xmlhttpRequest( { method: 'GET', url: Link+'city/weapon_store/', onload: function (responseDetails) { var Quelltext = responseDetails.responseText; var Waffe = 0; //===========================================// // Prüfen ob überhaupt Waffen vorhanden sind // //===========================================// if (Quelltext.search(//) != -1) { var Dokument = document.createElement('div'); Dokument.innerHTML = Quelltext; var Tabellen = Dokument.getElementsByTagName('table'); //==========================================// // Schleife zum extrahieren der Waffenwerte // //==========================================// for (var i = 0; i < Tabellen.length; i++) { var Temp = Number(Quelltext.split('')[i+1].split('')[0].replace(/\s\+/g, '')); //=============================// // besten Waffenwert speichern // //=============================// if (Waffe < Temp) { Waffe = Temp; } } } //=================================// // verfügbare Eigenheime ermitteln // //=================================// GM_xmlhttpRequest( { method: 'GET', url: Link+'city/home/', onload: function (responseDetails) { var Quelltext = responseDetails.responseText; var Eigenheim = 0; //===============================================// // Prüfen ob überhaupt Eigenheime vorhanden sind // //===============================================// if (Quelltext.search(//) != -1) { var Dokument = document.createElement('div'); Dokument.innerHTML = Quelltext; var Tabellen = Dokument.getElementsByTagName('table'); //=============================================// // Schleife zum extrahieren der Eigenheimwerte // //=============================================// for (var i = 0; i < Tabellen.length; i++) { Temp = Number(Quelltext.split('')[i+1].split('')[0].replace(/\s\+/g, '')); //================================// // besten Eigenheimwert speichern // //================================// if (Eigenheim < Temp) { Eigenheim = Temp; } } } //================================// // verfügbare Haustiere ermitteln // //================================// GM_xmlhttpRequest( { method: 'GET', url: Link+'city/pet_store/', onload: function (responseDetails) { var Quelltext = responseDetails.responseText; var Dokument = document.createElement('div'); Dokument.innerHTML = Quelltext; var Tabellen = Dokument.getElementsByTagName('table'); var Haustier = new Object(); Haustier['ATT'] = 0; Haustier['DEF'] = 0; // Bugfix HT-Shop (Redirect Overview) if(Stadtkuerzel != 'sy_DE'){ //============================================// // Schleife zum extrahieren der Haustierwerte // //============================================// for (var i = 0; i < Tabellen.length; i++) { Temp_ATT = Number(Quelltext.split('')[i+1].split('')[0].replace(/\s/g, '')); Temp_DEF = Number(Quelltext.split('')[i+1].split('')[0].replace(/\s/g, '')); //=================================================================// // bestes Haustier ermitteln / ATT & DEF Werte des Tiers speichern // //=================================================================// if (Haustier['ATT'] + Haustier['DEF'] < Temp_ATT + Temp_DEF) { Haustier['ATT'] = Temp_ATT; Haustier['DEF'] = Temp_DEF; } } } //==============================// // verfügbare Plunder ermitteln // //==============================// GM_xmlhttpRequest( { method: 'GET', url: Link+'stock/plunder/ajax/?c=1', onload: function (responseDetails) { var Quelltext = responseDetails.responseText; var Plunder = new Object(); Plunder['ATT_Festwert'] = 0; Plunder['ATT_Prozent'] = 0; Plunder['DEF_Festwert'] = 0; Plunder['DEF_Prozent'] = 0; //=======================================// // Prüfen ob Kampfplunder vorhanden sind // //=======================================// if (Quelltext.search(/
    /) != -1) { var Dokument = document.createElement('div'); Dokument.innerHTML = Quelltext; var Tabellen = Dokument.getElementsByClassName("line"); //===========================================// // Schleife zum extrahieren der Plunderwerte // //===========================================// for (var i = 0; i < Tabellen.length; i++) { String = Quelltext.split('
      ')[i+1].split('')[0].replace(/\s/g, ''); //===============================================// // nachsehen ob der Plunder eine ATT Wirkung hat // //===============================================// if (String.search(/ATT:/) != -1) { ATT_String = String.split('
    • A')[1].split('/li>')[0]; //====================================================// // nachsehen ob der Plunder eine ATT Wirkung in % hat // //====================================================// if (ATT_String.search(/\+/) != -1) { Temp_Plunder_ATT_Festwert = Number(ATT_String.split('TT:')[1].split('+')[0]); Temp_Plunder_ATT_Prozent = Number(ATT_String.split('+')[1].split('%')[0]); } //=============================================// // wenn der Plunder keine ATT Wirkung in % hat // //=============================================// else { Temp_Plunder_ATT_Festwert = Number(ATT_String.split('TT:')[1].split('<')[0]); Temp_Plunder_ATT_Prozent = 0; } } //============================================// // Wenn der Plunder gar keine ATT Wirkung hat // //============================================// else { Temp_Plunder_ATT_Festwert = 0; Temp_Plunder_ATT_Prozent = 0; } //===============================================// // nachsehen ob der Plunder eine DEF Wirkung hat // //===============================================// if (String.search(/DEF:/) != -1) { DEF_String = String.split('
    • D')[1].split('/li>')[0]; //====================================================// // nachsehen ob der Plunder eine DEF Wirkung in % hat // //====================================================// if (DEF_String.search(/\+/) != -1) { Temp_Plunder_DEF_Festwert = Number(DEF_String.split('EF:')[1].split('+')[0]); Temp_Plunder_DEF_Prozent = Number(DEF_String.split('+')[1].split('%')[0]); } //=============================================// // wenn der Plunder keine DEF Wirkung in % hat // //=============================================// else { Temp_Plunder_DEF_Festwert = Number(DEF_String.split('EF:')[1].split('<')[0]); Temp_Plunder_DEF_Prozent = 0; } } //============================================// // Wenn der Plunder gar keine DEF Wirkung hat // //============================================// else { Temp_Plunder_DEF_Festwert = 0; Temp_Plunder_DEF_Prozent = 0; } //========================================================// // Berechnen des KW's mit den gespeicherten Plunderwerten // //========================================================// var Fight_ATT = Math.floor((ATT_Skill + Waffe + Haustier['ATT'] + Plunder['ATT_Festwert']) * 1.35 * (Plunder['ATT_Prozent'] / 100 + 1)); var Fight_DEF = Math.floor((DEF_Skill + Eigenheim + Haustier['DEF'] + Plunder['DEF_Festwert']) * 1.35 * (Plunder['DEF_Prozent'] / 100 + 1)); var KW = Math.round((Fight_ATT * 1.1 + Fight_DEF) * 100) / 100; //=======================================================// // Berechnen des KW's mit den ausgelesenen Plunderwerten // //=======================================================// Temp_Fight_ATT = Math.floor((ATT_Skill + Waffe + Haustier['ATT'] + Temp_Plunder_ATT_Festwert) * 1.35 * (Temp_Plunder_ATT_Prozent / 100 + 1)); Temp_Fight_DEF = Math.floor((DEF_Skill + Eigenheim + Haustier['DEF'] + Temp_Plunder_DEF_Festwert) * 1.35 * (Temp_Plunder_DEF_Prozent / 100 + 1)); Temp_KW = Math.round((Temp_Fight_ATT * 1.1 + Temp_Fight_DEF) * 100) / 100; //==========================================================// // Vergleichen der KW's & speichern der besten Plunderwerte // //==========================================================// if (KW < Temp_KW) { Plunder['ATT_Festwert'] = Temp_Plunder_ATT_Festwert; Plunder['ATT_Prozent'] = Temp_Plunder_ATT_Prozent; Plunder['DEF_Festwert'] = Temp_Plunder_DEF_Festwert; Plunder['DEF_Prozent'] = Temp_Plunder_DEF_Prozent; } } } //=======================// // Sammelmarken auslesen // //=======================// GM_xmlhttpRequest( { method: 'GET', url: Link+'daily/rewards/', onload: function (responseDetails) { var Quelltext = responseDetails.responseText; var Sammelmarken = Quelltext.split('font-weight:bold">')[1].split('')[0]; //========================// // Rueckgabetext erstellen // //========================// var Rueckgabetext = 'Folgende Werte werden durch ein Klick auf OK abgegeben:\n\nStadt: '+Stadt+'\nATT: '+Fight_ATT+'\nDEF: '+Fight_DEF+'\nDEX: '+DEX_Skill+'\nSammelmarken: '+Sammelmarken; //========================================// // Rückmeldung über die abzugebene Sachen // //========================================// if (confirm(Rueckgabetext) == true) { //=================================// // Ermittelte Werte bei DF abgeben // //=================================// var Abgabe = document.createElement("div"); var Abgabebereich = document.getElementsByTagName('body')[0]; Abgabebereich.appendChild(Abgabe); Abgabe.innerHTML +='
      ' +'' +'' +'' +'' +'' +'' +'
      '; document.Werte_Post.style.visibility = 'hidden'; document.Werte_Post.submit(); document.Werte_Post.remove; } } } ); } } ); } } ); } } ); } } ); } } ); } } } } ); } } } ); } } Login(Index); } } } ); } } ); GM_setValue('Letzte_Kontrolle['+Stadt+']', Zeitstempel); } //=======================================================================// // Beim Logout aus PG den Kontrollzeitstempel für die Stadt zurücksetzen // //=======================================================================// if (location.toString().indexOf("pennergame.de/logout/") != -1) { GM_deleteValue('Letzte_Kontrolle['+Stadt+']'); }