Kampfwert in der Modt

Zusatzanzeige für Boost Angriffe Vatikan eingefügt. Zusatztool, um eine Übersicht Eurer Kampfwerte in der MotD von „Pennergame“ zu erzeugen.

当前为 2016-01-31 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Kampfwert in der Modt
  3. // @description Zusatzanzeige für Boost Angriffe Vatikan eingefügt. Zusatztool, um eine Übersicht Eurer Kampfwerte in der MotD von „Pennergame“ zu erzeugen.
  4. // @namespace https://greasyfork.org/de/scripts/2740-kampfwert-in-der-modt/code
  5. // @author - Pennereck.de -
  6. // @include http://*pennergame.de/gang/*
  7. // @include http://*pennergame.de/fight/
  8. // @include http://*pennergame.de/overview/
  9. // @version 2.0
  10. // @grant GM_getValue
  11. // @grant GM_xmlhttpRequest
  12. // @grant GM_addStyle
  13. // @grant GM_deleteValue
  14. // @grant GM_listValues
  15. // @grant GM_log
  16. // @grant GM_registerMenuCommand
  17.  
  18. // ==/UserScript==
  19.  
  20.  
  21. // ***********************************************************************************************
  22. // Version 2.0 Vatikan Anzeige Boost für gewonnen Angriffe hinzugefügt.
  23. // Version 1.8 Vatikan hinzugefügt.
  24. // Version 1.8 @grant Angaben hinzugefügt.
  25. // Version 1.7 Malle eingefügt
  26. // Version 1.6 Marken und Dex Anzeige für die neue Anzeige integriert. Zusätzlich wurde der Update Prozess geändert.
  27. // Version 1.5 Anpassungen Reloaded für das neue Design, instalation notwending
  28. // Version 1.5 Sylt integriert. Sollte mit Start alles laufen
  29. // Version 1.4 Das alte Design wurde über den Haufen geschmissen. Es wird nun ein Textlink in der Menuleiste eingeblendet über den das Script geladen wird. Damit sollte die Ausgabe auch bei kommenden Designänderungen bei PG laufen.
  30.  
  31. // Version 1.3 Weil das Anpassen solch einen Spaß macht! Erneut an neues Design angepasst.
  32. // Version 1.3 Anpassung an Halloween Spezial
  33. // Version 1.2 Fehler beim Namen behoben, überlange Namen wurden mit ... am Ende ausgelesen. Fehler beim senden behoben, es wurde bei aktivierter Homebase das senden blockiert.
  34. // Version 1.1 Anzeige der Booster wurde berichtigt. Es können nun auch die Werte des angelegten Booster übermittelt werden.
  35. // Anzeigefehler Wut auf der Startseite behoben. Buttongröße angepasst.
  36. // Version 1.0 Design angepasst, kleinere Bugs behoben die den Button ausgebremst haben.
  37. // Beta 0.02.6 Tempermonkey für Chrome nun möglich
  38. // Beta 0.02.5 Erste Stufe zur Anzeige der Booster eingefügt
  39. // Beta 0.02.4 München integriert
  40. // Beta 0.02.3 Anzeige für Wut integriert
  41. // Beta 0.02.2 manueller Eingabebereich inegriert
  42. // Beta 0.02.1 referer gesperrt,HHR hinzugefügt
  43. // Beta 0.02.0 angepasst
  44. // Beta 0.01.5 kleinre anzeigebugs behoben
  45. // Beta 0.01.5 Design angepasst, runden des Kampfwertes angepasst, ausgabe boost ist noch nicht aktiv.
  46. // Beta 0.01.4 Include Pennergame Koeln
  47. // Beta 0.01.3 Speed Pennersturm
  48.  
  49. //
  50. // ***********************************************************************************************
  51.  
  52. // ***********************************************************************************************
  53. // Überprüfe ob Update verfügbar
  54. // ***********************************************************************************************
  55. var version = "9"; // Updatecheck Versionsangaben für
  56. var updatestatus = "Prüfung nicht erfolgt";
  57.  
  58. // Funktion in das DOM der Seite einbinden
  59. function embedFunction(s) {
  60. document.body.appendChild(document.createElement('script')).innerHTML=s.toString().replace(/([\s\S]*?return;){2}([\s\S]*)}/,'$2');
  61. }
  62.  
  63. // Funktion zur Steuerung des DIV ( ein/ausblenden )
  64. function KW_Anzeigen() {
  65. document.getElementById('heilung-container').style.display = 'inherit';
  66. }
  67. // Funktion zur Steuerung des DIV ( ein/ausblenden )
  68. function KW_Verbergen() {
  69. document.getElementById('heilung-container').style.display = 'none';
  70. }
  71.  
  72. // Textlink erzeugen und Linkadresse festlegen
  73. function insertLink() {
  74. var menu = document.getElementById('nav-2');
  75.  
  76. var newLink = document.createElement('a');
  77. newLink.onclick = KW_Anzeigen;
  78. newLink.href = '#';
  79. newLink.style.textDecoration = 'none';
  80. newLink.style.color = 'red';
  81.  
  82. var span1 = document.createElement('span');
  83. span1.className = 'btn-left';
  84. span1.appendChild(document.createTextNode('KW in der MotD'));
  85. var span2 = document.createElement('span');
  86. span2.className = 'btn-right';
  87. span2.appendChild(span1);
  88. newLink.appendChild(span2);
  89. var item = document.createElement('li');
  90. item.appendChild(newLink);
  91. menu.insertBefore(item, menu.firstChild);
  92. }
  93.  
  94.  
  95. // erzeugen und aussehen des overlay div
  96. function insertDiv() {
  97. var aExit = document.createElement('a');
  98. aExit.style.position = 'absolute';
  99. aExit.style.right = '0px';
  100. aExit.style.top = '0px';
  101. aExit.innerHTML = 'X';
  102. aExit.style.border = '1px solid #000000';
  103. aExit.style.backgroundColor = 'red';
  104. aExit.style.padding = '3px';
  105. aExit.style.fontWeight = 'bold';
  106. aExit.href = "javascript:KW_Verbergen();";
  107. var dContent = document.createElement('div');
  108. dContent.id = 'heilung-content';
  109. var dLink = document.createElement('div');
  110. dLink.style.position = 'relative';
  111. dLink.style.width = '300px';
  112. dLink.style.margin = 'auto';
  113. dLink.style.marginTop = '40px';
  114. dLink.style.marginBottom = '40px';
  115. dLink.style.color = '#FFFFFF';
  116. dLink.style.padding = '10px';
  117. dLink.appendChild(dContent);
  118. dLink.appendChild(aExit);
  119.  
  120. var dOp = document.createElement('div');
  121. dOp.style.position = 'absolute';
  122. dOp.style.left = '0px';
  123. dOp.style.top = '0px';
  124. dOp.style.width = '100%';
  125. dOp.style.height = '100%';
  126. dOp.style.backgroundColor = '#000000';
  127. dOp.style.opacity = '0.4';
  128. var dCon = document.createElement('div')
  129. dCon.id = 'heilung-container';;
  130. dCon.style.position = 'absolute';
  131. dCon.style.left = '0px';
  132. dCon.style.top = '0px';
  133. dCon.style.width = '100%';
  134. dCon.style.zIndex = '100';
  135. dCon.style.display = 'none';
  136. dCon.appendChild(dOp);
  137. dCon.appendChild(dLink);
  138. document.body.appendChild(dCon);
  139.  
  140. }
  141.  
  142.  
  143. // Initialisierung und Ausgabe vorbereiten
  144. function init() {
  145. embedFunction(KW_Anzeigen);
  146. embedFunction(KW_Verbergen);
  147. insertLink();
  148. insertDiv();
  149. }
  150. init();
  151.  
  152. // ***********************************************************************************************
  153. // Überprüfe die Stadt
  154. // ***********************************************************************************************
  155. // ***********************************************************************************************
  156. // Berlin
  157. // ***********************************************************************************************
  158. if (location.toString().indexOf("berlin") != -1 || location.toString().indexOf("berlin.pennergame.de") != -1) {
  159. var link = 'http://berlin.pennergame.de';
  160. var tabelle = 'http://www.pennereck.de/admin/berlin.php';
  161. var stadt = 'berlin';
  162.  
  163. // ***********************************************************************************************
  164. // Koeln
  165. // ***********************************************************************************************
  166. } else if (location.toString().indexOf("koeln") != -1 || location.toString().indexOf("koeln.pennergame.de") != -1) {
  167. var link = 'http://koeln.pennergame.de';
  168. var stadt = 'köln';
  169. var tabelle = 'http://www.pennereck.de/admin/koeln.php';
  170.  
  171.  
  172. // ***********************************************************************************************
  173. // HHR
  174. // ***********************************************************************************************
  175. } else if (location.toString().indexOf("reloaded") != -1 || location.toString().indexOf("reloaded.pennergame.de") != -1) {
  176. var link = 'http://reloaded.pennergame.de';
  177. var stadt = 'reloaded';
  178. var tabelle = 'http://www.pennereck.de/admin/hhr.php';
  179.  
  180.  
  181. // ***********************************************************************************************
  182. // Muenchen
  183. // ***********************************************************************************************
  184. } else if (location.toString().indexOf("muenchen") != -1|| location.toString().indexOf("muenchen.pennergame.de") != -1) {
  185. var link = 'http://muenchen.pennergame.de';
  186. var stadt = 'münchen';
  187. var tabelle = 'http://www.pennereck.de/admin/muenchen.php';
  188. // ***********************************************************************************************
  189. // Hamburg
  190. // ***********************************************************************************************
  191. } else if (location.toString().indexOf("www.pennergame.de") != -1 || location.toString().indexOf("hamburg.pennergame.de") != -1) {
  192. var link = 'http://www.pennergame.de';
  193. var stadt = 'hamburg';
  194. var tabelle = 'http://www.pennereck.de/admin/hamburg.php';
  195.  
  196.  
  197. }
  198. // ***********************************************************************************************
  199. // Sylt
  200. // ***********************************************************************************************
  201. else if (location.toString().indexOf("sylt") != -1 || location.toString().indexOf("sylt.pennergame.de") != -1) {
  202. var link = 'http://www.sylt.pennergame.de';
  203. var stadt = 'sylt';
  204. var tabelle = 'http://www.pennereck.de/admin/sylt.php';
  205.  
  206.  
  207. }
  208. // ***********************************************************************************************
  209. // Malle
  210. // ***********************************************************************************************
  211. else if (location.toString().indexOf("malle") != -1 || location.toString().indexOf("malle.pennergame.de") != -1) {
  212. var link = 'http://www.malle.pennergame.de';
  213. var stadt = 'malle';
  214. var tabelle = 'http://www.pennereck.de/admin/malle.php';
  215.  
  216.  
  217. }
  218. // ***********************************************************************************************
  219. // Vatikan
  220. // ***********************************************************************************************
  221. else if (location.toString().indexOf("vatikan") != -1 || location.toString().indexOf("vatikan.pennergame.de") != -1) {
  222. var link = 'http://www.vatikan.pennergame.de';
  223. var stadt = 'vatikan';
  224. var tabelle = 'http://www.pennereck.de/admin/vatikan.php';
  225.  
  226.  
  227. }
  228.  
  229. // ***********************************************************************************************
  230. // Att Deff Wert ermitteln
  231. // ***********************************************************************************************
  232. GM_xmlhttpRequest({
  233. method: 'GET',
  234. url: link+'/overview/',
  235. onload: function(att_def) {
  236. var content = att_def.responseText;
  237. var atton = content.split('<span class="att">')[1];
  238. var attoff = atton.split('</span>')[0];
  239. var defon = content.split('<span class="def">')[1];
  240. var defoff = defon.split('</span>')[0];
  241. // ***********************************************************************************************
  242. // Namen ermitteln
  243. // ***********************************************************************************************
  244. var nameon = content.split('\'CrackhousefranceRegular\'; font-size: 48px;">')[1];
  245. var nameoff = nameon.split('</span>')[0];
  246.  
  247. // ***********************************************************************************************
  248. // Ermittteln ob Wut aktiv ist.
  249. // ***********************************************************************************************
  250.  
  251. // ***********************************************************************************************
  252. GM_xmlhttpRequest({
  253. method: 'GET',
  254. url: link+'/fight/',
  255. onload: function(wut) {
  256. var contentstring_wut = wut.responseText;// wut wird überprüft
  257. var suchstring_wut = /(Wutentfachung)/g;// wut wird überprüft
  258. var suchergebnis = suchstring_wut.test( contentstring_wut );// wut wird überprüft
  259. // ##WUT## Verarbeitung der Prüfung und Belegung der passenden Variablen für ##WUT##
  260. if (suchergebnis != false){
  261. var wut = 'J';
  262. var wutstatus = '<img src="http://www.pennereck.de/kw_button/ja.gif" name="keine Wut" width="12" height="12" class="image" title="Eure Bande hat Wutentfachung aktiviert!" />';
  263. }
  264.  
  265. else
  266. {
  267. var wut = 'N';
  268. var wutstatus = '<img src="http://www.pennereck.de/kw_button/nein.png" width="12" height="12" class="image" title="Eure Bande hat keine Wutentfachung aktiviert!"/>';
  269. }
  270.  
  271. //
  272.  
  273. // ***********************************************************************************************
  274. // ##BOOST## Verarbeitung der Prüfung und Belegung der passenden Variablen für ##BOOST##
  275. // ***********************************************************************************************
  276.  
  277.  
  278. GM_xmlhttpRequest({
  279. method: 'GET',
  280. url: link+'/fight/',
  281. onload: function(responseDetails) {
  282. var contentstring = responseDetails.responseText;
  283. var suchstring = /(Stärkung)/g;
  284. var boost = '--';
  285. var boost2 = 'No';
  286. var booston = '';
  287. var boostoff = '<img src="http://www.pennereck.de/kw_button/nein.png" width="12" height="12" class="image" title="Du hast keinen Booster aktiviert!"/>';
  288. var suchergebnis = suchstring.test(contentstring);
  289. if(suchergebnis != false) {
  290. var content = responseDetails.responseText;
  291. booston = content.split('<span><b>Stärkung:</b><br />')[1];
  292. boostoff = booston.split('<br />')[0].trim(); // der 1. Boost
  293. boost2 = booston.split('<br />')[1].trim(); // der 2. Boost
  294. boost = boostoff.charAt(0) + boostoff.substring(5); // beschneiden auf 2 Zeichen Boost 1
  295. boost2 = boost2.charAt(0) + boost2.substring(5); // beschneiden auf 2 Zeichen Boost 2
  296.  
  297. }
  298. if (boost2 == 'D3') //prüfen ob boost A2+D3 angelegt
  299. {
  300. boost = 'X5'; // wenn A2+D3 dann Variable belegen für DB
  301. boostoff = 'A2 + D3' // Ausgabe Button
  302. }
  303. if (boostoff == 'ATT: 10') //prüfen ob Berserker benutzt wird
  304. {
  305. boost = '10'; // wenn Berserker benutzt dann Variable belegen für DB
  306. boostoff = 'Du Tier ;)' // Ausgabe Button
  307. }
  308.  
  309. // ***********************************************************************************************
  310. // % im Vatikan ermitteln
  311. // ***********************************************************************************************
  312. GM_xmlhttpRequest({
  313. method: 'GET',
  314. url: link+'/fight/',
  315. onload: function(bounsatt) {
  316. var content = bounsatt.responseText;
  317. var bounsatton = content.split('padding: 3px;">')[2];
  318. var bounsattoff = (bounsatton != undefined) ? bounsatton.split('% ATT</b></div>')[0].trim() : '';
  319. var bonus = bounsattoff.charAt(1);
  320. // ***********************************************************************************************
  321. // Skill
  322. // ***********************************************************************************************
  323. GM_xmlhttpRequest({
  324. method: 'GET',
  325. url: link+'/skills/',
  326. onload: function(gangid) {
  327. var content = gangid.responseText;
  328. var sOn = content.split('skill_progress_text">')[1];
  329. var sOff = !!sOn ? sOn.split('</')[0].trim() : '';
  330. // ***********************************************************************************************
  331. // /Skill
  332. // ***********************************************************************************************
  333.  
  334. // ***********************************************************************************************
  335. // KW berechnen
  336. // ***********************************************************************************************
  337. var kampfwert = attoff*1.1;
  338. var kampfwert3 = Number(kampfwert)+Number(defoff);
  339. var kampfwert2 = (Math.round(kampfwert3 * 10000) / 10000);
  340. var name = nameoff;
  341. GM_xmlhttpRequest({
  342. method: 'GET',
  343. url: link+'/gang/',
  344. onload: function(gangid) {
  345. var content = gangid.responseText;
  346. var gidon = content.split('<a href="/profil/bande:')[1];
  347. var gidoff = (gidon != undefined) ? gidon.split('/')[0].trim() : '';
  348. var right = '550px';
  349. var top = '92px';
  350.  
  351.  
  352. // ***********************************************************************************************
  353. // Anpassung neue Halloween Design
  354. // ***********************************************************************************************
  355.  
  356. GM_xmlhttpRequest({
  357. method: 'GET',
  358. url: link+'/overview/',
  359. onload: function(halloween) {
  360. var contentstring = halloween.responseText;
  361. var suchstring_halloween = /(http:\/\/static.pennergame.de\/styles\/pv4\/weather\/halloween.css)/g;
  362. var suchergebnis_halloween = suchstring_halloween.test( contentstring );
  363. if (suchergebnis != true){
  364. var right = '0px';
  365. var top = '92px';
  366. }
  367. // ***********************************************************************************************
  368. // Marken ermitteln
  369. // ***********************************************************************************************
  370. GM_xmlhttpRequest({
  371. method: 'GET',
  372. url: link+'/daily/rewards/',
  373. onload: function(marken) {
  374. var content = marken.responseText;
  375. var markenon = content.split('<span style="font-size:18px; color:#FFF; font-weight:bold">')[1];
  376. var markenoff = (markenon != undefined) ? markenon.split('<')[0].trim() : '';
  377.  
  378. // ***********************************************************************************************
  379. // DEX ermitteln
  380. // ***********************************************************************************************
  381. GM_xmlhttpRequest({
  382. method: 'GET',
  383. url: link+'/activities/',
  384. onload: function(dex) {
  385. var content = dex.responseText;
  386. var dexon = content.split('Deine Geschicklichkeit:')[1];
  387. var dexoff = (dexon != undefined) ? dexon.split('<')[0].trim() : '';
  388. // ***********************************************************************************************
  389. // Update ermitteln
  390. // ***********************************************************************************************
  391. GM_xmlhttpRequest({
  392. method: 'GET',
  393. url: 'http://www.pennereck.de/update.php',
  394. onload: function(update) {
  395. var content = update.responseText;
  396. var updateon = content.split('<div id="kw_in_der_modt_update">')[1];
  397. var updateoff = (updateon != undefined) ? updateon.split('<')[0].trim() : '';
  398.  
  399. if (updateoff > version)
  400. {
  401. var updatestatus = "<span style=\"font-size:12px; color:red;\">Update verfügbar! <a href=\"https://greasyfork.org/de/scripts/2740-kampfwert-in-der-modt\" target=\"_new\" title=\"Scipt installieren\"> Update installieren</a></span>";
  402. }
  403. else
  404. {
  405. var updatestatus = "<span style=\"font-size:12px; color:green;\">Version aktuell!</span>";
  406. }
  407.  
  408.  
  409. // Im Vatikan berechnen wie hoch der Bonusboost durch gewonnene Angriffe ist.
  410. var boostkw = kampfwert2/100;
  411. boostkw = boostkw*bonus;
  412. // ***********************************************************************************************
  413. // Ausgabe in der Modt
  414. // ***********************************************************************************************
  415. document.getElementById('heilung-content').innerHTML='<table style="background-color: #292929;border: thin solid white;-moz-border-radius: 5px;border-radius: 5px " width="300px"><tr><td colspan="3" align="left">GM-Script &quot;Kampfwert&nbsp;in der MotD" (Version:2.0) </td></tr><tr><td width="150">&nbsp;</td><td>&nbsp;</td><td></td></tr><tr><td colspan="2" align="left">Folgende Werte werden übertragen:</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Name:</td><td align="left">'+name+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Stadt:</td><td align="left">'+stadt+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Kampfwert:</td><td align="left">'+kampfwert2+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Bonus ATT:</td><td align="left">+'+bonus+'% (+'+boostkw+' KW)</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Att:</td><td align="left">'+attoff+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Def:</td><td align="left">'+defoff+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Wutstatus:</td><td align="left">'+wutstatus+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Booststatus:</td><td align="left">'+boostoff+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Sammelmarken:</td><td align="left">'+markenoff+'</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;Dex:</td><td align="left">'+dexoff+'</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td align="left">&nbsp;<input target="_self" style="cursor: pointer;" name="kw_senden" type="button" id="kw_senden" value="KW übertragen"/></td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td></td><td>'+updatestatus+' </td><td>&nbsp;</td></tr></table>';
  416. // -----------------------------------------------------
  417. +'</div>'
  418.  
  419. // ***********************************************************************************************
  420. // Übermitteln der Daten
  421. // ***********************************************************************************************
  422.  
  423. document.getElementById('kw_senden').addEventListener('click', function kampfwert_senden(){
  424.  
  425.  
  426. GM_xmlhttpRequest({
  427. method: 'POST',
  428. url: tabelle,
  429. headers: {
  430. 'Content-type': 'application/x-www-form-urlencoded'
  431. },
  432. data: encodeURI('kw_name='+nameoff+'&kw_wert='+kampfwert2+'&kw_att='+attoff+'&kw_def='+defoff+'&kw_gangid='+gidoff+'&kw_stadt='+stadt+'&wut='+wut+'&boost='+boost+'&marken='+markenoff+'&dex='+dexoff+'&fightboost='+bonus),
  433. onload: function(responseDetails) {location.reload();
  434. }});
  435.  
  436.  
  437.  
  438. },false);
  439.  
  440.  
  441.  
  442.  
  443. }});
  444. }});
  445. }});
  446. }});
  447. }});
  448. }});
  449. }});
  450. }});
  451. }});
  452. }});
  453.  
  454. // **************************************************************************************
  455. // Das bitterböse ENDE
  456. // **************************************************************************************
  457.  
  458. // copyright 2012 4D-ESIGN - Pennereck.de***********************************************
  459. // Scriptidee und Schnippselspender by JAVAN - Danke für die Freigabe********************
  460. // **************************************************************************************
  461. // Dieses Werk ist durch eine Creative Commons by-nc-sa Lizenz geschuetzt.
  462. // Bearbeiten oder Vervielfaeltigen ist nur nach Absprache mit dem Autor gestattet.
  463. // Bei Nichtbeachtung werden rechtliche Schritte eingeleitet.
  464. // JavaScript Document