您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
draw a ring around planets and ships that are not marked ready
当前为
// ==UserScript== // @name checkReady // @description draw a ring around planets and ships that are not marked ready // can't move ships marked ready // // @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() { var showReady = false; function checkReady() { } checkReady.prototype = { loadControls : function() { this.clearData(); if (vgapMap.prototype.spMenuItem != undefined) { vgapMap.prototype.spMenuItem("Check Ready", "checkReady", function() { showReady = !showReady; }); vgapMap.prototype.spMenuItem("Clear", "_massClear", function() { checkReady.prototype.clearData(); }); } }, clearData : function() { showReady = false; }, }; var oldDraw = vgapMap.prototype.draw; vgapMap.prototype.draw = function(fast, ctx, skipUserContent, secondCanvas) { oldDraw.apply(this, arguments); if (!ctx) ctx = this.ctx; // have to redraw ships because normal draw // copies the planets over the ships // draw ships not ready for (var n = 0; n < vgap.myships.length; n++) { var E = vgap.myships[n]; this.drawShip(E, ctx) } }; var oldDrawPlanet = vgapMap.prototype.drawPlanet; vgapMap.prototype.drawPlanet = function(planet, ctx, fullrender) { oldDrawPlanet.apply(this, arguments); var x = this.screenX(planet.x); var y = this.screenY(planet.y); // draw planets not ready if (planet.infoturn > 0) { if (showReady) { if (planet.readystatus == 0 && vgap.player.id == planet.ownerid) { this.drawCircle(ctx, x, y, 13 * this.zoom, "orange", 2); } if (planet.isbase) { for (var i = 0; i < vgap.mystarbases.length; ++i) { if (vgap.mystarbases[i].planetid == planet.id && vgap.mystarbases[i].readystatus == 0) { this.drawCircle(ctx, x, y, 11 * this.zoom, "red", 2); break; } } } } } }; var oldDrawShip = vgapMap.prototype.drawShip; vgapMap.prototype.drawShip = function(ship, ctx) { oldDrawShip.apply(this, arguments); // draw ships not ready had to redraw in draw() // because drawplanet() wrote over them if (showReady && ship.readystatus == 0 && vgap.player.id == ship.ownerid) { this.drawCircle(ctx, this.screenX(ship.x), this.screenY(ship.y), 16 * this.zoom, "yellow", 2); } // if (warnings && ship.ownerid) { // if (ship.dist > Math.pow(ship.warp, 2)) { // this.drawCircle(ctx, this.screenX(ship.x), this.screenY(ship.y), 14 * // this.zoom, "red", 2); // } // // < required neutronium // } }; var oldShipSelectorClick = vgapMap.prototype.shipSelectorClick; vgapMap.prototype.shipSelectorClick = function(event) { var e = this.activeShip; if (e.readystatus > 0) // can't move ships marked ready return; oldShipSelectorClick.apply(this, arguments); }; var oldLoadControls = vgapMap.prototype.loadControls; vgapMap.prototype.loadControls = function() { oldLoadControls.apply(this, arguments); checkReady.prototype.loadControls(); }; } var script = document.createElement("script"); script.type = "application/javascript"; script.textContent = "(" + wrapper + ")();"; document.body.appendChild(script);