Kampfwert in der Modt

Zusatztool, um eine Übersicht Eurer Kampfwerte in der MotD von „Pennergame“ zu erzeugen.

当前为 2014-11-10 提交的版本,查看 最新版本

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