您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
shows a modified hyperjump ring and warp 9 circles
// ==UserScript== // @name hypCircle // @description shows a modified hyperjump ring and warp 9 circles // @include http://play.planets.nu/* // @include http://test.planets.nu/* // @include http://planets.nu/* // @version 3.0.0 // @homepage https://greasyfork.org/en/users/32642-stephen-piper // @namespace https://greasyfork.org/en/users/32642-stephen-piper // ==/UserScript== function wrapper() { function hypTools() { } hypTools.prototype = { loadControls : function() { // debugger; this.putWarpCircles = false; this.warpcircles = []; this.putMultiTurnCircles = false; this.multiturncircles = []; this.addlinestart = false; this.addlineend = false; this.lines = []; this.lineStart = null; this.clearData(); // if (vgapMap.prototype.spMenuItem != undefined) { vgaPlanets.prototype.spMenuItem("Hyp Circle", "hypTools", function() { vgap.map.putHypCircle = true; $("body").css("cursor", "crosshair"); }); vgaPlanets.prototype.spMenuItem("Warp Circle", "hypTools", function() { hypTools.putWarpCircle = true; $("body").css("cursor", "crosshair"); }); vgaPlanets.prototype.spMenuItem("Warp Circle x 3", "hypTools", function() { hypTools.putMultiTurnCircle = true; $("body").css("cursor", "crosshair"); }); // vgaPlanets.prototype.spMenuItem("Add Line", "addLine", function() { // if (hypTools.addlineend) { // hypTools.startlinept.pop(); // } // hypTools.addlinestart = true; // hypTools.addlineend = false; // }); // // vgaPlanets.prototype.spMenuItem("Delete Line", "deleteLine", function() { // hypTools.deleteline = true; // $("body").css("cursor", "crosshair"); // }); vgaPlanets.prototype.spMenuItem("Clear", "_massClear", function() { hypTools.prototype.clearData(); }); // } }, clearData : function() { vgap.map.putHypCircle = false; vgap.map.hypcircles = new Array(); hypTools.putWarpCircle = false; hypTools.warpcircles = []; hypTools.putMultiTurnCircles = false; hypTools.multiturncircles = []; hypTools.addlinestart = false; hypTools.addlineend = false; hypTools.lines = []; hypTools.lineStart = null; }, addWarpCircle : function(a, b, c) { hypTools.warpcircles.push({ x : a, y : b, w : c }); $("body").css("cursor", ""); }, addMultiTurn : function(a, b, c) { hypTools.multiturncircles.push({ x : a, y : b, w : c }); $("body").css("cursor", ""); }, // addLineStart : function(a, b) { // hypTools.linestart = { // x : a, // y : b // }; // // $("body").css("cursor", "crosshair"); // }, // // addLineEnd : function(a, b) { // hypTools.lines.push({ // sx : hypTools.linestart.x, // sy : hypTools.linestart.y, // ex : a, // ey : b // }); // hypTools.linestart = null; // // hypTools.prototype.writeLines(); // // $("body").css("cursor", ""); // }, // // writeLines : function () { // var p = vgap.myplanets[0]; // if (p.note == null) // p.note = vgap.addNote(p, 1); // // p.note.body = "{\"lines\" :" + JSON.stringify(hypTools.lines) + "}"; ////console.log(p.note.body); // // $("body").css("cursor", ""); // }, // // deleteLine : function(a, b) { // d = 9999; // // for (i = 0; i<hypTools.lines.length; ++i){ // l = hypTools.lines[i]; // if (l != null) { // s = Math.min(Math.dist(l.sx, l.sy, a, b), Math.dist(l.ex, l.ey, a, b)); // // if(d > s) { // d = s; // id = i; // } // } // } // // if (id != undefined) { // delete hypTools.lines[id]; // hypTools.prototype.writeLines(); // } // }, // // parsenotes : function() { // for (var f = 0; f < vgap.myplanets.length; f++) { // var l = vgap.myplanets[f]; // if (l.note != undefined && l.note.body != "") { // try { // var jn = JSON.parse(l.note.body // // , function(h, k) {console.log(h+" "+k)} // ); // } catch (e) { // console.log("parse error " + l.id + " " + l.note.body); // continue; // } // // if (jn.lines != undefined) { // l = jn.lines; // // for (f = 0; f < l.length; f++) { // p = l[f]; // if (p != null) { // // console.log(p); // // hypTools.lines.push({ // sx : p.sx, // sy : p.sy, // ex : p.ex, // ey : p.ey // }); // } // } // } // } // } // }, }; var oldRenderMapTools = vgapMap.prototype.renderMapTools; vgapMap.prototype.renderMapTools = function(ctx) { h = this.hypcircles; this.hypcircles = []; oldRenderMapTools.apply(this, arguments); this.hypcircles = h; for (var d = 0; d < this.hypcircles.length; d++) { var c = this.hypcircles[d]; // planetary hypcircle for (var i = 0; i < vgap.planets.length; ++i) { var planet = vgap.planets[i]; var dist = Math.dist(c.x, c.y, planet.x, planet.y); if (dist >= 340 && dist <= 360) { this.drawCircle(ctx, this.screenX(planet.x), this.screenY(planet.y), 12 * this.zoom, "cyan", 1); } else if (dist >= 338 && dist <= 362) { this.drawCircle(ctx, this.screenX(planet.x), this.screenY(planet.y), 12 * this.zoom, "orange", 1); } } // large hypcircle this.drawCircle(ctx, this.screenX(c.x), this.screenY(c.y), 340 * this.zoom, "cyan", 1); this.drawCircle(ctx, this.screenX(c.x), this.screenY(c.y), 360 * this.zoom, "cyan", 1); } for (var d = 0; d < hypTools.warpcircles.length; d++) { var c = hypTools.warpcircles[d]; // planetary hypcircle for (var i = 0; i < vgap.planets.length; ++i) { var planet = vgap.planets[i]; var dist = Math.dist(c.x, c.y, planet.x, planet.y); if (dist >= c.w && dist <= c.w + 3) { this.drawCircle(ctx, this.screenX(planet.x), this.screenY(planet.y), 12 * this.zoom, "blue", 1); } } this.drawCircle(ctx, this.screenX(c.x), this.screenY(c.y), c.w * this.zoom, "cyan", 1); } for (var d = 0; d < hypTools.multiturncircles.length; d++) { var c = hypTools.multiturncircles[d]; this.drawCircle(ctx, this.screenX(c.x), this.screenY(c.y), 1 * c.w * this.zoom, "cyan", 1); this.drawCircle(ctx, this.screenX(c.x), this.screenY(c.y), 2 * c.w * this.zoom, "cyan", 1); this.drawCircle(ctx, this.screenX(c.x), this.screenY(c.y), 3 * c.w * this.zoom, "cyan", 1); } // if (hypTools.linestart) { // var l = hypTools.linestart; // this.drawCircle(ctx, this.screenX(l.x), this.screenY(l.y), 1 * this.zoom, "orange", 2); // } // // for (var d = 0; d < hypTools.lines.length; ++d) { // var l = hypTools.lines[d]; // if (l != null) // this.drawLine(ctx, this.screenX(l.sx), this.screenY(l.sy), this.screenX(l.ex), this.screenY(l.ey), "orange", 1); // } }; var oldClick = vgapMap.prototype.click; vgapMap.prototype.click = function(event) { if (this.over) { a = this.over.x; b = this.over.y; } else { a = this.x; b = this.y; } if (vgap.shipScreen.ship != undefined) { s = vgap.shipScreen.ship; w = s.engineid * s.engineid + .4; } else { w = 81.4; } // snap hypcircle to closest ship or planet if (hypTools.putWarpCircle) { hypTools.prototype.addWarpCircle(a, b, w); hypTools.putWarpCircle = false; $("body").css("cursor", ""); } // if (hypTools.addlinestart) { // hypTools.prototype.addLineStart(a, b); // // hypTools.addlinestart = false; // hypTools.addlineend = true; // $("body").css("cursor", "crosshair"); // // return // } else if (hypTools.addlineend) { // hypTools.prototype.addLineEnd(a, b); // // hypTools.addlinestart = false; // hypTools.addlineend = false; // $("body").css("cursor", ""); // } // // if (hypTools.deleteline) { // hypTools.prototype.deleteLine(a, b); // // $("body").css("cursor", ""); // } if (hypTools.putMultiTurnCircle) { hypTools.prototype.addMultiTurn(a, b, w); hypTools.putMultiTurnCircle = false; $("body").css("cursor", ""); } if (this.putHypCircle) { this.hyperjump(a, b); this.putHypCircle = false; $("body").css("cursor", ""); } oldClick.apply(this, arguments); this.draw(); }; // var oldLoad = vgapMap.prototype.load; // vgapMap.prototype.load = function() { // oldLoad.apply(this, arguments); // // hypTools.prototype.parsenotes(); // }; var oldLoadControls = vgapMap.prototype.loadControls; vgapMap.prototype.loadControls = function() { oldLoadControls.apply(this, arguments); hypTools.prototype.loadControls(); }; } var script = document.createElement("script"); script.type = "application/javascript"; script.textContent = "(" + wrapper + ")();"; document.body.appendChild(script);