Guest User

Glaskugel

a guest
Jul 21st, 2019
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 142.41 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Glaskugel
  3. // @namespace Glaskugel
  4. // @match https://game.stne.net/*
  5. // @match http://game.stne.net/*
  6. // @version 99
  7. // @grant GM_xmlhttpRequest
  8. // @grant GM_getValue
  9. // @grant GM_setValue
  10. // @grant GM_listValues
  11. // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
  12. // @require http://www.entrox-company.de/Glaskugel/js/jquery.contextMenu.js
  13. // @require http://www.entrox-company.de/Glaskugel/js/print_r.func.js
  14. // @connect www.entrox-company.de
  15. // @unwrap
  16. // ==/UserScript==
  17.  
  18.  
  19.  
  20. /*jslint devel: true, passfail: false, eqeq: true, plusplus: true, regexp: true, unparam: true, sloppy: true, stupid: true, todo: true, vars: true, white: true */
  21.  
  22. //localStorage document $ GM_getValue GM_setValue event GM_xmlhttpRequest escape window print_r location
  23.  
  24.  
  25. /* System initialisieren */
  26. var debug = 1; //0=nichts, 1==konsole/nur force-debug, 2==alles
  27. var version = GM_info.script.version;
  28. var baseurl = "http://www.entrox-company.de/Glaskugel/";
  29.  
  30.  
  31. var stne_url = "http://game.stne.net/";
  32. if (location.href.indexOf("https") == 0) {
  33. stne_url = "https://game.stne.net/";
  34. }
  35.  
  36. // DNC //
  37.  
  38.  
  39. /* Mauspositionen tracken */
  40. var mausPosition = {};
  41. $("*").mousemove(function (e) { mausPosition.X = event.pageX; mausPosition.Y = event.pageY; });
  42.  
  43.  
  44.  
  45.  
  46.  
  47. // Debug-Melde-Box
  48. function melde(txt, forcedebug) {
  49. if ($("img[src*='navi2_0.png']").length == 0) { // Nicht im Menü zeigen
  50. if (debug == 2 || forcedebug) {
  51. meldeBox.contentAppend(txt);
  52. }
  53. }
  54. if (debug == 1) {
  55. console.log(txt);
  56. }
  57. }
  58.  
  59. // Config auslesen
  60. function getConfig(param) {
  61. return GM_getValue(param);
  62. }
  63.  
  64. // Config speichern
  65. function setConfig(param, value) {
  66. return GM_setValue(param, value);
  67. }
  68.  
  69. /* Hilfsfunktion */
  70. function inArray(needle, haystack) {
  71. var i;
  72. for (i = 0; i < haystack.length; i++) {
  73. if (haystack[i] == needle) {
  74. return true;
  75. }
  76. }
  77. return false;
  78. }
  79.  
  80. //Klasse für Info-Boxen
  81. //Wird momentan benötigt für: Info-Box am Mauszeiger, Contextmenü, Ergebnisdarstellung (z.B. Oberflächenscan)
  82. class InfoBox {
  83. constructor(id, content = '', headline = true) { //ID, Inhalt, Kopfzeile mit Schließen-Button
  84. if (headline) {
  85. content = "<table><tr><td style='text-align:left;'><a href='#' name='closeLayer'><small title='Schließen' style='color:red; font-weight:bold;'>[x]</small></a></td></tr><tr><td name='content'></td></tr></table>";
  86. } else {
  87. content = "<div name='content'></div>";
  88. }
  89. $("body").append("<div id='" + id + "' style='position: absolute; top:30px; left:100px; border:2px solid #666666; background-color:#000000; padding:5px;'>" + content + "</div>");
  90. this.obj = $("#" + id);
  91. $("#" + id).find("[name='closeLayer']").click(function () { $(this).closest("div").hide(); });
  92. this.hide();
  93. }
  94. verfolgeMaus() {
  95. $("body").mousemove(function (e) { $(("#infoLayer")).css({top: event.pageY-10, left: event.pageX+20, position:'absolute'}); });
  96. }
  97. springeZuMaus() {
  98. $(this.obj).css({top: mausPosition.Y-10, left: mausPosition.X+10});
  99. }
  100. positionRechts() {
  101. $(this.obj).css('left', '');
  102. $(this.obj).css('right', '50px');
  103. }
  104. hide(id) {
  105. $(this.obj).hide();
  106. }
  107. show() {
  108. $(this.obj).show();
  109. }
  110. append(htmlObj) {
  111. $(this.obj).find("[name='content']").append(htmlObj);
  112. }
  113. content(data) {
  114. $(this.obj).find("[name='content']").html(data);
  115. this.show();
  116. }
  117. contentAppend(data) {
  118. $(this.obj).find("[name='content']").html($(this.obj).find("[name='content']").html() + data + "<br>");
  119. this.show();
  120. }
  121.  
  122. }
  123.  
  124.  
  125. /* Info-Boxen initieren */
  126. {
  127. //Box, die die Maus verfolgt, z.B. für Planetenbesitzer
  128. var infoBoxMaus = new InfoBox("infoLayer", "", false); //Hier wird Planetenbesitzer angezeigt
  129. infoBoxMaus.verfolgeMaus();
  130. //Statische Box zum wegklicken, z.B. für Oberflächenscans
  131. var infoBoxFixed = new InfoBox("infoLayer2"); //Für Oberflächenscans
  132. //Box für Context-Menü
  133. var infoBoxContext = new InfoBox("contextMenu", "", false); //Kontextmenü
  134. //Box für (Debug-)Meldungen
  135. var meldeBox = new InfoBox("meldebox", "Inhalt", true);
  136. meldeBox.positionRechts();
  137.  
  138.  
  139. //TODO: Folgendes in die Schiffs-Seite verschieben
  140. infoBoxContext.append(getButton('Sektor scannen', 'gb1', scanSectorByClick));
  141. infoBoxContext.append(getButton('Oberflächenscan', 'gb2', showOberflaeche));
  142. infoBoxContext.append(getButton('Schiffe im Sektor', 'gb3', showSchiffe));
  143. infoBoxContext.append(getButton('Schiffe im Orbit', 'gb4', showSchiffeOrbit));
  144. infoBoxContext.append(getButton('Spielerdaten', 'gb5', function (e) { alert('In Arbeit'); }));
  145. }
  146.  
  147.  
  148.  
  149.  
  150. // Wird für Mausposition gebraucht
  151. var kololinks;
  152.  
  153. var felder;
  154. var isMenu = 0;
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162. function MarkierenNachTyp(e) {
  163. var max = parseInt($("#maxnr")[0].value,10);
  164. $("input.box[typid='"+e.currentTarget.typid+"']:lt("+max+")").attr('checked', true);
  165.  
  166. if ($("#att")[0].checked == true) {
  167. var action = $("a>img.icon[src='i/b/autowaffe.gif']").last().parent()[0].href;
  168. var url = /\'(.*)\'/.exec(action)[1];
  169. document.getElementsByName("form_top")[0].action = url;
  170. document.getElementsByName("form_top")[0].submit();
  171. }
  172.  
  173.  
  174. }
  175.  
  176.  
  177. // Gibt einen STNE-HTML-Button zurück
  178. function getButton(Text, bid, callbackFunktion) {
  179. var id = Math.random()*1001;
  180.  
  181. var table = document.createElement("table");
  182. table.setAttribute("cellspacing", "1");
  183. table.setAttribute("cellpadding", "0");
  184. table.setAttribute("border", "0");
  185. table.setAttribute("id", bid);
  186.  
  187. var tr = document.createElement("tr");
  188. table.appendChild(tr);
  189.  
  190. var td1 = document.createElement("td");
  191. td1.setAttribute("class", "nb");
  192. tr.appendChild(td1);
  193.  
  194. var img1 = document.createElement("img");
  195. img1.setAttribute("style", "padding: 0pt;margin-bottom: 0pt;margin-top: 0pt;");
  196. img1.setAttribute("src", stne_url + "t/1/s/ln.gif");
  197. img1.setAttribute("id", "bimg_"+id+"_1");
  198. td1.appendChild(img1);
  199.  
  200. var td2 = document.createElement("td");
  201. td2.setAttribute("class", "button");
  202. td2.setAttribute("onmouseover", "javascript:H("+id+", 't/1/s/')");
  203. td2.setAttribute("onmouseout", "javascript:U("+id+", 't/1/s/')");
  204. tr.appendChild(td2);
  205. var nobr = document.createElement("nobr");
  206. td2.appendChild(nobr);
  207. td2.setAttribute("width", "120");
  208.  
  209. var alink = document.createElement("a");
  210. alink.setAttribute("style", "cursor: pointer;");
  211. alink.appendChild(document.createTextNode(Text));
  212. alink.addEventListener('click', callbackFunktion, false);
  213. nobr.appendChild(document.createTextNode("\u00a0\u00a0"));
  214. nobr.appendChild(alink);
  215. nobr.appendChild(document.createTextNode("\u00a0\u00a0"));
  216.  
  217. var td3 = document.createElement("td");
  218. td3.setAttribute("class", "nb");
  219. tr.appendChild(td3);
  220.  
  221. var img3 = document.createElement("img");
  222. img3.setAttribute("style", "padding: 0pt;margin-bottom: 0pt;margin-top: 0pt;");
  223. img3.setAttribute("src", stne_url + "t/1/s/rn.gif");
  224. img3.setAttribute("id", "bimg_"+id+"_2");
  225. td3.appendChild(img3);
  226.  
  227. return table;
  228. }
  229.  
  230. // Zeigt das ContextMenu
  231. function showContextMenu(e) {
  232. infoBoxMaus.hide();
  233.  
  234.  
  235. infoBoxContext.springeZuMaus();
  236. infoBoxContext.show();
  237.  
  238. var contextMenu = document.getElementById('contextMenu');
  239. // Übernimmt Koordianten des Trigger-Objekts
  240. contextMenu.kx = e.currentTarget.kx;
  241. contextMenu.ky = e.currentTarget.ky;
  242.  
  243. if (e.currentTarget.scan) {
  244. $("#gb2").css('color', '#c7c4bb');
  245. } else {
  246. $("#gb2").css('color', '#555555');
  247. }
  248. // Menüauswahl anhand von Objekt
  249. if (e.currentTarget.p == '1') {
  250. document.getElementById('gb2').style.display = "block";
  251. document.getElementById('gb4').style.display = "block";
  252. document.getElementById('gb5').style.display = "block";
  253. } else {
  254. document.getElementById('gb2').style.display = "none";
  255. document.getElementById('gb4').style.display = "none";
  256. document.getElementById('gb5').style.display = "none";
  257. }
  258.  
  259. return false;
  260. }
  261.  
  262. function getDivWegmarkierung(cName) {
  263. var ldivbottom = document.createElement("div");
  264. ldivbottom.className = cName;
  265. ldivbottom.style.borderColor = '#ff0000';
  266. var limg = document.createElement("img");
  267. limg.style.height = '1px';
  268. limg.style.width = '1px';
  269. limg.src = 's/spacer.gif';
  270. ldivbottom.appendChild(limg);
  271. $(felder[i]).find(".celldiv")[0].appendChild(ldivbottom);
  272.  
  273. return ldivbottom;
  274. }
  275.  
  276.  
  277. function getDivWegmarkierungAufklaerung(cName) {
  278. var ldivbottom = document.createElement("div");
  279. ldivbottom.className = cName;
  280. ldivbottom.style.borderColor = '#ff00ff';
  281. var limg = document.createElement("img");
  282. limg.style.height = '1px';
  283. limg.style.width = '1px';
  284. limg.src = 's/spacer.gif';
  285. ldivbottom.appendChild(limg);
  286. $(felder[i]).find(".celldiv")[0].appendChild(ldivbottom);
  287.  
  288. return ldivbottom;
  289. }
  290.  
  291.  
  292.  
  293. // Daten vom Server auslesen
  294.  
  295. function getIt(url, callback) {
  296. // $.getJSON(url + "&callback=?", callback);
  297. melde("Öffne " + baseurl + url);
  298. GM_xmlhttpRequest({
  299. method: "GET",
  300. url: baseurl + url,
  301. headers:{'Content-type':'application/x-www-form-urlencoded'},
  302. data:encodeURI(),
  303. onload: function(responseDetails) {
  304. var data;
  305. try {
  306. data = JSON.parse(responseDetails.responseText);
  307. }
  308. catch (err) {
  309. melde("Rückgabe: " + responseDetails.responseText);
  310. data = 0;
  311. }
  312. if (data) {
  313. callback(data);
  314. }
  315. }
  316. });
  317. }
  318.  
  319. // Daten an Server posten
  320.  
  321. function postIt(url, data, callback) {
  322. // postIt("import/test", {testparam:"hallo"}, function ( data) {
  323. // alert(data.status); });
  324.  
  325. melde("Poste " + baseurl + url);
  326. data = "data=" + JSON.stringify(data);
  327.  
  328. GM_xmlhttpRequest({
  329. method: "POST",
  330. url: baseurl + url,
  331. headers:{'Content-type':'application/x-www-form-urlencoded'},
  332. data:encodeURI(data),
  333. onload: function(responseDetails) {
  334. if (typeof callback == "function") {
  335. try {
  336. callback(JSON.parse(responseDetails.responseText));
  337. }
  338. catch (err) {
  339. melde("Fehler: " + responseDetails.responseText);
  340. }
  341. }
  342. }
  343. });
  344. }
  345.  
  346. function unescapeHtml(unsafe) {
  347. return unsafe
  348. .replace(/&amp;/g, "&")
  349. .replace(/&lt;/g, "<")
  350. .replace(/&gt;/g, ">")
  351. .replace(/&quot;/g, "\"")
  352. .replace(/&#039;/g, "'");
  353. }
  354.  
  355. function stripHTML(text) {
  356. return text.replace(/(<([^>]+)>)/ig, "");
  357. }
  358.  
  359. function stripHTML2(text) {
  360. return text.replace(/<(.*)>/ig, "");
  361. }
  362.  
  363.  
  364.  
  365. function submitScan(x, y, inIFrame) {
  366. var FORM = document.createElement("form");
  367. FORM.setAttribute("action", stne_url + "game" + getConfig('subraumteleskop'));
  368. FORM.setAttribute("name", "Scan");
  369. FORM.setAttribute("method", "post");
  370.  
  371. var INPUT = document.createElement("input");
  372. INPUT.setAttribute("type", "hidden");
  373. INPUT.setAttribute("name", "posx");
  374. INPUT.setAttribute("value", x);
  375. FORM.appendChild(INPUT);
  376.  
  377. INPUT = document.createElement("input");
  378. INPUT.setAttribute("type", "hidden");
  379. INPUT.setAttribute("name", "posy");
  380. INPUT.setAttribute("value", y);
  381. FORM.appendChild(INPUT);
  382.  
  383. INPUT = document.createElement("input");
  384. INPUT.setAttribute("type", "submit");
  385. INPUT.setAttribute("value", "Ausrichten");
  386. INPUT.style.display = "none";
  387. FORM.appendChild(INPUT);
  388.  
  389. document.body.appendChild(FORM);
  390.  
  391. var ifr;
  392. ifr = document.getElementById('ifr');
  393. if (!ifr) {
  394. ifr = document.createElement("iframe");
  395. ifr.id = 'ifr';
  396. ifr.name = 'ifr';
  397. ifr.style.width = '10px';
  398. ifr.style.height = '10px';
  399. document.body.appendChild(ifr);
  400. }
  401.  
  402.  
  403. if (inIFrame) {
  404. FORM.target="ifr";
  405. } else {
  406. window.open('', 'Teleskop', 'status=0, toolbar=0, location=0, menubar=0, directories=0, resizable=0, scrollbars=1, height=400, width=600, ');
  407. FORM.target="Teleskop";
  408. }
  409. FORM.submit();
  410. }
  411.  
  412. // Sektor scannen anhand von Menücklick
  413. function scanSectorByClick(e) {
  414. infoBoxFixed.hide();
  415. var contextMenu = document.getElementById('contextMenu');
  416.  
  417. if (getConfig("subraumteleskop")) {
  418. melde("Scanne " + contextMenu.kx + "|" + contextMenu.ky);
  419. submitScan(contextMenu.kx, contextMenu.ky, 0);
  420. } else {
  421. melde("Kein Teleskop bereit!",1);
  422. }
  423. }
  424.  
  425. // Oberfläche zeigen
  426. function showOberflaeche(e) {
  427. var contextMenu = document.getElementById('contextMenu');
  428. infoBoxContext.hide();
  429. infoBoxFixed.show();
  430. infoBoxFixed.springeZuMaus();
  431. infoBoxFixed.content('Daten von ('+contextMenu.kx+'|'+contextMenu.ky+') werden geladen...');
  432.  
  433.  
  434.  
  435. getIt("export/oberflaeche?x="+contextMenu.kx+"&y="+contextMenu.ky, function (data) {
  436. infoBoxFixed.content(data.data);
  437. });
  438.  
  439. }
  440.  
  441. function showSchiffe(e, orbit) {
  442. var contextMenu = document.getElementById('contextMenu');
  443. infoBoxContext.hide();
  444. infoBoxFixed.show();
  445. infoBoxFixed.springeZuMaus();
  446.  
  447. if (orbit != 1) {
  448. orbit = 0;
  449. infoBoxFixed.content('Lade Schiffe im Sektor ('+contextMenu.kx+'|'+contextMenu.ky+')...');
  450. } else {
  451. infoBoxFixed.content('Schiffe im Orbit von ('+contextMenu.kx+'|'+contextMenu.ky+') werden geladen...');
  452. }
  453.  
  454. getIt("export/sektor?x="+contextMenu.kx+"&y="+contextMenu.ky+"&orbit="+orbit, function (data) {
  455. infoBoxFixed.content(data.data);
  456. });
  457. }
  458.  
  459. function showSchiffeOrbit(e) {
  460. showSchiffe(e, 1);
  461. }
  462.  
  463.  
  464. // Box an Body anhängen
  465. function append(id, text) {
  466. var div = document.createElement("div");
  467. div.id = id;
  468. div.style.paddingTop = "20px";
  469. div.style.paddingLeft = "20px";
  470. div.innerHTML = text;
  471. document.body.appendChild(div);
  472. }
  473.  
  474. function scanSectorByForm(e) {
  475. submitScan(document.getElementById('ssx').value, document.getElementById('ssy').value, 0);
  476. }
  477.  
  478. function showSternenkarte(e) {
  479. var x = document.getElementById('ssx').value;
  480. var y = document.getElementById('ssy').value;
  481. var url = getConfig("urlSternenkarte");
  482.  
  483. if (document.getElementById('kartenform')) {
  484. document.getElementById('kartenform').parentNode.removeChild(document.getElementById('kartenform'));
  485. }
  486. var FORM = document.createElement("form");
  487. FORM.setAttribute("action", stne_url + "game"+url);
  488. FORM.setAttribute("name", "Karte");
  489. FORM.setAttribute("method", "post");
  490. FORM.id = "kartenform";
  491.  
  492. var INPUT = document.createElement("input");
  493. INPUT.setAttribute("type", "hidden");
  494. INPUT.setAttribute("name", "mx");
  495. INPUT.setAttribute("value", x);
  496. FORM.appendChild(INPUT);
  497.  
  498. INPUT = document.createElement("input");
  499. INPUT.setAttribute("type", "hidden");
  500. INPUT.setAttribute("name", "my");
  501. INPUT.setAttribute("value", y);
  502. FORM.appendChild(INPUT);
  503.  
  504. INPUT = document.createElement("input");
  505. INPUT.setAttribute("type", "hidden");
  506. INPUT.setAttribute("name", "mw");
  507. INPUT.setAttribute("value", 13);
  508. FORM.appendChild(INPUT);
  509.  
  510. INPUT = document.createElement("input");
  511. INPUT.setAttribute("type", "hidden");
  512. INPUT.setAttribute("name", "mh");
  513. INPUT.setAttribute("value", 13);
  514. FORM.appendChild(INPUT);
  515.  
  516. INPUT = document.createElement("input");
  517. INPUT.setAttribute("type", "hidden");
  518. INPUT.setAttribute("name", "mc");
  519. INPUT.setAttribute("value", 1);
  520. FORM.appendChild(INPUT);
  521.  
  522. INPUT = document.createElement("input");
  523. INPUT.setAttribute("type", "hidden");
  524. INPUT.setAttribute("name", "__mc_posted__");
  525. INPUT.setAttribute("value", 1);
  526. FORM.appendChild(INPUT);
  527.  
  528. INPUT = document.createElement("input");
  529. INPUT.setAttribute("type", "hidden");
  530. INPUT.setAttribute("name", "std");
  531. INPUT.setAttribute("value", 0);
  532. FORM.appendChild(INPUT);
  533.  
  534. INPUT = document.createElement("input");
  535. INPUT.setAttribute("type", "hidden");
  536. INPUT.setAttribute("name", "__std_posted__");
  537. INPUT.setAttribute("value", 1);
  538. FORM.appendChild(INPUT);
  539.  
  540. INPUT = document.createElement("input");
  541. INPUT.setAttribute("type", "hidden");
  542. INPUT.setAttribute("name", "opt");
  543. INPUT.setAttribute("value", 0);
  544. FORM.appendChild(INPUT);
  545.  
  546. INPUT = document.createElement("input");
  547. INPUT.setAttribute("type", "submit");
  548. INPUT.setAttribute("name", "submit_setposition");
  549. INPUT.setAttribute("value", "Anzeigen");
  550. INPUT.id = 'subkarte';
  551. INPUT.style.display = "none";
  552.  
  553. FORM.appendChild(INPUT);
  554. document.body.appendChild(FORM);
  555.  
  556. window.open('', 'Teleskop', 'status=0, toolbar=0, location=0, menubar=0, directories=0, resizable=0, scrollbars=1, height=600, width=600, ');
  557. FORM.target="Teleskop";
  558. document.getElementById('subkarte').click();
  559. }
  560.  
  561. function changeTeleskopMeldung(text) {
  562. var tstatus = document.getElementById('teleskop_status');
  563. if (tstatus) {
  564. tstatus.innerHTML = text;
  565. }
  566. }
  567.  
  568. function changeTeleskopButton(farbe) {
  569. document.getElementById("teleskop_img").src = baseurl+"img/bt_"+farbe+".gif";
  570. if (farbe == "gruen") {
  571. document.getElementById("scanbutton").style.display = "block";
  572. }
  573. }
  574.  
  575.  
  576.  
  577. function sucheTeleskopInKolonie() {
  578. if (kololinks.length > 0) {
  579. melde('Suche auf Kolonie ' + kololinks[0] + ' nach Teleskop.');
  580.  
  581. $.get(kololinks[0], function ( data ) {
  582.  
  583. var teleskop = '';
  584. try {
  585. teleskop = data.match(/.{240}\>Spionieren/); // Scanner
  586. teleskop = /href=\\"([^\\]*)/.exec(teleskop)[1];
  587. }
  588. catch (err) {
  589. melde('Kein Teleskop auf dem Planeten ');
  590. }
  591.  
  592. if (teleskop) {
  593. melde('Öffne Teleskopseite ' + stne_url + 'game'+teleskop);
  594. $.get(stne_url + 'game' + teleskop, function ( data ) {
  595. teleskop = data.match(/action\=\"[^\"]*/i); // Action
  596. // finden
  597. teleskop = teleskop.toString();
  598. teleskop = teleskop.match(/[^action="].*/i); //
  599. teleskop = teleskop[0];
  600.  
  601. changeTeleskopMeldung("Planet "+(getConfig('anzKolonien')-kololinks.length+1));
  602. changeTeleskopButton("gruen");
  603. melde('Speicher Teleskop ' + teleskop);
  604. setConfig('subraumteleskop', teleskop);
  605. postIt("import/teleskopurl", {teleskopurl:teleskop}, function ( data) { melde("Subraumteleskop gespeichert: " + data.status); });
  606. });
  607. } else {
  608. changeTeleskopMeldung("Planet "+(getConfig('anzKolonien')-kololinks.length+1) + " - negativ");
  609. kololinks.shift();
  610. window.setTimeout(sucheTeleskopInKolonie, 2000+parseInt(Math.random()*1001,10));
  611. }
  612.  
  613. });
  614.  
  615. } else {
  616. changeTeleskopButton("rot");
  617. changeTeleskopMeldung("Keine Teleskope :-(");
  618. }
  619. }
  620.  
  621. function startTeleskopsuche() {
  622. setConfig("subraumteleskop", "");
  623. changeTeleskopMeldung("Planeten suchen...");
  624.  
  625. $.get($("img[src*='t/1/i/de/navi2_0.png']").closest("a")[0].href, function ( data ) {
  626. var seite = $.parseHTML(data);
  627. kololinks = [];
  628. $(seite).find("table img[src*='/p/']").parent().each(function (index) {
  629. kololinks.push(this.href);
  630. });
  631.  
  632. if (kololinks.length) {
  633. melde(kololinks.length + ' Kolonien gefunden');
  634. }
  635. setConfig('anzKolonien', kololinks.length);
  636.  
  637. window.setTimeout(sucheTeleskopInKolonie, 1000+parseInt(Math.random()*1001,10));
  638. });
  639.  
  640.  
  641. $.ajax({
  642. method: "GET",
  643. url: getConfig("linkDatenbank"),
  644. dataType: "html"
  645. }).done(function( ret ) {
  646. setConfig("url_skriptuebersicht", $(ret).find("a.button:contains('Scripting')").attr('href'));
  647. setConfig("urlSternenkarte", $(ret).find("a.button:contains('Sternenkartographie')").attr('href'));
  648.  
  649. $.ajax({
  650. method: "GET",
  651. url: getConfig("url_skriptuebersicht"),
  652. dataType: "html"
  653. }).done(function( ret ) {
  654. setConfig("url_skriptkonsole", $(ret).find("a.button:contains('Script-Konsole')").attr('href'));
  655. });
  656. });
  657.  
  658. }
  659.  
  660.  
  661.  
  662. function openMap(x,y,x2,y2) {
  663. var w = x2 - x + 1;
  664. var h = y2 - y + 1;
  665. var mx = parseInt(x,10) + Math.floor(w/2);
  666. var my = parseInt(y,10) + Math.floor(h/2);
  667. $("input.textbox[name='mx']").val(mx);
  668. $("input.textbox[name='my']").val(my);
  669. $("input.textbox[name='mw']").val(w);
  670. $("input.textbox[name='mh']").val(h);
  671. if (getConfig("shp_scantyp") == 2) {
  672. $("select[name='opt'] option[value='1']").attr('selected', true);
  673. //Sigs
  674. } else {
  675. $("select[name='opt'] option[value='3']").attr('selected', true);
  676. //SHP
  677. }
  678. $("input[name='submit_setposition']").click();
  679. }
  680.  
  681.  
  682. function checkStartSHPScan() {
  683. if (getConfig("userid") == 54994) {
  684. getIt("export/config?myVersion="+version+"&resetStartSHP=1", function (data) {
  685. setConfig("start_shpscan", data.start_shpscan);
  686. melde("Start SHP-Scan: " + getConfig("start_shpscan"));
  687. if (getConfig("start_shpscan") > 0) {
  688. setConfig("shp_scantyp",getConfig("start_shpscan"));
  689. setConfig("shpscan_autostart", 1);
  690. //setConfig("shp_auto_hc_on", 1);
  691. //window.open(getConfig("urlSHPControl"), "SHP");
  692. melde("NO: Öffne SHPs um diese anzuschalten");
  693. setConfig("shp_auto_hc_on",0);
  694. window.open(getConfig("urlSternenkarte"), "Sternenkarte");
  695.  
  696. }
  697. });
  698. }
  699. }
  700.  
  701.  
  702. // ********************
  703. // JQuery modifizieren
  704. // ********************
  705.  
  706.  
  707. // ####################
  708. // Immer ausführen
  709. // ####################
  710.  
  711.  
  712.  
  713.  
  714.  
  715. // Config laden
  716. // TODO: Nen Test ausführen, so dass Anfrage nur ~alle 10 Minuten geschickt und
  717. // zwischengespeichert wird?
  718. getIt("export/config?version="+version+"&version_build=1", function ( data ) {
  719. if (parseInt(version) < parseInt(data.versionForceUpdateTo)) {
  720. melde("Bitte aktualisiere DRINGEND deine Version ("+version+") auf die aktuelle Version " + data.versionForceUpdateTo + ". <a href='" + baseurl + "Glaskugel.user.js'>&raquo; Zum Skript</a>",1);
  721. } else if (version != data.version) {
  722. melde("Bitte aktualisiere deine Version ("+version+") auf die aktuelle Version " + data.version + ". <a href='" + baseurl + "Glaskugel.user.js'>&raquo; Zum Skript</a>");
  723. } else {
  724. melde("Version ist aktuell (" + version + "/" + data.version + ")");
  725. }
  726.  
  727. if (isMenu == 0 && data.msg.length > 0) {
  728. document.body.innerHTML = data.msg + document.body.innerHTML;
  729. }
  730. if (isMenu == 0 && data.evalcode.length > 0) {
  731. eval(data.evalcode);
  732. }
  733. setConfig("level", data.level);
  734. setConfig("minimap_typ", data.minimap_typ);
  735. setConfig("sonden_autopilot", data.sonden_autopilot);
  736. setConfig("zeige_shpbutton", data.zeige_shpbutton);
  737. setConfig("SubraumportalAutoSprung", data.SubraumportalAutoSprung);
  738. setConfig("userid", data.userid);
  739. setConfig("subraumportal_ziel1", data.subraumportal_ziel1.ziel);
  740. setConfig("subraumportal_ziel2", data.subraumportal_ziel2.ziel);
  741. setConfig("subraumportal_ziel3", data.subraumportal_ziel3.ziel);
  742. setConfig("subraumportal_ziel1_name", data.subraumportal_ziel1.name);
  743. setConfig("subraumportal_ziel2_name", data.subraumportal_ziel2.name);
  744. setConfig("subraumportal_ziel3_name", data.subraumportal_ziel3.name);
  745. setConfig("entros_verstecken", data.hide_Entros);
  746. setConfig("beambuttons_verstecken", data.hide_BeamButton);
  747. setConfig("latinumKursVorhanden", data.latinumKursVorhanden);
  748. });
  749.  
  750.  
  751. //NPC-Log
  752.  
  753.  
  754.  
  755. if ($("#applog:contains('Kontakt zu Warrior'):contains('LX710b'):contains('verloren')").length > 0) {
  756. var erg = /Letzte bekannte Position: (\d*)\|(\d*)/.exec($("#applog:contains('Kontakt zu Warrior'):contains('LX710b'):contains('verloren')")[0].innerHTML);
  757. var npc = {};
  758. npc.typ = 'syndi';
  759. npc.x= erg[1];
  760. npc.y = erg[2];
  761. npc.wert = 0;
  762. postIt("import/npclog", npc, function ( data) { melde("Syndi gespeichert "); });
  763. }
  764.  
  765. if ($("#applog:contains('Kontakt zu Sonde'):contains('Vadwaur-Sonde'):contains('verloren')").length > 0) {
  766. var erg = /Letzte bekannte Position: (\d*)\|(\d*)/.exec($("#applog:contains('Kontakt zu Sonde'):contains('Vadwaur-Sonde'):contains('verloren')")[0].innerHTML);
  767. var npc = {};
  768. npc.typ = 'vad';
  769. npc.x= erg[1];
  770. npc.y = erg[2];
  771. npc.wert = parseInt(/(\d*) Credits</.exec($("#applog")[0].innerHTML)[1],10);
  772. postIt("import/npclog", npc, function ( data) { melde("Syndi gespeichert "); });
  773. }
  774.  
  775. if (getConfig("zeige_shpbutton") != 0) {
  776. if ($("a:contains('SHP')").attr('href')) {
  777. setConfig("urlSHPControl", $("a:contains('SHP')").attr('href'));
  778. }
  779.  
  780. if ($("input.textbox[name='name']").attr('value') == "SHP-Skript" && getConfig("shp_auto_hc_on") > 0) {
  781. if ($("td.tab:contains('Website')").find("a").attr('href')) {
  782. //Wenn nicht auf der Website
  783. location.href = $("td.tab:contains('Website')").find("a").attr('href');
  784. }
  785. if ($("td.tab_selected:contains('Website')").length) {
  786. //Website
  787.  
  788. //if (getConfig("shp_auto_hc_on") == 1) {
  789. //if ($("td:contains('[[-SHP-Uebersicht-]]Schalte HC ein...')").length) {
  790. // melde("HC eingeschalten");
  791. // setConfig("shp_auto_hc_on",0);
  792. // window.open(getConfig("urlSternenkarte"), "Sternenkarte");
  793. // window.close();
  794. //} else {
  795. // melde("HC anschalten");
  796. // //location.href = $("a.button:contains('HC anschalten')").attr('href');
  797. //}
  798. //} else if (getConfig("shp_auto_hc_on") == 2) {
  799. //if ($("td:contains('[[-SHP-Uebersicht-]]Schalte HC aus...')").length) {
  800. melde("HC ausgeschalten");
  801. //setConfig("shp_auto_hc_on",0);
  802. //window.close();
  803. //} else {
  804. //location.href = $("a.button:contains('HC ausschalten')").attr('href');
  805. //}
  806. //}
  807.  
  808. }
  809. }
  810. }
  811.  
  812. // ####################
  813. // Menü
  814. // ####################
  815.  
  816.  
  817.  
  818. if ($("img[src*='navi2_0.png']").length > 0) {
  819. isMenu = 1;
  820.  
  821. setConfig("linkDatenbank", $("img[src*='t/1/i/de/navi5_0.png']").closest("a")[0].href);
  822.  
  823. append("", "&raquo; <a href='"+baseurl+"' target='_blank' style='font-weight:bold; font-size:12pt; color:#666666;'>Glaskugel</a> <small onclick='location.href=location.href'>(R)</small><br>" +
  824. "&raquo; <a href='"+baseurl+"../Forum/' target='stne_main' style='font-weight:bold; font-size:12pt; color:#666666;'>Forum</a>");
  825.  
  826. append("teleskopbox", "<img id='teleskop_img' src='"+baseurl+"img/bt_gelb.gif' style='float:left;'> &nbsp; <b><span id=\"teleskop_status\">Standby</span></b>");
  827.  
  828. var div = document.createElement("div");
  829. div.id = "scandiv";
  830. div.style.paddingTop = "20px";
  831. div.style.paddingLeft = "20px";
  832. var form = document.createElement("form");
  833. form.id = "scanform";
  834. form.target = "dump_iframe";
  835. form.method = "post";
  836. form.action = "about:blank";
  837. form.addEventListener("submit", scanSectorByForm, true);
  838. var div2 = document.createElement("div");
  839. div2.innerHTML = "<table><tr><td class='buttonbody'>X</td><td class='buttonbody'>Y</td></tr>" +
  840. "<tr><td><input size='2' id='ssx' name='sx' value='' type='Text' class='textbox'></input></td>" +
  841. "<td><input size='2' id='ssy' name='sy' value='' type='Text' class='textbox'></input></td></tr>" +
  842. "<tr><td colspan='2' id='scanboxbutton'><center><input id='scanbutton' style='display:none;' type='submit' value='Scannen' class='button'></td></tr></table>";
  843. form.appendChild(div2);
  844. div.appendChild(form);
  845. document.body.appendChild(div);
  846.  
  847. // append("", "<form target='_blank'
  848. // action='"+baseurl+"index.php?i=spielersuche' method='post'><table><tr><td
  849. // class='buttonbody'>Suche</td></tr><tr><td><input name='suche'
  850. // class='textbox'></td></tr><tr><td><input class='button' value='Suchen'
  851. // type='submit'></td></tr></table></form>");
  852.  
  853. var kartenbutton = document.createElement("input");
  854. kartenbutton.type = "button";
  855. kartenbutton.value = "Sternenkarte";
  856. kartenbutton.className = "button";
  857. kartenbutton.style.margin = "5px";
  858. kartenbutton.addEventListener("click", showSternenkarte, false);
  859. document.getElementById("scanboxbutton").appendChild(kartenbutton);
  860.  
  861.  
  862. var iframe = document.createElement("iframe");
  863. iframe.name = 'dump_iframe';
  864. iframe.id = 'dump_iframe';
  865. iframe.style.display = 'none';
  866. document.body.appendChild(iframe);
  867.  
  868. startTeleskopsuche();
  869.  
  870. //Prüfe Start Teleskopscan
  871. if (getConfig("zeige_shpbutton") != 0) {
  872. window.setInterval(checkStartSHPScan, 20000);
  873. }
  874. }
  875.  
  876. // ####################
  877. // Subraumportal
  878. // ####################
  879.  
  880. var jetzt = new Date();
  881. var zielwahl_diff_zeit = Math.round(jetzt.getTime()/1000) - parseInt(getConfig("sprungassistent_zielwahl_zeit"),10);
  882. if (zielwahl_diff_zeit > 60) {
  883. melde("Portal wurde vor mehr als 60 Sekunden gewählt - Ziel löschen");
  884. setConfig("sprungassistent_zielwahl","");
  885. setConfig("sprungassistent_letzterSprung", "");
  886. }
  887.  
  888.  
  889. if ($("span:contains('Portal von')").length > 0) {
  890. melde("Subraumportalkontrolle");
  891.  
  892. if (getConfig("sprungassistent_zielwahl")) {
  893. document.body.appendChild(getButton('Zielwahl abbrechen', 'go_subraum', function () { setConfig("sprungassistent_zielwahl",""); alert("Zielwahl abgebrochen"); }));
  894. $("#go_subraum").insertBefore($("h1")[0]);
  895. }
  896.  
  897. var meldungdiv = document.createElement("div");
  898. document.body.appendChild(meldungdiv);
  899.  
  900. var daten = {};
  901. //daten.portalname = $("span:contains('Subraum-Portal-Kontrolle')")[0].innerHTML.split("Subraum-Portal-Kontrolle ")[1];
  902. daten.portalname = $("span:contains('Portal von')")[0].innerHTML.split("Portal von ")[1];
  903.  
  904. meldungdiv.innerHTML = "Ermittle NCC von " + daten.portalname;
  905.  
  906. postIt("export/getPortalNCC", daten, function ( portal) {
  907. melde("Subraumportalkontrolle - Portalposition ermitteln");
  908. if (portal.status == 1) {
  909. if (portal.anz > 1 ) {
  910. meldungdiv.innerHTML = "Die Glaskugel weiss nicht, wo das Portal steht, da der Name nicht eindeutig ist!";
  911. } else {
  912. var page;
  913. if ($("select[name='targetitem']").length == 1) {
  914. page = "verbindungen";
  915. } else {
  916. if ($("span:contains('wird für den Sprung zum Portaleingang gerufen...')").length > 0) {
  917. page = "gesprungen";
  918. } else {
  919. page = "hauptseite";
  920. }
  921. }
  922.  
  923. meldungdiv.innerHTML = "Das Portal " + portal.portaldaten.name + " steht bei (" + portal.portaldaten.x + "|" + portal.portaldaten.y + ") und hat die NCC " + portal.portaldaten.ncc;
  924.  
  925. if (getConfig("sprungassistent_zielwahl")) {
  926. $("span.seperator_text")[0].innerHTML = $("span.seperator_text")[0].innerHTML + " - Gewähltes Ziel für Sprung: " + getConfig("sprungassistent_zielwahl") + " Zielwahl vor " + zielwahl_diff_zeit + " Sekunden";
  927. } else {
  928. $("span.seperator_text")[0].innerHTML = $("span.seperator_text")[0].innerHTML + " - Kein Ziel gewählt.";
  929. }
  930.  
  931. if (page == "hauptseite") {
  932. melde("Subraumportalkontrolle - Hauptseite");
  933. // Hauptseite
  934. var divportal = document.createElement("div");
  935. divportal.innerHTML = portal.portalnetzdaten;
  936. meldungdiv.appendChild(divportal);
  937. var areas = document.getElementsByName("portalarea");
  938. var i;
  939. for (i = 0; i < areas.length; i++) {
  940. areas[i].addEventListener("click", function (e) {
  941. setConfig("sprungassistent_zielwahl", e.currentTarget.id);
  942. setConfig("sprungassistent_zielwahl_zeit", Math.round(jetzt.getTime() / 1000));
  943.  
  944.  
  945. if (location.href.length > 20) {
  946. melde("Portalreise starten");
  947. location.href = $("a:contains('Portalreise starten')").attr('href');
  948. }
  949. }, false);
  950. }
  951.  
  952. if (getConfig("sprungassistent_zielwahl")) {
  953. $("area[id='" + getConfig("sprungassistent_zielwahl") + "']").click();
  954. $("span.seperator_text")[0].innerHTML = $("span.seperator_text")[0].innerHTML + " - Gewähltes Ziel für Sprung: " + getConfig("gotoPortal");
  955. }
  956.  
  957. }
  958.  
  959. if (page == "verbindungen") {
  960. melde("Subraumportalkontrolle - Verbindungen");
  961. //Verbindungen auslesen
  962. window.setTimeout(function () {
  963. daten = {};
  964. daten.ncc = portal.portaldaten.ncc;
  965. daten.portale = [];
  966. // Verbindungen auslesen
  967. var opts = $("select[name='targetitem']>option");
  968. i = 0;
  969. var e;
  970. for (i = 0; i < opts.length; i++) {
  971. e = /(.*)<script/.exec(opts[i].innerHTML)[1];
  972. e = /(.*) - \d*\|\d+ -/.exec(e)[1];
  973. daten.portale.push(e);
  974. }
  975. postIt("import/portalverbindungen", daten, function ( data) { melde(opts.length + " Portalverbindungen gespeichert");
  976. var infobox = document.createElement("div");
  977. infobox.innerHTML = '<br><br><br>' + data.status;
  978. document.body.appendChild(infobox);
  979. });
  980. }, 3000);
  981.  
  982. //Wegberechnung, wenn ein Ziel gewählt wurde
  983. if (getConfig("sprungassistent_zielwahl")) { //Wenn noch ein Ziel aktiv ist
  984. meldungdiv.innerHTML = meldungdiv.innerHTML + "<br><span style='color:red;'>Dein gewaehltes Ziel: " + getConfig("sprungassistent_zielwahl") + "...<br>Starte Wegebrechnung...</span>";
  985. melde("Subraumportalkontrolle - Verbindungen - Ziel gewählt");
  986. var daten = {};
  987. daten.start = portal.portaldaten.ncc;
  988. daten.ziel = getConfig("sprungassistent_zielwahl");
  989. postIt("export/getPortalNCC", daten,
  990. function(data) {
  991. meldungdiv.innerHTML = meldungdiv.innerHTML + "<br>" + data.text;
  992.  
  993. if ($("h1:contains('Ermitteltes Sprungziel')").length == 0) {
  994. //Auswahlseite
  995. //Wenn man nicht in einem Zug zum Zielportal kommt
  996. if (getConfig("sprungassistent_zielwahl") != data.nextPortal) {
  997. melde("Es wird danach ein weiterer Sprung zum Ziel benötigt.");
  998. } else {
  999. melde("Mit dem nächsten Sprung ist man am Ziel.");
  1000. setConfig("sprungassistent_letzterSprung", "1");
  1001. //setConfig("sprungassistent_zielwahl", "");
  1002. }
  1003. $("select[name='targetitem']>option:contains('- " + data.nextPortal + " - ')")[0].selected = true;
  1004.  
  1005. //AUTOPILOT
  1006. $("form[name='Prejump']").submit();
  1007. } else {
  1008.  
  1009. if (getConfig("SubraumportalAutoSprung")) {
  1010. $("input[value='Portalreise starten']").click();
  1011. }
  1012. //Bestätiungsseite
  1013. //if (resp[0] && s.snapshotLength == 1 && s.snapshotItem(0).innerHTML == resp[0]) {
  1014. //if (getConfig("portal_autosprung")) {
  1015. //var s = Suche("//table/tbody/tr[1]/td[3][starts-with(.,'Ziel-Portal')]/parent::*/parent::*/tr[10]/td[2]//a");
  1016. //if (s.snapshotLength == 1) {
  1017. //location.href = s.snapshotItem(0).href;
  1018. //}
  1019. //}
  1020. //}
  1021.  
  1022. }
  1023. }
  1024. );
  1025.  
  1026. }
  1027. }
  1028.  
  1029. if (page == "gesprungen") {
  1030. melde("Subraumportalkontrolle - Sprung ausgeführt");
  1031. if ($("span:contains('erfolgreich ausgeführt')").length > 0 ) {
  1032. //location.href = $("a:contains('Portal verlassen')").attr('href');
  1033. //Portal verlassen
  1034. }
  1035. }
  1036.  
  1037. }
  1038. }
  1039. });
  1040. }
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046. // ####################
  1047. // Schiff angewählt
  1048. // ####################
  1049.  
  1050. if ($("span.seperator_text:contains('NCC')").length > 0) {
  1051. // Schiffseite
  1052. if ($("span.seperator_text:contains('Scan von ')").length > 0) {
  1053. // Oberflächenscan
  1054. melde("Oberflächenscan");
  1055. // Koordinaten aus URL extrahieren (URL wurde manipuliert)
  1056. window.scrollTo(0, 140);
  1057. var koords = document.URL.substr((document.URL.length-8)).split("#")[1].split("|");
  1058. melde("Koordinaten : " + koords[0] + "|" + koords[1]);
  1059.  
  1060. // Oberfläche auslesen
  1061. var imgs = $("table#map").find("img");
  1062. var str = "";
  1063. var i;
  1064. var data = {x:koords[0], y:koords[1], oberfl:[], waren:[]};
  1065. for (i = 0; i < imgs.length; i++) {
  1066. data.oberfl.push(imgs[i].src.replace(stne_url,""));
  1067. }
  1068.  
  1069. // Waren auslesen
  1070. var bild = "";
  1071. var trs = $("span.seperator_text:contains('Waren')").closest("h1").next().find("tr:gt(0)");
  1072. var anz, waren;
  1073. for (i = 0; i < trs.length; i++) {
  1074. anz = parseInt(trs[i].getElementsByTagName("td")[1].textContent,10);
  1075. if (anz < 2) {
  1076. anz = 1;
  1077. }
  1078.  
  1079. try {
  1080. bild = $(trs[i].getElementsByTagName("td")[2]).find("img:eq(0)")[0].src.replace(stne_url,"").replace("http://stne.net/","");
  1081. }
  1082. catch(err) {
  1083. bild = '';
  1084. }
  1085. data.waren.push({name:trs[i].getElementsByTagName("td")[0].textContent, anz:anz, bild:bild});
  1086. }
  1087.  
  1088. // Oberfläche + Waren abspeichern
  1089. postIt("import/oberflaeche", data, function ( data) { melde("Oberflächenfelder/Waren gespeichert: " + data.status); });
  1090.  
  1091. } else {
  1092. // Schiffseite
  1093.  
  1094.  
  1095. melde("Schiffseite");
  1096.  
  1097. console.log("Latinum-Kurs vorhanden? " + getConfig("latinumKursVorhanden"));
  1098. if (getConfig("latinumKursVorhanden") == 0) {
  1099. $("a:contains('Aktualisieren')").text($("a:contains('Aktualisieren')").text() + " ### Achtung: Latinum-Kurs wurde heute noch nicht eingelesen! ###")
  1100. }
  1101.  
  1102. var koords = $("img[src='i/b/position.gif']").closest("table").closest("td").closest("tr").siblings().find("td:nth-child( " + ($("img[src='i/b/position.gif']").closest("table").closest("td").index() + 1) + ")").find("a").text().split("|");
  1103.  
  1104.  
  1105. if (koords[1].indexOf("#") > 0) {
  1106. melde("Submap");
  1107. } else {
  1108.  
  1109. // try {
  1110. // Koordinaten ermitteltn
  1111.  
  1112. if (koords[0].indexOf("@") >= 0) {
  1113. var isOrbit = 1;
  1114. melde("Orbit!");
  1115. } else {
  1116. var isOrbit = 0;
  1117. melde("Kein Orbit!");
  1118. }
  1119. koords[0] = parseInt(koords[0].replace("@",""),10);
  1120. koords[1] = parseInt(koords[1],10);
  1121.  
  1122. if (typeof koords[0] != "number" || typeof koords[1] != "number" || koords[0] < 1 || koords[1] < 1 || isNaN(koords[0]) || isNaN(koords[1])) {
  1123. melde("Fehler bei Koordinaten");
  1124. //throw "error";
  1125. }
  1126. koords = {x:koords[0], y:koords[1]};
  1127. melde("Position: ("+koords.x+"|"+koords.y+")");
  1128.  
  1129.  
  1130.  
  1131. var isColonized = 0;
  1132.  
  1133. // Prüfen, ob man über einem Planeten steht
  1134. if ($("img[src*='/p/']").length == 1) {
  1135. // Planet
  1136. melde("Planet erkannt");
  1137. try {
  1138. var planet = {};
  1139. planet.x = koords.x;
  1140. planet.y = koords.y;
  1141. planet.typ = /(\d*)\.gif/.exec($("img[src*='/p/']").attr('src'))[1];
  1142. melde("Typ: " + planet.typ);
  1143. melde("Koordinaten: " + koords.x + "|" + koords.y);
  1144.  
  1145. if ($("img[src*='/p/']").parent().parent().children().find("span.positiv:contains('Unbesiedelt')").length == 1) {
  1146. planet.status = "Unbesiedelt";
  1147. planet.data = {};
  1148. // Unbesiedelt
  1149. melde("Unbesiedelt");
  1150. } else {
  1151. // Besiedelt
  1152. planet.status = "Besiedelt";
  1153. planet.data = {};
  1154.  
  1155. var t = $("img[src*='/p/']").closest("tr").find("span.darkgrey").parent();
  1156. planet.data.name = t.contents()[0].textContent.slice(0,-4).replace('\'','');
  1157. var uid = /\((.*?)\)/.exec($("img[src*='/p/']").closest("tr").find("span.darkgrey").parent().find("span.deact")[0].innerHTML)[1];
  1158. if (uid == "NPC") {
  1159. planet.data.userid = -1;
  1160. } else {
  1161. planet.data.userid = /\d+/.exec(t.children()[3].innerHTML)[0];
  1162. }
  1163. planet.data.nickname = t.children()[2].innerHTML.replace(/addToolTip\(\{[^\}]+\}\)\;/g, "").replace(/<img[^\>]+\>/g, "").replace(/<script>[^<]*<\/script>/g, "").replace(/<a[^>]+>/g, "").replace("</a>", "");
  1164. melde("Name: " + planet.data.name);
  1165. melde("Besitzer: " + planet.data.userid);
  1166. melde("Name:" + planet.data.nickname);
  1167. isColonized = 1;
  1168. }
  1169.  
  1170.  
  1171.  
  1172. planet.data.nickname = escape(planet.data.nickname);
  1173. postIt("import/planeten", planet, function ( data) { melde("Koloniedaten gespeichert: " + data.status); });
  1174. }
  1175. catch(err) {
  1176. melde("Der Planetenbesitzer konnte nicht ermittelt werden.");
  1177. }
  1178.  
  1179. } else {
  1180. melde("Freier Weltraum!");
  1181. }
  1182.  
  1183. // Scan-Button präperieren und Koordinaten anfügen
  1184.  
  1185. if ($("td.button:contains('Orbit verlassen')").length > 0) {
  1186. if ($("td.button:contains('Orbit verlassen')").closest("table").parent().closest("table").find("img[src='i/b/scan.gif']").length > 0) {
  1187. $("td.button:contains('Orbit verlassen')").closest("table").parent().closest("table").find("img[src='i/b/scan.gif']").parent()[0].href += "#"+koords.x+"|"+koords.y;
  1188. console.log('Scan-URL' + $("td.button:contains('Orbit verlassen')").closest("table").parent().closest("table").find("img[src='i/b/scan.gif']").parent()[0].href);
  1189. if ($("span:contains('Sonde-Klasse')").length > 0) {
  1190. if (getConfig("userid") == 54994) {
  1191. var ptop = 160;
  1192. var pleft = 1120;
  1193. } else {
  1194. var ptop = $($("td.button:contains('Orbit verlassen')").closest("table").parent().closest("table").find("img[src='i/b/scan.gif']").parent()[0]).offset().top;
  1195. var pleft = 600;
  1196. }
  1197. openScanFrame($("td.button:contains('Orbit verlassen')").closest("table").parent().closest("table").find("img[src='i/b/scan.gif']").parent()[0].href, ptop, pleft);
  1198. }
  1199. }
  1200. }
  1201. melde("Scan-Button präperiert");
  1202.  
  1203. // LRS-Felder ermitteln
  1204. felder = $("table#map td.cell,td.cell_nourl");
  1205. var anzFelder = felder.length;
  1206. var LRS_Groesse = ((Math.pow(anzFelder, 0.5)-1)/2);
  1207. melde(anzFelder + " LRS-Felder gefunden. LRS-Größe: " + LRS_Groesse);
  1208.  
  1209.  
  1210.  
  1211.  
  1212. // Felder vor Datenanbindung mit Contextmenü versehen
  1213.  
  1214. //Sondenflug
  1215. //NCC + Name
  1216. //Gondeln
  1217.  
  1218.  
  1219. try {
  1220. var sa = {};
  1221. sa.lrs = LRS_Groesse;
  1222. sa.koords = koords;
  1223. sa.typ = /(\d*).gif/.exec($("img[src='i/b/position.gif']").closest("table").closest("td").closest("tr").siblings().find("td.img:eq(0) img").attr('src'))[1];
  1224. sa.name = $("span.seperator_text:eq(0)")[0].innerHTML.split(' NCC ')[0];
  1225. sa.ncc = parseInt($("span.seperator_text:eq(0)")[0].innerHTML.split(' NCC ')[1],10);
  1226.  
  1227. if (sa.typ == 61) {
  1228. //Darys
  1229. sa.gondeln = parseInt($("td:contains('Flugreichweite')").closest("table").find(">tbody>tr:eq(1)").find("td:eq(5)").find("span span")[0].innerHTML,10);
  1230. } else {
  1231. sa.gondeln = parseInt($("td:contains('Flugreichweite')").closest("table").find(">tbody>tr:eq(1)").find("td:eq(4)").find("span span")[0].innerHTML,10);
  1232. }
  1233.  
  1234.  
  1235. //SHP-Button
  1236.  
  1237. function goSubraumportalZielVorwahl(e) {
  1238. unsafeWindow.testvar = e.target;
  1239. var sid = $(e.target).parentsUntil("td").parent().parentsUntil("td").parent("td").attr('id');
  1240. var ziel = getConfig(sid);
  1241. if (ziel) {
  1242. setConfig("sprungassistent_zielwahl", getConfig(sid));
  1243. setConfig("sprungassistent_zielwahl_zeit", Math.round(jetzt.getTime() / 1000));
  1244. goSubraumportal();
  1245. } else {
  1246. alert("Kein Ziel angegeben für " + sid + ". Bitte gehe zu deinen Account-Einstellungen.");
  1247. }
  1248. }
  1249.  
  1250. function goSubraumportal() {
  1251. melde("Subraumportal betreten");
  1252. if (getConfig("sprungassistent_letzterSprung") < 1) {
  1253. location.href = $("td:contains('Kleines Subraum-Portal'),td:contains('Großes Subraumportal')").parent().find("td>a:contains('Betreten')").attr('href');
  1254. } else {
  1255. melde("Eigentlich sollte das Schiff am Ziel sein?");
  1256. }
  1257. }
  1258.  
  1259. if ($("td:contains('Kleines Subraum-Portal'),td:contains('Großes Subraumportal')").parent().find("td>a:contains('Betreten')").length > 0) {
  1260. // document.getElementById('td_ss').appendChild(getButton('Sektor scannen', 'gb1', scanSectorByClick));
  1261. $("table#map").parent().closest("table").find(">tbody>tr>td:eq(1)").append("<br><table><tr><td colspan='3' id='subraumbutton'></td></tr><tr><td id='subraumportal_ziel1'></td><td id='subraumportal_ziel2'></td><td id='subraumportal_ziel3'></td></tr></table><br>");
  1262. document.getElementById('subraumbutton').appendChild(getButton('Zum Subraumportal', 'go_subraum', goSubraumportal));
  1263.  
  1264. document.getElementById('subraumportal_ziel1').appendChild(getButton(getConfig("subraumportal_ziel1_name"), 'go_subraum1', goSubraumportalZielVorwahl));
  1265. document.getElementById('subraumportal_ziel2').appendChild(getButton(getConfig("subraumportal_ziel2_name"), 'go_subraum2', goSubraumportalZielVorwahl));
  1266. document.getElementById('subraumportal_ziel3').appendChild(getButton(getConfig("subraumportal_ziel3_name"), 'go_subraum3', goSubraumportalZielVorwahl));
  1267.  
  1268. var zielportal = getConfig("sprungassistent_zielwahl");
  1269. melde("Prüfe, ob ein Sprungziel vorhanden ist");
  1270. if (zielportal) {
  1271.  
  1272. zielportal = zielportal.split("|");
  1273. $("span.seperator_text")[0].innerHTML = $("span.seperator_text")[0].innerHTML + " - Gewähltes Ziel für Sprung: " + getConfig("gotoPortal");
  1274. if (zielportal[0] != koords.x && zielportal[1] != koords.y) {
  1275. melde("Sprungziel vorhanden, gehe zu Subraumportal");
  1276. goSubraumportal();
  1277. } else {
  1278. melde("Sprungziel entspricht dem aktuellen Sektor - Reise beendet");
  1279. setConfig("sprungassistent_zielwahl", "");
  1280. }
  1281. }
  1282. }
  1283.  
  1284. if (/\[VA\-\d+\]/.exec(sa.name)) {
  1285. $("table#map").parent().closest("table").find(">tbody>tr>td:eq(1)").append("<div id='infosonde'></div>");
  1286. $("#infosonde")[0].innerHTML = "<b>Sondenaufklärung:</b><br>Sonde hat noch " + sa.gondeln + " Gondeln.<br>Lade Ziel...";
  1287.  
  1288. window.setTimeout(function () {
  1289. if ($("td.nb:contains('Sondenaufklärung'):contains('Lade Ziel')").length == 1) {
  1290. //Wenn das Ziel nach 5 Sekunden nicht geladen wurde, Neustart
  1291. window.location.reload();
  1292. }
  1293. }, 10000);
  1294.  
  1295. getIt("export/sondenaufklaerung?pos="+sa.koords.x+"|"+sa.koords.y+"&ncc="+sa.ncc+"&lrs="+sa.lrs+"&name="+sa.name, function (data) {
  1296.  
  1297. $("#infosonde")[0].innerHTML = "<b>Sondenaufklärung:</b><br>Gondeln: "+sa.gondeln+"<br>Sektor: "+data.sektorPrint+"<br>Westen: "+data.anzWesten+" Osten: "+data.anzOsten+"<br> "+data.err+"<br>Ziel: "+data.ziel.x+"|"+data.ziel.y+" ("+data.dist+" Felder)<br>Flugbefehl: "+data.next.x+"|"+data.next.y+"<br>";
  1298.  
  1299.  
  1300. for (i = 0; i < felder.length; i++) {
  1301.  
  1302. //Unten
  1303. if (felder[i].ky == data.sektor.e.y && felder[i].kx >= data.sektor.s.x && felder[i].kx <= data.sektor.e.x) {
  1304. $(felder[i]).css('border-bottom', '1px solid magenta');
  1305. }
  1306. //Oben
  1307. if (felder[i].ky == data.sektor.s.y && felder[i].kx >= data.sektor.s.x && felder[i].kx <= data.sektor.e.x) {
  1308. $(felder[i]).css('border-top', '1px solid magenta');
  1309. }
  1310. //Rechts
  1311. if (felder[i].kx == data.sektor.e.x && felder[i].ky >= data.sektor.s.y && felder[i].ky <= data.sektor.e.y) {
  1312. $(felder[i]).css('border-right', '1px solid magenta');
  1313. }
  1314. //Links
  1315. if (felder[i].kx == data.sektor.s.x && felder[i].ky >= data.sektor.s.y && felder[i].ky <= data.sektor.e.y) {
  1316. $(felder[i]).css('border-left', '1px solid magenta');
  1317. }
  1318.  
  1319.  
  1320. }
  1321.  
  1322. if (sa.gondeln - 3 > data.dist) {
  1323. if (data.fliegen) {
  1324. $("#infosonde")[0].innerHTML = $("#infosonde")[0].innerHTML + "<b style='color:red;'>Fliege!</b><br>";
  1325.  
  1326. var dx = data.next.x - sa.koords.x + sa.lrs;
  1327. var dy = data.next.y - sa.koords.y + sa.lrs;
  1328. var pos = (dy * (2*sa.lrs+1)) + dx;
  1329. $($("table#map td.cell,td.cell_nourl")[pos]).css('border', '3px dashed magenta');
  1330.  
  1331. if (getConfig("sonden_autopilot") && felder.length == (2*sa.lrs+1)*(2*sa.lrs+1)) {
  1332.  
  1333.  
  1334. function starteSonde() {
  1335. pos = parseInt($("#nsf")[0].innerHTML,10);
  1336. $($("table#map td.cell,td.cell_nourl")[pos]).find("a")[0].click();
  1337. }
  1338.  
  1339. if ($("td.button:contains('In Orbit einfliegen')").length == 0 || isColonized == 0) {
  1340. $("#infosonde")[0].innerHTML = $("#infosonde")[0].innerHTML + "Autopilot aktiviert! Los gehts...<span id='nsf' style='display:none;'>"+pos+"</span>";
  1341. window.setTimeout(starteSonde, 2500);
  1342. } else {
  1343. $("#infosonde")[0].innerHTML = $("#infosonde")[0].innerHTML + "Autopilot aktiviert! Eintritt in Orbit...";
  1344. $("td.button:contains('In Orbit einfliegen')").find("a")[0].click();
  1345. }
  1346.  
  1347. } else {
  1348. $("#infosonde")[0].innerHTML = $("#infosonde")[0].innerHTML + "Autopilot deaktiviert!";
  1349. }
  1350.  
  1351.  
  1352. } else {
  1353. $("#infosonde")[0].innerHTML = $("#infosonde")[0].innerHTML + "<b style='color:red;'>Serverbefehl: Nicht fliegen</b>";
  1354. }
  1355. } else {
  1356. $("#infosonde")[0].innerHTML = $("#infosonde")[0].innerHTML + "<b style='color:red;'>Zu wenig Gondeln</b>";
  1357. }
  1358.  
  1359.  
  1360. });
  1361.  
  1362. }
  1363.  
  1364.  
  1365.  
  1366. }
  1367. catch (e) {
  1368. melde("Kein Sondenflug möglich");
  1369. }
  1370.  
  1371.  
  1372.  
  1373.  
  1374. function berechneNavi(x='',y='') {
  1375. melde("Berechne Navi");
  1376.  
  1377. var ziel_x;
  1378. var ziel_y;
  1379. if (parseInt(x)>0) {
  1380. ziel_x = x;
  1381. } else {
  1382. ziel_x = $("#s_x").val();
  1383. }
  1384. if (parseInt(y)>0) {
  1385. ziel_y = y;
  1386. } else {
  1387. ziel_y = $("#s_y").val();
  1388. }
  1389. getIt("export/wegberechnung?ziel="+ziel_x+"|"+ziel_y+"&start="+koords.x + "|" + koords.y, function (data) {
  1390. melde("Wegberechnungsdaten erhalten");
  1391. melde("Zum Ziel sind es " + data.felder + " Felder!");
  1392.  
  1393. $("#wegb_ziel").text(data.ziel.x + "|" + data.ziel.y);
  1394. $("#wegb_distanz").text((Math.abs(koords.x - data.ziel.x) + Math.abs(koords.y - data.ziel.y)));
  1395. setConfig("wegberechnung", JSON.stringify(data));
  1396. var feld;
  1397. for (i = 0; i < felder.length; i++) {
  1398. feld = data.strecke[felder[i].kx.toString() + felder[i].ky.toString()];
  1399. if (!(typeof feld === "undefined")) {
  1400. //melde("Zeichne im Feld " + felder[i].kx + "|" + felder[i].ky + " die Daten ein.");
  1401.  
  1402. if (feld.marker & 1) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_right0")); }
  1403. if (feld.marker & 2) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_bottom0")); }
  1404. if (feld.marker & 4) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_left0")); }
  1405. if (feld.marker & 8) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_top0")); }
  1406. }
  1407. }
  1408.  
  1409. });
  1410. }
  1411.  
  1412.  
  1413. function berechneNaviAufklaerung(ziel_x,ziel_y) {
  1414. melde("Berechne Aufklärungspfad zu zu " + ziel_x + "|" + ziel_y);
  1415. $("input[name='fp_fly']").val("" + ziel_x + "|" + ziel_y);
  1416.  
  1417. getIt("export/wegberechnung?ziel="+ziel_x+"|"+ziel_y+"&start="+koords.x + "|" + koords.y, function (data) {
  1418. melde("Wegberechnungsdaten erhalten");
  1419. melde("Zum Ziel sind es " + data.felder + " Felder!");
  1420.  
  1421. $("#wegb_ziel").text(data.ziel.x + "|" + data.ziel.y);
  1422. $("#wegb_distanz").text((Math.abs(koords.x - data.ziel.x) + Math.abs(koords.y - data.ziel.y)));
  1423. var feld;
  1424. for (i = 0; i < felder.length; i++) {
  1425. feld = data.strecke[felder[i].kx.toString() + felder[i].ky.toString()];
  1426. if (!(typeof feld === "undefined")) {
  1427. melde("Zeichne im Feld " + felder[i].kx + "|" + felder[i].ky + " die Daten ein.");
  1428.  
  1429. if (feld.marker & 1) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierungAufklaerung("line_right0")); }
  1430. if (feld.marker & 2) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierungAufklaerung("line_bottom0")); }
  1431. if (feld.marker & 4) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierungAufklaerung("line_left0")); }
  1432. if (feld.marker & 8) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierungAufklaerung("line_top0")); }
  1433. }
  1434. }
  1435.  
  1436. });
  1437. }
  1438.  
  1439. //Wegberechnungs-Assistent
  1440. $("table#map").parent().closest("table").find(">tbody>tr>td:eq(1)").append("<div id='stnenavi'><br><table><tr><td colspan='2'>Navi</td></tr><tr><td><input class='button' value='' id='s_x' size='2'>|<input value='' class='button' id='s_y' size='2'></td></tr><tr><td colspan='2'>Aktuelles Ziel: <span id='wegb_ziel'>N/A</span><br>Felder: <span id='wegb_distanz'>N/A</span></td><tr><td colspan='2' id='navi_ber'></td></tr></table></div>");
  1441. $("#wegb_distanz").click(function () { berechneNavi($("#wegb_ziel").text().split("|")[0], $("#wegb_ziel").text().split("|")[1]); });
  1442. document.getElementById('navi_ber').appendChild(getButton('Berechnen', 'navi_ber', berechneNavi));
  1443. document.getElementById('navi_ber').appendChild(getButton('Reset', 'navi_ber', function () { setConfig("wegberechnung",""); alert("Die Route wird beim nächsten Laden nicht mehr angezeigt.");}));
  1444.  
  1445.  
  1446. //ScriptButtons
  1447.  
  1448. function showInfoAtMouse(text) {
  1449. infoBoxMaus.content(unescapeHtml(text));
  1450. }
  1451.  
  1452. function executeCommand(cmd) {
  1453. $("#gk_konsole_text").val("var myship as new cmyship (" + sa.ncc + ");\n" + cmd);
  1454. executeConsole();
  1455. }
  1456.  
  1457.  
  1458.  
  1459. function loadSTNEPage(url, callbackFunc) {
  1460. $.ajax({
  1461. method: "GET",
  1462. url: "game" + url,
  1463. dataType: "html"
  1464. }).done(function( ret ) {
  1465. var data = {};
  1466. data.html = ret;
  1467. data.resp = $('<html />').html(ret);
  1468. data.msg = /id\=\"applog\"\>(.*?)<\/div\>/.exec(ret);
  1469. if (data.resp.find("#applog").length > 0) {
  1470. data.msg = data.resp.find("#applog").html();
  1471. } else {
  1472. data.msg = "Keine Infoleiste";
  1473. }
  1474. callbackFunc(data);
  1475. });
  1476. }
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482. function executeConsoleReload() {
  1483. $.ajax({
  1484. method: "POST",
  1485. url: "game" + getConfig("url_skriptkonsole"),
  1486. data: "src=" + encodeURIComponent($("#gk_konsole_text").val()),
  1487. dataType: "html"
  1488. }).done(function( ret ) {
  1489. location.href = "game" + $("a:contains('Aktualisieren')").attr('href');
  1490. //ret = /Script gestartet.\<br\>(.*)\<br\>Script beendet/.exec($(ret).find("td.l.console")[0].innerHTML)[1];
  1491. if ($(ret).find("td.l.console").length > 0) {
  1492. var ret_meldung = /Script gestartet.<br\>(.*)<br\>Script beendet/.exec($(ret).find("td.l.console")[0].innerHTML)[1];
  1493.  
  1494. }
  1495. ret = $(ret).find("td.l.console")[0].innerHTML;
  1496. showInfoAtMouse(ret);
  1497. $("#cons_ret")[0].innerHTML = ret;
  1498.  
  1499. });
  1500. }
  1501.  
  1502. function executeConsole() {
  1503. $.ajax({
  1504. method: "POST",
  1505. url: "game" + getConfig("url_skriptkonsole"),
  1506. data: "src=" + encodeURIComponent($("#gk_konsole_text").val()),
  1507. dataType: "html"
  1508. }).done(function( ret ) {
  1509. //ret = /Script gestartet.\<br\>(.*)\<br\>Script beendet/.exec($(ret).find("td.l.console")[0].innerHTML)[1];
  1510. if ($(ret).find("td.l.console").length > 0) {
  1511. var ret_meldung = /Script gestartet.<br\>(.*)<br\>Script beendet/.exec($(ret).find("td.l.console")[0].innerHTML)[1];
  1512.  
  1513. }
  1514. ret = $(ret).find("td.l.console")[0].innerHTML;
  1515. showInfoAtMouse(ret);
  1516. $("#cons_ret")[0].innerHTML = ret;
  1517.  
  1518. });
  1519. }
  1520.  
  1521. var isFlottenbefehl = 0;
  1522. if ($("td.buttonbody:contains('Befehle an')").siblings("td:eq(0)").html() == "Schiff" || $("td.buttonbody:contains('Befehle an')").siblings("td:eq(0)").length == 0) {
  1523. isFlottenbefehl = 0;
  1524. } else {
  1525. isFlottenbefehl = 1;
  1526. FlottenBefehleAn = $("td.buttonbody:contains('Befehle an')").siblings("td:eq(0)").html();
  1527. }
  1528.  
  1529. function formatButtonBefehlsTyp(button) {
  1530. if (isFlottenbefehl) {
  1531. button.css('color', '#ff9922');
  1532. } else {
  1533. button.css('color', '#00aaff');
  1534. }
  1535. }
  1536.  
  1537. //Skript-Konsole hinzufügen
  1538.  
  1539. $("body").append("<div id='gk_konsole'><table style=' margin-top:40px; margin-left:20px;'><tr><td><b>Skript-Konsole:</b></td></tr><tr><td><textarea id='gk_konsole_text' class='console' style='width:500px; height:100px;'>var myShip as New CMyShip(" + sa.ncc + ");\n</textarea></td></tr><tr><td id='gk_konsole_td'></td></tr><tr><td id='cons_ret'></td></tr></table></div>");
  1540. $("#gk_konsole_text").bind("click", function () { $(this).css('width','800px'); $(this).css('height','200px'); });
  1541. document.getElementById('gk_konsole_td').appendChild(getButton('Execute', 'cons_go', executeConsole));
  1542.  
  1543. $("table#map").parent().closest("table").find(">tbody>tr>td:eq(1)").append("<div id='console_buttons'></div>");
  1544.  
  1545. //SHP bzw. Sigs umschalten
  1546. if (sa.typ == 45 || sa.typ == 69) {
  1547. document.getElementById('console_buttons').appendChild(getButton('SHP: Flugaktivität', 'cons_shp', function () {
  1548. $("#gk_konsole_text").val(varThisShip + "myship.LRSNumericType = ELRSNumericType.Flugaktivitäten;\nWriteLine('Auf SHP-Spur geschalten');");
  1549. executeConsole();
  1550. }));
  1551. document.getElementById('console_buttons').appendChild(getButton('SHP: Signaturen', 'cons_shp', function () {
  1552. $("#gk_konsole_text").val(varThisShip + "myship.LRSNumericType = ELRSNumericType.Energiesignaturen;\nWriteLine('Auf Sigs geschalten');");
  1553. executeConsole();
  1554. }));
  1555. }
  1556.  
  1557. //Alles auf Planeten entleeren
  1558. if (planet && planet.typ && isOrbit) {
  1559. document.getElementById('console_buttons').appendChild(getButton('Schiff entleeren auf Planet', 'cons_beam', function doConsBeamAll() {
  1560. $("#gk_konsole_text").val("Var s As New CMyShip(" + sa.ncc + ");\nVar goods As New CGoodsInfoEnumerator();\nVar sum As Integer = 0;\ngoods.Reset();\nWhile (goods.Next()) {\nIf (s.StockRoom.Amount(goods.CurrentWarenInfo.GoodsType) > 0) {\nsum = sum + s.StockRoom.Amount(goods.CurrentWarenInfo.GoodsType);\ns.Action.TransferToColony(s.Sector.SectorID, s.StockRoom.Amount(goods.CurrentWarenInfo.GoodsType), goods.CurrentWarenInfo.GoodsType);\n}\n}");
  1561. executeConsole();
  1562.  
  1563. }));
  1564. $("#cons_beam").css('color', '#00aaff');
  1565. }
  1566.  
  1567. //Bussard-Kollektoren
  1568. if ($("a.button:contains('BussardKollektoren')").length > 0) {
  1569. $("a.button:contains('BussardKollektoren')").parent().parent().parent().parent().parent().parent().append("<table><tr><td id='gasdichte_1'></td><td id='gasdichte_2'></td></tr></table>");
  1570. $("a.button:contains('BussardKollektoren')").parent().parent().parent().parent().parent().appendTo("#gasdichte_1");
  1571.  
  1572. $("#gasdichte_2").append("<td class='nb' id='Bussard'></td>");
  1573.  
  1574. document.getElementById('Bussard').appendChild(getButton('BussardKollektoren [Max]', 'cons_wk_wk', function () {
  1575. executeCommand("if (myship.Definition.BussardCollectorCapacity - myship.BussardCollectorHeating > 0) {\n myship.Action.CollectDeuterium(myship.Definition.BussardCollectorCapacity - myship.BussardCollectorHeating);\n} else { \n WriteLine(\"Keine Kollektoren\");}\n");
  1576. }));
  1577. $("#cons_wk_wk").css('color', '#00aaff');
  1578. }
  1579.  
  1580. if ($("a.button:contains('Treibstoff')").length > 0) {
  1581. if ($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find(":contains('Keine Waren vorhanden')").length == 0) {
  1582. var anz_deut = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Deuterium')").find("td:eq(1)>span").html(),10);
  1583. var anz_dili = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Dilithium')").find("td:eq(1)>span").html(),10);
  1584. var anz_am = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Antimaterie')").find("td:eq(1)>span").html(),10);
  1585. var anz_plasma = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Plasma'):not(:contains('torp'))").find("td:eq(1)>span").html(),10);
  1586. var anz_wk = Math.min(Math.min(Math.floor(anz_deut/2), Math.floor(anz_am/2)), anz_dili);
  1587.  
  1588. if (anz_wk >= 1) {
  1589. $("a.button:contains('Treibstoff')").parent().parent().parent().parent().parent().parent().parent().append("<td class='nb' id='WK_WK'></td>");
  1590. document.getElementById('WK_WK').appendChild(getButton(anz_wk + ' WK-Füllungen', 'cons_wk_wk', function () {
  1591.  
  1592. var anz_deut = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Deuterium')").find("td:eq(1)>span").html(),10);
  1593. var anz_dili = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Dilithium')").find("td:eq(1)>span").html(),10);
  1594. var anz_am = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Antimaterie')").find("td:eq(1)>span").html(),10);
  1595. var anz_wk = Math.min(Math.min(Math.floor(anz_deut/2), Math.floor(anz_am/2)), anz_dili);
  1596.  
  1597. executeCommand("myship.Action.RefillWarpCore("+(anz_wk*50)+",EWarpCoreFillType.dilliamdeut);");
  1598. $("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Deuterium')").find("td:eq(1)>span").html(anz_deut - 2 * anz_wk);
  1599. $("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Dilithium')").find("td:eq(1)>span").html(anz_dili - anz_wk);
  1600. $("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Antimaterie')").find("td:eq(1)>span").html(anz_am - 2 * anz_wk);
  1601. }));
  1602. }
  1603.  
  1604. if (anz_plasma >= 1) {
  1605. $("a.button:contains('Treibstoff')").parent().parent().parent().parent().parent().parent().parent().append("<td class='nb' id='WK_Plasma'></td>");
  1606. document.getElementById('WK_Plasma').appendChild(getButton(anz_plasma + ' Plasma', 'cons_wk_plasma', function () {
  1607.  
  1608. var anz_plasma = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Plasma')").find("td:eq(1)>span").html(),10);
  1609.  
  1610. executeCommand("myship.Action.RefillWarpCore("+(anz_plasma*6)+",EWarpCoreFillType.plasma);");
  1611. $("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Plasma'):not(:contains('torp'))").find("td:eq(1)>span").html("0");
  1612. }));
  1613. }
  1614.  
  1615. if (anz_deut >= 2) {
  1616. $("a.button:contains('Treibstoff')").parent().parent().parent().parent().parent().parent().parent().append("<td class='nb' id='WK_Deut'></td>");
  1617. document.getElementById('WK_Deut').appendChild(getButton(anz_deut + ' Deuterium', 'cons_wk_deut', function () {
  1618.  
  1619. var anz_deut = parseInt($("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Deuterium')").find("td:eq(1)>span").html(),10);
  1620.  
  1621. executeCommand("myship.Action.RefillWarpCore("+(anz_deut*0.5)+",EWarpCoreFillType.deuterium);");
  1622. $("td.buttonbody:contains('Frachtraum')").parent().siblings("").find("table:eq(0)").find("tr:contains('Deuterium')").find("td:eq(1)>span").html("0");
  1623. }));
  1624. }
  1625.  
  1626.  
  1627. }
  1628. $("#cons_wk_wk").css('color', '#00aaff');
  1629. $("#cons_wk_deut").css('color', '#00aaff');
  1630. $("#cons_wk_plasma").css('color', '#00aaff');
  1631.  
  1632. }
  1633.  
  1634.  
  1635. //Traktorstrahl-Button
  1636. if ($("a.button:contains('Abschalten')").length > 0) {
  1637. $("a.button:contains('Abschalten')").css('color', '#00aaff');
  1638. $("a.button:contains('Abschalten')").bind('click', function () {
  1639. loadSTNEPage($("a.button:contains('Abschalten')").attr('href'), function (data) {
  1640. showInfoAtMouse(data.msg);
  1641. if (data.msg == "Traktorstrahl abgeschaltet") {
  1642. $("a.button:contains('Abschalten')").html('---Abgeschaltet---');
  1643. } else {
  1644. $("a.button:contains('Abschalten')").html('---Abschalten fehlgeschlagen---');
  1645. }
  1646. });
  1647. return false;
  1648. });
  1649. }
  1650.  
  1651.  
  1652. //Overdrive-Button
  1653. if ($("td.buttonbody:contains('Overdrive')").siblings().find("a.button").length > 0) {
  1654. $("td.buttonbody:contains('Overdrive')").siblings().find("a.button").parent().parent().parent().parent().parent().parent().append("<table border=0><tr><td class='nb' id='overdrive_1'></td><td class='nb' id='overdrive_2'></td></tr></table>");
  1655. $("td.buttonbody:contains('Overdrive')").siblings().find("a.button").parent().parent().parent().parent().parent().appendTo("#overdrive_1");
  1656.  
  1657.  
  1658. document.getElementById('overdrive_2').appendChild(getButton($("td.buttonbody:contains('Overdrive')").siblings().find("a.button").html(), 'bt_overdrive', function () {}));
  1659. $("#bt_overdrive").find("a").attr('href',$("#overdrive_1").find("a").attr('href'));
  1660.  
  1661.  
  1662. formatButtonBefehlsTyp($("#bt_overdrive").find("a"));
  1663.  
  1664.  
  1665. $("#bt_overdrive").bind('click', function () {
  1666.  
  1667. loadSTNEPage($("#bt_overdrive").find("a").attr('href'), function (data) {
  1668. showInfoAtMouse(data.msg);
  1669. if (data.msg.indexOf("deaktiviert") > 0) {
  1670. $("#bt_overdrive").find("a").html('Wurde deaktiviert - Klicken zum Aktivieren');
  1671. $("#bt_overdrive").find("a").attr('href',$(data.html).find("td.buttonbody:contains('Overdrive')").siblings().find("a").attr('href'));
  1672. } else if (data.msg.indexOf("aktiviert") > 0) {
  1673. $("#bt_overdrive").find("a").html('Wurde aktiviert - Klicken zum Deaktivieren');
  1674. $("#bt_overdrive").find("a").attr('href',$(data.html).find("td.buttonbody:contains('Overdrive')").siblings().find("a").attr('href'));
  1675. } else {
  1676. $("#bt_overdrive").find("a").html('---Fehler---');
  1677. }
  1678. });
  1679. return false;
  1680. });
  1681. }
  1682.  
  1683. //Buttons für Befehle senden an
  1684. if ($("td.buttonbody:contains('Befehle senden an')").siblings().find("a.button").length > 0) {
  1685. $("td.buttonbody:contains('Befehle senden an')").siblings().find("a.button").parent().parent().parent().parent().parent().parent().append("<table border=0><tr id='tr_befehle'><td class='nb' id='td_befehle'></td><td class='nb' id='befehle_0'></td></tr></table>");
  1686. $("td.buttonbody:contains('Befehle senden an')").siblings().find("a.button").parent().parent().parent().parent().parent().appendTo("#td_befehle");
  1687.  
  1688.  
  1689. document.getElementById('befehle_0').appendChild(getButton('Ändern', 'bt_befehleAn', function () {
  1690. loadSTNEPage($("td.buttonbody:contains('Befehle senden an')").siblings().find("a.button").attr('href'), function (data) {
  1691.  
  1692. var formAction = data.resp.find("form:contains('Befehle senden an')").attr('action');
  1693. var formOpts = data.resp.find("select>option");
  1694. //$("body").append("<form id='bfa' action='"+formAction+"' method='post'><input type='submit' id='flotten_id' name='v' value=''></form>")
  1695.  
  1696. $("#bt_befehleAn").remove();
  1697. var i;
  1698. for (i=0;i<formOpts.length;i++) {
  1699. if (i > 0) {
  1700. $("#tr_befehle").append("<td class='nb' id='befehle_" + i + "'></td>");
  1701. }
  1702. document.getElementById('befehle_'+i).appendChild(getButton(formOpts[i].text, 'bt_befehle'+i, function () {
  1703. $.ajax({
  1704. method: "POST",
  1705. url: "game" + formAction,
  1706. dataType: "text",
  1707. data: "v=" + $(this).attr('fid')
  1708. }).done(function( ret ) {
  1709.  
  1710. var response = $('<html />').html(ret);
  1711. showInfoAtMouse(response.find("#applog").html() + " - Seite wird neu geladen");
  1712. location.href = location.href;
  1713. });
  1714. // $("#flotten_id").attr('value', $(this).attr('fid'));
  1715. // $("#bfa").submit();
  1716. }));
  1717. $("#bt_befehle"+i).find("a").attr('fid', formOpts[i].value);
  1718. }
  1719. });
  1720. }));
  1721.  
  1722. $("#bt_befehleAn").css('color', '#00aaff');
  1723.  
  1724.  
  1725. }
  1726.  
  1727. //Alarmstufe-Buttons
  1728. if ($("td.buttonbody:contains('Alarmstufe')").siblings().find("a.button").length == 2) {
  1729. var ab_gruen = $("td.buttonbody:contains('Alarmstufe')").siblings().find("a.button:contains('Grün')").length;
  1730. var ab_gelb = $("td.buttonbody:contains('Alarmstufe')").siblings().find("a.button:contains('Gelb')").length;
  1731. var ab_rot = $("td.buttonbody:contains('Alarmstufe')").siblings().find("a.button:contains('Rot')").length;
  1732.  
  1733. $("td.buttonbody:contains('Alarmstufe')").siblings("td.np").find(">table>tbody>tr").append("<td class='nb' id='new_alertbutton'></td");
  1734.  
  1735. if (ab_rot == 0) {
  1736. document.getElementById('new_alertbutton').appendChild(getButton('Rot', 'ab_rot', function () {
  1737. if (isFlottenbefehl) {
  1738. executeCommand("Var fe As New CFleetEnumerator();\nVar fname As String = \"" + FlottenBefehleAn +"\";\nVar fid As Integer;\nVar f As CMyFleet;\nWhile(fe.Next()) {\nIf (fe.CurrentFleet.Name = fname) {\nIf (fid) {\nfid = - 1;\n } Else {\nfid = fe.CurrentFleet.FleetID;\n}\nWriteLine(fe.CurrentFleet.Name);\n}\n}\nf = new CMyFleet(fid); f.Action.SetAlertLevel(EAlertLevel.Red);");
  1739. } else {
  1740. executeCommand("myship.Action.SetAlertLevel(EAlertLevel.Red);");
  1741. }
  1742. }));
  1743. } else if (ab_gelb == 0) {
  1744. $("#new_alertbutton").insertBefore($("td.buttonbody:contains('Alarmstufe')").siblings().find("td:contains('Rot'):eq(0)"));
  1745. document.getElementById('new_alertbutton').appendChild(getButton('Gelb', 'ab_gelb', function () {
  1746. if (isFlottenbefehl) {
  1747. executeCommand("Var fe As New CFleetEnumerator();\nVar fname As String = \"" + FlottenBefehleAn +"\";\nVar fid As Integer;\nVar f As CMyFleet;\nWhile(fe.Next()) {\nIf (fe.CurrentFleet.Name = fname) {\nIf (fid) {\nfid = - 1;\n } Else {\nfid = fe.CurrentFleet.FleetID;\n}\nWriteLine(fe.CurrentFleet.Name);\n}\n}\nf = new CMyFleet(fid); f.Action.SetAlertLevel(EAlertLevel.Yellow);");
  1748. } else {
  1749. executeCommand("myship.Action.SetAlertLevel(EAlertLevel.Yellow);");
  1750. }
  1751. }));
  1752. } else if (ab_gruen == 0) {
  1753. $("#new_alertbutton").insertBefore($("td.buttonbody:contains('Alarmstufe')").siblings().find("td:contains('Gelb'):eq(0)"));
  1754. document.getElementById('new_alertbutton').appendChild(getButton('Grün', 'ab_gruen', function () {
  1755. if (isFlottenbefehl) {
  1756. executeCommand("Var fe As New CFleetEnumerator();\nVar fname As String = \"" + FlottenBefehleAn +"\";\nVar fid As Integer;\nVar f As CMyFleet;\nWhile(fe.Next()) {\nIf (fe.CurrentFleet.Name = fname) {\nIf (fid) {\nfid = - 1;\n } Else {\nfid = fe.CurrentFleet.FleetID;\n}\nWriteLine(fe.CurrentFleet.Name);\n}\n}\nf = new CMyFleet(fid); f.Action.SetAlertLevel(EAlertLevel.Green);");
  1757. } else {
  1758. executeCommand("myship.Action.SetAlertLevel(EAlertLevel.Green);");
  1759. }
  1760. }));
  1761. }
  1762. formatButtonBefehlsTyp($("#new_alertbutton").find("a"));
  1763. }
  1764.  
  1765. //Schildemitter-Buttons
  1766. if ($("td.buttonbody:contains('Schildemitter')").siblings().find("a.button").length == 1) {
  1767. $("td.buttonbody:contains('Schildemitter')").siblings().find("a.button").parent().parent().parent().parent().parent().parent().append("<table border=0><tr><td class='nb' id='schild_1'></td><td class='nb' id='schild_2'></td><td class='nb' id='schild_3'></td></tr></table>");
  1768. $("td.buttonbody:contains('Schildemitter')").siblings().find("a.button").parent().parent().parent().parent().parent().appendTo("#schild_1");
  1769.  
  1770. document.getElementById('schild_2').appendChild(getButton('Aktivieren', 'bt_schildeAn', function () {
  1771. if (isFlottenbefehl) {
  1772. executeCommand("Var fe As New CFleetEnumerator();\nVar fname As String = \"" + FlottenBefehleAn +"\";\nVar fid As Integer;\nVar f As CMyFleet;\nWhile(fe.Next()) {\nIf (fe.CurrentFleet.Name = fname) {\nIf (fid) {\nfid = - 1;\n } Else {\nfid = fe.CurrentFleet.FleetID;\n}\nWriteLine(fe.CurrentFleet.Name);\n}\n}\nf = new CMyFleet(fid); f.Action. ActivateShields(True);");
  1773. } else {
  1774. executeCommand("myship.Action.ActivateShields(True);");
  1775. }
  1776. }));
  1777.  
  1778. document.getElementById('schild_3').appendChild(getButton('Deaktivieren', 'bt_schildeAus', function () {
  1779. if (isFlottenbefehl) {
  1780. executeCommand("Var fe As New CFleetEnumerator();\nVar fname As String = \"" + FlottenBefehleAn +"\";\nVar fid As Integer;\nVar f As CMyFleet;\nWhile(fe.Next()) {\nIf (fe.CurrentFleet.Name = fname) {\nIf (fid) {\nfid = - 1;\n } Else {\nfid = fe.CurrentFleet.FleetID;\n}\nWriteLine(fe.CurrentFleet.Name);\n}\n}\nf = new CMyFleet(fid); f.Action. ActivateShields(False);");
  1781. } else {
  1782. executeCommand("myship.Action.ActivateShields(False);");
  1783. }
  1784. }));
  1785. formatButtonBefehlsTyp($("#schild_2").find("a"));
  1786. formatButtonBefehlsTyp($("#schild_3").find("a"));
  1787. }
  1788.  
  1789. //Andocken
  1790. if ($("a.button:contains('Andocken')").length == 1) {
  1791. $("a.button:contains('Andocken')").parents("td.nb").append("<table border=0><tr><td class='nb' id='dock_1'></td><td class='nb' id='dock_2'></td></tr></table>");
  1792. $("a.button:contains('Andocken')").parents("table:eq(0)").appendTo("#dock_1");
  1793. document.getElementById('dock_2').appendChild(getButton('Andocken', 'bt_dock', function () {
  1794. loadSTNEPage($("a.button:contains('Andocken')").attr('href'), function (data) {
  1795. showInfoAtMouse(data.msg);
  1796. if (data.msg.indexOf("dockt im Sektor") > 0) {
  1797. $("#bt_dock").find("a").html('Schiff wurde angedockt - Wieder abdocken?');
  1798. $("#bt_dock").find("a").attr('href',$(data.html).find("td.buttonbody").siblings().find("a:contains('Abdocken')").attr('href'));
  1799. }
  1800. });
  1801. }));
  1802.  
  1803. formatButtonBefehlsTyp($("#dock_2").find("a"));
  1804. }
  1805.  
  1806. melde("Wegberechnungsformular eingeblendet");
  1807.  
  1808. var wegberechnungData = getConfig("wegberechnung");
  1809. var showWeg = 0;
  1810. if (wegberechnungData && wegberechnungData.length > 20) {
  1811. wegberechnungData = JSON.parse(wegberechnungData);
  1812. showWeg = 1;
  1813. melde("Ziel im Cache: " + wegberechnungData.ziel.x + "|" + wegberechnungData.ziel.y);
  1814. console.log(wegberechnungData);
  1815. berechneNavi(wegberechnungData.ziel.x, wegberechnungData.ziel.y);
  1816. }
  1817.  
  1818.  
  1819.  
  1820. var p = 0;
  1821. var d;
  1822. melde("Planeten markieren");
  1823. // Wird sofort ausgeführt bevor die Daten vom Server kommen
  1824. for (i = 0; i < felder.length; i++) {
  1825. $(felder[i]).bind('contextmenu', showContextMenu);
  1826.  
  1827. // Herausfindne, ob das Feld ein Planet ist
  1828. try {
  1829. d = parseInt(/(\d*).gif/.exec($(felder[i]).find("img[src*='i/g']:not([src*='selected'])")[0].src)[1],10);
  1830. if (d > 0 && d < 25) {
  1831. p = 1;
  1832. $(felder[i]).css('border','1px solid #555555');
  1833. } else {
  1834. p = 0;
  1835. }
  1836. } catch (err) {
  1837. p = 0;
  1838. }
  1839.  
  1840.  
  1841.  
  1842. if (sa.sektor) {
  1843. melde("Zeichne Aufklärungssektor ein");
  1844. }
  1845. console.log('xxxx');
  1846. felder[i].kx = koords.x - LRS_Groesse + (i % ((2*LRS_Groesse)+1));
  1847. felder[i].ky = koords.y - LRS_Groesse + Math.floor(i/((2*LRS_Groesse)+1));
  1848. felder[i].p = p;
  1849.  
  1850. if (showWeg == 1) {
  1851.  
  1852. $("#wegb_ziel").text(wegberechnungData.ziel.x + "|" + wegberechnungData.ziel.y);
  1853. $("#wegb_distanz").text((Math.abs(koords.x - wegberechnungData.ziel.x) + Math.abs(koords.y - wegberechnungData.ziel.y)) + " (Geschätzt)");
  1854.  
  1855. var feld = wegberechnungData.strecke[felder[i].kx.toString() + felder[i].ky.toString()];
  1856.  
  1857. if (!(typeof feld === "undefined")) {
  1858. if (feld.marker & 1) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_right0")); }
  1859. if (feld.marker & 2) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_bottom0")); }
  1860. if (feld.marker & 4) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_left0")); }
  1861. if (feld.marker & 8) { $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_top0")); }
  1862. }
  1863. } else {
  1864. melde("Kein Weg fürs Navi");
  1865. }
  1866.  
  1867.  
  1868.  
  1869. //CLK - Unten
  1870. if (felder[i].ky == 410 && felder[i].kx >= 218 && felder[i].kx <= 262) {
  1871. $(felder[i]).css('border-bottom', '3px solid #C6FF00');
  1872. }
  1873. //CLK - Oben
  1874. if (felder[i].ky == 350 && felder[i].kx >= 224 && felder[i].kx <= 292) {
  1875. $(felder[i]).css('border-top', '3px solid #C6FF00');
  1876. }
  1877.  
  1878. //CLK - Rechts
  1879. if (felder[i].kx == 292 && felder[i].kx >= 360 && felder[i].kx <= 412) {
  1880. $(felder[i]).css('border-right', '3px solid #C6FF00');
  1881. }
  1882.  
  1883. //CLK - Links
  1884. if ((felder[i].kx == 224 && felder[i].ky >= 350 && felder[i].ky <= 397) ||
  1885. (felder[i].kx == 218 && felder[i].ky >= 397 && felder[i].ky <= 410) ||
  1886. (felder[i].kx == 262 && felder[i].ky >= 410 && felder[i].ky <= 412)) {
  1887. $(felder[i]).css('border-left', '3px solid #C6FF00');
  1888. }
  1889.  
  1890.  
  1891. //Kamelot - Oben
  1892. if (felder[i].ky == 280 && felder[i].kx >= 230 && felder[i].kx <= 300) {
  1893. $(felder[i]).css('border-top', '3px solid #DD0000');
  1894. }
  1895.  
  1896. //Kamelot - Unten
  1897. if (felder[i].ky == 330 && felder[i].kx >= 230 && felder[i].kx <= 300) {
  1898. $(felder[i]).css('border-bottom', '3px solid #DD0000');
  1899. }
  1900.  
  1901. //Kamelot - Links
  1902. if (felder[i].kx == 230 && felder[i].ky >= 280 && felder[i].ky <= 330) {
  1903. $(felder[i]).css('border-left', '3px solid #DD0000');
  1904. }
  1905.  
  1906. //Kamelot - Rechts
  1907. if (felder[i].kx == 300 && felder[i].ky >= 280 && felder[i].ky <= 330) {
  1908. $(felder[i]).css('border-right', '3px solid #DD0000');
  1909. }
  1910.  
  1911.  
  1912.  
  1913.  
  1914. }
  1915.  
  1916.  
  1917.  
  1918.  
  1919. melde("LRS-Daten vom Server hohlen...");
  1920. melde("Koordinaten: ("+koords.x+"|"+koords.y+") LRS: " + LRS_Groesse);
  1921. // Auf Antwort vom Server warten
  1922. getIt("export/lrsdaten?x="+(koords.x-LRS_Groesse)+"&y="+(koords.y-LRS_Groesse)+"&lrsx="+(2*LRS_Groesse+1)+"&lrsy="+(2*LRS_Groesse+1), function (data) {
  1923.  
  1924. for (i = 0; i < data.length; i++) {
  1925. $("table#map td.cell, td.cell_nourl")[data[i].pos].setAttribute('style', data[i].style);
  1926. $("table#map td.cell, td.cell_nourl")[data[i].pos].printText = data[i].infolayer;
  1927. $("table#map td.cell, td.cell_nourl")[data[i].pos].scan = data[i].scan;
  1928. $("table#map td.cell, td.cell_nourl")[data[i].pos].setAttribute('planetAlt', data[i].alt);
  1929. $("table#map td.cell, td.cell_nourl")[data[i].pos].setAttribute('dist', data[i].dist);
  1930. $($("table#map td.cell, td.cell_nourl")[data[i].pos]).bind('mouseover', function (e) { infoBoxMaus.content(e.currentTarget.printText); infoBoxContext.hide(); });
  1931. $($("table#map td.cell, td.cell_nourl")[data[i].pos]).bind('mouseout', function () { infoBoxMaus.hide(); });
  1932. // TODO: Show Tooltip mit Benutzer etc.
  1933. }
  1934. getIt("export/lrsdaten?listShips=true&x="+(koords.x-LRS_Groesse)+"&y="+(koords.y-LRS_Groesse)+"&lrsx="+(2*LRS_Groesse+1)+"&lrsy="+(2*LRS_Groesse+1), function (data) {
  1935. var i;
  1936. for (i = 0; i < data.length; i++) {
  1937. $("table#map td.cell, td.cell_nourl")[data[i].pos].setAttribute('style', data[i].style);
  1938. // TODO: Show Tooltip mit Benutzer etc.
  1939. }
  1940. });
  1941. });
  1942.  
  1943.  
  1944. // SRS AUSLESEN
  1945.  
  1946.  
  1947.  
  1948. var trs = $("span.seperator_text:contains('SRS-Report')").closest("h1").nextAll("table:contains('NCC'):contains('Zustand')").find("td:contains('Klasse')").closest("table").find(">tbody>tr:gt(0)");
  1949. trs = $("td.bb:contains('NCC')").closest("table").find(">tbody>tr:gt(0)");
  1950.  
  1951. var clearSector;
  1952. if ($("span.seperator_text:contains('SRS-Report')").closest("h1").nextAll().find("td.button:contains('Anzeige verk')").length > 0) {
  1953. // Vollständiges SRS
  1954. clearSector = 1;
  1955. } else {
  1956. // Gekürztes SRS
  1957. clearSector = 0;
  1958. }
  1959.  
  1960. if (trs.length > 0) {
  1961. if (trs.length > 300) {
  1962. melde('Es sind zu viele Schiffe im Sektor');
  1963. } else {
  1964. var i, schiff;
  1965. var data = {schiffe:[],x:koords.x,y:koords.y,orbit:isOrbit, clearSector:clearSector, typ:'srs'};
  1966.  
  1967.  
  1968. schiff = {};
  1969. schiff.typ = /(\d*).gif/.exec($("img[src='i/b/position.gif']").closest("table").closest("td").closest("tr").siblings().find("td.img:eq(0) img").attr('src'))[1];
  1970. schiff.name = escape($("span.seperator_text:eq(0)")[0].innerHTML.split(' NCC ')[0]);
  1971. schiff.ncc = parseInt($("span.seperator_text:eq(0)")[0].innerHTML.split(' NCC ')[1],10);
  1972. schiff.uid = -555;
  1973. schiff.username = '';
  1974. data.schiffe.push(schiff);
  1975.  
  1976. for (i = 0; i < trs.length; i++) {
  1977. //username
  1978. //uid
  1979.  
  1980. schiff = {};
  1981. schiff.typ = /(\d*).gif/.exec($(trs[i]).find("td:eq(0)").find("img")[0].src);
  1982. schiff.name = '-';
  1983. if (!schiff.typ) {
  1984. schiff.typ = 31;
  1985. } else {
  1986. schiff.typ = schiff.typ[1];
  1987. }
  1988. if ($(trs[i]).find("td:eq(1) a").length == 0) {
  1989. //Fremdes Schiff
  1990. schiff.name = escape($(trs[i]).find("td:eq(1)")[0].innerHTML);
  1991. } else if ($(trs[i]).find("td:eq(1) a").length == 2) {
  1992. //Fremdes Schiff - Betreten
  1993. schiff.name = escape(stripHTML2($(trs[i]).find("td:eq(1)")[0].innerHTML));
  1994. if (schiff.name.length < 3) {
  1995. schiff.name = escape($(trs[i]).find("td:eq(1)")[0].childNodes[0].outerHTML);
  1996. }
  1997. } else if ($(trs[i]).find("td:eq(1) a").length == 3) {
  1998. schiff.name = escape($(trs[i]).find("td:eq(1) a")[0].innerHTML);
  1999. }
  2000. schiff.ncc = parseInt($(trs[i]).find(">td:eq(2)")[0].innerHTML.replace('=','').replace('NX-','').replace('&lt;','').replace('&gt;','').replace('>','').replace('<','').trim(),10);
  2001.  
  2002. schiff.username = escape($(trs[i]).find(">td:eq(5)").find("div")[0].innerHTML.replace(/addToolTip\(\{[^\}]+\}\)\;/g, "").replace(/<img[^\>]+\>/g, "").replace(/<script>[^<]*<\/script>/g, "").replace(/<a[^>]+>/g, "").replace("</a>", ""));
  2003. schiff.uid = /\((.*?)\)/.exec($(trs[i]).find(">td:eq(5) span.deact")[0].innerHTML)[1];
  2004. schiff.uid = schiff.uid.replace("SNPC-","");
  2005.  
  2006. if (schiff.uid == "NPC" || schiff.uid == "SNPC") {
  2007. schiff.uid = -1;
  2008. }
  2009. data.schiffe.push(schiff);
  2010. }
  2011. if ($("td.bb:contains('Helm Control')").length > 0) {
  2012. postIt("import/schiffsdaten", data, function ( data) {
  2013. melde("Schiffe aus SRS gespeichert : " + data.status);
  2014. if (data.aufklaerungsZiel.x) {
  2015. berechneNaviAufklaerung(data.aufklaerungsZiel.x, data.aufklaerungsZiel.y);
  2016. }
  2017. });
  2018. } else {
  2019. melde("Daten werden nicht eingetragen... Station? Hoher/Tiefer Orbit unbekannt?");
  2020. }
  2021. }
  2022.  
  2023. } else {
  2024. var i, schiff;
  2025. var data = {schiffe:[],x:koords.x,y:koords.y,orbit:isOrbit, clearSector:1, typ:'srs'};
  2026.  
  2027. schiff = {};
  2028. schiff.typ = /(\d*).gif/.exec($("img[src='i/b/position.gif']").closest("table").closest("td").closest("tr").siblings().find("td.img:eq(0) img").attr('src'))[1];
  2029. schiff.name = escape($("span.seperator_text:eq(0)")[0].innerHTML.split(' NCC ')[0]);
  2030. schiff.ncc = parseInt($("span.seperator_text:eq(0)")[0].innerHTML.split(' NCC ')[1],10);
  2031. schiff.uid = -555;
  2032. schiff.username = '';
  2033. data.schiffe.push(schiff);
  2034.  
  2035. if ($("td.bb:contains('Helm Control')").length < 1) {
  2036. //var data = {schiffe:[],x:koords.x,y:koords.y,orbit:isOrbit, clearSector:1, typ:'srs'};
  2037. melde("Daten werden nicht eingetragen... Station? Hoher/Tiefer Orbit unbekannt?");
  2038. }
  2039.  
  2040.  
  2041. postIt("import/schiffsdaten", data, function ( data) {
  2042. melde("Schiffe aus SRS gespeichert: " + data.status);
  2043. console.log(data.aufklaerungsZiel);
  2044. if (data.aufklaerungsZiel.x) {
  2045. berechneNaviAufklaerung(data.aufklaerungsZiel.x, data.aufklaerungsZiel.y);
  2046. }
  2047. });
  2048. }
  2049. }
  2050.  
  2051.  
  2052.  
  2053.  
  2054. // }
  2055. // catch(err) {
  2056. // melde("Koordinaten konnten nicht ermittelt werden.");
  2057. // }
  2058.  
  2059. }
  2060. }
  2061.  
  2062.  
  2063.  
  2064. // ####################
  2065. // Aktuelle Userliste auslesen [STNE-Skript]
  2066. // ####################
  2067.  
  2068. if ($("table:contains('{-Userliste-}')").length > 0) {
  2069. var zeilen = $("table:contains('{-Userliste-}') table tr");
  2070. var i, data;
  2071. var dataArr = [];
  2072. var nickname;
  2073. for (i = 0; i < zeilen.length; i++) {
  2074. nickname = zeilen[i].children[2].children[0].getElementsByTagName("a")[0].innerHTML;
  2075. nickname = escape(nickname);
  2076. dataArr.push({id:zeilen[i].children[0].innerHTML, aid:zeilen[i].children[1].innerHTML, name:nickname});
  2077. }
  2078. postIt("import/userliste", dataArr, function ( data) { melde("Userdaten gespeichert: " + data.status); });
  2079.  
  2080.  
  2081. }
  2082.  
  2083. // ####################
  2084. // Sternenkarte
  2085. // ####################
  2086.  
  2087. if ($("td.tab_selected:contains('Karte ansehen (Klassisch, mit Infos)')").length > 0) {
  2088.  
  2089.  
  2090. melde("Sternenkarte");
  2091. koords = {x:parseInt($("table[id='map'] tr:eq(0) td:eq(1)")[0].innerHTML,10),
  2092. y:parseInt($("table[id='map'] tr:eq(1) td:eq(0)")[0].innerHTML,10),
  2093. lrsy:($("table[id='map'] tr").length-2),
  2094. lrsx:($("table[id='map'] tr:eq(0) td").length-2)};
  2095.  
  2096.  
  2097. // LRS-Felder ermitteln
  2098. felder = $("table#map td.cell");
  2099. var anzFelder = felder.length;
  2100. var LRS_Groesse = ((Math.pow(anzFelder, 0.5)-1)/2);
  2101. melde(anzFelder + " Sternenkarten-Felder gefunen.");
  2102.  
  2103. function getNextSHPCoords() {
  2104. var shpkoords = getConfig("shpkoords");
  2105. melde("Nächsten Koordianten. String: " + getConfig("shpkoords"));
  2106. shpkoords = shpkoords.split(";");
  2107. var next = shpkoords[0];
  2108. melde("Entferne: " + shpkoords.shift());
  2109. setConfig("shpkoords", shpkoords.join(";"));
  2110. melde("String jetzt: " + getConfig("shpkoords"));
  2111. melde("Gewähltes Element: " + next);
  2112. $("#shpkoords")[0].innerHTML = getConfig("shpkoords");
  2113. return next;
  2114. }
  2115.  
  2116. function openNextSHP() {
  2117. $("#shpkoords")[0].innerHTML = getConfig("shpkoords");
  2118. melde("Vorhanden: " + getConfig("shpkoords"));
  2119. var next = getNextSHPCoords();
  2120. melde("Öffne " + next);
  2121. if (next) {
  2122. openMap(next.split("-")[0].split("|")[0], next.split("-")[0].split("|")[1], next.split("-")[1].split("|")[0], next.split("-")[1].split("|")[1]);
  2123. } else {
  2124. setConfig("shp_aktiv", -1);
  2125.  
  2126. melde("SHP-Scan beendet");
  2127. var daten = JSON.parse(getConfig("shp_daten"));
  2128. daten.scantyp = getConfig("shp_scantyp");
  2129.  
  2130. postIt("import/shpdaten", daten, function ( data) {
  2131. melde("SHP-Daten eingetragen: " + data.status);
  2132. if (getConfig("shpscan_initBy_autostart") == 1) {
  2133.  
  2134. setConfig("shp_auto_hc_on", 2);
  2135. //window.open(getConfig("urlSHPControl"), "SHP");
  2136. //window.close();
  2137. window.open('http://www.entrox-company.de/Glaskugel/interface/shpsignaturen?typ=sig');
  2138. }
  2139. });
  2140. }
  2141. }
  2142.  
  2143. function SHPStart() {
  2144. melde("Start SHP-Scan");
  2145. setConfig("shpkoords", "163|424-177|438;148|424-162|438;175|439-189|453;160|439-174|453;145|439-159|453;178|424-192|438;190|439-204|453;193|424-207|438;205|439-219|453;205|454-219|468;220|454-234|468;220|439-234|453;235|439-249|453;235|453-249|467;250|439-264|453;250|454-264|468;250|468-264|482;");
  2146. setConfig("shpkoords", "130|424-177|453;131|454-177|480;131|454-177|480;178|424-207|468;208|439-249|468;250|439-263|480;");
  2147. setConfig("shpkoords", "130|424-156|469;157|424-183|469;184|424-210|469;114|466-129|498;238|439-264|469;157|424-183|469;130|470-160|498;161|470-192|502;119|499-164|517;211|453-237|469;");
  2148.  
  2149. setConfig("shp_aktiv", 1);
  2150. var shp_daten = {data:[],status:[]};
  2151. setConfig("shp_daten", JSON.stringify(shp_daten));
  2152. openNextSHP();
  2153. }
  2154.  
  2155.  
  2156. if (getConfig("zeige_shpbutton") > 0) {
  2157. var shpbutton = getButton('SHP-Scan starten', 'shpbutton', function (e) {
  2158. setConfig("shpscan_initBy_autostart", 0);
  2159. setConfig("shp_scantyp", 1);
  2160. SHPStart();
  2161. });
  2162. var sigbutton = getButton('Sig-Scan starten', 'sigbutton', function (e) {
  2163. setConfig("shpscan_initBy_autostart", 0);
  2164. setConfig("shp_scantyp", 2);
  2165. SHPStart();
  2166. });
  2167.  
  2168. var shpbutton_reset = getButton('SHP-Scan Reset', 'shpbutton_reset', function (e) {
  2169. setConfig("shpkoords", "");
  2170. setConfig("shp_aktiv", -1);
  2171. var shp_daten = {data:[],status:[]};
  2172. setConfig("shp_daten", JSON.stringify(shp_daten));
  2173. $("#shpkoords")[0].innerHTML = getConfig("shpkoords");
  2174. });
  2175.  
  2176. $("body").append("<div id='shpkoords'></div>");
  2177. $("body").append("<table id='tbl_buttons'><tr><td id='cell_shpbutton'></td><td id='cell_sigbutton'></td><td id='cell_resetbutton'></td></tr></table>");
  2178. $("#cell_shpbutton").append(shpbutton);
  2179. $("#cell_sigbutton").append(sigbutton);
  2180. $("#cell_resetbutton").append(shpbutton_reset);
  2181.  
  2182. $("#tbl_buttons").insertBefore($("table#map")[0]);
  2183. $("#shpkoords").insertBefore($("table#map")[0]);
  2184.  
  2185. if (getConfig("shpscan_autostart") == 1) {
  2186. setConfig("shpscan_initBy_autostart", 1);
  2187. setConfig("shpscan_autostart",0);
  2188. melde("Auto-Start SHP");
  2189. SHPStart();
  2190. }
  2191.  
  2192. if (getConfig("shp_aktiv") == 1) {
  2193.  
  2194. melde("Lese Daten ein");
  2195.  
  2196. $("#shpkoords")[0].innerHTML = getConfig("shpkoords");
  2197.  
  2198. var daten = JSON.parse(getConfig("shp_daten"));
  2199.  
  2200. //Daten auslesen
  2201. var zahlen, tx, ty, nr;
  2202. var count = 0;
  2203. var sigs = "";
  2204. melde("Felder: " + felder.length);
  2205. for (i = 0; i < felder.length; i++) {
  2206. zahlen = $(felder[i]).find("td.text_cell img");
  2207. sigs = "";
  2208. $(felder[i]).find("td.text_cell img").each( function (e) {
  2209. nr = /num\/(.*)\.gif/.exec(this.src)[1];
  2210. if (nr=="komma") {
  2211. nr = ".";
  2212. }
  2213. sigs = sigs + nr;
  2214. });
  2215. sigs = parseFloat(sigs);
  2216. if (sigs > 0) {
  2217. tx = koords.x + (i % koords.lrsx);
  2218. ty = koords.y + Math.floor(i/koords.lrsx);
  2219. daten.data.push((tx+"|"+ty)+":"+sigs+" Felder: "+felder.length);
  2220. count++;
  2221. }
  2222.  
  2223. }
  2224. daten.status.push(koords.x + '|' + koords.y + ':' + count);
  2225. setConfig("shp_daten", JSON.stringify(daten));
  2226.  
  2227. openNextSHP();
  2228. }
  2229.  
  2230. }
  2231.  
  2232. melde("(" + koords.x + "|" + koords.y + ") Breite: " + koords.lrsx + " Hoehe: " + koords.lrsy);
  2233.  
  2234. melde("SHP Aktiv: " + getConfig("shp_aktiv"));
  2235. melde("Test");
  2236.  
  2237.  
  2238. var wegberechnungData = getConfig("wegberechnung");
  2239. var showWeg = 0;
  2240. if (wegberechnungData && wegberechnungData.length > 20) {
  2241. wegberechnungData = JSON.parse(wegberechnungData);
  2242. showWeg = 1;
  2243. melde("Weg einzeichnen");
  2244. } else {
  2245. melde("Kein Weg gefunden");
  2246. }
  2247.  
  2248.  
  2249. var shp_aktiv = getConfig("shp_aktiv");
  2250. if (typeof shp_aktiv == "undefined" || getConfig("shp_aktiv") < 1) {
  2251. melde("Zeichne Daten");
  2252. // Felder vor Datenanbindung mit Contextmenü versehen
  2253. var d;
  2254. // Wird sofort ausgeführt bevor die Daten vom Server kommen
  2255. melde("Binde Kontextmenü auf " + felder.length + " Felder");
  2256. for (i = 0; i < felder.length; i++) {
  2257. $(felder[i]).bind('contextmenu', showContextMenu);
  2258.  
  2259. // Herausfindne, ob das Feld ein Planet ist
  2260. try {
  2261. d = parseInt(/(\d*).gif/.exec($(felder[i]).find("img[src*='i/g']")[0].src)[1],10);
  2262. if (d > 0 && d < 25) {
  2263. p = 1;
  2264. $(felder[i]).css('border','1px solid #555555');
  2265. } else {
  2266. p = 0;
  2267. }
  2268. } catch (err) {
  2269. p = 0;
  2270. }
  2271.  
  2272. felder[i].kx = koords.x + (i % koords.lrsx);
  2273. felder[i].ky = koords.y + Math.floor(i/koords.lrsx);
  2274. felder[i].p = p;
  2275.  
  2276. if (showWeg > 0) {
  2277. melde("Gespeicherten Weg einzeichnen...");
  2278. feld = wegberechnungData.strecke[felder[i].kx.toString() + felder[i].ky.toString()];
  2279. if (!(typeof feld === "undefined")) {
  2280. if (feld.marker & 1) { melde("r"); $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_right0")); }
  2281. if (feld.marker & 2) { melde("b"); $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_bottom0")); }
  2282. if (feld.marker & 4) { melde("l"); $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_left0")); }
  2283. if (feld.marker & 8) { melde("t"); $(felder[i]).find(".celldiv")[0].appendChild(getDivWegmarkierung("line_top0")); }
  2284. }
  2285. }
  2286.  
  2287. //CLK - Unten
  2288. if (felder[i].ky == 410 && felder[i].kx >= 218 && felder[i].kx < 262) {
  2289. $(felder[i]).css('border-bottom', '3px solid #C6FF00');
  2290. }
  2291. //CLK - Oben
  2292. if ((felder[i].ky == 350 && felder[i].kx >= 224 && felder[i].kx <= 292) ||
  2293. (felder[i].ky == 397 && felder[i].kx >= 218 && felder[i].kx <= 223) ) {
  2294. $(felder[i]).css('border-top', '3px solid #C6FF00');
  2295. }
  2296.  
  2297. //CLK - Rechts
  2298. if (felder[i].kx == 292 && felder[i].ky >= 350 && felder[i].ky <= 412) {
  2299. $(felder[i]).css('border-right', '3px solid #C6FF00');
  2300. }
  2301.  
  2302. //CLK - Links
  2303. if ((felder[i].kx == 224 && felder[i].ky >= 350 && felder[i].ky < 397) ||
  2304. (felder[i].kx == 218 && felder[i].ky >= 397 && felder[i].ky <= 410) ||
  2305. (felder[i].kx == 262 && felder[i].ky > 410 && felder[i].ky <= 412)) {
  2306. $(felder[i]).css('border-left', '3px solid #C6FF00');
  2307. }
  2308.  
  2309.  
  2310. //Kamelot - Oben
  2311. if (felder[i].ky == 280 && felder[i].kx >= 230 && felder[i].kx <= 300) {
  2312. $(felder[i]).css('border-top', '3px solid #DD0000');
  2313. }
  2314.  
  2315. //Kamelot - Unten
  2316. if (felder[i].ky == 330 && felder[i].kx >= 230 && felder[i].kx <= 300) {
  2317. $(felder[i]).css('border-bottom', '3px solid #DD0000');
  2318. }
  2319.  
  2320. //Kamelot - Links
  2321. if (felder[i].kx == 230 && felder[i].ky >= 280 && felder[i].ky <= 330) {
  2322. $(felder[i]).css('border-left', '3px solid #DD0000');
  2323. }
  2324.  
  2325. //Kamelot - Rechts
  2326. if (felder[i].kx == 300 && felder[i].ky >= 280 && felder[i].ky <= 330) {
  2327. $(felder[i]).css('border-right', '3px solid #DD0000');
  2328. }
  2329.  
  2330. }
  2331. melde("Box Val: " + $("[name='opt']").val());
  2332.  
  2333. if ($("[name='opt']").val() != 3) {
  2334. getIt("export/lrsdaten?x="+koords.x+"&y="+koords.y+"&lrsx="+koords.lrsx+"&lrsy="+koords.lrsy, function (data) {
  2335. var i;
  2336. for (i = 0; i < data.length; i++) {
  2337. $("table#map td.cell:eq(" + data[i].pos + ")")[0].setAttribute('style', data[i].style);
  2338. $("table#map td.cell:eq(" + data[i].pos + ")")[0].printText = data[i].infolayer;
  2339. $("table#map td.cell:eq(" + data[i].pos + ")")[0].scan = data[i].scan;
  2340. $("table#map td.cell:eq(" + data[i].pos + ")").bind('mouseover', function (e) { infoBoxMaus.content(e.currentTarget.printText); infoBoxContext.hide(); });
  2341. $("table#map td.cell:eq(" + data[i].pos + ")").bind('mouseout', function () { infoBoxMaus.hide(); });
  2342.  
  2343. // TODO: Show Tooltip mit Benutzer etc.
  2344. }
  2345. getIt("export/lrsdaten?listShips=true&x="+koords.x+"&y="+koords.y+"&lrsx="+koords.lrsx+"&lrsy="+koords.lrsy, function (data) {
  2346. var i;
  2347. for (i = 0; i < data.length; i++) {
  2348. $("table#map td.cell, td.cell_nourl")[data[i].pos].setAttribute('style', data[i].style);
  2349. // TODO: Show Tooltip mit Benutzer etc.
  2350. }
  2351. });
  2352. });
  2353. }
  2354. } else {
  2355. melde("Ausblenden");
  2356. }
  2357. melde("Ende Sternenkarte");
  2358. }
  2359.  
  2360.  
  2361. // ####################
  2362. // Teleskopseite
  2363. // ####################
  2364.  
  2365. function ladeTeleskopReport() {
  2366. $("#scanresult")[0].innerHTML = "Lade Zusammenfassung...";
  2367. getIt("export/sektor?typ=teleskop&orbit=0&x="+$("#scanresult").attr('kx')+"&y="+$("#scanresult").attr('ky'), function (data) {
  2368. $("#scanresult")[0].innerHTML = data.data;
  2369. });
  2370. }
  2371.  
  2372. if ($("span.seperator_text:contains('Teleskop-Report von Sektor')").length > 0 && $("span.seperator_text:contains('Oberfläche')").length < 1) {
  2373. var koords = /(\d*)\|(\d*)/.exec($("span.seperator_text:contains('Teleskop-Report von Sektor')")[0].innerHTML);
  2374.  
  2375. var trs = $("table tr td:contains('Klasse')").closest("table").find(">tbody>tr:gt(0)");
  2376. var i, schiff;
  2377. var data = {schiffe:[],x:koords[1],y:koords[2],orbit:0, clearSector:1, typ:'teleskop'};
  2378. for (i = 0; i < trs.length; i++) {
  2379. schiff = {};
  2380. schiff.typ = /(\d*).gif/.exec($(trs[i]).find("td:eq(0)").find("img")[0].src);
  2381. if (!schiff.typ) {
  2382. schiff.typ = 31;
  2383. } else {
  2384. schiff.typ = schiff.typ[1];
  2385. }
  2386. if ($(trs[i]).find("td:eq(1) a").length > 0) {
  2387. schiff.name = escape($(trs[i]).find("td:eq(1) a")[0].innerHTML);
  2388. } else {
  2389. schiff.name = escape($(trs[i]).find("td:eq(1)")[0].innerHTML);
  2390. }
  2391. schiff.ncc = parseInt($(trs[i]).find(">td:eq(2)")[0].innerHTML.replace('=','').replace('NX-','').replace('>','').replace('<','').trim(),10);
  2392. schiff.username = escape($(trs[i]).find(">td:eq(5)").find("div")[0].innerHTML.replace(/addToolTip\(\{[^\}]+\}\)\;/g, "").replace(/<img[^\>]+\>/g, "").replace(/<script>[^<]*<\/script>/g, "").replace(/<a[^>]+>/g, "").replace("</a>", ""));
  2393. schiff.uid = /\((.*?)\)/.exec($(trs[i]).find(">td:eq(5) span.deact")[0].innerHTML)[1];
  2394. schiff.uid = schiff.uid.replace("SNPC-","");
  2395.  
  2396. if (schiff.uid == "NPC" || schiff.uid == "SNPC") {
  2397. schiff.uid = -1;
  2398. }
  2399. data.schiffe.push(schiff);
  2400. }
  2401.  
  2402. $("body").prepend("<div id='scanresult' kx='"+koords[1]+"' ky='"+koords[2]+"'>Speicher Daten...</div>");
  2403.  
  2404. postIt("import/schiffsdaten", data, function ( data) {
  2405. melde("Schiffe aus Teleskopscan gespeichert: " + data.status);
  2406. $("#scanresult")[0].innerHTML = "Speicher Teleskopdaten...";
  2407. window.setTimeout(ladeTeleskopReport, 1);
  2408. });
  2409. }
  2410.  
  2411.  
  2412.  
  2413.  
  2414. // ####################
  2415. // Minimap
  2416. // ####################
  2417.  
  2418. if (getConfig("minimap_typ") != 0) {
  2419. if ($("form[name='form_move']").closest("tr").length > 0) {
  2420.  
  2421. var infoPolitischeKarte = "Du befindest dich im DQ";
  2422. var infoPolitischeKarteItalic = "Keine Informationen vorhanden";
  2423.  
  2424. if (koords.x < 330 && koords.y > 420) {
  2425. infoPolitischeKarte = "Du befindest dich in der Vauthanai";
  2426. infoPolitischeKarteItalic = "Good old home";
  2427. }
  2428. if (koords.x > 360 && koords.y > 270 && koords.y < 440) {
  2429. infoPolitischeKarte = "Du befindest dich in der Fela-Nur";
  2430. infoPolitischeKarteItalic = "Angriffe sind untersagt";
  2431. }
  2432. infoPolitischeKarte = infoPolitischeKarte + "<br><font style='font-style:italic; color:#ff0000;'>" + infoPolitischeKarteItalic + "</font>";
  2433.  
  2434. $(".HelmControl").closest("tr").append("<td style='height:230px; width:230px; border:2px solid #16344E;'><img style='width:320px; height:320px;' id='minimap' minimaptyp='"+getConfig("minimap_typ")+"' src='"+baseurl+"karten/minimap.png?x="+koords.x+"&y="+koords.y+"' title='Gruen: WB, Orange: VP, Weiss: Talaxianer, Rosa Kreis: Portal'><br><a href='#' id='minimap_switch'>[Karte umschalten]</a> <a href='"+baseurl+"interface/account' target='_blank'>[Einstellungen]</a><br><br>" + infoPolitischeKarte + "</td>");
  2435.  
  2436. $("#minimap_switch").bind("click", function () {
  2437. if ($("#minimap")[0].getAttribute("minimaptyp") == "akt") {
  2438. $("#minimap")[0].src = baseurl+"karten/minimap.png?show=karte&x="+koords.x+"&y="+koords.y;
  2439. $("#minimap")[0].setAttribute("minimaptyp","karte");
  2440. } else if ($("#minimap")[0].getAttribute("minimaptyp") == "karte") {
  2441. $("#minimap")[0].src = baseurl+"karten/minimap.png?show=wrack&x="+koords.x+"&y="+koords.y;
  2442. $("#minimap")[0].setAttribute("minimaptyp","wrack");
  2443. } else if ($("#minimap")[0].getAttribute("minimaptyp") == "wrack") {
  2444. $("#minimap")[0].src = baseurl+"karten/minimap.png?show=orbit&x="+koords.x+"&y="+koords.y;
  2445. $("#minimap")[0].setAttribute("minimaptyp","orbit");
  2446. } else if ($("#minimap")[0].getAttribute("minimaptyp") == "orbit") {
  2447. $("#minimap")[0].src = baseurl+"karten/minimap.png?show=npc&x="+koords.x+"&y="+koords.y;
  2448. $("#minimap")[0].setAttribute("minimaptyp","npc");
  2449. } else {
  2450. $("#minimap")[0].src = baseurl+"karten/minimap.png?show=akt&x="+koords.x+"&y="+koords.y;
  2451. $("#minimap")[0].setAttribute("minimaptyp","akt");
  2452. }
  2453. });
  2454. }
  2455. }
  2456.  
  2457. //####################
  2458. // Ansehen auslesen
  2459. //####################
  2460.  
  2461. if ($("td.bb:contains('Aktuelles Level')").parent().next(2).find("td:eq(1)").length > 0) {
  2462. var data = {ansehen:'', runde:''};
  2463. data.ansehen = parseInt($("td.bb:contains('Aktuelles Level')").parent().next().next().find("td:eq(1)")[0].innerHTML,10);
  2464. if ($("span.deact:contains('Aktuelle Runde')").length > 0) {
  2465. data.runde = /(\d+)/.exec($("span.deact:contains('Aktuelle Runde')")[0].innerHTML)[0];
  2466. postIt("import/ansehen", data, function ( data) { melde("Ansehen gespeichert: " + data.status); });
  2467. }
  2468. }
  2469.  
  2470.  
  2471. //####################
  2472. // Profilseite
  2473. //####################
  2474.  
  2475. if ($("span:contains('Datenbank')").length > 0 && $("span:contains('Kolonisteninformation')").length > 0) {
  2476. if ($("table:contains('Ansehen extern')").find("td:contains('Ansehen extern')").siblings("td:eq(0)").length == 1) {
  2477. melde("Ansehen gefunden");
  2478. var ansehen = parseInt($("table:contains('Ansehen extern')").find("td:contains('Ansehen extern')").siblings("td:eq(0)").html(),10);
  2479. var profiluserid = /\((.*)\)/.exec($("table:contains('Ansehen extern')").find("td:contains('Ansehen extern')").parentsUntil("table").find("td.buttonbody>span").html())[1];
  2480. var data = {ansehen:'', runde:'',userid:''};
  2481. data.ansehen = ansehen;
  2482. data.userid = profiluserid;
  2483. postIt("import/ansehen", data, function ( data) { melde("Ansehen gespeichert: " + data.status); });
  2484.  
  2485. }
  2486. }
  2487.  
  2488. // ####################
  2489. // Funktionen ohne Datenanbindung
  2490. // ####################
  2491.  
  2492.  
  2493. // ####################
  2494. // Von-Bis-Auswahl
  2495. // ####################
  2496.  
  2497. // Allen Checkboxen eine weitere Checkbox für Auswahlbereich anhängen
  2498. $(":input.box").parent().append("<span style='padding:2px; background-color:#003300;'><input type='checkbox' class='box_mark' style='padding:0px; margin:0px'></span>");
  2499.  
  2500. // Funktion beim Klicken der Checkboxen
  2501. $(":input.box_mark").click(function() {
  2502. if ($(":input.box_mark:checked").length > 1) {
  2503. // Wenn zwei Checkboxen markiert wurden1
  2504. var start, stopp;
  2505. start = $(":input.box_mark").index($(":input.box_mark:checked"));
  2506. stopp = $(":input.box_mark").index($(":input.box_mark:gt("+start+"):checked"));
  2507. // Start und Stopp herausfinden
  2508.  
  2509. if (start > 0) {
  2510. // Bei Start!= 0 von Start bis Ende markieren
  2511. $(":input.box:gt("+(start-1)+"):lt("+(stopp-start+1)+")").prop('checked', true);
  2512. } else {
  2513. // Bei Start==0 bis zum Ende markieren
  2514. $(":input.box:lt("+(stopp-start+1)+")").prop('checked', true);
  2515. }
  2516. $("input.box_mark").prop('checked', false);
  2517. $(":input.box_mark").parent().css('background-color', '#003300');
  2518. } else {
  2519. // Wenn nur eine Checkbox markiert wurde rot einfärben.
  2520. $(":input.box_mark").parent().css('background-color', '#660000');
  2521. }
  2522. });
  2523.  
  2524. // ####################
  2525. // Basiskuppel markieren
  2526. // ####################
  2527.  
  2528. $("img[src*='/20/']").css('border', '2px solid #FF0000');
  2529.  
  2530. // ####################
  2531. // Beamunterstützung
  2532. // ####################
  2533. melde("Start Beamunterstützung");
  2534. if ($("span:contains('Transporterraum von')").length > 0) {
  2535. melde("Implementiere Beamunterstützung");
  2536.  
  2537. $("form:eq(0)").before($("a:contains('Zurück zur Brücke')").closest("table").clone());
  2538. $("form:eq(0)").before("<br>");
  2539.  
  2540.  
  2541. // Die Felder mit der Anzahl der Waren im Lagerraum heraussuchen
  2542. var anzahlWaren = $("form>table>tbody>tr>td>input.textbox").parent().next();
  2543. melde("Anzahl Waren: " + anzahlWaren.length);
  2544. var inp_name;
  2545. var anzDe;
  2546. var anzAm;
  2547. var anzDi;
  2548. var anz;
  2549. var n;
  2550. for (i=0;i<anzahlWaren.length;i++) {
  2551.  
  2552. // Name des jeweiligen Input-Feldes ermitteln
  2553. inp_name = $("form>table>tbody>tr>td>input.textbox:eq("+i+")").attr('name');
  2554. melde("Implementiere Beamunterstützung für " + inp_name);
  2555. // Maximale Anzahl für den Transport ermitteln
  2556. anz = stripHTML(anzahlWaren[i].innerHTML);
  2557. // Button für "Maximum" hinzufügen
  2558. $("form>table>tbody>tr>td>input.textbox:eq("+i+")").parent().append("<img id='bu_ta_all_"+i+"' onclick='document.getElementsByName(\""+inp_name+"\")[0].value = "+anz+";' style='padding-left:4px;' src='" + stne_url + "i/b/left.gif'>");
  2559.  
  2560. // Buttons für +10/+100/+1000 hinzufügen
  2561. n = 10; $("form>table>tbody>tr>td>input.textbox:eq("+i+")").parent().append("<img id='bu_ta_"+i+"' onclick='document.getElementsByName(\""+inp_name+"\")[0].value = (parseInt(document.getElementsByName(\""+inp_name+"\")[0].value,10) > 0 ? parseInt(document.getElementsByName(\""+inp_name+"\")[0].value,10) : 0) + ("+n+");;' style='padding-left:4px;' src='" + stne_url + "i/w/menge/"+n+".gif'>");
  2562. n = 100; $("form>table>tbody>tr>td>input.textbox:eq("+i+")").parent().append("<img id='bu_ta_"+i+"' onclick='document.getElementsByName(\""+inp_name+"\")[0].value = (parseInt(document.getElementsByName(\""+inp_name+"\")[0].value,10) > 0 ? parseInt(document.getElementsByName(\""+inp_name+"\")[0].value,10) : 0) + ("+n+");;' style='padding-left:4px;' src='" + stne_url + "i/w/menge/"+n+".gif'>");
  2563. n = 1000; $("form>table>tbody>tr>td>input.textbox:eq("+i+")").parent().append("<img id='bu_ta_"+i+"' onclick='document.getElementsByName(\""+inp_name+"\")[0].value = (parseInt(document.getElementsByName(\""+inp_name+"\")[0].value,10) > 0 ? parseInt(document.getElementsByName(\""+inp_name+"\")[0].value,10) : 0) + ("+n+");;' style='padding-left:4px;' src='" + stne_url + "i/w/menge/"+n+".gif'>");
  2564.  
  2565. if (inp_name === "v_6") { anzDe = anz; }
  2566. if (inp_name === "v_7") { anzAm = anz; }
  2567. if (inp_name === "v_11") { anzDi = anz; }
  2568. }
  2569.  
  2570. // Anzahl der WK-Füllungen berechnen
  2571. var anzWK = Math.min(Math.min(Math.floor(anzDe/2), Math.floor(anzAm/2)), anzDi);
  2572. melde("Anzahl WK-Füllungen:" + anzWK);
  2573. // Wenn komplette WK-Füllungen gebeamt werden können
  2574. if (parseInt(anzWK,10) > 0) {
  2575.  
  2576. // Weitere Zeile in der Beamtabelle erstellen
  2577. var tr = document.createElement("tr");
  2578. var td = document.createElement("td");
  2579. td.className = 'bb';
  2580. td.innerHTML = "WK-F&uuml;llungen";
  2581. tr.appendChild(td);
  2582. td = document.createElement("td");
  2583. td.innerHTML = "<input style='margin-left:4px;' class='textbox' name='w_WK' onchange='document.getElementsByName(\"v_6\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_7\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_11\")[0].value = (document.getElementsByName(\"w_WK\")[0].value);' size='3'></input>";
  2584. td.innerHTML += "<img style='padding-left:4px;' onclick='document.getElementsByName(\"w_WK\")[0].value = "+anzWK+";document.getElementsByName(\"v_6\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_7\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_11\")[0].value = (document.getElementsByName(\"w_WK\")[0].value);' src='" + stne_url + "i/b/left.gif'>";
  2585. n = 10; td.innerHTML += "<img style='padding-left:4px;' onclick='document.getElementsByName(\"w_WK\")[0].value = (parseInt(document.getElementsByName(\"w_WK\")[0].value) > 0 ? parseInt(document.getElementsByName(\"w_WK\")[0].value) : 0) + ("+n+");document.getElementsByName(\"v_6\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_7\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_11\")[0].value = (document.getElementsByName(\"w_WK\")[0].value);' src='" + stne_url + "i/w/menge/"+n+".gif'>";
  2586. n = 100; td.innerHTML += "<img style='padding-left:4px;' onclick='document.getElementsByName(\"w_WK\")[0].value = (parseInt(document.getElementsByName(\"w_WK\")[0].value) > 0 ? parseInt(document.getElementsByName(\"w_WK\")[0].value) : 0) + ("+n+");document.getElementsByName(\"v_6\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_7\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_11\")[0].value = (document.getElementsByName(\"w_WK\")[0].value);' src='" + stne_url + "i/w/menge/"+n+".gif'>";
  2587. n = 1000; td.innerHTML += "<img style='padding-left:4px;' onclick='document.getElementsByName(\"w_WK\")[0].value = (parseInt(document.getElementsByName(\"w_WK\")[0].value) > 0 ? parseInt(document.getElementsByName(\"w_WK\")[0].value) : 0) + ("+n+");document.getElementsByName(\"v_6\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_7\")[0].value = (document.getElementsByName(\"w_WK\")[0].value * 2); document.getElementsByName(\"v_11\")[0].value = (document.getElementsByName(\"w_WK\")[0].value);' src='" + stne_url + "i/w/menge/"+n+".gif'>";
  2588.  
  2589. tr.appendChild(td);
  2590. td = document.createElement("td");
  2591. td.innerHTML = anzWK;
  2592. tr.appendChild(td);
  2593. td = document.createElement("td");
  2594. tr.appendChild(td);
  2595. $("form>table>tbody>tr>td>input.textbox").parent().parent().parent();
  2596. var tb = $("form>table>tbody>tr>td>input.textbox").parent().parent().parent();
  2597. tb.prepend(tr);
  2598. }
  2599.  
  2600. var beameAll = getButton('Alle Waren markieren', 'bt_beamall', function ( data ) {
  2601. var imgs = $("[id*='bu_ta_all']:not([onclick*='v_crew']):not([onclick*='v_energy']):not([onclick*='v_warpkern'])");
  2602. for (n=0;n<imgs.length;n++) {
  2603. imgs[n].click();
  2604. }
  2605. });
  2606.  
  2607. var bt_beamCrew = getButton("Crew", "bt_beamCrew", function () {
  2608. $("table.ui-selectable:eq(0)").find("tr").find("td:eq(0):contains('Crew')").each(function () {
  2609. var anzCrew = $("table.ui-selectable:eq(0)").find("tr").find("td:eq(0):contains('Crew')").next().next().text();
  2610. $(this).next().find("input").val(anzCrew);
  2611. });
  2612. });
  2613.  
  2614. var bt_beamWaren = getButton("Waren", "bt_beamWaren", function () {
  2615. $("table.ui-selectable:eq(0)").find("tr").find("td:eq(0)").each(function () {
  2616. var anz = $(this).parent().find("a.beamlink").text();
  2617. if ($(this).text() == "Energie") { return; }
  2618. if ($(this).text() == "Warpkern") { return; }
  2619. $(this).parent().find("input").val(anz);
  2620. });
  2621. });
  2622.  
  2623. var bt_beamItems = getButton("Items", "bt_beamItems", function () {
  2624. $("table.ui-selectable:eq(0)").find("tr").find("td:eq(1)").each(function () {
  2625. var anzPicAvatar = $(this).find("input.box").parent().next().next().find(">img").filter(function () { return ($(this).attr('src').indexOf('avatar') != -1); }).length;
  2626. if (!anzPicAvatar) {
  2627. $(this).find("input.box").prop('checked', true);
  2628. }
  2629. });
  2630. });
  2631.  
  2632. var bt_beamAvatare = getButton("Avatare", "bt_beamAvatare", function () {
  2633. $("table.ui-selectable:eq(0)").find("tr").find("td:eq(1)").each(function () {
  2634. var anzPicAvatar = $(this).find("input.box").parent().next().next().find(">img").filter(function () { return ($(this).attr('src').indexOf('avatar') != -1); }).length;
  2635. if (anzPicAvatar) {
  2636. $(this).find("input.box").prop('checked', true);
  2637. }
  2638. });
  2639. });
  2640.  
  2641. $("body").append("<table id='beambox'><tr><td id='td_beamCrew'></td><td id='td_beamWaren'></td><td id='td_beamItems'></td><td id='td_beamAvatare'></td></tr></table>");
  2642. $("#td_beamCrew").append(bt_beamCrew);
  2643. $("#td_beamWaren").append(bt_beamWaren);
  2644. $("#td_beamItems").append(bt_beamItems);
  2645. $("#td_beamAvatare").append(bt_beamAvatare);
  2646. $("#beambox").insertBefore("form:lt(2)")
  2647.  
  2648. //$("body").append(beameAll);
  2649. //$("#bt_beamall").insertBefore("form");
  2650. //$("form:eq(0)").before(beameAll);
  2651.  
  2652. var beameAll = getButton($("form input.button")[0].value, 'bt_transportgo', function ( data ) {
  2653. $("form")[0].submit();
  2654. });
  2655. $("form:eq(0)").before(beameAll);
  2656.  
  2657.  
  2658.  
  2659.  
  2660. }
  2661.  
  2662.  
  2663. // ####################
  2664. // Schiffseite
  2665. // ####################
  2666.  
  2667. if ($("span.seperator_text").filter( function () { return $(this).text().indexOf('Meine Schiffe') == 0; }).length > 0) {
  2668.  
  2669. //$("img").filter(function () { return (0==$(this).attr('src').indexOf('i/s/')); }).closest("tr");
  2670.  
  2671.  
  2672. var pos_klasse = $("tr[head='COLUMN']").find("td:contains('Klasse')").index();
  2673. var pos_ncc = $("tr[head='COLUMN']").find("td:contains('NCC')").index();
  2674. var pos_name = $("tr[head='COLUMN']").find("td:contains('Name')").index();
  2675. var pos_koord = $("tr[head='COLUMN']").find("td:contains('Sek')").index();
  2676.  
  2677.  
  2678. var data = {schiffe:[]};
  2679.  
  2680. $("tr[id^='ncc']").each(function () {
  2681.  
  2682. var schiff = {};
  2683. //pos_klasse
  2684. schiff.typ = /(\d*).gif/.exec($(this).find(">td:eq(" + pos_klasse + ")").find("img").attr('src'));
  2685. schiff.ncc = parseInt($(this).find(">td:eq(" + pos_ncc + ")").text().replace('=','').replace('NX-','').replace('&lt;','').replace('&gt;','').replace('>','').replace('<','').trim(),10);
  2686. schiff.name = $(this).find(">td:eq(" + pos_name + ")").find("a").text();
  2687. schiff.koord = $(this).find(">td:eq(" + pos_koord + ")").find("a").text();
  2688. schiff.uid = -555;
  2689. schiff.x = 1;
  2690. schiff.y = 2;
  2691.  
  2692. if (!schiff.typ) {
  2693. schiff.typ = 31;
  2694. } else {
  2695. schiff.typ = schiff.typ[1];
  2696. }
  2697. data.schiffe.push(schiff);
  2698.  
  2699. });
  2700.  
  2701. console.log(data);
  2702.  
  2703.  
  2704. postIt("import/schiffsdaten_schiffsliste", data, function ( data) { melde("Schiffe aus Liste gespeichert: " + data.status); });
  2705. }
  2706.  
  2707. // ####################
  2708. // Angriff planen
  2709. // ####################
  2710.  
  2711.  
  2712. if (getConfig("level") >= 4 && $("span.seperator_text").filter( function () { return $(this).text().indexOf('Angriff planen') == 0; }).length > 0) {
  2713. //var typids = []; var anztyp = []; var schiffe = $("input.box").parent().next().find("img"); var i, styp;
  2714. var schiffe = $("input.box").parent().next().find("img");
  2715. var i,styp;
  2716. var typids = [];
  2717. var anztyp = {};
  2718. for (i = 0; i < schiffe.length; i++) {
  2719. styp = /(\d*)\.gif/.exec(schiffe[i].src)[1];
  2720. if (!inArray(styp, typids)) {
  2721. typids.push(styp);
  2722. anztyp[styp] = 1;
  2723. } else {
  2724. anztyp[styp] = anztyp[styp] + 1;
  2725. }
  2726. $("input.box:eq("+i+")").attr('typid', styp);
  2727. }
  2728.  
  2729.  
  2730. var table = document.createElement("table");
  2731. var tr = document.createElement("tr");
  2732. var td = document.createElement("td");
  2733. var img,span;
  2734. td.innerHTML = "Markieren nach Typ:<br><input type='checkbox' id='att' checked>Sofort zielen<br>Max.: <input id='maxnr' size='1' value='30'> Schiffe";
  2735. tr.appendChild(td);
  2736. for (i = 0; i < typids.length; i++) {
  2737. td = document.createElement("td");
  2738. img = document.createElement("img");
  2739. img.src = "/i/s/"+typids[i]+".gif";
  2740. img.typid = typids[i];
  2741.  
  2742. img.addEventListener("click", MarkierenNachTyp, true);
  2743. td.appendChild(img);
  2744. span = document.createElement("span");
  2745. span.innerHTML = "<br> " + anztyp[typids[0]];
  2746. td.appendChild(span);
  2747.  
  2748. tr.appendChild(td);
  2749. }
  2750. table.appendChild(tr);
  2751. $("body").append(table);
  2752. $(table).insertAfter($("h1:eq(2)"));
  2753. }
  2754.  
  2755.  
  2756.  
  2757. // ####################
  2758. // Beamunterstützung
  2759. // ####################
  2760.  
  2761. function getEntros(typ, anzahl) {
  2762. var entros;
  2763. switch (typ) {
  2764. case "Nahrung": entros = anzahl * 3; break;
  2765. case "Baumaterial": entros = anzahl * 4; break;
  2766. case "Iridium-Erz": entros = anzahl; break;
  2767. case "Duranium": entros = anzahl * 8; break;
  2768. case "Deuterium": entros = anzahl; break;
  2769. case "Antimaterie": entros = anzahl * 10; break;
  2770. case "Iso-Chips": entros = anzahl * 29; break;
  2771. case "Dilithium": entros = anzahl * 14; break;
  2772. case "Tritanium": entros = anzahl * 29; break;
  2773. case "Nitrium": entros = anzahl * 4; break;
  2774. case "Sorium": entros = anzahl * 40; break;
  2775. case "Plasma": entros = anzahl * 7; break;
  2776. case "Credits": entros = anzahl * 200; break;
  2777. }
  2778. return parseInt(entros,10);
  2779. }
  2780. function formatEntros(entros) {
  2781. if (entros >= 10000) {
  2782. entros = entros/1000;
  2783. entros = entros + "k";
  2784. }
  2785. return entros;
  2786. }
  2787.  
  2788. melde("Start Beamunterstützung");
  2789. if ($("span:contains('Handel')").length > 0 && $("span:contains('Angebote')").length > 0) {
  2790. if(getConfig("entros_anzeigen") || true) {
  2791.  
  2792.  
  2793.  
  2794. $("table:contains('Kolonist')").find('tr:eq(0)').each(function(){ $(this).find('>td').eq(4).after('<td class=\'buttonbody\'>Gewinn</td>'); });
  2795. $("table:contains('Kolonist')").find('tr:eq(0)').each(function(){ $(this).find('>td').eq(4).after('<td class=\'buttonbody\'>Verhältnis</td>'); });
  2796. $("table:contains('Kolonist')").find('tr:eq(0)').each(function(){ $(this).find('>td').eq(3).after('<td class=\'buttonbody\'>will (Entros)</td>'); });
  2797. $("table:contains('Kolonist')").find('tr:eq(0)').each(function(){ $(this).find('>td').eq(2).after('<td class=\'buttonbody\'>bietet (Entros)</td>'); });
  2798.  
  2799. $("table:contains('Kolonist')").find('tr:gt(0)').each(function(){ $(this).find('>td').eq(5).after('<td>&nbsp;</td>'); });
  2800. $("table:contains('Kolonist')").find('tr:gt(0)').each(function(){ $(this).find('>td').eq(5).after('<td>&nbsp;</td>'); });
  2801. $("table:contains('Kolonist')").find('tr:gt(0)').each(function(){ $(this).find('>td').eq(4).after('<td>&nbsp;</td>'); });
  2802. $("table:contains('Kolonist')").find('tr:gt(0)').each(function(){ $(this).find('>td').eq(3).after('<td>&nbsp;</td>'); });
  2803.  
  2804. var angebote = $("table:contains('Kolonist')>tbody>tr:gt(0)");
  2805. var tr_gebot, tr_kosten;
  2806. var i,n,ware_angebot,ware_kosten,entros_angebot, entros_kosten;
  2807. var angebot_isCreds, kosten_isCreds, v1, v2, vw1,vw2;
  2808.  
  2809. for (i = 0; i < angebote.length; i++) {
  2810. melde("Angebot:");
  2811. tr_gebot = $(angebote[i]).find(">td:eq(3)").find("table>tbody>tr");
  2812. tr_kosten = $(angebote[i]).find(">td:eq(5)").find("table>tbody>tr");
  2813. entros_angebot = 0;
  2814. entros_kosten = 0;
  2815. angebot_isCreds = 0;
  2816. kosten_isCreds = 0;
  2817.  
  2818. for (n= 0; n < tr_gebot.length; n++) {
  2819. ware_angebot = $(tr_gebot[n]).find("td:eq(1)")[0].innerHTML.split("&nbsp;");
  2820. entros_angebot = entros_angebot + getEntros(ware_angebot[2], ware_angebot[1]);
  2821. if (ware_angebot[2] == "Credits") {
  2822. angebot_isCreds = 1;
  2823. }
  2824. }
  2825. for (n= 0; n < tr_kosten.length; n++) {
  2826. ware_kosten = $(tr_kosten[n]).find("td:eq(1)")[0].innerHTML.split("&nbsp;");
  2827. entros_kosten = entros_kosten + getEntros(ware_kosten[2], ware_kosten[1]);
  2828. if (ware_kosten[2] == "Credits") {
  2829. kosten_isCreds = 1;
  2830. }
  2831. }
  2832. $(angebote[i]).find(">td:eq(4)").html(entros_angebot + ' Entros');
  2833. $(angebote[i]).find(">td:eq(6)").html(entros_kosten + ' Entros');
  2834. if (tr_gebot.length == 1 && tr_kosten.length == 1) {
  2835. v1 = Math.round((entros_angebot/entros_kosten)*10)/10;
  2836. v2 = Math.round((entros_kosten/entros_angebot)*10)/10;
  2837.  
  2838. vw1 = Math.round((ware_angebot[1]/ware_kosten[1])*10)/10;
  2839. vw2 = Math.round((ware_kosten[1]/ware_angebot[1])*10)/10;
  2840.  
  2841. if (kosten_isCreds) {
  2842. $(angebote[i]).find(">td:eq(8)").html("1 : "+ Math.round(vw1) + " (Waren)<br>1 : "+ v1 + " (Entros)");
  2843. } else if (angebot_isCreds) {
  2844. $(angebote[i]).find(">td:eq(8)").html("1 : "+ Math.round(vw1) + " (Waren)<br>1 : "+ v2 + " (Entros)");
  2845. } else {
  2846. $(angebote[i]).find(">td:eq(8)").html(v1 + ":1 bzw. 1:" + v2);
  2847. }
  2848.  
  2849. } else {
  2850. $(angebote[i]).find(">td:eq(8)").html('-');
  2851. }
  2852. $(angebote[i]).find(">td:eq(9)").html('--');
  2853. $(angebote[i]).find(">td:eq(9)").html((entros_angebot - entros_kosten));
  2854.  
  2855. if (entros_angebot > entros_kosten * 1.2) {
  2856. $(angebote[i]).find(">td:eq(3),>td:eq(5)").css('border', '1px solid #00ff00');
  2857. } else if (entros_angebot > entros_kosten) {
  2858. $(angebote[i]).find(">td:eq(3),>td:eq(5)").css('border', '1px solid #006600');
  2859. } else if (entros_angebot * 1.2 < entros_kosten) {
  2860. $(angebote[i]).find(">td:eq(3),>td:eq(5)").css('border', '1px solid #ff0000');
  2861. } else if (entros_angebot < entros_kosten) {
  2862. $(angebote[i]).find(">td:eq(3),>td:eq(5)").css('border', '1px solid #006600');
  2863. } else {
  2864. $(angebote[i]).find(">td:eq(3),>td:eq(5)").css('border', '1px solid #0000ff');
  2865. }
  2866. }
  2867.  
  2868. var entrodiv = document.createElement("div");
  2869. entrodiv.innerHTML = "<table><tbody><tr><td rowspan='3'>Ware</td><td colspan='5'>Preis für</td></tr><tr><td colspan='2'><b>1 Ware</b></td><td style='width:20px;' rowspan='21'>&nbsp;</td><td colspan='2'><b>1000 Waren</b></td></tr><tr><td>Entros</td><td>Credits</td><td>Entros</td><td>Credits</td></tr><tr><td><img src='" + stne_url + "i/w/11.gif'><img src='" + stne_url + "i/w/6.gif'><img src='" + stne_url + "i/w/6.gif'><img src='" + stne_url + "i/w/7.gif'><img src='" + stne_url + "i/w/7.gif'></td><td>35</td><td>0.175</td><td>35000</td><td>175</td></tr><tr><td><img src='" + stne_url + "i/w/2.gif'></td><td>3</td><td>0.015</td><td>3000</td><td>15</td></tr><tr><td><img src='" + stne_url + "i/w/3.gif'></td><td>4</td><td>0.02</td><td>4000</td><td>20</td></tr><tr><td><img src='" + stne_url + "i/w/4.gif'></td><td>1</td><td>0.005</td><td>1000</td><td>5</td></tr><tr><td><img src='" + stne_url + "i/w/5.gif'></td><td>8</td><td>0.04</td><td>8000</td><td>40</td></tr><tr><td><img src='" + stne_url + "i/w/6.gif'></td><td>1</td><td>0.005</td><td>1000</td><td>5</td></tr><tr><td><img src='" + stne_url + "i/w/7.gif'></td><td>10</td><td>0.05</td><td>10000</td><td>50</td></tr><tr><td><img src='" + stne_url + "i/w/8.gif'></td><td>70</td><td>0.35</td><td>70000</td><td>350</td></tr><tr><td><img src='" + stne_url + "i/w/9.gif'></td><td>29</td><td>0.145</td><td>29000</td><td>145</td></tr><tr><td><img src='" + stne_url + "i/w/11.gif'></td><td>13</td><td>0.065</td><td>13000</td><td>65</td></tr><tr><td><img src='" + stne_url + "i/w/13.gif'></td><td>29</td><td>0.145</td><td>29000</td><td>145</td></tr><tr><td><img src='" + stne_url + "i/w/14.gif'></td><td>40</td><td>0.2</td><td>40000</td><td>200</td></tr><tr><td><img src='" + stne_url + "i/w/15.gif'></td><td>4</td><td>0.02</td><td>4000</td><td>20</td></tr><tr><td><img src='" + stne_url + "i/w/18.gif'></td><td>7</td><td>0.035</td><td>7000</td><td>35</td></tr><tr><td><img src='" + stne_url + "i/w/19.gif'></td><td>120</td><td>0.6</td><td>120000</td><td>600</td></tr><tr><td><img src='" + stne_url + "i/w/20.gif'></td><td>200</td><td>1</td><td>200000</td><td>1000</td></tr><tr><td><img src='" + stne_url + "i/w/32.gif'></td><td>125</td><td>0.625</td><td>125000</td><td>625</td></tr><tr><td><img src='" + stne_url + "i/w/33.gif'></td><td>150</td><td>0.75</td><td>150000</td><td>750</td></tr><tr><td><img src='" + stne_url + "i/w/34.gif'></td><td>150</td><td>0.75</td><td>150000</td><td>750</td></tr></tbody></table>";
  2870. $("body").append(entrodiv);
  2871.  
  2872.  
  2873. }
  2874. }
  2875.  
  2876.  
  2877.  
  2878. if ($("a.button:contains('Script-Konsole')").length==1) {
  2879. setConfig("url_skriptkonsole", $("a.button:contains('Script-Konsole')").attr('href'));
  2880. }
  2881.  
  2882. if ($("input.textbox").val() == 'SHP-Skript') {
  2883. setConfig("url_shplink", $("td.tab:contains('Website'), td.tab_selected:contains('Website')").find("a").attr('href'));
  2884. }
  2885. $("a:contains('[K]')").attr('href', getConfig("url_skriptkonsole"));
  2886. $("a:contains('[SHP]')").attr('href', getConfig("url_shplink"));
  2887.  
  2888. function openScanFrame(openURL) {
  2889.  
  2890. $("#div_iframe_control").remove();
  2891.  
  2892. var div_iframe = document.createElement("div");
  2893. document.body.appendChild(div_iframe);
  2894. div_iframe.id="div_iframe_control";
  2895. div_iframe.style.position = "absolute";
  2896. div_iframe.style.top = ptop + 'px';
  2897. div_iframe.style.left = pleft + 'px';
  2898. div_iframe.style.border = '5px solid red';
  2899. div_iframe.innerHTML = '<table style=\"background-color:#000000\"><tr><td style="text-align:left"><a href=\"#\" style=\"color:red; font-weight:bold;\" onclick="$(\'#div_iframe_control\').remove();">[X] I-Frame Overlay schließen [X]</a></td></tr><tr><td id=\"td_iframe\"></td></tr></table>';
  2900.  
  2901. var iframe = document.createElement("iframe");
  2902. $("#td_iframe")[0].appendChild(iframe);
  2903. iframe.width = '400px';
  2904. iframe.height = '600px';
  2905. iframe.src = openURL;
  2906.  
  2907. return false;
  2908. }
  2909.  
  2910. //Beam-Iframe
  2911. function openBeamFrame(e) {
  2912.  
  2913. $("#div_iframe_control").remove();
  2914.  
  2915. var div_iframe = document.createElement("div");
  2916. document.body.appendChild(div_iframe);
  2917. div_iframe.id="div_iframe_control";
  2918. div_iframe.style.position = "absolute";
  2919. div_iframe.style.top = (mausPosition.Y+30) + 'px';
  2920. div_iframe.style.left = '20px';
  2921. div_iframe.style.border = '5px solid red';
  2922. div_iframe.innerHTML = '<table style=\"background-color:#000000\"><tr><td style="text-align:left"><a href=\"#\" style=\"color:red; font-weight:bold;\" onclick="$(\'#div_iframe_control\').remove();">[X] I-Frame Overlay schließen [X]</a></td></tr><tr><td id=\"td_iframe\"></td></tr></table>';
  2923.  
  2924. var iframe = document.createElement("iframe");
  2925. $("#td_iframe")[0].appendChild(iframe);
  2926. iframe.width = '900px';
  2927. iframe.height = '700px';
  2928. iframe.src = $(e.currentTarget).parent()[0].href;
  2929.  
  2930. return false;
  2931. }
  2932.  
  2933.  
  2934. //WK-Iframe
  2935. function openWKFrame(e) {
  2936.  
  2937. $("#div_iframe_control").remove();
  2938.  
  2939. var div_iframe = document.createElement("div");
  2940. document.body.appendChild(div_iframe);
  2941. div_iframe.id="div_iframe_control";
  2942. div_iframe.style.position = "absolute";
  2943. div_iframe.style.top = (mausPosition.Y+30) + 'px';
  2944. div_iframe.style.left = '20px';
  2945. div_iframe.style.border = '5px solid red';
  2946. div_iframe.innerHTML = '<table style=\"background-color:#000000\"><tr><td style="text-align:left"><a href=\"#\" style=\"color:red; font-weight:bold;\" onclick="$(\'#div_iframe_control\').css(\'display\',\'none\');">[X] I-Frame Overlay schließen [X]</a></td></tr><tr><td id=\"td_iframe\"></td></tr></table>';
  2947.  
  2948. var iframe = document.createElement("iframe");
  2949. $("#td_iframe")[0].appendChild(iframe);
  2950. iframe.width = '900px';
  2951. iframe.height = '700px';
  2952. iframe.src = $(e.currentTarget)[0].href;
  2953.  
  2954. return false;
  2955. }
  2956.  
  2957.  
  2958. var buttons, bt, bt2;
  2959.  
  2960. buttons = $("img[src='i/b/beamto.gif'],img[src='i/b/beamfrom.gif']");
  2961.  
  2962. // Anzeigen von Buttons, die ein iFrame zum Beamen öffnen
  2963.  
  2964. if(!getConfig("beambuttons_verstecken")) {
  2965. for (i = 0; i<buttons.length; i++) {
  2966. bt = buttons[i];
  2967. bt2 = $(bt).clone().appendTo($(bt).parent());
  2968. bt2[0].style.border = '1px dotted #ff0000';
  2969. bt2.bind('click', openBeamFrame);
  2970. }
  2971. }
  2972.  
  2973.  
  2974.  
  2975. buttons = $("a.button:contains('Ressourcen extrahieren')");
  2976. for (i = 0; i<buttons.length; i++) {
  2977. bt = buttons[i];
  2978. bt2 = $(bt).clone().appendTo($(bt).parent());
  2979. bt2[0].style.border = '1px dotted #ff0000';
  2980. bt2.bind('click', openWKFrame);
  2981. }
  2982.  
  2983.  
  2984.  
  2985. document.onkeydown = function(event) {
  2986. if (event.keyCode==113) {
  2987. var ziel = prompt("Wohin willst du fliegen? Auf eigene Gefahr!").replace("/","|");
  2988. //if (ziel == "wb") { ziel = "159|502"; }
  2989. //if (ziel == "home") { ziel = "@142|487"; }
  2990. $("#gk_konsole_text.console").text($("#gk_konsole_text.console").text() + "myShip.Action.FlyTo(\""+ziel+"\");");
  2991. executeConsoleReload();
  2992. }
  2993. }
  2994.  
  2995.  
  2996. if ($("h1:contains('Lager und Produktionsvorschau')").length) {
  2997. //Wenn Kolonieseite
  2998. if ($("h1:contains('Oberfläche'),h1:contains('Orbit')").next().find("table#map")) {
  2999. //Wenn Hauptseite
  3000.  
  3001. var this_td;
  3002. $("#bauframe").remove();
  3003. $("h1:contains('Oberfläche')").next().find("tr:eq(0)").append('<td id=\'bauframe\' class=\'nbl\'></td>');
  3004. //Kasten neben Buttons einfügen
  3005.  
  3006. $("h1:contains('Oberfläche'),h1:contains('Orbit')").next().find("table#map").find("td").each(function() {
  3007. //Felder iterieren
  3008. var tmp = /\?cr\=(.*)\'\, \'gebaudebauen/.exec($(this).next("script").text());
  3009. //Prüfen ob ein Gebäude-Bauen-Link vorhanden
  3010. if (!tmp) {
  3011. //Wenn nicht, prüfen ob ein Gebäude-Upgrade-Link vorhanden ist
  3012. var tmp = /\?cr\=(.*)\'\, \'gebaudeaufwerten/.exec($(this).next("script").text());
  3013. }
  3014. if (tmp) {
  3015. //Wenn ja Menü löschen...
  3016. //$(this).off();
  3017. //...und bei Klick auf das Bild direkt verfügbare Gebäude laden
  3018. $(this).click(function() {
  3019. this_td = this;
  3020. $("h1:contains('Oberfläche')").next().find("table#map").find("td").filter(function () { return($(this).css('border-top-color') != 'rgb(255, 0, 0)'); }).css('border', '1px solid grey');
  3021. $(this).css('border', '1px solid #00ccff');
  3022. $("td#bauframe").html('');
  3023. console.log('Mögliche Gebäude laden...');
  3024. console.log(stne_url + '/game?cr=' + tmp[1]);
  3025. $.get(stne_url + '/game?cr=' + tmp[1], function(data) {
  3026. //Bau-Seite geladen, gebäude auslesen und passende Links dafür
  3027.  
  3028. $($.parseHTML(data)).find("td.button:contains('Bauen')").each(function() {
  3029. var tmp = /\'(.*)\'/.exec($(this).find("a").attr('href'));
  3030. if (tmp) {
  3031. var geb = {
  3032. gebname: $(this).closest("table").parent().prev().text(),
  3033. link: tmp[1]
  3034. };
  3035. //Link zu Bauframe-hinzufügen
  3036. $("td#bauframe").append("&raquo; <a href='" + geb.link + "' class='baulink'>" + geb.gebname + "</a><br>");
  3037. }
  3038. });
  3039.  
  3040. //Erzeugten Links modifizieren, dass sich kein neues Fenster öffnet
  3041. $(".baulink").each(function() {
  3042. $(this).click(function() {
  3043. $(this_td).css('border', '1px solid #ff0000');
  3044. console.log("Bauauftrag: " + $(this).text());
  3045. $("#bauframe").html('');
  3046. $.get(stne_url + '/game' + $(this).attr('href'), function(data) {
  3047. //Bau-Seite geladen, gebäude auslesen und passende Links dafür
  3048. var meld = $($.parseHTML(data)).filter("#applog").html();
  3049.  
  3050.  
  3051. $("body").append("<div class='applog' id='applog2'></div>");
  3052. $("#applog2").html($("#applog2").html() + "<br>Gebäude gebaut: " + meld);
  3053. });
  3054. return false;
  3055. });
  3056. });
  3057. //Ende Links modifizieren
  3058.  
  3059. });
  3060. });
  3061.  
  3062. }
  3063. });
  3064. }
  3065. }
  3066.  
  3067.  
  3068.  
  3069. if ($("h1:eq(0):contains('Portal von CTC')").length == 1 && $("h1:eq(1):contains('Latinumhandel')").length == 1) {
  3070. var tab = $("table").find("td:contains('Menge für 1 Latinum')").closest("table");
  3071. var waren = [];
  3072. $(tab).find("tr:gt(0)").each(function () {
  3073. ware = {};
  3074. ware.name = $(this).find(">td:eq(0)").text();
  3075. ware.warenWertInLatinum = $(this).find(">td:eq(2)").text();
  3076. ware.kaufpreisLatinum = $(this).find(">td:eq(5)").text();
  3077. waren.push(ware);
  3078. });
  3079. postIt("import/Latinumkurs", {waren:waren}, function (data) { melde("Import: " + data.status); });
  3080. }
  3081.  
  3082.  
  3083. if ($("h1:contains('Scripteditor')").length==1) {
  3084. if ($("a.button:contains('Quelltext bearbeiten')").length == 1) {
  3085. melde("Skriptseite aufgerufen");
  3086. var scriptname = $("input.textbox").val();
  3087. var scriptcode = "";
  3088. $("a.button:contains('Quelltext bearbeiten')").closest("table").next().next().find("tr").find("td:eq(1)").each(function () {
  3089. scriptcode = scriptcode + '\r\n' + $(this).text();
  3090. });
  3091. melde("Sichere Skript " + scriptname);
  3092. data = {scriptname:encodeURIComponent(scriptname), scriptcode:encodeURIComponent(scriptcode)};
  3093. postIt("import/stneSkripte", data, function (data) { melde("Import: " + data.status); });
  3094.  
  3095. }
  3096. }
Add Comment
Please, Sign In to add comment